关键词:LED 显示屏,单片机,IAP 技术
摘要:本文以市场上常见的室内双色 LED 单元板为控制对象,说明基于单片机 IAP 技术的 LED
显示屏控制系统工作原理以及数据组织方法。
LED 显示屏由于其具有耗电少、使用寿命长、成本低、亮度高、故障少、视角大、可视距离远
等特点,已经成为新一代的信息传播媒体工具。LED 与 LCD 相比较最突出的特点是,亮度高、
成本低且屏幕尺寸可根据现场情况用标准 LED 单元板拼制。按安装位置可分为室外、半室外和
室内;按颜色可分为单色、双基色和彩色;按发光二极管点距可分为 φ5.0、φ3.75 及 φ3.0 等。本
文以市场上常见的室内双色 LED 单元板为控制对象,说明基于单片机 IAP 技术的 LED 显示屏控
制系统工作原理以及数据组织方法。
1 双色 LED 单元板硬件组成及工作原理
常见的室内双色 LED 单元板电路框图如图 1(a)所示。其中行扫描电路由 2 片 74HC138(3-8 译码
器)构成的 4-16 译码器加上多个 4953(MOS 管)组成的,扫描方式为 1/16。上下半屏分别由 2 组
用 74HC595 串行移位寄存器实现红色、绿色显示数据的列输入,在图 1(a)所示的 64×32 标准 LED 单元板中,每组串行移位寄存器中有 8 个 74HC595 级联,4 组共用了 32 个 74HC595。74HC595 内
部电路框图如图 1(b)所示。所有 4 组 74HC595 的控制信号 RCK、SCK、EN 全部接在一起。74HC595 的控制信号和 4 组串行移位寄存器的输入以及行扫描控制信号 A、B、C、D 构成整个 LED 单元板
的输入;74HC595 的控制信号经驱动后和 4 组串行移位寄存器的输出以及行经过驱动的扫描控制
信号 A、B、c、D 构成整个 LED 单元板的输出,用于级联下一个 LED 单元板的输入。双色 LED 单
元板等效电路框图如图 1(c)所示。
2 LED 显示控制系统的硬件组成及工作原理
LED 显示控制系统的硬件组成如图 2 所示。从表面上看是一个普通的单片机简单应用,实际上在
设计此系统时已经考虑了很多硬件、软件及硬软件配合的因素。首先在使用 51 单片机的前提下,
用其串行口方式 0 似乎可以利用单片机发出的移位脉冲将 8 位数据送入 74HC595 中,但要实现图 2 中 8 位数据的同时输入必须加其他的辅助芯片,而且在缩短数据传输时间上没有什么好处。其
次,采用 FPGA、CPLD 等可编程芯片设计成专用硬件电路与单片机接口可大幅度提高数据传输的
速度,但成本也将同步大幅度提高。
在图 2 所示的系统中采用了以下的设计理念:①由 P0 口同步输出 8 位字型点阵数据。②用 P3.6 产生 SCK 信号,软件中相应使用“MOVX@R0,A”指令,在形成 SCK 信号的同时减少指令的字节数。 ③由 P2.0 至 P2.3 输出行扫描信号,软件中将 A、B、C、D 存放在 DPH 的低 4 位中。④RCK 和 EN 分别由 P3.4、P3.5 控制。⑤SST89E516 单片机的串行口与 PC 机通信。利用该单片机的 IAP 功能
下载显示所需的字型数据和控制程序。
3 LED 显示控制系统的数据组织及软件优化
LED 显示控制系统的数据组织如图 3 所示。从图 2 可以得到图 3(a)所示的从正面看过去显示行与
显示数据位以及颜色的对应关系。为了提高数据的读取速度,将显示数据按扫描行进行连续排列,
可得到图 3(b)所示的存储单元与扫描行、存储单元数据位及颜色的关系。
具体编程时可按下列步骤进行:①将准备扫描的行地址送 P2 口的低 4 位中。②将 DPTR 指向待显
示行相应存储单元的首地址。③以 DPTR 为指针,使用“MOXCA,@A+DPTR”读显示数据,并将显 示数据送 P0 口。④通过 P3.6 产生 SCK,同时 DPTR 加 1。⑤重复②、③、④直到一行数据显示完
毕,通过 P3.4 产生 RCK 将通过移位寄存器移入的一行数据显示。⑥重复②、③、④、⑤直到 15 行数据全部显示完毕。⑦重复①~⑥刷新显示。
根据上述编程步骤,可以很容易编出显示第 i 行的子程序 1。子程序 1 的第 3 行至第 9 行为循环
体,送 1 字节的显示数据共需 10 个机器周期,机器码的字节数为 11。通过分析 74HC595 的 SCK 为上升沿有效,可用单片机的写信号(WR)来代替,故子程序 1 中的第 5、6、7 行 3 条指令可用 “MOVX@R0,A”一条指令来替换,实验表明这样的替换是可靠的。显示第 i 行的子程序 2 为替换
后的程序,送 1 字节的显示数据所需机器周期减为 9,机器码的字节数减为 6。再对显示第 i 行
的子程序 2 仔细分析后发现,在仅使用 SST89E516 内部 64 KB 的 Flash 存储器作为显示数据存储
且不增加辅助电路的前提下,只有子程序 2 第 7 行“DJNZ R0,DP1”这条 2 个机器周期 2 字节指
令,可以利用 SST89E516 内部 64 KB 的 Flash 存储器大的特点,直接简单的重复 256 次子程序 2 中第 3、4、5、6 行 4 条单字节指令,从而可以缩短 2 个机器周期的时间。这样送 1 字节的机器
周期可以减少为 7,但程序需要增加 1 KB。对 64 KB 的 Flash 存储器来说,程序增加 1KB 减少不
了多少显示数据。与子程序 1 相比,子程序 3 速度提高了 30%。在图 2 所示 12 MHz 晶振并利用 SST89E516 的倍速功能,其 1 个机器周期为 0.5μs,在忽略其他数据处理时间的前提下,显示 1 屏完整数据所需时间近似为:(7×0.5 μs×256 列×16 行)=14.336 ms(每秒近 70 帧)。实验表
明:人眼对 LED 显示屏开始感觉到闪烁大约为每秒 55 帧,即每帧时间 18 mS。从图 2、图 1(c) 和 3 个子程序可以看出,一帧显示数据在内存中的排列有以下几个特点:①按扫描行扫描的先后 顺序依次排列;②在每一行按数据输出的先后顺序依次排列;③通过硬件和软件的优化使每个显 示数据输出的时间最短。
4 基于 IAP 功能的显示数据传送及 PC 软件编程
SST89E516 单片机可以实现 IAP(In Application Programming)是由于它将 Flash 存储器分为 2 个块(区域):block0(64
KB)和 block1(8 KB)。通过 IAP 指令的切换可以使程序在这 2 个块中执
行,如程序在 block0 中运行可对 block1 的数据进行改写,同样在 block1 中运行可对 block0 的数据进行改写。具体使用 IAP 功能时对 SST89E516 单片机的 2 个块作如下分配:①上电或复位 时自动运行 block1 中的 IAP 程序,如 2 s 内没有接收到 PC 机通过串行口发送的数据传输指令, 则开始运行 block0 中的显示程序。②block0 中的最低 8 KB 用于存放显示程序,其余 56 KB 用
于存放显示数据。③在 block0 中运行 IAP 程序时利用 SST89E516 单片机 128 字节的小扇区擦除
功能只擦除和改写 block0 中 56 KB 用于存放显示数据的区域,8 KB 存放显示程序的区域保持不
变。④在 block0 运行显示程序时单片机串行口监测来自 PC 机的复位命令,如有复位命令执行 IAP 指令使程序转移到 block1 块并运行 block1 中的 IAP 程序修改显示数据。
PC 软件编程采用 VB。该程序可完成字型的提取以及显示数据的组织,生成 Intel 格式的 HEX 文
件,通过串行口下载到 SST89E516 单片机中。为了方便控制,自定义了 8 字节的显示指令集[命
令(1 字节)+参数表(7 字节)],各种不同显示效果所需的参数,如起始地址、结束地址、每行的
长度及显示时间等,指定其存放指令的参数表中。显示指令集存放在显示数据区的最开始 1 页 256 个存储单元中,底层单片机运行时根据显示指令可实现不同的显示效果,如画面的切换、定
时、水平移动、垂直移动以及其他特殊显示效果。同样可通过 IAP 下载显示程序。
结
语
通过大量的实践检验,本控制系统是非常可靠的,利用该控制系统制作的小型 LED 显示屏已达数
十个,最长的已经运行了 3 年以上。在运行过程中也对该控制系统作了多方面的改进。例如,为
了进一步提高显示速度可扩展外部 RAM,即在子程序 3 的基础上去掉“CLR A”指令,使机器周
期减为 6个;采用指令为 1个机器周期的单片机并提高晶振频率;利用有些 51单片机(如 DS89C450) 具有 DPTR 自动加 1 的功能;外加用 CPLD 制成的硬件地址发生器等。但所有改进的措施都是以增
加外部辅助电路或成本为代价的。本控制系统的价格按市价不超过 30 元,因此其在小型 LED 显
示控制系统中有着广阔的应用前景。