精品基于单片机的LED汉字显示屏的设计与Proteus仿真论文.pdf

上传人:ylj18****41534 文档编号:73107459 上传时间:2023-02-15 格式:PDF 页数:10 大小:4.66MB
返回 下载 相关 举报
精品基于单片机的LED汉字显示屏的设计与Proteus仿真论文.pdf_第1页
第1页 / 共10页
精品基于单片机的LED汉字显示屏的设计与Proteus仿真论文.pdf_第2页
第2页 / 共10页
点击查看更多>>
资源描述

《精品基于单片机的LED汉字显示屏的设计与Proteus仿真论文.pdf》由会员分享,可在线阅读,更多相关《精品基于单片机的LED汉字显示屏的设计与Proteus仿真论文.pdf(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、基于单片机的LED汉字显示屏的设计与 Proteus仿真 摘 要:研究了基于AT89C51单片机1616 LED汉字滚动显示屏的设计与运用Proteus软件的仿真实现。主要介绍了 LED 汉字显示屏的硬件电路、汇编程序设计与调试、Proteus软件仿真等方面的内容,本显示屏的设计具有体积小、硬件少、电路结构简单及容易实现等优点。能帮助广大电子爱好者了解汉字的点阵显示原理,认识单片机的基本结构、工作原理及应用方法,并提高单片机知识技术的运用能力。关键词:单片;LED;点阵;汉字显示 O 引言 LED 显示屏是利用发光二极管点阵模块或像素单元组成的平面式显示屏幕。它具有发光率高、使用寿命长、组态灵

2、活、色彩丰富以及对室内外环境适应能力强等优点。并广泛的用于公交汽车、商店、体育场馆、车站、学校、银行、高速公路等公共场所的信息发布和广告宣传。LED 显示屏发展较快,本文讲述了基于 AT89C51 单片机 1616LED 汉字点阵滚动显示的基本原理、硬件组成与设计、程序编写与调试、Proteus 软件仿真等基本环节和相关技术。1 硬件电路组成及工作原理 本产品采用以 AT89C51 单片机为核心芯片的电路来实现,主要由 AT89C51 芯片、时钟电路、复位电路、列扫描驱动电路(74HCl54)、1616LED 点阵 5 部分组成,如图 1 所示。其中,AT89C51 是一种带 4kB 闪烁可编

3、程可擦除只读存储器(Falsh Programmable and Erasable Read OnlyMemory,FPEROM)的低电压、高性能 CMOS 型 8 位微处理器,俗称单片机。该器件采用 ATMEL 高密度非易失存储器制造技术制造,工业标准的 MCS 一 5l指令集和输出管脚相兼容。由于将多功能 8 位 CPU 和闪烁存储器组合在单个芯片中,能够进行 1 000 次写擦循环,数据保留时间为 10 年。他是一种高效微控制器,为很多嵌人式控制系统提供了一种灵活性高且价廉的方案。因此,在智能化电子设计与制作过程中经常用到AT89C51芯片。时钟电路由AT89C5l的18,19脚的时钟端

4、(XTAI l及XTAL2)以及12 MHz晶振 X、电容 C2、C3 组成,采用片内振荡方式。复位电路采用简易的上电复位电路,主要由电阻 R,R2,电容 C,开关 K 组成,分别接至 AT89C51 的 RST 复位输入端。LED 点阵显示屏采用 1616 共 256 个象素的点阵,可通过万用表检测发光二极管的方法测试判断出该点阵的引脚分布。我们把行列总线接在单片机的 I0 口,然后把上面分析到的扫描代码送入总线,就可以得到显示的汉字了。但是若将 LED 点阵的行列端口全部直接接入 89S5 1 单片机,则需要使用 32 条 I0 口,这样会造成 I0 口资源的耗尽,系统也再无扩充的余地。因

5、此,我们在实际应用中只是将 LED 点阵的 16 条行线直接接在 P0 口和 P2 口,至于列选扫描信号则是由416线译码器74HCl54来选择控制,这样一来列选控制只使用了单片机的4个IO口,节约了很多 IO 口资源,为单片机系统扩充使用功能提供了条件。考虑到 P0 口必需设置上拉电阻,我们采用 47 k排电阻作为上拉电阻。汉字扫描显示的基本过程是这样的:通电后由于电阻 R,电容 c1 的作用,使单片机的 RST 复位脚电平先高后低,从而达到复位;之后,在 C、C3、X 以及单片机内部时钟电路的作用下,单片机 89C51 按照设定的程序在P0 和 P2 接口输出与内部汉字对应的代码电平送至

6、LED 点阵的行选线(高电平驱动),同时在 P11,P12,P13,P14 接口输出列选扫描信号(低电平驱动),从而选中相应的象素 LED 发光,并利用人眼的视觉暂留特性合成整个汉字的显示。再改变取表地址实现汉字的滚动显示。2 汉字的点阵显示原理及字库代码获取方法 我们以 UCDOS 中文宋体字库为例,每一个字由 16 行 16 列的点阵组成显示。即国标汉字库中的每一个字均由 256 点阵来表示。我们可以把每一个点理解为一个象素,而把每一个字的字形理解为一幅图像。事实上这个汉字屏不仅可以显示汉字,也可以显示在 256 象素范围内的任何图形。如查用 8 位的 AT89C51 单片机控制,由于单片

7、机的总线由 8 位,一个字需要拆分为 2 个部分,如图 2 所示 为了弄清楚汉字的点阵组成规律,首先通过列扫描方法获取汉字的代码。汉字可拆分为上部和下部,上部由 816 点阵组成,下部也由 816 点阵组成。本例通过列扫描方法首先显示左上角的第一列的上半部分,即第 0 列的 P00P07 口,方向为 P00 到 P07,显示汉字“我”时,为全灭,第一列的下半部分也为全灭。第二列的上半部分 P06、点亮,由上往下排列,为:PO0 灭,PO1 灭,P02 灭 PO3 灭,PO4 灭,P05 灭,P06 亮,P07 灭。即二进制 00000010,转换为十六进制为 02h。上半部第二列完成后,继续扫

8、描下半部的第二列,为了接线的方便,我们仍设计成由上往下扫描,即从 P27 向 P20 方向扫描,从图 3 可以看到,这一列 P23 亮,即为 00001000,十六进制则为 08h。依照这个方法转向第三列、第四列,直至第十六列的扫描,一共扫描 32 个 8 位,可以得出汉字“我”的扫描代码为:00H,02H,08H,06H,28H,02H,24H,22H 0FCH,3FH,24H,2 1H,20H,10H,3CH,08H 0E2H,07H,20H,0AH,0E4H,11H,0A8H,20H 20H,30H,00H,00H,00H,00H,00H,00H 由这个原理可以看出,无论显示何种字体或图

9、像,都可以用这个方法来分析出他的扫描代码从而显示在屏幕上。上述方法虽然能够让我们弄清楚汉字点阵代码的获取过程,但是依靠人工方法获取汉字代码是一件非常繁琐的事情。为此,我们经常采用字库软件查找字符代码,软件打开后输入汉字,点“检取”,十六进制数据的汉字代码即可自动生成,把我们所需要的竖排数据复制到程序中即可,如图 3 所示。可见,汉字点阵显示一般有点扫描、行扫描和列扫描 3 种。为了符合视觉暂留要求,点扫描方法的扫描频率必须大于 16641 024 Hz,周期小于 1 ms 即可。行扫描和列扫描方法的扫描频率必须大于 168 一 128 Hz,周期小于 78 ms 即可,但是一次驱动一列或一行(

10、8 颗 LED)时需外加驱动电路提高电流,否则 LED 亮度会不足。3 在 Keil 环境中程序设计与调试 软件程序主要由开始、初始化、主程序、字库组成。其中主程序的流程图如图 4 所示。下面的程序能够用来实现滚动显示“我爱你一一祖国”。汉字的显示。程序清单如下:时间:2009-05-05 09:42:04 来源:电子技术 作者:唐霞 1 谢利民 2 1.上海交通大学 2.江苏联合职业技术 在 keil 软件中完成程序编写、调试和编译之后,生成能让单片机运行的 Hex 文件,如图5 所示。4 元器件选择 本设计所需元器件如表 1 所示。5 运用 Proteus 软件仿真 LED 汉字显示屏 P

11、roteus 与其它单片机仿真软件不同的是,它不仅能仿真单片机外围电路或没有单片机参与的其它电路的工作情况,也能仿真单片机 CPU 的工作情况。因此在仿真和程序调试时,是从工程的角度直接看程序运行和电路工作的过程和结果。从某种意义上讲 Proteus 仿真,基本接近与工程应用。本次基于 AT89C51 单片机 1616LED 汉字滚动显示屏的设计已运用Proteus 软件仿真实现,如图 6 所示。虽然本设计只使用了一块 1616LED 点阵,电路简单,但是已经包涵了 LED 汉字滚动显示屏的电路基本原理、基本程序和 Proteus 软件仿真,只要扩展单片机的 10 接口,并增加一些 LED 点

12、阵和相关芯片,就能设计出更大面积、更多花样的 LED 显示屏。因此本文对同类设计具有一定的理论和实践参考价值。汉字显示屏广泛应用与汽车报站器,广告屏等。本文介绍一种实用的汉字显示屏的制作,考虑到电路元件的易购性,没有使用 8*8 的点阵发光管模块,而是直接使用了 256 个高量度发光管,组成了 16 行 16 列的发光点阵。同时为了降低制作难度,仅作了一个字的轮流显示,实际使用时可根据这个原理自行扩充显示的字数。1 汉字显示的原理:我们以 UCDOS 中文宋体字库为例,每一个字由 16 行 16 列的点阵组成显示。即国标汉字库中的每一个字均由 256 点阵来表示。我们可以把每一个点理解为一个像

13、素,而把每一个字的字形理解为一幅图像。事实上这个汉字屏不 仅 可 以 显 示 汉 字,也 可 以 显 示 在 256 像 素 范 围 内 的 任 何 图 形。用 8位的 AT89C51 单片机控制,由于单片机的总线为 8 位,一个字需要拆分为 2 个部分。一般我们把它拆分为上部和下部,上部由 8*16 点阵组成,下部也由 8*16点阵组成。在本例中单片机首先显示的是左上角的第一列的上半部分,即第 0 列的p00-p07 口。方向为 p00 到 p07,显示汉字“大”时,p05 点亮,由上往下排列,为 p0.0 灭,p0.1 灭,p0.2 灭 p0.3 灭,p0.4 灭,p0.5 亮,p0.6

14、灭,p0.7 灭。即二进制 00000100,转换为 16 进制为 04h.。上半部第一列完成后,继续扫描下半部的第一列,为了接线的方便,我们仍设计成由上往下扫描,即从 p27 向 p20方向扫描,从上图可以看到,这一列全部为不亮,即为 00000000,16 进制则为00h。然后单片机转向上半部第二列,仍为 p05 点亮,为 00000100,即 16 进制 04h.这一列完成后继续进行下半部分的扫描,p21 点亮,为二进制 00000010,即 16 进制 02h.依照这个方法,继续进行下面的扫描,一共扫描 32 个 8 位,可以得出汉字“大”的扫描代码为:04H,00H,04H,02H,

15、04H,02H,04H,04H 04H,08H,04H,30H,05H,0C0H,0FEH,00H 05H,80H,04H,60H,04H,10H,04H,08H 04H,04H,0CH,06H,04H,04H,00H,00H 由这个原理可以看出,无论显示何种字体或图像,都可以用这个方法来分析出它的扫描代码从而显示在屏幕上。不过现在有很多现成的汉字字模生成软件,我们就不必自己去画表格算代码了。软件打开后输入汉字,点“检取”,十六进制数据的汉字代码即可自动生成,把我们所需要的竖排数据复制到我们的程序中即可。我们把行列总线接在单片机的 i0 口,然后把上面分析到的扫描代码送入总线,就可以得到显示的

16、汉字了。在这个例子里,由于一共用到 16行,16 列,如果将其全部接入 89c51 单片机,一共使用 32 条 io 口,这样造成了 io 资源的耗尽,系统也再无扩充的余地。实际应用中我们使用 4-16 线译码器74ls154 来完成列方向的显示。而行方向 16 条线则接在 p0 口和 p2 口。程 序清单:ORG 00H LOOP:MOV A,#0FFH;开机初始化,清除画面 MOV P0,A;清除 P0 口 ANL P2,#00;清除 P2 口 MOV R2,#200 D100MS:MOV R3,#250;延时 100 毫秒 DJNZ R3,$DJNZ R2,D100MS MOV 20H,

17、#00H;取码指针的初值 l100:MOV R1,#100;每个字的停留时间 L16:MOV R6,#16;每个字 16 个码 MOV R4,#00H;扫描指针清零 MOV R0,20H;取码指针存入 R0 L3:MOV A,R4;扫描指针存入 A MOV P1,A;扫描输出 INC R4;扫描指针加 1,扫描下一个 MOV A,R0;取码指针存入 A MOV DPTR,#TABLE;取数据表的上半部分的代码 MOVC A,A+DPTR MOV P0,A;输出到 P0 INC R0;取码指针加 1,取下一个码。MOV A,R0 MOV DPTR,#TABLE;取数据表下半部份的代码 MOVC A

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作报告

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