已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
点阵实现汉字显示系统的设计目录摘要21 硬件介绍41.1 AT89C51单片机介绍41.2 74HC595介绍51.3 LED点阵介绍61.4 双色点阵介绍72 理论分析82.1 系统功能82.2 LED显示方式82.3 程序流程图92.4 颜色变换103 电路与程序设计103.1 源程序103.2 PROTEUS仿真134 结果分析134.1 仿真结果134.2 实验台测试结果145 总结(经验教训)15参考文献16摘要LED点阵显示屏在银行、车站、医院、街头、公交车等随处可见。LED点阵模块以发光二极管为像素单元,将发光二极管芯阵列组合后封装而成。本设计中采用的LED点阵是由2个88矩阵LED模块组成的816双色共阴极LED点阵,其内部使用74HC595芯片,使串行输出转换成并行输出,驱动矩阵LED。设计中使用AT89C51和双色共阴极LED点阵最终完成点阵显示汉字(包括移动、跳变)的功能。由于点阵为双色点阵,所以该程序实现了第一个矩阵模块显示红色,而另一模块显示绿色。该设计不仅使用KEIL软件在实验台上测试成功,而且还利用PORTEUS仿真软件画出了仿真图。关键词:LED点阵(矩阵LED)、汉字、74HC595、双色Abstract LED dot matrix display in the bank, railway stations, hospitals, streets, buses, etc. everywhere.LED dot matrix module with LED as a pixel unit, the combined light-emitting diode array package from the core.The design of LED dot matrix is used in two 8 8 matrix LED module consisting of a total of 8 16 color cathode LED dot matrix, and its internal use 74HC595 chip, the serial output into a parallel output, driven matrix LED.AT89C51 used in the design and color common cathode LED dot matrix display Chinese characters finally completed (including mobile, transition) function.As for the two-color dot matrix, so the program achieved the first matrix module displays red, while the other module shows green.The design is not only used in the experimental stage, KEIL software tested successfully, but also drawn by PORTEUS simulation software simulation charts.Keywords: LED dot-matrix (matrix LED), Chinese characters, 74HC595, color1 硬件介绍1.1 AT89C51单片机介绍AT89C51是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,可提供以下标准功能:4K 字节闪存,128字节内部RAM,32个I/O口线,两个16位定时计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51可降至0HZ的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。图1 AT89C51引脚图引脚功能说明Vcc:电源电压 GND:地 P0口:P0口是一组8位漏极开路型双向I/O口,即地址/数据总线复位口。作为输出口用时,每位能吸收电流的方式驱动8个逻辑门电路,对端口写“1”可 作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,此时P0激活内部的上拉电阻。P1口:P1是一个带有内部上拉电阻的8位双向I/O口。P1的输出缓冲级可驱动(输入或输出)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可做输入口。因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。P2口:P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(输入或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作为输入口。因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。在访问外部程序存储器获16位地址的外部数据存储器(例如执行 MOVX DPTR指令)时,P2口送出高8位地址数据。在访问8位地址的外部数据存储器(如执行 MOVX RI指令)时,P2口线上的内容(也即特殊功能寄存器(SFR)区中R2寄存器的内容),在整个访问期间不改变。P3口:P3口是一组带有内部上拉电阻的8位双向I/O口。P3口输出缓冲级可驱动(输入或输出)4个TTL逻辑门电路。对P3口写入“1”时,他们被内部上拉电阻拉高并可作为输入口。此时,被外部拉低的P3口将用上拉电阻输出电流。RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。 ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。即使不访问外部存储器,ALE仍以时钟振荡频率的1/6输出固定的正脉冲信号,因此它可对输出时钟信号或用于定时。要注意的是:当访问外部数据存储器时将跳过一个ALE脉冲。闪存编程期时,该引脚还用于输入编程脉冲。PSEN:程序存储允许输出是外部程序存储器的读选通信号,当AT89C51由外部程序存储器取指令(或数据)时,每个机器周期两个PSEN有效,即输出两个脉冲。在此期间,当访问外部数据存储器,这两次有效的PSEN信号不出现。 EA/VPP:外部访问允许。要使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。需注意的是; 如果加密位LB1被编程,复位时内部会锁存EA端状态。如 EA端为高电平(接VCC端),CPU则执行内部程序存储器中的指令。XTAL1:振荡器反相放大器及内部时钟发生器的输入端。XTAL2 :振荡器反相放大器的输出端。1.2 74HC595介绍 图2 74HC595引脚图 74HC59574HC595是硅结构的CMOS器件, 兼容低电压TTL电路,遵守JEDEC标准。 74HC595是具有8位移位寄存器和一个存储器,三态输出功能。 移位寄存器和存储器是分别的时钟。 数据在SCK的上升沿输入,在RCK的上升沿进入的存储寄存器中去。如果两个时钟连在一起,则移位寄存器总是比存储寄存器早一个脉冲。 移位寄存器有一个串行移位输入(Ds),和一个串行输出(Q7),和一个异步的低电平复位,存储寄存器有一个并行8位的,具备三态的总线输出,当使能OE时(为低电平),存储寄存器的数据输出到总线。8位串行输入/输出或者并行输出移位寄存器,具有高阻关断状态。三态。 符号引脚如图2描述:QAQH 15, 1, 7 并行数据输出; GND 8 地; Q H 9 串行数据输出;MR 10主复位(低电平;SCK 11 移位寄存器时钟输入 RCK 12 存储寄存器时钟输入 G 13 输出有效(低电平) SER 14 串行数据输入 Vcc 16 电源1.3 LED点阵介绍 88单色点阵共需要64个发光二极管组成,且每个二极管是放置在行线与列线的叉点上。对于点阵型LED显示可以采用共阴极或共阳极,本系统采用共阳极,其硬件电路如图3所示。当行上有一正选通信号时,列选端八位数据为0的发光二极管便导通点亮。这样只需要将图形或文字的显示编码作为列信号跟对应的行信号进行逐次扫描,就可以逐行点亮点阵。只要扫描速度大于24Hz,由于扫描时间很快,人眼的视觉有暂留效应,就可以看到显示的是完整的图形或文字。88点阵LED结构下图4所示。 图3 88点阵外观及引脚图 图4 88 LED点阵结构 1.4 双色点阵介绍使用双色共阴极LED点阵,其内部结构如图5所示。系统使用74HC595芯片,使串行输出转换成并行输出,驱动矩阵LED。图5 LED点阵内部结构图6双色点阵显示接口电路本实验需要用到实验台上的CPU模块(F3区)、LED双色点阵显示模块(B2区)。双色点阵显示电路原理图参见图6。2 理论分析2.1 系统功能该系统实现了汉字显示的功能,由于数字、字母等的显示原理与汉字相同,所以为了程序的简便本系统只是实现了汉字的显示。汉字的显示效果为:中国、加油分别显示和中国加油滚动显示两种情况交替往复出现。2.2 LED显示方式下面是简单的汉字显示屏的制作,由单片机控制汉字的显示内容。使用了两块88的LED点阵发光管的模块,组成了一个816的LED点阵显示屏。在这里仅做了四个汉字的显示,在实际的使用中可以根据这个原理自行的扩展显示的内容,下面是介绍汉字显示的原理。 LED驱动显示采用动态扫描方法,动态扫描方式是逐行轮流点亮,描驱动以816点阵为例,把所有同一行的发光管的阳极连在一起,把所有同一列的发光管的阴极连在一起,先送出对应第1行发光管亮灭的数据并锁存,然后选通第1行使其燃亮一定的时间,然后熄灭;再送出第2行的数据并锁存,然后选通第2行使其燃亮相同的时间,然后熄灭;.第8行之后,又重新燃亮第1行,反复轮回。当这样轮回的速度足够快(每秒24次以上),由于人眼的视觉暂留现象,就能看到显示屏上稳定的图形。该方法能驱动较多的LED,控制方式较灵活,而且节省单片机的资源。显示数据传输采用串行传输的方法,控制电路可以只用一根信号线,将行列数据一位一位传往行列驱动器,在硬件方面无疑是十分经济的。LED点阵显示模块进行的方法有两种:(1)水平方向(X方向)扫描,即逐列扫描的方式(简称列扫描方式):此时用一个P口输出列码决定哪一列能亮(相当于位码),输出行码(列数据),决定该行上那哪个LED亮(相当于段码)。能亮的列从左到右扫描完16列(相当于位码循环移动16次)即显示出一个完整的图像。(2)竖直方向(Y方向)扫描,即逐行扫描方式(简称行扫描方式):此时用一个P口输出决定哪一行能亮(相当于位码),输出列码(行数据,行数据为将列数据的点阵旋转90度的数据)决定该行上哪些LED灯亮(相当于段码)。能亮的行从上向下扫描完8行(相当于位码循环移位8次)即显示一帧完整的图像。本设计应用的是第二种的扫描方法,即竖直方向(Y方向)扫描。每一个字由8行8列的点阵形成显示,即每个字均由64个点阵来表示,我们可以把每一个点理解为一个像素。一般我们使用的88的点阵宋体字库,即所谓的88,是每一个汉字在纵横各8点的区域内显示的。事实上这个汉字屏不仅可以显示汉字,也可以显示在64像素范围内的任何图形。2.3 程序流程图 进入中断 开始 主程序流程图 中断程序流程图将汉字编码送入20H至50H 关中断开定时器T0并赋初值软件计数是否到3?分别给R4,R5,R0赋值0FFH,03,20H N 给R0赋值20H YR7从新赋值03H,90H加1(90H)=00? N将20H至50H的内容左移一位(R5)=02? YN给R0赋值40H左移达到8次? N(R5)=0?1? Y N Y 中断初始化,开中断给R0赋值20H Y发送一屏数据 中断返回(R5)=0? N启动定时器T0 Y N(90H)=30?H? Y关闭定时器T0,给90H,R5赋值00,032.4 颜色变换由下图7可知点阵的行和列由5个595芯片驱动,通过列码选通是红色LED点亮还是绿色LED点亮。第一个595控制第一个8*8中红色LED,第二个595控制第一个8*8中绿色LED第三个595控制第二个8*8中红色LED,第四个595控制第二个8*8中绿色LED,第五个595控制两个点阵的行。本系统可通过调用不同的送码子程序控制点阵的颜色。 图7 行列控制电路图3 电路与程序设计3.1 源程序 16 Din EQU P2.0 CLK EQU P2.1 R_CLK EQU P2.2 ORG 0000H JMP MAIN ORG 000BH LJMP INTS_TO ;定时中断 ORG 0100HMAIN: MOV R2,#0 MOV 90H,#00H MOV R1,#64 ;64个字符 MOV R0,#20H MOV DPTR,#TABMOVEDATA: ;把全部字符复制到20H MOV A,R2 MOVC A,A+DPTR MOV R0,A INC R2 INC R0 DJNZ R1,MOVEDATA MOV TMOD,#01H;定时器0工作方式为1 MOV TL0,#0AFH ;置计数初值 MOV TH0,#3CH;0FFFFH-3CAFH=50000,50ms MOV R7,#3 ;软件计数器,循环5次,即每隔3*50ms=150ms移一列 SETB ET0 ;开中断,但未启动定时器 SETB EA CLR R_CLK ;高电平显示 MOV R3,#01H ;R3控制行,进行行扫描,高电平有效 MOV R4,#0FFH ;R4、R5控制中国、加油分别显示的时间 MOV R5,#03HA0: MOV R2,#08H MOV R0,#20H MOV A,90H ;90H中存放移动的列数,若为0则中国、加油分别显示,否则移列显示 CJNE A,#00H,LOOP CJNE R5,#02H,LOP0 LOP0:JNC LOOP MOV R0,#40H ;实现加油的显示 CJNE R5,#01H,LOP1 LOP1:JNC LOOP MOV R0,#20HLOOP: MOV R1,#4 MOV A,R3 RR A ;行码右移一位转下一行 MOV R3,A LCALL OUTDATAA1: MOV A,R0 LCALL OUTDATA INC R0 DJNZ R1,A1 SETB R_CLK ;显示一行 CLR R_CLK DJNZ R2,LOOP ;下一行 DJNZ R4,LOP3 MOV R4,#0FFHLOP2: DJNZ R5,LOP3 SETB TR0LOP3 :MOV A,90H CJNE A,#30H,LOP4LOP4: JC LOP5 CLR TR0 MOV 90H,#00H MOV R5,#03HLOP5: LJMP A0OUTDATA: MOV R6, #8 OUT1:RRC A MOV DIN, C CLR CLK SETB CLK NOP NOP DJNZ R6,OUT1 RETINTS_TO: PUSH ACC ;保存ACC PUSH 00H ;保存R0 PUSH 01H ;保存R1 PUSH 02H ;保存R2 CLR TR0 DJNZ R7,BACK ;计数,次数不到返回 MOV R7,#3 INC 90HLOOP1:MOV R0,#23H MOV R1,#40H MOV R2,#8 LP1:CLR C ;将23h的最高位给cy MOV A,R0 RLC A LP2:MOV A,R1 ;将40h的最高位左移 实现中在油后 RLC A MOV R1,A LP3:INC R1 ;将43h的最高位给cy 实现油在加后 INC R1 INC R1 MOV A,R1 RLC A MOV R1,A LP4:DEC R0 ;加在国后 DEC R0 DEC R0 MOV A,R0 RLC A MOV R0,A LP5:INC R0 ;国在中后 INC R0 INC R0 MOV A,R0 RLC A MOV R0,A INC R1 INC R0 INC R0 INC R0 INC R0 DJNZ R2,LP1BACK:POP 02H POP 01H POP 00H POP ACC MOV TL0,#0AFH MOV TH0,#3CH ;0FFFFH-3CAFH=50000,50ms SETB TR0 RETITAB: ;右绿/右红/左绿/左红 ;低电平点亮 ;显示中国加油 DB 80H, 0FFH,0FFH,0F7H ;显示中国 DB 0BEH,0FFH,0FFH,0F7H DB 0A2H,0FFH,0FFH,80H DB 0B6H,0FFH,0FFH,0B6H DB 0A2H,0FFH,0FFH,80H DB 0B2H,0FFH,0FFH,0F7H DB 80H, 0FFH,0FFH,0F7H DB 80H, 0FFH,0FFH,0F7H DB 0FBH,0FFH,0FFH,0DFH ;控制第1行 显示加油 DB 0FBH,0FFH,0FFH,80H ;控制第2行 DB 0A0H,0FFH,0FFH,0D2H ;控制第3行 DB 0EAH,0FFH,0FFH,0D2H ;控制第4行 DB 0A0H,0FFH,0FFH,0D2H ;控制第5行 DB 0CAH,0FFH,0FFH,0D2H ;控制第6行 DB 0A0H,0FFH,0FFH,0C0H ;控制第7行 DB 0FFH,0FFH,0FFH,0B7H ;控制第8行 END ;程序的基本原理:P2.0口送行列扫描码;显示完一行,行控制码左移,显示第2行。一直到8行显示完,即显示了一屏。;重新从18行,反复显示255次(由R4、R5控制),以免字符一闪而过(显示中国)。;接着显示下屏,下一屏的取字寄存器的地址加20H,同第一屏原理一样(显示加油)。;这样分别两字显示3次后(由R5控制),启动定时器中断,开始滚动显示中国加油,;滚动显示中,左移48列后(由RAM中的90H单元控制),又开始重复分别两字显示。3.2 PROTEUS仿真由于Proteus元件库中没有双色点阵块,Proteus仿真时由红绿两块点阵块代替双色点阵,Proteus仿真时单片机需要加载程序,加载程序为.HEX文件。本设计利用Keil Vision4, 在新建Keil项目时选择AT89C52单片机作为CPU,将源程序导入,在“Options For Target”对话窗口中,选中“Output”选项中的“Create HEX File”,编译链接后就可以生成.HEX文件。在Proteus ISIS中,选中AT89C51并单击鼠标左键,对AT89C51进行设置,设置单片机时钟频率为12MHz,按照正确的文件路径加载.HEX文件。对单片机设置完毕后就可以开始仿真了。仿真过程中如有硬件问题可在Proteus ISIS中直接修改,如有软件问题可在Keil Vision2中直接修改,通过Keil与Proteus的联合调试就可以得到满意的结果。利用Proteus实现了对点阵式LED滚动汉字显示屏的仿真,说明程序和电路图都没有问题。 图8 PROTEUS仿真电路图4 结果分析4.1 仿真结果图9 分别两字显示时的效果 图10 滚动显示时的显示效果4.2 实验台测试结果图11 分别两字显示时的效果图12 滚动显示时的显示效果5 总结(经验教训)通过本次的课程设计,使我对单片机有了进一步的了解。我们做的是LED点阵显示汉字,开始的时候听同学说这个很简单,但是等我看到
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025 三年级数学上册倍的拓展应用题课件
- 幼儿园安全伴我行的课件
- 湖州市下学期小学五年级数学期末调研试卷
- 湖北省咸宁市咸安区四年级上学期语文第八单元“扁鹊治病”健康知识普及小报制作
- 陕西省小学四年级下学期数学能力评估试卷-时间计算
- 四川省乐山市小学二年级上学期数学期中考试试题
- 2026届湖南师大附中化学高二第一学期期末经典模拟试题含答案
- 八大作业安全培训课件
- 河北省保定市阜平中学2026届化学高二上期中质量跟踪监视模拟试题含解析
- 新疆乌鲁木齐市2026届高二上化学期中考试模拟试题含解析
- 锦州市国土空间生态修复规划说明(2021-2035年)
- 企业碳排放管理培训课件
- 2025外研版新教材初中英语八年级上全册单词表
- 心绞痛的急救与护理措施
- 学校新闻摄影培训课件
- 《抗肿瘤药物》课件
- 警察抓捕教学课件
- 台湾问题形势与政策课件
- 公司安保方案(3篇)
- T/GXSXFS 007-2021肉羊全混合日粮
- 东方航空民航招飞英语测试题及答案
评论
0/150
提交评论