移动汉字显示的设计与制作.docx
- 文档编号:10821173
- 上传时间:2023-05-27
- 格式:DOCX
- 页数:24
- 大小:307.13KB
移动汉字显示的设计与制作.docx
《移动汉字显示的设计与制作.docx》由会员分享,可在线阅读,更多相关《移动汉字显示的设计与制作.docx(24页珍藏版)》请在冰点文库上搜索。
移动汉字显示的设计与制作
移动汉字显示的设计与制作
作者:
顾成
【摘要】本设计使用AT89C51芯片作为主控制模块,利用简单的外围电路来驱动16*16点阵LED显示屏。
设计分为三个模块:
单片机控制模块.,译码器74LS138驱动模块,输出显示模块。
单片机控制模块以单片机为核心,以软件KEIL编程实现信号输出,以驱动16*16LED点阵显示块为目的。
在负载范围内,只需通过简单的级联就可以对显示屏进行扩展,是一种成本低廉的汉字显示方案;另一方面,LED显示屏广泛的应用于火车站、银行等公共场所,因此本设计有很强的现实实用性。
【关键字】单片机汉字显示屏控制模块驱动模块软件编程
绪论
LED显示屏显示画面色彩鲜艳,立体感强,静如油画,动如电影,广泛应用于车站、码头、机场、商场、医院、宾馆、银行、证券市场、建筑市场、拍卖行、工业企业管理和其它公共场所。
在实际应用中的显示屏由于成本和可靠性的因素常采用一种称为动态扫描的显示方法。
LED点阵显示屏的构成型式有多种,其中典型的有两种。
一种把所需展示的广告信息烧写固化到EPROM芯片内,能进行固定内容的多幅汉字显示,称为单显示型;另一种在机内设置了字库、程序库,具有程序编制能力,能进行内容可变的多幅汉字显示,称可编程序型。
目前,国内的LED点阵显示屏大部分是单显示型,其显示的内容相对较少,显示花样较单一。
一般在产品出厂时,显示内容就已写入显示屏控制系统中的EPROM芯片内,当需要更换显示内容时就非常困难,这样使该类型的显示屏使用范围受到了限制,国内的另一种LED显示屏——可编程序型LED显示屏,虽然增加了显示屏系统的编程能力,显示内容和显示花样都有所增加,但也存在着更换显示内容不便的缺点。
随着社会经济的迅速发展,如今的广告牌都存在着显示内容丰富、信息量大、信息更换速度快等特点。
因此传统的LED显示屏控制系统已经越来越不能满足现代广告宣传业的需要,而利用PC机通信技术控制LED显示屏,则具有显示内容丰富,信息更换灵活等优点。
本设计是基于单片机(AT89C51)讲述了16×16LED汉字点阵显示的基本原理、硬件组成与设计、程序编译与下载等基本环节和相关技术。
第一章方案论证及选择
方案一:
本电路原理如图1-1使用AT89C51实现行驱动,对显示模块从上至下的扫描,用74LS138实现列驱动,对显示模块从左至右的扫描,然后显示字符。
在中规模集成电路中译码器有几种型号,使用最广的通常是74LS138译码器,74LS138译码器的输出是低电平有效,故实现逻辑功能时,输出端不可接或门及或非门(因为每次仅一个为低电平,其余皆为高电平);74LS138译码器有使能端,故使能端必须加以处理,否则无法实现需要的逻辑功能。
在片选使用状态下输入中8线始终只有1线为0,此74LS138芯片在单片机系统中极大限度的起到了扩展I/O资源的作用,只要用单片机的2个I/O引脚资源就能控制8个输出,而且程序的编制也容易实现。
图1-1
方案二:
本电路原理如图1-2使用AT89C51为核心控制,采用扫描方式显示,行驱动用的是十六个PNP型三极管,三极管的发射极接5V电压,集电极接点阵的行线,其基级接单片机。
各行的同名列共用一个列驱动,为了满足要求,驱动选择74HC595移位寄存器。
74HC595是硅结构的CMOS器件,74HC595是有8位移位寄存器和一个存储器,三态输出功能,移位寄存器和存储器是分别的时钟。
数据在SCHcp的上升沿输入,在STcp的上升沿进入的存储寄存器中去。
如果两个时钟连在一起,则移位寄存器总是比存储寄存器早一个脉冲。
移位寄存器有一个串行移位输入(Ds),和一个串行输出(Q7),和一个异步的低电平复位,存储寄存器有一个并行8位的,具备三态的总线输出,当使能OE时(为低电平),存储寄存器的数据输出到总线,达到预期效果。
图1-2
方案确定:
方案一与方案二电路结构基本相似,都是用单片机来实现的,都需要编程,从成本方面看,方案一比方案二所需的元器件少,且方案二中用到集成块,要比方案一中用到的成本高些。
从电路的稳定、调试方面看,两个方案差不多,但方案一较适合具体情况的实施。
本着提高动手能力,加强对单片机的内部原理的进一步的理解,提高编程的能力,因此我的这次设计决定采用方案一。
第二章系统单元电路
一、需要实现的功能
用LED点阵显示屏来显示汉字,通过单片机AT89C51的行扫描和74LS138芯片的列扫描,使点阵显示屏移动显示“明达学院欢迎您!
”的字幕。
当中还要实现的功能:
5V的电压输入,时钟电路的设置,复位电路的设置,单片机给74LS138芯片的E1高电平同时给E2和E3低电平,74LS138才能正常的工作。
二、单片机的选择
1、AT89C51单片机的结构图2-1
AT89C51是一种带4KB闪烁可编程可擦除只读存储器的低电压、高性能CMOS型8位微处理器,俗称单片机。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,能够进行多次写/擦循环,数据保留时间为几十年。
他是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
因此,在智能化电子设计与制作过程中经常用到AT89C51芯片。
图2-1AT89C51引脚图
2、管脚说明
VCC:
供电电压。
GND:
接地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:
P2口为一个内部提供上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流,这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(TLL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如下表所示:
即P3口第二功能
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2INT0(外部中断0)
P3.3INT1(外部中断1)
P3.4T0(记时器0外部输入)
P3.5T1(记时器1外部输入)
P3.6WR(外部数据存储器写选通)
P3.7RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:
复位输入。
当振荡器复位时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6,因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲,如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
EA/VPP:
当EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,EA将内部锁定为RESET;当EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
三、单片机系统外围电路
单片机外围电路一般有两块:
时钟电路图2-2和复位电路图2-3
时钟电路由一个晶振和两个小电容组成,用来产生时钟频率
复位电路由一个电阻、按键和一个电容组成,用来产生复位信号,使单片机上电的时候复位。
图2-2时钟电路
AT89C51单片机芯片内部有一个反向放大器构成的振荡器,XTAL1和XTAL2分别为振荡器电路的输入端和输出端,时钟可由内部和外部生成,在XTAL1和XTAL2引脚上外接定时元件,内部振荡电路就会产生自激振荡。
系统采用的定时元件为石英晶体和电容组成的并联谐振回路。
晶振频率选择12MHZ,C1、成的电容值取22PF,电容的大小频率起微调的作用。
图2-3复位电路
单片机有多种复位电路,本系统采用电平式开关复位与上电复位方式,当上电时,C1相当于短路,使单片机复位,在正常工作时,按下复位时单片机复位。
在有时碰到干扰时会造成错误复位,但是大多数条件下,不会出现单片机错误复位,而可能会引起内部某些寄存器错误复位,在复位端加一个去耦电容,则会得到很好的效果。
四、驱动电路
a、74LS138芯片简介
74LS138为3-8线译码器,共有54/74S138和54/74LS13两种线路结构型式,其工作原理如下:
当一个选通端(E1)为高电平,另两个选通端(E2)和/(E3))为低电平时,可将地址端(A、B、C)的二进制编码在一个对应的输出端以低电平译出。
利用E1、E2和E3可级联扩展成24线译码器;若外接一个反相器还可级联扩展成32线译码器。
若将选通端中的一个作为数据输入端时,74LS138还可作数据分配器。
74LS138的引脚图如图2-4所示:
图2-4
b、驱动电路的构成
本设计的驱动电路行扫描直接由单片机P0口直接驱动,在使用该I/O口时必须接上拉电阻采用10K欧姆阻值,再接5V驱动电压;为了便于实现对点阵列驱动,进行了对P2口的扩展,用四块74LS138节约了单片机I/0口。
行驱动电路如图2-5所示,列驱动电路如图2-6所示:
图2-5
图2-6
五、16*16LED显示屏电路和原理
此点阵模块由四块8*8点阵组成了一个16×16的LED点阵显示屏,如图2-7所示,汉字显示的原理。
图2-7四块8×8的LED点阵组成16×16的LED点阵
LED驱动显示采用动态扫描方法,动态扫描方式是逐行轮流点亮,这样扫描驱动电路就可以实现多行的同名列共用一套列驱动器。
以16×16点阵为例,把所有同一行的发光管的阳极连在一起,把所有同一列的发光管的阴极连在一起(共阳的接法),先送出对应第1行发光管亮灭的数据并锁存,然后选通第1行使其燃亮一定的时间,然后熄灭;再送出第2行的数据并锁存,然后选通第2行使其燃亮相同的时间,然后熄灭;….第16行之后,又重新燃亮第1行,反复轮回。
当这样轮回的速度足够快(每秒24次以上),由于人眼的视觉暂留现象,就能看到显示屏上稳定的图形。
该方法能驱动较多的LED,控制方式较灵活,而且节省单片机的资源。
LED点阵显示模块进行的方法有两种:
(1)水平方向(X方向)扫描,即逐列扫描的方式(简称列扫描方式):
此时用一个P口输出列码决定哪一列能亮(相当于位码),用另一个P口输出行码(列数据),决定该行上那哪个LED亮(相当于段码)。
能亮的列从左到右扫描完16列(相当于位码循环移动16次)即显示出一个完整的图像。
(2)竖直方向(Y方向)扫描,即逐行扫描方式(简称行扫描方式):
此时用一个P口输出决定哪一行能亮(相当于位码),另一个P口输出列码(行数据,行数据为将列数据的点阵旋转90度的数据)决定该行上哪些LED灯亮(相当于段码)。
能亮的行从上向下扫描完16行(相当于位码循环移位16次)即显示一帧完整的图像。
本设计应用的是第一种的扫描方法,即水平方向(X方向)扫描如图2-8
每一个字由16行16列的点阵形成显示,即每个字均由256个点阵来表示,我们可以把每一个点理解为一个像素。
一般我们使用的16×16的点阵宋体字库,即所谓的16×16,是每一个汉字在纵横各16点的区域内显示的。
汉字库从该位置起的32字节信息记录了该字的字模信息。
事实上这个汉字屏不仅可以显示汉字,也可以显示在256像素范围内的任何图形。
我们以水平方向(x方向)扫描显示汉字的“明”为例来说明其扫描原理,每一个字由16行16列的点阵组成显示,如图下的,如果用8位的AT89S51的单片机来控制,由于单片机的总线为8位,一个字需要拆分成两个部分。
一般我们把它分解成上部分和下部分,上部分由8*16的点阵组成,下部分也由8*16的点阵组成。
在本例中单片机首先显示的是左上角的第一列的部分,即第0列的P07~P00口。
方向为P07到P00,显示汉字“明”的时候,P07到P03都是灭的,即二进制00000000,转换为16进制为0X00,如图所示。
上半部分第一列完成之后,继续扫描下半部分的第一列,为了接线的方便,我们仍设计成由上往下的扫描方式,即从P27向P20方向扫描,从上图可以看到,这一列所有的也都不亮,所以代码为00000000,16进制为0X00,然后单片机转向上半部的第二列,除了P07、P25-P20不亮,其他的都亮,即为11111110,16进制为0XFE,这一列扫描完成之后继续进行下半部分的扫描,
按照这个方法,继续进行下面的扫描,一共扫描32个8位,可以得出汉字“明”的扫描代码为:
{0x00,0x00,0xFE,0x03,0x22,0x02,0x22,0x02,0x22,0x02,0xFE,0x43,0x00,0x20,0x00,0x18},
{0xFF,0x07,0x11,0x01,0x11,0x01,0x11,0x41,0x11,0x81,0xFF,0x7F,0x00,0x00,0x00,0x00},/*
2-8点阵显示原理图
由这个原理可以看到,无论显示何种字体或图像,都可以用这种方法来分析出它的扫描代码从而显示在屏幕上。
了解汉字的显示原理之后,那如何得到汉字的字模信息呢?
现在有一些现成的汉字字模生成软件,可从网上下载汉字字库提取程序直接提取字库,如图2-9所示的为一种字模生成软件,软件打开后输入汉字,点击“检取”后,十六进制数据汉字代码即可以自动生成,把我们需要的竖排数据复制到我们的程序即可。
图2-9
第三章系统程序的设计
3.1程序设计步骤
①解析问题,确定算法
这一步是能否编制出高质量程序的关键,因此不应一拿到题目就急于写程序,而应仔细分析和理解问题,找出合理算法及适当的数据结构。
②根据算法画出本设计的程序流程图
一个程序按其功能可分为几个部分,通过流程图可以把整个模块有效的联系起来,增强我们对程序的理解,便于我们发现设计的错误,找出解决的方法。
③根据我们画的流程图模块一个一个按模块编写源程序
④上机调试程序,直至实现预定的功能
通过上机调试程序发现程序的错误,然后根据提示的错误一一改正,提高程序的可靠性和实现预定的功能。
在调试程序的时候要学会了Proteus软件的使用。
3.2程序流程图
本次设计软件用模块化设计方法其程序流程图如图3-1所示
图3-1
第四章安装与调试
一、软件调试
将上述程序进行编译后,打开AT89C51单片机的元件属性编辑对话框,如图4-1所示。
在PROGRAMFILE中,单击文件夹图标,选择“程序16*16.hex”文件后,即可对系统进行仿真,整个系统的仿真结果如图4-2所示:
图4-1元件属性编辑对话框
图4-2仿真结果
二、性能分析
1、本文设计的点阵LED显示屏控制系统以AT89C51单片机为基础,采用静态RAM作为数据存储器,利用串行接口实现与PC机的数据传输。
在系统设计中电源为整个系统提供能量,电源使用5V,电源模块设计的好,对系统的故障往往减少了一大半,进而电源端可以接电容(电容0.1uf和10uf电解电容)作用除去电源的高频干扰,保证电源的稳定工作。
为了兼顾单片机的抗干扰能力,晶振电路中电容的大小会影响振荡器频率、振荡器稳定、起振的快速性,晶振和电容应尽可能靠近单片机,以减少寄生电容,更好的保证振荡器稳定,有效地提高了系统运行的可靠性,电容选取可以在5—60pf之间选择,一般选取22pf和30pf,此外,在晶振周围最好用地线包围,附近尽量避免其它信号线,以减少干扰和外部时钟,也因而可直接运用于实际场合,可实现汉字、字符及数字等内容的显示,可以随时更新显示的内容,使用起来非常方便。
对于字模的获取,在显示时会直接影响在点阵中的显示效果,在获取的字模方法上我选择了两种方法,通过多次尝试获取了所需的字模,不过在采用时还是出现了不足,然而通过手动的方式修改还是较接近理想的。
显示部分采用四块8*8LED点阵块(SD411998型号),在硬件电路中对于点阵块的使用,不同型号引脚参数不同,需要测量找出行列,在表示时一般用数字代表行,字母代表列,对在软件电路测试中则不需要考虑的。
2、测得18号脚的波形,
如图4-3
3、AT89C51引脚电压值:
第五章心得体会
本次毕业设计,我所设计的是一个16x16的点阵LED显示屏,能够在目测条件下LED显示屏各点亮度均匀、充足,可显示图形和文字,显示图形和文字应稳定、清晰无串扰,图形或文字显示有静止、移入移出等显示方式。
本系统具有硬件少,结构简单,容易实现,性能稳定可靠,成本低等特点。
总结论文的研究工作,主要做了下面几点工作:
一、通过查阅大量的相关资料,详细了解了LED的发光原理和LED显示屏的原理,清楚地了解了LED显示屏与其它显示屏相比较有那些优点,明确了研究目标,并且通过对单片机资料的查阅和应用,更进一步增加了对单片机知识的理解和运用能力。
二、本文列出了系统具体的硬件设计方案,硬件结构电路图,软件流程图和具体C语言程序设计与调试等方面。
三、在这次毕业设计的过程中进一步巩固了软件Protel99se、单片机编程软件KiluVision3,也学会了单片机仿真软件Proteus的基本使用方法。
四、通过这次毕业设计,重新复习了学过的知识并进一步增强了动手的能力,在实践中检验了理论知识。
六、存在问题:
没有考虑仿真软件是一个理想的仿真环境,而实际连接的电路板会由于譬如连接不当,相邻器件间的干扰等等的问题导致在仿真软件中能良好运行的程序,在硬件电路中出现显示问题。
总体来说,这次的毕业设计,达到了预期的目标,学到了很多,有点遗憾的是,时间有限,不能进一步深入和扩散学习和研究,希望有时间可以对程序和电路图作更进一步的改进,譬如实现点阵的上下移动,对角线移动,三色显示等。
毕业设计,也许是我大学生涯交上的最后一个作业了。
通过这一阶段的努力,我的毕业论文《移动汉子显示的设计与制作》终于完成了,这意味着大学生活即将结束。
在大学阶段,我在学习上和思想上都受益非浅,这除了自身的努力外,与各位老师、同学和朋友的关心、支持和鼓励是分不开的。
想借此机会感谢三年以来给我帮助的所有老师、同学,你们的友谊是我人生的财富,是我生命中不可或缺的一部分。
在本论文的写作过程中,我的导师王青老师倾注了大量的心血,从选题到开题报告,从写作提纲,到一遍又一遍地指出草稿中的具体问题,严格把关,循循善诱,在此我表示衷心感谢。
同时我还要感谢在我学习期间给我极大关心和支持的各位老师以及关心我的同学和朋友。
大学生活即将匆匆流逝,但它给我的影响却不能用时间来衡量,这三年以来,经历过的所有事,所有人,都将是我以后生活回味的一部分,是我为人处事的指南针。
就要离开学校,走上工作的岗位了,这是我人生历程的又一个起点,在这里祝福大学里所有的老师跟同学们,心想事成,一帆风顺!
最后,向在百忙中抽出时间对本文进行评审并提出宝贵意见的各位老师表示衷心地感谢!
【参考文献】
【1】单片机原理与应用.李文方主编哈尔滨工业大学出版社2010
【2】数字电子技术基础刘郭巍主编国防科技大学出版社2010
【3】Protel99SE电路设计与制版赵广林主编电子工业出版社2005
【4】基于proteus的电路设计及单片机设计与仿真周润景北京航天航空大学出版社2010
【5】MCS-51系列单片机实用接口技术[M]李华北京航空航天大学出版社1993
【6】单片机课程设计实例指导[M].李光飞.北京:
北京航空航天大学出版社2004
【7】51单片应用开发范例大全.宋戈,黄鹤松,员玉良,蒋海峰北京:
人民邮电出版社2010
【8】基于单片机的嵌入式工程开发详解罗强主编电子工业出版社2009
第六章附录
附录一:
元器件清单
代号
名称
规格
数量
R1、R2
电阻
1k/10k
1/10
R3
排阻
10k
1
C1、C2
瓷片电容
22pf/30pf
3
C3
电解电容
22uf
1
S1
轻触按钮
常开
1
CY
晶振
12MHZ
1
IC1
单片机
AT89C51
1
IC插座
40脚
1
IC2
单向总线驱动
74LS138
4
IC3
8*8LED点阵
共阴
4
导线
若干
面包板
1-2块
电源
5V
附录二:
电路总图
附录三:
程序
#include
#defineint8unsignedchar
#defineint16unsignedint
#defineint32unsignedlong
int8flag;
int8n;
int8codetable[][32]={
{0x00,0x00,0xC0,0x7F,0x40,0x44,0x40,0x44,0x40,0x44,0xC2,0x7F,0x04,0x00,0x18,0x00,0xE0,0xFF,0x80,0x88,0x80,0x88,0x82,0x88,0x81,0x88,0xFF,0xFF,0x00,0x00,0x00,0x00},/*"明",0*/
{0x02,0x01,0x04,0x41,0xF8,0x21,0x04,0x30,0x0A,0x08,0x12,0x08,0x22,0x08,0xC2,0x08,0x02,0x7F,0x82,0x08,0x42,0x08,0x22,0x08,0x3A,0x08,0x12,0x08,0x04,0x00,0x00,0x00},/*"达",1*/
{0x00,0x02,0x40,0x0C,0x40,0x08,0x40,0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 移动 汉字 显示 设计 制作
![提示](https://static.bingdoc.com/images/bang_tan.gif)