正文:摘要:Proteus软件经常用于单片机仿真,本文用Proteus软件设计汉字LED点阵动态显示,给出了完整设计电路和仿真程序源代码,通过仿真运行,在LED点阵中动态显示出“广东工贸”四个汉字。仿真结果表明Proteus软件在单片机应用设计中具有重要的使用价值,能极大缩短产品开发周期,节约开发成本。
关键词:Proteus;仿真;单片机;汉字动态显示;LED点阵
0 引 言Proteus ISIS是英国Labcenter公司开发的电路分析与实物仿真软件。它可以仿真、分析各种模拟器件和集成电路,该软件的特点是:①实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路、数字电路仿真、单片机及其外围电路的仿真、各种虚拟仪器,如示波器等功能。②支持主流单片机系统的仿真。③提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能;同时支持第三方的软件编译和调试环境,如Keil C51 uVision2等软件。④具有强大的原理图绘制功能。Proteus软件使用彻底改变了传统单片机学习和开发方式,初学者可以在没有实验硬件条件下进行仿真实验,开发者可以直接用Proteus进行电路设计和仿真运行程序,运行成功后再制作产品,缩短开发周期,节约开发成本。汉字点阵显示电路设计时,显示部分应用16×16点阵字模提取软件,提取“广东工贸”显示汉字的字模数据,通过查表取出字模数据送输出动态显示。
1 汉字显示电路设计汉字点阵的控制电路采用AT89C51单片机,硬件电路由单片机接口电路、LED显示屏行列驱动电路、LED点阵显示屏三部分组成,如图1所示,电路用Proteus软件画出,具体画法参见文献
[1]。
图1 汉字点阵动态显示仿真结果图
一般情况下要完全显示出常用汉字至少需要16×16点阵,但由于Proteus元件库中没有16×16LED模块,为了达到显示要求,每个汉字可由四块8×8 LED模块组成。组合方式为先对每个8×8模块行列引脚连接好总线,然后四个单色模块组合紧密。
驱动电路采用动态扫描驱动方式,设计中行驱动信号采用了16个同向驱动器7407,并在每根信号线上接上拉电阻;列驱动信号先接一4-16译码器74HC154,然后十六个列驱动信号接16个反向驱动器7406,并每根信号线接上拉电阻。
单片机上电复位后,当按列扫描时,四个汉字的第一个字由P1口输出列信号,首先第1列输出“1”,第1列字模数据由16行输出(P0、P2口);然后延时一定时间后,第2列输出“1”,第2列字模数据再由16行输出;……;如此循环,直至第16列;16列扫描完成后,再进行下一次循环扫描。所以在某一时刻,只有一行或一列发光二极管被对应的字模数据驱动点亮。只要扫描间隔时间合适,利用人眼的视觉暂留特性,看上去整个字符就显示在LED点阵显示器上。
根据以上硬件电路和单片机控制原理,编程思路如图2:

图2 汉字点阵动态显示程序流程图
完整的程序代码如下:
ORG 0000H
MOV DPTR,#WORDTAB ;初始化
MOV R1,#0
MOV R2,#0
MOV R3,#16
MOV R4,#100
MOV R5,#4
LOOP:SETB P1.4
MOV A,R1 ;查表取出字模数据经P0口输出
MOVC A,@A+DPTR
CPL A
MOV P0,A
INC R1 ;字模数据索引值加1
MOV A,R1 ;查表取出字模数据经P2口输出
MOVC A,@A+DPTR
CPL A
MOV P2,A
INC R1 ;字模数据索引值加1
MOV P1,R2 ;列控制信号输出
INC R2 ;列控制寄存器加1
LCALL DELAY ;显示延时
DJNZ R3,LOOP ;判断16列显示完否
DJNZ R4,K1 ;判断是否已显示100次
MOV R4,#100 ;显示次数寄存器重赋初值
SJMP K2
K1:CLR C ;字模数据索引值减32,列控制寄存器和列数寄存器重赋初值
MOV A,R1
SUBB A,#32
MOV R1,A
WORDTAB:
DB 00H,00H,20H,00H,60H,00H,20H,00H,20H,00H,20H,00H,20H,00H,60H,00H
DB 0A0H,00H,20H,00H,20H,00H,20H,00H,20H,00H,3FH,0F0H,00H,0CH,00H,02H
DB 00H,00H,10H,00H,30H,00H,10H,86H,11H,8CH,10H,90H,10H,0A0H,10H,80H
DB 17H,0FEH,0F0H,81H,18H,82H,16H,0B0H,11H,88H,10H,84H,10H,02H,10H,00H
DB 00H,00H,00H,04H,20H,0CH,60H,04H,20H,04H,20H,04H,20H,04H,20H,04H
DB 3FH,0FCH,20H,04H,20H,04H,20H,04H,20H,04H,20H,04H,20H,04H,00H,04H
DB 00H,00H,40H,00H,0F8H,00H,45H,03H,4BH,0FAH,41H,02H,79H,04H,45H,04H
DB 03H,78H,8DH,04H,89H,02H,59H,02H,45H,0F9H,44H,01H,7EH,01H,02H,00H
END
3 仿真及结果仿真方法是:
(1)在Keil C51仿真软件下创建项目,并把上述源程序添加到项目中,通过编译产生一个“.hex”为后缀的文件,此文件就是用于烧写到proteus软件中AT89C51芯片的文件
[2]。
(2)把生成的“.hex”为后缀的文件添加到proteus软件中绘制的AT89C51芯片中作为控制程序。方法参见文献
[3]。
(3)在proteus软件仿真电路图中点击左下角的运行按钮,则可在LED显示点阵中看到“广东工贸”四个汉字轮流显示的结果。
从仿真图中可以看到“东”字在LED显示点阵中显示出来,设定每个字显示1秒,下秒将显示“工”字,“广东工贸”四个字循环显示。四个字显示出来如下图3。



1/2 1 2 下一页 尾页