您的当前位置:首页正文

基于单片机的LED汉字显示屏的设计与实现

2020-04-05 来源:九壹网


全国中职骨干专业教师培训班论文

题 目: 基于单片机LED汉字显示屏的设计与实现

系 别: 电子与信息学院

专 业: 电子技术应用班

姓 名: 谢利民

指导老师: 韩克 柳秀山

时 间: 2008 年 9 月

- 1 -

全国职业院校骨干专业教师培训论文

基于单片机的LED汉字显示屏的设计与实现

全国中职骨干教师培训班电子应用技术班 谢利民

摘 要:本文研究了基于AT89C51单片机8×8 LED汉字滚动显示屏的设计并运用Proteus软件的仿真和实 现。主要介绍了LED汉字显示屏的硬件电路设计、汇编程序设计与调试、Proteus软件仿真和实物制作等方面的内容,本显示屏的设计具有体积小、硬件少、电路结构简单及容易实现等优点。能帮助广大电子爱好者了解汉字的点阵显示原理,认识单片机的基本结构、工作原理及应用方法,并提高单片机知识技术的运用能力。

关键词:单片机 LED 点阵 Proteus仿真

1 引 言

LED 显示屏是利用发光二极管点阵模块或像素单元组成的平面式显示屏幕。它具有发光率高、使用寿命长、组态灵活、色彩丰富以及对室内外环境适应能力强等优点。并广泛的用于公交汽车、商店、体育场馆、车站、学校、银行、高速公路等公共场所的信息发布和广告宣传。LED 显示屏发展较快,本文讲述了基于AT89C51单片机8×8 LED汉字点阵滚动显示的基本原理、硬件组成与设计、程序编写与调试、Proteus软件仿真等基本环节和相关技术。

2 硬件电路组成及工作原理

本产品采用以AT89C51单片机为核心芯片的电路来实现,主要由AT89C51芯片、时钟电路、复位电路、列扫描驱动电路、8×8 LED点阵5部分组成,电路框图如图1所示。其中,AT89C51是一种带4 kB闪烁可编程可擦除只读存储器(Falsh Programmable and Erasable Read OnlyMemory,FPEROM)的低电压、高性能CMOS型8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,工业标准的MCS一51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,能够进行1 000次写/擦循环,数据保留时间为10年。他是一种高效微控制器,为很多嵌人式控制系统提供了一种灵活性高且价廉的方案。因此,在智能化电子设计与制作过程中经常用到AT89C51芯片。时钟电路由AT89C51的18,19脚的时钟端(XTAI 1及XTAL2)以及12 MHz晶振X 、电容C2、C3组成,采用片内振荡方式。复位电路采用简易的上电复位电路,主要由电阻R ,R2,电容C ,开关K 组成,分别接至AT89C51的RST复位输人端。LED点阵显示屏采用8x8共64个象素的点阵,可通过万用表检测发光二极管的方法测试判断出该点阵的引脚分布。

我们把行列总线接在单片机的I/O口,然后把上面分析到的扫描代码送入总线,就可以

- 2 -

全国职业院校骨干专业教师培训论文

得到显示的汉字了。我们在实际应用中是将LED点阵的8条列线通过驱动电路接在PO口8条行线通过限流电阻接在P2口,考虑到PO口必需设置上拉电阻,我们采用1k排电阻作为上拉电阻。汉字扫描显示的基本过程是这样的:通电后由于电阻R ,电容cl的作用,使单片机

图1 硬件电路组成框图

的RST复位脚电平先高后低,从而达到复位;之后,在C、C3 、X 以及单片机内部时钟电路的作用下,单片机89C51按照设定的程序在P2和P0接口输出与内部汉字对应的代码电平送至LED点阵的行列线(高电平驱动),从而选中相应的象素LED发光,并利用人眼的视觉暂留特性合成整个汉字的显示。再改变取表地址实现汉字的滚动显示。硬件电路组成框图如图1所示,硬件电路如图2所示。

图2 硬件电路

- 3 -

全国职业院校骨干专业教师培训论文

3 汉字的点阵显示原理及字库代码获取方法

我们以UCDOS中文宋体字库为例,每一个字由8行8列的点阵组成显示。我们可以把每一个点理解为一个象素,而把每一个字的字形理解为一幅图像。事实上这个汉字屏不仅可以显示汉字,也可以显示在64象素范围内的任何图形。如查用8位的AT89C51单片机控制,如图3所示

图3 汉字显示原理

为了弄清楚汉字的点阵组成规律,首先通过列扫描方法获取汉字的代码。首先将8行分成4位的上、下两部分,把发光的象素位编为0不发光的象素位为1的十六进制代码。这样就把要显示的“四川 汶川”字编为如下代码:

DB 0FFH,80H,0BAH,82H,0BEH,82H,0BAH,80H

;四 ;川

DB 0FFH,0FDH,83H,0FFH,81H,0FFH,00H,0FFH

