1、摘要 在研究既有LED显示屏电路基本上,提出一种基于IAP单片机传送8位串行显示数据LED显示控制系统。给出与基于该控制系统数据组织办法相应硬件电路。以25664点阵双色LED显示屏为例阐明其如何实际应用。同步给出相应软件源程序;并对LED显示屏数据组织和硬件电路设计进行某些初步探讨。 核心词 LED显示屏单片机IAP技术控制系统 LED显示屏由于其具备耗电少、使用寿命、成本低、亮度高、故障少、视角大、可视距离远等特点,已经成为新一代信息传播媒体工具。LED与LCD相比较最突出特点,亮度高、成本低且屏幕尺寸可依照现场状况用原则LED单元板拼制。按安装位置可分为室外、半室外和室内;按颜色可分为单
2、色、双基色和彩色;按发光二极管点距可分为50、375及30等。本文以市场上常用室内双色LED单元板为控制对象,阐明基于单片机IAP技术LED显示屏控制系统工作原理以及数据组织办法。 1 双色LED单元板硬件构成及工作原理 常用室内双色LED单元板电路框图如图1(a)所示。其中行扫描电路由2片74HCl38(38译码器)构成416译码器加上各种4953(MOS管)构成,扫描方式为116。上下半屏分别由2组用74HC595串行移位寄存器实现红色、绿色显示数据列输入,在图1(a)所示6432原则LED单元板中,每组串行移位寄存器中有8个74HC595级联,4组共用了32个74HC595。 74HC5
3、95内部电路框图如图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单片机
4、前提下,用其串行口方式O似乎可以运用单片机发出移位脉冲将8位数据送入74HC595中,但要实现图2中8位数据同步输入必要加其她辅助芯片,并且在缩短数据传播时间上没有什么好处。另一方面,采用FPGA、CPLD等可编程芯片设计成专用硬件电路与单片机接口可大幅度提高数据传播速度,但成本也将同步大幅度提高。 在图2所示系统中采用了如下设计理念:由P0口同步输出8位字型点阵数据。用P36产生SCK信号,软件中相应使用“MOVXR0,A”指令,在形成SCK信号同步减少指令字节数。由P20至P23输出行扫描信号,软件中将A、B、C、D存储在DPH低4位中。RCK和EN分别由P34、P35控制。SST89E5
5、16单片机串行口与PC机通信。运用该单片机IAP功能下载显示所需字型数据和控制程序。 3 LED显示控制系统数据组织及软件优化 LED显示控制系统数据组织如图3所示。从图2可以得到图3(a)所示从正面看过去显示行与显示数据位以及颜色相应关系。为了提高数据读取速度,将显示数据按扫描行进行持续排列,可得到图3(b)所示存储单元与扫描行、存储单元数据位及颜色关系。 详细编程时可按下列环节进行:将准备扫描行地址送P2口低4位中。将DPTR指向待显示行相应存储单元首地址。以DPTR为指针,使用“MOXCA,A+DPTR”读显示数据,并将显示数据送P0口。通过P36产生SCK,同步DPTR加1。重复、直到
6、一行数据显示完毕,通过P34产生RCK将通过移位寄存器移入一行数据显示。重复、直到15行数据所有显示完毕。重复刷新显示。 依照上述编程环节,可以很容易编出显示第i行子程序l。子程序1第3行至第9行为循环体,送1字节显示数据共需lO个机器周期,机器码字节数为11。通过度析74HC595SCK为上升沿有效,可用单片机写信号(WR)来代替,故子程序l中第5、6、7行3条指令可用“MOVXR0,A”一条指令来替代,实验表白样替代是可靠。显示第i行子程序2为替代后程序,送l字节显示数据所需机器周期减为9,机器码字节数减为6。再对显示第i行子程序2仔细分析后发现,在仅使用SST89E516内部64 KBF
7、lash存储器作为显示数据存储且不增长辅助电路前提下,只有子程序2第7行“DJNZ RO,DP1”这条2个机器周期2字节指令,可以运用SST89E516内部64 KBFlash存储器大特点,直接简朴重复256次子程序2中第3、4、5、6行4条单字节指令,从而可以缩短2个机器周期时间。这样送1字节机器周期可以减少为7,但程序需要增长l KB。对64 KBF1ash存储器来说,程序增长1 KB减少不了多少显示数据。与子程序1相比,子程序3速度提高了30。在图2所示12 MHz晶振并运用SST89E516倍速功能,其1个机器周期为O5s,在忽视其她数据解决时间前提下,显示l屏完整数据所需时间近似为:
8、(7O5s256列16行)=14336 ms(每秒近70帧)。实验表白:眼对LED显示屏开始感觉到闪烁大概为每秒55帧,即每帧时间18 ms。从图2、图1(c)和3个子程序可以看出,一帧显示数据在内存中排列有如下几种特点:按扫描行扫描先后顺序依次排列;在每一行按数据输出先后顺序依次排列;通过硬件和软件优化使每个显示数据输出时间最短。4 基于IAP功能显示数据传送及PC软件编程 SST89E516单片机可以实现IAP(In Application Programming)是由于它将Flash存储器分为2个块(区域):block0(64 KB)和blockl(8 KB)。通过IAP指令切换可以使程
9、序在这2个块中执行,如程序在block0中运营可对bleckl数据进行改写,同样在block1中运营可对b1ock0数据进行改写。详细使用IAP功能时对SST89E516单片机2个块作如下分派:上电或复位时自动运营block1中IAP程序,如2s内没有接受到PC机通过串行口发送数据传播指令,则开始运营blockO中显示程序。block0中最低8 KB用于存储显示程序,别的56 KB用于存储显示数据。在blockO中运营IAP程序时运用SST89E516单片机128字节小扇区擦除功能只擦除和改写blockO中56 KB 用于存储显示数据区域,8KB存储显示程序区域保持不变。在block0运营显示
10、程序时单片机串行口监测来自PC机复位命令,如有复位命令执行IAP指令使程序转移到block1块并运营blockl中IAP程序修改显示数据。 PC软件编程采用VB。该程序可完毕字型提取以及显示数据组织,生成Intel格式HEX文献,通过串行口下载到SST89E516单片机中。为了以便控制,自定义了8字节显示指令集命令(1字节)+数表(7字节),各种不同显示效果所需参数,如起始地址、结束地址、每行长度及显示时间等,指定其存储指令参数表中。显示指令集存储在显示数据区最开始l页256个存储单元中,底层单片机运营时依照显示指令可实现不同显示效果,如画面切换、定期、水平移动、垂直移动以及其她特殊显示效果。同样可通过IAP下载显示程序。 结语 通过大量实践检查,本控制系统是非常可靠,运用该控制系统制作小型LED显示屏已达数十个,最长已经运营了3年以上。在运营过程中也对该控制系统作了多方面改进。例如,为了进一步提高显示速度可扩展外部RAM,即在子程序3基本上去掉“CLR A”指令,使机器周期减为6个;采用指令为1个机器周期单片机并提高晶振频率;运用有些51单片机(如DS89C450)具备DPTR自动加1功能;外加用CPLD制成硬件地址发生器等。但所有改进办法都是以增长外部辅助电路或成本为代价。本控制系统价格按市价不超过30元,因而其在小型LED显示控制系统中有着辽阔应用前景。