1、 目 录 引言 . 1 1 设计思想 . 1 1.1 设计要求 . 1 1.2 设计方案 . 2 1.3 系统方框图 . 2 2 设计原理 . 3 2.1 16*64 点阵 LED 原理及应用 . 3 2.2 LED 点阵的显示文字图形原理 . 3 3 主要硬件组成 . 6 3.1 主控芯片 LPC2132 . 6 3.1.1LPC2132的简介 . 6 3.1.2LPC2132的主要特性 . 6 3.1.3结构 概述 . 7 3.2 行扫描驱动电路 . 8 3.3 列驱动电路 . 9 3.4 双向八位数据缓冲器 74LS245 . 10 4 系统软件设计 . 11 4.1 设计的基本原则 .
2、 11 4.1.1ARM 控制系统设计的基本原则 . 11 4.1.2控制系统设计应用的软件 . 11 4.1.3控制系统设计的一般步骤 . 12 4.2 显示驱动系统 . 12 4.3 总程序设计流程图 . 13 4.4 综合调试 . 13 5 总结 . 13 谢 辞 . 15 参考文献 . 16 附 录 . 17 第 1 页 共 26 页 引言 LED 电子 显 示屏是利用发光二极管点阵模块或像素单元组成的平面式显示屏幕。它是集微电子技术、光电子技术、计算机技术、信息处理技术于一体的显示系统,是目前国际上 极为先进的显示媒 体。由于它具有发光效率高、使用寿命长、组态灵活、色彩丰富、工作性能
3、稳定以及对室内室外环境适应能力强等优点而日渐成为显示媒体中的佼 佼者。在我国改革开放之后,特别是进入 90 年代国民经济高速增长,对公众场合发布信息的需求日益强烈, LED 显示屏的出现正好适应了这一市场形势,因而在 LED 显示屏的设计制造技术与应用水平上都得到了迅速的提高,生产也得到了迅速的发展,并逐步形成产业,成为光电子行业的新兴产业领域。 LED 显示屏经历了从单色、双色 图 文显示屏,到 图 像显示屏的发展过程。 随 着信息产业的高速发展, LED 显示屏作为信 息传播的一种重要手段成为现代信息化社会的一个闪亮标志。近年 LED 显示屏已广泛应用于室内、外需要进行服务内容和服务宗旨宣
4、传的公众场所如银行、营业部、车站、机场、港口、体育场馆等信息的发布,政府机关政策、政令,各类市场行情信息的发部和宣传等。目前,对于那些需要显示的信息量不是很大, 分辨率不是很高,又需要制造成本相对比较低的场合,使用大、小屏幕 LED 点阵显示器是比较经济适用的,它可以用单片机控制实现显示字符、数字、汉字和简单图形,可以根据需要使用不同字号 、字型。 LED 之所以受到广泛重视而得到迅速发展,是与它本身 所具有的优点分不开的。这些优点概括起来是:亮度高、工作电压低、功耗小、小型化、寿命长、耐冲击和性能稳定。 LED 的发展前景极为广阔,目前正朝着更高亮度、更高耐气候性、更高的发光密度、更高的发光
5、均匀性,可靠性、全色化方向发展。 1 设计思想 1.1 设计要求 (1) 点阵规格 8*8 (2) 显示数字、字母 (3) 实现水平、垂直移动 发挥部分: (1) 实现 16*64 显示 (2) 具有闪烁功能 第 2 页 共 26 页 行驱动 LED 点阵显示 列驱动 主 控 模 板 键盘 电源 1.2 设计方案 方案一 串行方式 显示 。这种方式可同时 显示 4 个 16l6 点阵汉字或 8 个 168 点阵的汉字、字符或数字。点阵 显示 屏每个单元由 16 个 88 点阵 LED 显示 模块、行信号选择译码器 74HC138、 驱动器 74HC245、数据移位寄存器 74HC595 和行驱
6、动器组成,如图 1 所示。单元 显示 屏可以接收控制器 (主控制电路板 )或上一级 显示 单元模块传输下来的数 据信息和命令信息,并可将这些数据信息和命令信息不经任何变化地再传送到下一级 显示 模块单元中,因此 显示 屏可扩展至更多的 显示 单元,用于 显示 更多的内容。 方案二 并行方式 显示 。可以通过锁存器芯片来扩展 IO 口,达到控制 LED 点阵的64 个列线的目的。方案中运用 16 片锁存器 74HC573 来组成 8 组双缓冲寄存器,驱动LED 点阵的 8 组列线,用 4/16 译码器 74HC595 对 LED 点阵的 16 行进行扫描。在送每一行的数据到 LED 点阵前,先把
7、数据分别送到第一级的 8 个 74HC573,然后再给第二级的 8 个 74HC573 送锁脉冲,数据一起输出到 LED 点阵列中,这样就避免了各行数据显示 不同步问题。由于并行数据传输速度比串行快,所以字符闪烁的问题得到较好地解决,文字左右移动也比较容易控制。 经过对两种方案进行比较,最终选择了方案一。 此方案为点阵显示屏系统中比较常用的,所用器件也比较常用,容易买到。 1.3 系统方框图 该课题的总系统方框图如图 1.1 所示: 图 1.1 系统方框图 第 3 页 共 26 页 2 设计原理 2.1 16*64 点阵 LED 原理及应用 设计时必须掌握点阵工作原理方能进行更深层设计。 16
8、x64LED 点阵其实就是 16 块8*8 点阵 LED 级联而成的,因此 特给出 8*8 点阵 LED 的工作原理。 图 2.1 为 8*8 点阵LED 外观及引脚图,其等效电路如图 2.2 所示,只要其对应的 X、 Y 轴顺向偏压,即可使 LED 发亮。例如如果想使左上角 LED 点亮,则 Y0=1, X0=0 即可。应用时限流电阻可以放在 X 轴或 Y 轴。而 16x64 就是在 8x8 原理的基础上将 16 块 8x8 级联而成。 图 2.1 8 8 点阵 LED 外观及引脚图 图 2.2 8 8 点阵 LED 等效电路 2.2 LED 点阵的显示文字图形原理 汉字显示屏用于显示汉字、
9、字符及图像信息,在公共汽车、银行、医院及户外广告第 4 页 共 26 页 等地方都有广泛的应用。下面是简单的汉字显示屏的制作,由单片机控制汉字的显示内容。为了降低成本,使用了四块 8 8 的 LED 点阵发光管的模块,组成了一个 16 64的 LED 点阵显示屏。在这里仅做了 8 个 汉字的显示,在实际的使用中可以根据这个原理自行的扩展显示的汉字,下面是介绍汉字显示的原理。 LED 驱动显示采用动态扫描方法,动态扫描方式是逐行轮流点亮,这样扫描驱动电路就可以实现多行的同名列共用一套列驱动器。以 16 64 点阵为例,把所有同一行的发光管的 阴 极连在一起,把所有同一列的发光管的 阳 极连在一起
10、(共 阴 的接法),先送出对应第 1 列 发光管亮灭的数据并锁存,然后选通第 1 列 使其燃亮一定的时间,然后熄灭;再送出第 2 列 的数据并锁存,然后选通第 2 列 使其燃亮相同的时间,然后熄灭; .第 64 列 之后,又重新燃亮第 1 列 ,反复 轮回。当这样轮回的速度足够快(每秒 24 次以上),由于人眼的视觉暂留现象,就能看到显示屏上稳定的图形。该方法能驱动较多的LED,控制方式较灵活,而且节省单 片 机的资源。 显示数据可通过 ARM7 的 P0 和 P1 口接驱动电路传输到点阵行引脚。 LED 点阵显示模块进行的方法有两种: ( 1)水平方向( X 方向)扫描,即逐列扫描的方式(简
11、称列扫描方式):此时用一个 P 口输出列码决定哪一列能亮(相当于位码),用另一个 P 口输出行码(列数据),决定该列上哪个 LED 亮(相当于段码)。能亮的列从左到右扫描完 64 列(相当于位码循环移动 64 次 )即显示出一个完整的图像。 ( 2)竖直方向( Y 方向)扫描,即逐行扫描方式(简称行扫描方式):此时用一个P 口输出决定哪一行能亮(相当于位码),另一个 P 口输出列码(行数据,行数据为将列数据的点阵旋转 90 度的数据)决定该行上哪些 LED 灯亮(相当于段码)。能亮的行从上向下扫描完 16 行(相当于位码循环移位 16 次)即显示一帧完整的图像。 本设计应用的是第一种的扫描方法
12、,即水平方向( X 方向)扫描。 每一个字由 16 行 64 列的点阵形成显示,即每个字均由 256 个点阵来表示,我们可以把每一个点理解为一个像素。一般我们使用的 16 16 的点阵宋体字库,即所谓的 16 16,是每一个汉字在纵横各 16 点的区域内显示的。汉字库从该位置起的 32 字节信息记录了该字的 字模信息。事实上这个汉字屏不仅可以显示汉字,也可以显示在 256 像素范围内的任何图形。 2.3 点阵的移动 以下以 16 64 点阵为例介绍点阵的移动。要显示一个字符,该字符的点阵数据可以列向(纵向) 64 点组字,又可以行向(横向) 16 点组字。无论哪一种组字方法,都既可以显示字符的
13、水平方向的移动,又可以显示竖直方向的移动。本设计主要采用汉字的左移,所以以下只作左移显示的解释。 显示字符的左 右移动 第 5 页 共 26 页 (1) 列 扫描方式左移动:列向组字显示字符水平方向的移动(左滚动) 在这里有两个方法: 方法 1:延长数组法。将原来字符点阵数组的 16 个数据重复一遍延长,点阵数组的数据个数为 32 个。每扫描一帧取 8 个数据显示,下一帧取数要在数组中后移一个数取数。循环一遍扫 16 帧。可以假想有 2 块 16 16 的点阵模块(共 32 帧)水平平行排列,用一个恰好能罩住 16 列点阵的中空方框去罩这个点阵,第 1(第 1 帧)罩住最左边数起第一列开始的
14、16 列,就扫描显示这 16 列;第 2 次(第 2 帧)使方框右移一列,罩住做左边数起第 2 列开始的 16 列, 就扫描显示这 16 列; ;这样每扫描完一帧使方框右移一列,最后第 16 次(第 16 帧)时,罩住左边数起的第 16 列开始的 16 列,就扫描显示这 16 列。如此完成 16 帧画面的扫描显示,也就完成了整个一次移动循环扫描、之后反复循环,即可呈现显示字符沿水平向左移动的图像,如 图 2.3 所示: 图 2.3 方框图法左右移动示意图 因为是列向组字(列扫描方式,点阵数据为行码,上边为低位下面为高位),希望显示移动的一个字符,第 1 次扫描从行码的点阵数组中取第 116 个
15、数据,送行码输 出口,对应于这 8 个数据,同时用列码输出口输出列码,分别控制第 116 列。扫描完前16 个数据之后,第 2 次扫描从点阵数组中取第 318 个数据(第 18 个数据与第 1 个数据同),送行码输出口,对应于这 16 个数据,同时用列码输出口输出列码,仍分别控制扫第 116 列。第 3 次扫描从点阵数组中取第 520 个数据(第 20 个数据码与第 2 个数据码相同)扫描 ;如此实现字符向左移动。 以上完成一个图形移动的方法,也可以看成是移动 16 个不同的字形。如图 2.13 所示,首先扫描第一个字型,同样是 16 行, 16 次扫描, 16 次显示;完 成一个字型的扫描以
16、后,再扫描第二个字型;完成第二个字型的扫描之后,再扫描第三个字型 依 此类推,即可产生该文 字的左移的感觉。 假设如果原本某个汉字的字型(第一个字型),其编码为: 00H,10H,20H,30H,40H,50H,60H,70H,80H,90H,0A0H,0B0H,0C0H,0D0H0E0H,0F0H; 第二个字型的编码为: 20H,30H,40H,50H,60H,70H,80H,90H,0A0H,0B0H,0C0H,0D0H0E0H,0F0H, 00H, 10H 第 6 页 共 26 页 也就是把第一个字型的编 码中,第 1 列显示数据,变为第 2 列显示数据;第 2 列显示数据,变成第 3
17、列显示数据;第 3 列显示数据,变成第 4 列显示数据;第 4 列显示数据,变成第 5 列显示数据 以此类推。 当第一个字型扫描显示完成之后,就进行这样的动作调整,以产生第二个字型的编码。同样的,当第二个字型扫描完成之后,就进行这样的调整动作,以产生第三个字型的编码。这个调整动作时先将 16 个编码根据序填入存储器,例如第 1 行编码存入 20H,第二行编码存入 21H要进行左移调整时,则先将 20H 地址的数据转移到 36H 地址,再将 21H 地址的数据转 移到 20H 地址,将 22H 地址的数据转移到 21H 地址,将 23H地址的数据转移到 22H 地址,将 24H 地址的数据转移到
18、 23H 地址,将 25H 地址的数据转移到 24H 地址,将 26 H 地址的数据转移到 25H 地址,将 27H 地址的数据转移到 26 H地址,将 28H 地址的数据转移到 27H 地址 本设计主要采用以上方法实现左移,其他方法在此不再说明。 3 主要硬件组成 3.1 主控芯片 LPC2132 3.1.1LPC2132的简介 LPC2132是基于一个支持实时仿真和嵌入式跟踪的 32/16位 ARM7TDMI-STM CPU 的微控制器,并带有 32kB、 64kB、 512kB 的嵌入的高速 Flash 存储器。 128 位宽度的存储器接口和独特的加速结构使 32 位代码能够在最大时钟速
19、率下运行。对代码规模有严格控制的应用可使用 16 位 Thumb模式将代码规模降低超过 30%,而性能的损失却很小。 较小的封装和极低的功耗使 LPC2131/2132/2138 可理想地用于小型系统中,如访问控制和 POS 机。宽范围的串行通信接口和片内 8/16/32kB 的 SRAM 使 LPC2132 非常适用于通信网关、协议转换器、软 modem、声音辨别和低端成 像,为它们提供巨大的缓冲区空间和强大的处理功能。多个 32 位定时器、 1 个或 2 个 10 位 8 路 ADC、 10 位DAC、 PWM 通道和 47 个 GPIO 以及多达 9 个边沿或电平触发的外部中断使它们特别
20、适用于工业控制和医疗系统。 3.1.2LPC2132的主要特性 (1) 16/32 位 ARM7TDMI-S,超小 LQFP64。 (2) 8/16/32KB 的片内静态 RAM 和 32/64/128/256/512KB 的片内 Flash 程序存储器。128 位宽度接口 /加速器可实现高达 60MHz 的工作频率。 (3) 通过片内 boot 装载程序 实现在系统编程 /在应用编程 (ISP/IAP)。单个 Flash 扇区第 7 页 共 26 页 或整片擦除时间为 400ms。 256 字节编程时间为 1ms。 (4) EmbeddedICERT 和嵌入式跟踪接口通过片内 RealMon
21、itor 软件对代码进行实时调试和高速跟踪。 (5) 1 个 10 位的 D/A 转换器,可产生不同的模拟输出。 (6) 2 个 32 位定时器 /外部事件计数器和看门狗。 (7) 低功耗实时时钟具有独立的电源和特定的 32KHz 时钟输入。 (8) 多个串行接口,包括 2 个 16C550 工业标准 UART、 2 个高速 I2C 总线张和具有缓冲作用和数 据长度可变功能的 SSP。 (9) 向量中断控制器。可配置优先级和向量地址。 (10) 小型的 LQFP64 封装上包含多达 47 个通用 I/O 口。 (11) 多达 9 个边沿或电平触发的外部中断管脚。 (12) 通过片内 PLL 可
22、实现最大为 60MHz 的 CPU 操作频率。 (13) 片内集成振荡器与外部晶体的操作频率范围为 1 30MHz,与外部振荡器的操作频率范围高达 50MHz。 (14) 低功耗模式:空闲和掉电。 (15) 可通过个别使能 /禁止外部功能和外围时钟分频来优化功耗。 (16) 通过外部中断或 BOD 将处理器从掉电 模式中唤醒。 (17) 单电源,具有上电复位和掉电检测电路。 (18) CPU 操作电压范围: 3.0V 3.6V(3.3 10%),I/O 口可承受 5V 的电压。 3.1.3结构概述 LPC2132包含一个支持仿真的 ARM7TDMI-S CPU、与片内存储器控制器接口 ARM7
23、局部总线、与中断控制器接口的 AMBA高性能总线( AHB)和连接片内外设功能的 VLSI外设总线( VPB, ARMAMBA总线的兼容超集)。 LPC2132将 ARM7TDMI-S配置为小端( little-endian)字节顺序。 AHB外设分配了 2M字 节的地址范围,它位于 4G字节 ARM存储器空间的最顶端。每个 AHB外设都分配了 16k字节的地址空间。 LPC2132的外设功能(中断控制器除外)都连接到 VPB 总线。 AHB到 VPB的桥将 VPB 总线与 AHB总线相连。 VPB外设也分配了 2M字节的地址范围,从 3.5GB地址点开始。每个 VPB外设在 VPB地址空间内
24、都分配了 16k字节地址空间。片内外设与器件管脚的连接由管脚连接模块控制。该模块必须由软件进行控制以符合外设功能与管脚在特定应用中的需求。 LPC2132的功能框图如图 3.1所示: 第 8 页 共 26 页 图 3.1 LPC2132的功能图 3.2 行扫描驱动电路 16*64LED 点阵的行扫描是用两片 74HC138 译码器级联而成的 4/16 线译码器。LPC2132 的 P1 口高 5 位输出的信号经 4/16 线译码器 74HC138 译码后生成 16 条行选通信号后,再经过 74HC04 反向驱动器驱动对应的行线。其基于 74HC138 的行驱动仿真原理图如图 3.2 所示: 第
25、 9 页 共 26 页 图 3.2 基于 74HC138 的行驱动 3.3 列驱动电路 列驱动采用集成芯片 74HC595, 利用列驱动 74HC595 的锁存功能,即在它接收下一行待显示的数据,还没有锁存新数据的这段时间 来显示本行的内容,这样就 可以 不需要额外加延时来增加显示屏的亮度。采用这个方法就不要再增加 LED 的列驱动器件,可以 使整个硬件结构更简化,成本降低。 列信号 由 8 片 8 位带锁存的串入并出移位寄存器 74HC595 来完成。 在同步移位时钟的作用下, 点阵数据逐位移动 输入 移位寄存器74HC595 的 对应 电阵 位置, 74HC595 在接收到锁存信号后,将数据并行输出至 LED 的列线,最后在行驱动信号作用下点亮 LED。 其列驱动电路仿真图和时序图分别如图 3.3和图 3.4 所示: 图 3.3 列驱动电路