DB 0B6H,0D5H,0DEH,45H,9BH,0C5H,0DEH,0DFH ;汶 DB 0FFH,0FDH,83H,0FFH,81H,0FFH,00H,0FFH, ;川

由这个原理可以看出,无论显示何种字体或图像,都可以用这个方法来分析出他的扫描代码从而显示在屏幕上。上述方法虽然能够让我们弄清楚汉字点阵代码的获取过程,但是依靠人工方法获取汉字代码是一件非常繁琐的事情。对于16X16十六进制数据的汉字代码,我们经常采用字库软件查找字符代码,软件打开后输入汉字,点“检取”,十六进制数据的汉字代码即可自动生成,把我们所需要的竖排数据复制到程序中即可,如图4所示。可见,汉字点阵显示一般有点扫描、行扫描和列扫描3种。为了符合视觉暂留要求,点扫描方法的扫描频率必须大于16×64—1 024 Hz,周期小于1 ms即可。行扫描和列扫描方法的扫描频率必须大于16×8—128 Hz,周期小于7.8 ms即可,但是一次驱动一列或一行(8颗LED)时需外加驱动电路提高电流,否则LED亮度会不足。

- 4 -

全国职业院校骨干专业教师培训论文

图4字库提取程序

4 在Keil环境中程序设计与调试

软件程序主要由开始、初始化、主程序、字库组成。其中主程序的流程图如图5所示。下面的程序能够用来实现滚动显示“四川 汶川 5.12 ¥¥¥” 寓意--5月12日四川汶川大地震后全国人民都捐了很多钱。

汉字的显示。程序清单如下:

图5 主程序流程图

- 5 -

ORG 0000H AJMP MAIN ORG 0030H

MAIN: MOV DPTR,#TAB ;字码表初址赋值 MOV R1,#0FEH ;列控制码 MOV R3,#8 ;列数 MOV R4,#80 ;移动“及 ”“0~9”11个字符,共88列 CM: MOV R5,#12 ;每屏反复显示10次 C1: MOV R2,#0 ;取字指针 C8: MOV P2,#0FFH ;关显示 MOV A,R2 ; MOVC A,@A+DPTR ;取当前列的显示字码的一个字节 MOV P0,A ;送1~8行控制口 MOV A,R1 MOV P2,A ;送列控制码 ACALL D5MS ;显示5MS RR A ;列控制码左移,显示下一列 MOV R1,A DJNZ R3,C8 ;未显示8 列,继续 DJNZ R5,C1 ;未显示10次,继续 INC DPL ;一屏反复显示10次完,字码表初值加1 DJNZ R4,CM ;88列未移动完,继续 AJMP MAIN ;88列显示完,返回,重新从“ ”开始显示D5MS: MOV R6,#4 MOV R7,#248 DJNZ R7,$ DJNZ R6,$-4 RET

TAB: DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH ; DB 0FFH,80H,0BAH,82H,0BEH,82H,0BAH,80H ;四 DB 0FFH,0FDH,83H,0FFH,81H,0FFH,00H,0FFH ;川 DB 0FFH,0FFH,0FFH,0B6H,0D5H,0DEH,45H,9BH DB 0C5H,0DEH,0DFH,0FFH,0FDH,83H,0FFH,81H ;汶 DB 0FFH,00H,0FFH,0FFH,0FFH,0FFH,8DH,0ADH ;川 DB 0ADH,0A1H,0FFH,0E7H,0E7H,0FFH,0FFH,0DDH ;5 DB 81H,0FDH,0FFH,0FFH,0CDH,0B9H,0B5H,0CDH ;1 DB 0FFH,0FFH,0ABH,0CBH,0E0H,0CBH,0ABH,0FFH ;2 DB 0FFH,0ABH,0CBH,0E0H,0CBH,0ABH,0FFH,0FFH ;Y DB 0ABH,0CBH,0E0H,0CBH,0ABH,0ABH,0CBH,0E0H DB 0CBH,0ABH…….. END

- 6 -

全国职业院校骨干专业教师培训论文

图6 在keil软件中编程和调试

在keil软件中完成程序编写、调试和编译之后,生成能让单片机运行的Hex文件,如图6所示。 5 基于PROTEUS的电路仿真

Proteus 是英国 Labcenter electronics 公司开发的 EDA 工具软件。主要由原理布图的

方法绘制电路并进行仿真的 ISIS 和 PCB 自动布线或人工布线电路仿真的 ARES 两个程序组成。Proteus 运行于 Windows 操作系统上, 可以动态实时仿真、分析 ( SPICE) 各种模拟器件和集成器件。针对微处理器及其外围电路,可以直接在基于原理图的虚拟原型上编程, 并实现软件代码级的调试, 配合其提供的仿真图表或虚拟仪器如示波器、逻辑分析仪等可进行相应的测量与分析。

