宁波国际照明展
广州国际照明展览会(光亚展)

基于单片机IAP 技术的LED 显示屏控制系统的设计

基于单片机IAP 技术的LED 显示屏控制系统的设计

2008年1月15日

西南交通大学 靳桅邬芝权肖波

关键词: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 个7 4HC595。74HC595 内部电路框图如图1(b)所示。所有4 组74HC595 的控制信号R CK、S CK、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 个机器周期,机器码的字节数为1 1。通过分析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 速度提高了3 0%。在图2 所示12 MHz 晶振并利用SST89E516 的倍速功能, 其1 个机器周期为0.5μs,在忽略其他数据处理时间的前提下, 显示1 屏完整数据所需时间近似为:(7×0.5 μs×256 列×16行)=14.336 ms(每秒近70 帧)。实验表明:人眼对LED 显示屏开始感觉到闪烁大约为每秒55 帧,即每帧时间1 8 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 显示控制系统中有着广阔的应用前景。

来源:中电网

本文来自网络。 授权转载请注明出处:http://www.ledjia.com/article/pid-546.html

快速评论 发表新评论

您还未登录!登录后可以发表回复

文章评论 0人参与

联系我们

联系我们

137-9836-0047

在线咨询: QQ交谈

邮箱: admin@ledjia.com

工作时间:周一至周五,9:00-17:00,节假日休息

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部