基于单片机的LED汉字显示屏的设计与实现图文精Word格式文档下载.docx
《基于单片机的LED汉字显示屏的设计与实现图文精Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《基于单片机的LED汉字显示屏的设计与实现图文精Word格式文档下载.docx(10页珍藏版)》请在冰豆网上搜索。
本文研究了基于AT89C51单片机8×
8LED汉字滚动显示屏的设计并运用Proteus软件的仿真和实现。
主要介绍了LED汉字显示屏的硬件电路设计、汇编程序设计与调试、Proteus软件仿真和实物制作等方面的内容,本显示屏的设计具有体积小、硬件少、电路结构简单及容易实现等优点。
能帮助广大电子爱好者了解汉字的点阵显示原理,认识单片机的基本结构、工作原理及应用方法,并提高单片机知识技术的运用能力。
关键词:
单片机LED点阵Proteus仿真
1引言
LED显示屏是利用发光二极管点阵模块或像素单元组成的平面式显示屏幕。
它具有发光率高、使用寿命长、组态灵活、色彩丰富以及对室内外环境适应能力强等优点。
并广泛的用于公交汽车、商店、体育场馆、车站、学校、银行、高速公路等公共场所的信息发布和广告宣传。
LED显示屏发展较快,本文讲述了基于AT89C51单片机8×
8LED汉字点阵滚动显示的基本原理、硬件组成与设计、程序编写与调试、Proteus软件仿真等基本环节和相关技术。
2硬件电路组成及工作原理
本产品采用以AT89C51单片机为核心芯片的电路来实现,主要由AT89C51芯片、时钟电路、复位电路、列扫描驱动电路、8×
8LED点阵5部分组成,电路框图如图1所示。
其中,AT89C51是一种带4kB闪烁可编程可擦除只读存储器(FalshProgrammableandErasableReadOnlyMemory,FPEROM的低电压、高性能CMOS型8位微处理器,俗称单片机。
该器件采用ATMEL高密度非易失存储器制造技术制造,工业标准的MCS一51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,能够进行1000次写/擦循环,数据保留时间为10年。
他是一种高效微控制器,为很多嵌人式控制系统提供了一种灵活性高且价廉的方案。
因此,在智能化电子设计与制作过程中经常用到AT89C51芯片。
时钟电路由AT89C51的18,19脚的时钟端(XTAI1及XTAL2以及12MHz晶振X、电容C2、C3组成,采用片内振荡方式。
复位电路采用简易的上电复位电路,主要由电阻R,R2,电容C,开关K组成,分别接至AT89C51的RST复位输人端。
LED点阵显示屏采用8x8共64个象素的点阵,可通过万用表检测发光二极管的方法测试判断出该点阵的引脚分布。
我们把行列总线接在单片机的I/O口,然后把上面分析到的扫描代码送入总线,就可以得到显示的汉字了。
我们在实际应用中是将LED点阵的8条列线通过驱动电路接在PO口8条行线通过限流电阻接在P2口,考虑到PO口必需设置上拉电阻,我们采用1k排电阻作为上拉电阻。
汉字扫描显示的基本过程是这样的:
通电后由于电阻R,电容cl的作用,使单片机
图1硬件电路组成框图
的RST复位脚电平先高后低,从而达到复位;
之后,在C、C3、X以及单片机内部时钟电路的作用下,单片机89C51按照设定的程序在P2和P0接口输出与内部汉字对应的代码电平送至LED点阵的行列线(高电平驱动,从而选中相应的象素LED发光,并利用人眼的视觉暂留特性合成整个汉字的显示。
再改变取表地址实现汉字的滚动显示。
硬件电路组成框图如图1所示,硬件电路如图2所示。
图2硬件电路
3汉字的点阵显示原理及字库代码获取方法
我们以UCDOS中文宋体字库为例,每一个字由8行8列的点阵组成显示。
我们可以把每一个点理解为一个象素,而把每一个字的字形理解为一幅图像。
事实上这个汉字屏不仅可以显示汉字,也可以显示在64象素范围内的任何图形。
如查用8位的AT89C51单片机控制,如图3所示
图3汉字显示原理
为了弄清楚汉字的点阵组成规律,首先通过列扫描方法获取汉字的代码。
首先将8行分成4位的上、下两部分,把发光的象素位编为0不发光的象素位为1的十六进制代码。
这样就把要显示的“四川汶川”字编为如下代码:
DB0FFH,80H,0BAH,82H,0BEH,82H,0BAH,80H;
四
DB0FFH,0FDH,83H,0FFH,81H,0FFH,00H,0FFH;
川
DB0B6H,0D5H,0DEH,45H,9BH,0C5H,0DEH,0DFH;
汶
DB0FFH,0FDH,83H,0FFH,81H,0FFH,00H,0FFH,;
由这个原理可以看出,无论显示何种字体或图像,都可以用这个方法来分析出他的扫描代码从而显示在屏幕上。
上述方法虽然能够让我们弄清楚汉字点阵代码的获取过程,但是依靠人工方法获取汉字代码是一件非常繁琐的事情。
对于16X16十六进制数据的汉字代码,我们经常采用字库软件查找字符代码,软件打开后输入汉字,点“检取”,十六进制数据的汉字代码即可自动生成,把我们所需要的竖排数据复制到程序中即可,如图4所示。
可见,汉字点阵显示一般有点扫描、行扫描和列扫描3种。
为了符合视觉暂留要求,点扫描方法的扫描频率必须大于16×
64—1024Hz,周期小于1ms即可。
行扫描和列扫描方法的扫描频率必须大于16×
8—128Hz,周期小于7.8ms即可,但是一次驱动一列或一行(8颗LED时需外加驱动电路提高电流,否则LED亮度会不足。
图4字库提取程序
4在Keil环境中程序设计与调试
软件程序主要由开始、初始化、主程序、字库组成。
其中主程序的流程图如图5所示。
下面的程序能够用来实现滚动显示“四川汶川5.12¥¥¥”寓意--5月12日四川汶川大地震后全国人民都捐了很多钱。
汉字的显示。
程序清单如下:
图5主程序流程图
ORG0000H
AJMPMAIN
ORG0030H
MAIN:
MOVDPTR,#TAB;
字码表初址赋值
MOVR1,#0FEH;
列控制码
MOVR3,#8;
列数
MOVR4,#80;
移动“及”“0~9”11个字符,共88列
CM:
MOVR5,#12;
每屏反复显示10次
C1:
MOVR2,#0;
取字指针
C8:
MOVP2,#0FFH;
关显示
MOVA,R2;
MOVCA,@A+DPTR;
取当前列的显示字码的一个字节
MOVP0,A;
送1~8行控制口
MOVA,R1
MOVP2,A;
送列控制码
ACALLD5MS;
显示5MS
RRA;
列控制码左移,显示下一列
MOVR1,A
DJNZR3,C8;
未显示8列,继续
DJNZR5,C1;
未显示10次,继续
INCDPL;
一屏反复显示10次完,字码表初值加1
DJNZR4,CM;
88列未移动完,继续
AJMPMAIN;
88列显示完,返回,重新从“”开始显示
D5MS:
MOVR6,#4
MOVR7,#248
DJNZR7,$
DJNZR6,$-4
RET
TAB:
DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH;
DB0FFH,0FFH,0FFH,0B6H,0D5H,0DEH,45H,9BH
DB0C5H,0DEH,0DFH,0FFH,0FDH,83H,0FFH,81H;
DB0FFH,00H,0FFH,0FFH,0FFH,0FFH,8DH,0ADH;
DB0ADH,0A1H,0FFH,0E7H,0E7H,0FFH,0FFH,0DDH;
5
DB81H,0FDH,0FFH,0FFH,0CDH,0B9H,0B5H,0CDH;
1
DB0FFH,0FFH,0ABH,0CBH,0E0H,0CBH,0ABH,0FFH;
2
DB0FFH,0ABH,0CBH,0E0H,0CBH,0ABH,0FFH,0FFH;
Y
DB0ABH,0CBH,0E0H,0CBH,0ABH,0ABH,0CBH,0E0H
DB0CBH,0ABH……..
END
图6在keil软件中编程和调试
在keil软件中完成程序编写、调试和编译之后,生成能让单片机运行的Hex文件,如图6所示。
5基于PROTEUS的电路仿真
Proteus是英国Labcenterelectronics公司开发的EDA工具软件。
主要由原理布图的方法绘制电路并进行仿真的ISIS和PCB自动布线或人工布线电路仿真的ARES两个程序组成。
Proteus运行于Windows操作系统上,可以动态实时仿真、分析(SPICE各种模拟器件和集成器件。
针对微处理器及其外围电路,可以直接在基于原理图的虚拟原型上编程,并实现软件代码级的调试,配合其提供的仿真图表或虚拟仪器如示波器、逻辑分析仪等可进行相应的测量与分析。
借助Proteus的对CPU和外围电路强大的仿真能力以及丰富的资源库,可以有效地替代硬件仿真器进行先期的软硬件调试,等到仿真结果基本理想时再进行实际的硬件调试,这样的开发过程不仅高效,而且可以尽可能地减少损失,尤其对于解决实验室资源紧张的问题是一个很好的思路。
1、用PROTEUS绘制原理图
运行Proteus的ISIS程序后,进入该仿真软件的主界面。
主界面由菜单栏、工具栏、预览窗口、元件选择按钮、元件列表窗口、原理图绘制窗口和仿真进程控制按钮组成(如图1所示)。
通过元件选择按钮P(从库中选择元件命令命令,在弹出的PickDevices窗口中选择电路所需的元件,放置元件并调整其相对位置,对元件参数设置及元器件间连线,完成单片机系统的硬件原理图绘制。
图7所示是绘制完成的电路图。
图7 绘制电路图
2、PROTEUS对单片机内核的仿真
在source菜单的Definecodegenerationtools菜单命令下,选择程序编译的工具、路径、扩展名等项目;
在source菜单的Add/removesourcefiles命令下,加入单片机硬件电路的对应程序(主要采用Keil进行程序编译)
打开如图8所示的对话框。
在ProgramFile栏添加编译好的十六进制格式的程序文件8X8.hex,给AT89C51输入晶振频率,此处默认为12MHZ,单击OK按钮完成程序添加工作,下面就可以进行系统仿真了。
Proteus与其它单片机仿真软件不同的是,它不仅能仿真单片机外围电路或没有单片机参与的其它电路的工作情况,也能仿真单片机CPU的工作情况。
因此在仿真和程序调试时,是从工程的角度直接看程序运行和电路工作的过程和结果。
从某种意义上讲Proteus仿真,基本接近与工程应用。
图8添加程序文件8X8.hex
6LED汉字显示屏实物制作
1元器件选择
本设计所需元器件如表1所示。
2制作PCB板
首先运用Protel软件绘制电路原理图,设置元件的封装参数,再生成网络表格之后进行自动布局和自动布线最后进行手工调整,绘制出如图9所示的PCB板。
最后在PCB雕刻机上雕刻出电路板。
图9PCB板
3)电路装配与调试
按装配图纸和装配工艺要求将电子元器件装配到PCB板上,这里特别要注意的是单片机要能正常工作,必须把在Keil软件中调试成功并生成的hex文件通过烧录器烧写到单片机芯片中