借助Proteus的对CPU和外围电路强大的仿真能力以及丰富的资源库,可以有效地替代硬件仿真器进行先期的软硬件调试,等到仿真结果基本理想时再进行实际的硬件调试,这样的开发过程不仅高效,而且可以尽可能地减少损失,尤其对于解决实验室资源紧张的问题是一个很好的思路。

1)、用PROTEUS 绘制原理图

运行 Proteus 的 ISIS 程序后, 进入该仿真软件的主界面。主界面由菜单栏、工具栏、预览窗口、元件选择按钮、元件列表窗口、原理图绘制窗口和仿真进程控制按钮组成(如图1

- 7 -

全国职业院校骨干专业教师培训论文

所示)。通过元件选择按钮 P (从库中选择元件命令) 命令, 在弹出的 Pick Devices 窗口中选择电路所需的元件, 放置元件并调整其相对位置, 对元件参数设置及元器件间连线, 完成单片机系统的硬件原理图绘制。图7所示是绘制完成的电路图。

图7 绘制电路图

2)、 PROTEUS 对单片机内核的仿真

在source 菜单的Define code generation tools 菜单命令下,选择程序编译的工具、路径、扩展名等项目;在source菜单的Add/remove source files 命令下,加入单片机硬件电路的对应程序(主要采用 Keil 进行程序编译)

打开如图8所示的对话框。在 Program File 栏添加编译好的十六进制格式的程序文件8X8.hex,给AT89C51输入晶振频率,此处默认为12MHZ, 单击OK 按钮完成程序添加工作, 下面就可以进行系统仿真了。

Proteus 与其它单片机仿真软件不同的是,它不仅能仿真单片机外围电路或没有单片机参与的其它电路的工作情况,也能仿真单片机CPU的工作情况。因此在仿真和程序调试时,是从工程的角度直接看程序运行和电路工作的过程和结果。从某种意义上讲Proteus仿真,基本接近与工程应用。

- 8 -

全国职业院校骨干专业教师培训论文

图8 添加程序文件8X8.hex

6 LED汉字显示屏实物制作 1)元器件选择

本设计所需元器件如表1所示。

2)制作PCB板

首先运用Protel软件绘制电路原理图,设置元件的封装参数,再生成网络表格之后进行自动布局和自动布线最后进行手工调整,绘制出如图9所示的PCB板。最后在PCB雕刻机上雕刻出电路板。

- 9 -

全国职业院校骨干专业教师培训论文

图9 PCB板

3)电路装配与调试

按装配图纸和装配工艺要求将电子元器件装配到PCB板上,这里特别要注意的是单片机要能正常工作,必须把在Keil软件中调试成功并生成的hex文件通过烧录器烧写到单片机芯片中。

图10 LED汉字显示屏实物图

- 10 -

全国职业院校骨干专业教师培训论文

7 结 语

虽然本文设计和制作只使用了一块8×8 LED点阵,电路简单,但是已经包涵了LED汉字滚动显示屏的电路基本原理、基本程序和Proteus软件仿真,只要扩展单片机的I/O接口,并增加一些LED点阵和相关芯片,就能设计出更大面积、更多花样的LED显示屏。因此本文对同类设计具有一定的理论和实践参考价值。

参考文献

[1]石小法,谢利民.电子技术[M].北京;高等教育出版社,2005.

[2]万光毅,严毅.单片机实验与实践教程(一)[M].北京:北京航空航天大学出版社,2003.

[3]周润景.基于PROTEUS的电路及单片机系统设计与仿真[M].北京:北京航空航天大学出版社,2007.

致 谢

光阴似箭,转眼两个月的培训学习就要结束。两个月来,我得到了许多老师的真诚教诲和学员们的热情帮助。值此离别之际,向曾经给予我帮助的老师、学员和朋友表示最衷心的感谢!

首先我要感谢韩克、柳秀山教授,教授渊博的知识、严谨求实的作风、开明谦和的处事、敏锐的洞察力、孜孜不倦的工作精神深深感染了我,教授给了我很多的启迪与关怀,拓展了我的视野,让我在学习上受益匪浅。

感谢我们的班主任谢桂圆老师,两个月来她在生活上和学习上给于了我们无私的关怀和热情的帮助。在此真诚地祝愿谢桂圆老师工作顺利!幸福美满!

感谢我的学友崔守海、文浩奇、朱明悦、张庆军、刘德雪、刘永军、林妙丽、翁芸等正是有了你们,我的学习生活才不显得孤单,谢谢你们在学习和生活中给予了我热情鼓励和无私帮助。我十分珍惜和你们共同学习的日子,这将成为我人生中难以忘怀的美好时光。

特别感谢我的爱人、儿子、父母对我培训学习的坚定支持和极大的帮助,正是她们挚深的亲情成为我不断求学进取的精神动力。

感谢教育部举办了本次培训学习班! 祝愿广东技术师范学院永葆青春!

谢利民 2008-9-12

- 11 -

因篇幅问题不能全部显示,请点此查看更多更全内容