O引言
Proteus是目前最先进、最完整的多种型号微处理器系统的仿真设计平台,由ISIS和ARES两个构成,其中ISIS是一款智能电路原理图输入系统软件,可作为电子系统仿真平台,ARES是一款高级布线编辑软件,用于制作PCB印制电路板。开发者可以在无硬件条件下直接使用Pro-teus进行电路设计和仿真调试,真正实现了在计算机中完成电路原理图设计、电路分析与仿真、系统测试到形成印制电路板的完整电子设计、研发过程。
因此,本课题利用AT89C5l单片机作为主控制器,采用Proteus软件实现对16×16LED点阵汉字的分批显示.仿真运行通过后再进行点阵显示电路制作,大大缩减实际开发周期,节约了开发成本。
1硬件电路设计
在很多LED显示的场合,需要实现一系列LED点阵汉字的分批显示,为简化设计,每批只显示2个汉字,分若干次完成全部显示。利用ProteusISIS平台画出的硬件电路如图l所示。
该硬件电路的核心是利用单片机读取显示字型码,通过驱动电路对16×16共阴极LED点阵进行动态列扫描,以实现点阵汉字的分批显示。设计选用的单片机为Atrnel公司的AT89C51,它是一种低功耗,高性能CMOS8位单片机,片内含4KB可反复擦写的FLASHROM,采用Atmel公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及8051引脚结构,内置看门狗电路。功能强大的AT89C5l可为许多嵌入式控制应用系统提供高性价比的解决方案。时钟电路用于产生单片机工作时所必需的时钟信号,其中晶振频率为12MHz。上电复位电路可保证单片机的在程序运行出错或操作错误使系统处于死锁状态时,重启运行。
显示单元是LED汉字显示屏,由2片16×16LED点阵模块组成。但由于Proteus软件目前版本中还没有16×16点阵模块,设计中采用Pro-teus软件中的4个8×8点阵模块组合成1个16×16点阵模块。点阵汉字的阳极驱动是由单片机的PO口和P2口各自经过一片输出缓冲器74LS273向4个8×8LED点阵输出字型码作为行驱动信号;点阵的阴极驱动由P1.0~P1.3经过4-16线译码器74HCl54译码后输出列选信号,对4个8×8点阵进行列扫描,从而控制LED点阵的相应像素点亮。2个LED点阵汉字中的列选信号则分别由P3.O和P3.1控制来选择相应的74HCl54,因此需要两片74HCl54译码器。RP1为排阻,含有8个电阻,作为PO口各位的上拉电阻,以保证PO口能够输出高电平。
2点阵汉字分批显示原理与软件设计
16×16共阴极LED点阵由4个8×8点阵构成,需要显示汉字字符串“单片机仿真!”,可通过建立数据表格的形式进行。通过16×16点阵汉字字模提取软件,可提取各显示汉字的字模数据,详见程序设计中的显示字符代码表1。
在进行汉字分批输出显示时采用动态扫描驱动方式,可按行或列进行扫描。当按“列”扫描时,需要建立列的扫描代码表如下:
现以列扫描为例,阐述16×16LED点阵汉字分批显示原理。在初始化设置(关显示)后,首先,P1送出第1列扫描代码,同时使P3=0xFD选中U2的74HCl54和U4,对P0输出段码给左边汉字上半部的第1列以驱动相应段点亮;接着,使P3=OxFA选中U2的74HCl54和U5,对P2输出段码值给左边汉字下半部的第1列以驱动相应段点亮,即送出了第一个汉字“单”的第1列的字模数据(16位段码值);再设置P3=0xF5选中U3的74HC-l54和U4,对P0输出段码给右边汉字的上半部的第1列以驱动相应段点亮。接着,使P3=OxF9亦选中U3的74HCl54和U5,对P2输出段码值给由边汉字下半部的第1列以驱动相应段点亮,即送出了第2个汉字“片”的第1列的字模数据(16位段码值)。然后,给P1送第2列的扫描代码,同理再送出第1个汉字“单”、第2个汉字“片”的各自第2列的字模数据,…如此进行,经过16次列扫描,分时送完两个汉字的各自16个段码值,就可显示第1批汉字“单”、“片”;再进行第2批汉字“机”、“仿”的显示;…,直到汉字字符串显示完成。若字符显示完毕,又从头开始循环显示。LED点阵汉字分批显示的程序流程如2所示。在某一时刻,只有1行或1列发光二极管被对应的字模数据驱动点亮,但只要扫描间隔时间合适(一般为数毫秒),利用人眼的视觉暂留特性,看上去整批字符就显示在LED点阵显示器上。
主要的C语言源程序如下:
3程序调试与仿真
(1)生成目标代码文件。利用Proteus平台在进行仿真时,需要加载程序到单片机中,加载的程序为目标代码文件.HEX。方法是:利用单片机软件仿真系统KeilUVsion3,在新建项目中选择AT89C51单片机作为CPU,同时将创建C语言源程序文件并将其加载到新建项目中。在“P-roject”下拉菜单中,选择“OpTIonsforTarget”对话框,在对话框中选中“Output”选项卡中的“CreateHEXFile”选项。在“Proje-ct”下拉菜单中选择“RebuiIdallTargetFiles”选项,编译成功后将生成.HEX目标代码文件。
(2)调试与仿真:在ProteusISIS平台中,按图1画出硬件电路,单击鼠标右键将AT89C51单片机选中并单击鼠标左键,弹出“EditComp-onent”对话框,在其中的“ClockFreqlaency”栏中设置单片机晶振频率为12MHz,在“ProgramFile”栏选择生成的.HEX文件。保存设计,生成.DSN文件。在“Debug”菜单中选择“Execute”,可得到仿真运行效果。仿真调试成功后,可看见“单片机仿真!”点阵汉字的分批显示。显示次序为“单片-机仿-真!”,其中“机仿”如图3所示。通过Keil与Proteus的联合调试取得了良好的效果。
4结语
在嵌入式系统仿真平台Proteus的基础上,实现对16×16LED点阵汉字分批显示的仿真设计,实现了“单片机仿真!”六个汉字的分批显示,达到了良好的设计效果。该仿真电路接近于实际电路,再使用ProteusARES软件在仿真原理图的基础上直接绘制PCB电路板,即可以制作出实际的点阵式LED分批汉字显示屏。该显示屏电路结构简洁,可靠性高,成本低且易于实现,软件通过适当修改即可实现其他显示功能如滚动显示等,显示灵活,适用领域广泛。通过Proteus的前期仿真为LED显示屏系统的设计开发大大缩短了开发周期,降低了开发成本,同时也为单片机应用系统、电子电路的开发设计等提供了一种崭新的设计方法和有效手段。