基于51单片机的1632点阵显示设计.docx
《基于51单片机的1632点阵显示设计.docx》由会员分享,可在线阅读,更多相关《基于51单片机的1632点阵显示设计.docx(11页珍藏版)》请在冰豆网上搜索。
基于51单片机的1632点阵显示设计
单片机原理及接口技术课程设计报告
题目:
基于51单片机的16*32点阵显示设计
学院:
专业班级:
学生:
学号:
指导教师:
日期:
一、设计题目与要求
点阵屏以其醒目、快速换字等特点,已经进入了我们的生活,大街小巷每个地方都能看到点阵式广告屏,本课题设计一个基于51单片机的16*32点阵屏,能够实现2个字的静态显示、滚屏显示等。
二、总体设计方案
本设计以AT89C51单片机为核心芯片的电路来实现,主要由AT89C51芯片、时钟电路、复位电路、列扫描驱动电路〔74HCl54、74HC04〕、行驱动电路〔74HC245〕、键盘、16×16LED点阵7部分组成。
将LED点阵的16条行线经行驱动电路与P2口和P3口连接,而LED点阵的32条列线则与5—32线译码器相连,列扫描信号由P1输出到译码器,P0号与键盘相连。
这样,单片机89C51按照设定的程序在P2和P3口输出与内部汉字对应的代码电平送至LED点阵的行选线(高电平驱动),同时在,,,,接口输出列选扫描信号(低电平驱动),从而选中相应的像素LED发光,并利用人眼的视觉暂留特性合成整个汉字的显示。
三、各模块电路设计
1、16×32LED点阵
16×32LED点阵可以用2个16×16LED点阵拼成,把2个16×16LED点阵相同的行连在一起就是1个16×32LED点阵。
LED点阵结构图如下:
2、单片机最小系统
单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统。
对51系列单片机来说,最小系统一般应该包括:
单片机、晶振电路、复位电路。
3、列扫描驱动电路
列扫描驱动电路是由反相器、译码器组成的5线—32线译码器。
译码器采用74HC1544线—16线译码器,74HC154译码器可接受4位高电平有效二进制地址输入,并提供16个互斥的低有效输出。
反相器采用74HC04。
电路图如下:
4、行驱动电路
由于单片机的数据/地址/控制总线端口都有一定的负载能力,如果负载超过其负载能力,一般应加驱动器。
本设计需要同时点亮多个LED,因此需要很大的电流输出,但51单片机的输出电流有限且不足以点亮多个LED,可能会导致LED亮度不足,所以用74HC245来放大电流。
四、总体设计电路图
五、程序设计
以UCDOS中文宋体字库为例,每一个字由16行16列的点阵组成显示。
即国标汉字库中的每一个字均由256点阵来表示。
我们可以把每一个点理解为一个像素,而把每一个字的字形理解为一幅图像。
事实上这个汉字屏不仅可以显示汉字,也可以显示在256像素范围内的任何图形。
汉字可拆分为上部和下部,上部由8×16点阵组成,下部也由8×16点阵组成。
利用字模提取软件得到汉字的代码,汉字的一列代码的上下两部分分别由P2、P3口输出,P1口同时输出列扫描代码,使该列的LED亮。
依照这个方法转向第2列、第3列……,直至第16列的扫描,16列的LED快速连续地点亮,因为人眼的视觉暂留,LED显示屏会显示出一个汉字。
六、硬件实物图
七、心得体会
通过本次的课程设计制作,我熟悉了仿真软件Protues和Keil的基本操作与功能,同时也学会了利用单片机动手制作出复杂的电子作品。
在设计方案的时候,我遇到了不少麻烦,特别是设计硬件电路图这一部分,因为我要制作16×32LED点阵,如果用书本上传统的方法会不够I/O口,因此我想出了列扫描采用5线—32线译码器的方法。
因为没有5线—32线译码器的芯片,于是我在网上找到了利用74HCl54、74HC04连接成5线—32线译码器的方法。
而在程序设计方面,因为我的设计运行的程序并不复杂,因此我很快就把程序编出来了,没有碰到什么难题。
这次的课程设计大大增加了我对电子技术的兴趣和提高了我相关方面的技术。
附:
单片机程序
ORG0000H
START:
MOVP2,#00H;清除画面
MOVP3,#00H
KEY1:
MOVP0,#0FFH;扫描开关
MOVA,P0
CPLA
ANLA,#0FFH
JZKEY1
LCALLDELAY3
MOVA,P0
CPLA
ANLA,#0FFH
JZKEY1
JBACC.0,AMOD1
JBACC.1,AMOD2
JBACC.2,AMOD3
AMOD1:
LJMPMOD1;转到子程序
AMOD2:
LJMPMOD2
AMOD3:
LJMPMOD3
MOD1:
MOVP0,#0FFH;静态显示
MOVA,P0
CPLA
ANLA,#0FFH
JZL2
LCALLDELAY3
MOVA,P0
CPLA
ANLA,#0FFH
JZL2
JBACC.0,BMOD1
JBACC.1,BMOD2
JBACC.2,BMOD3
BMOD1:
LJMPMOD1
BMOD2:
LJMPMOD2
BMOD3:
LJMPMOD3
L2:
MOVR6,#32
MOVR4,#00H
MOVR0,#00H
L3:
MOVDPTR,#TABLE1
MOVA,R4
MOVP1,A
INCR4
MOVA,R0
MOVCA,@A+DPTR
MOVP2,A
INCR0
MOVA,R0
MOVCA,@A+DPTR
MOVP3,A
INCR0
MOVR3,#128
DJNZR3,$;延时
MOVP2,#00H;清除画面
MOVP3,#00H
DJNZR6,L3
JMPMOD1
MOD2:
MOV20H,#00H;滚屏显示
MOVR4,#00H
M1:
MOVR1,#3FH;每幕停留时间
M2:
MOVR6,#32;列扫描数
MOVR0,20H
MOVP0,#0FFH
MOVA,P0
CPLA
ANLA,#0FFH
JZM3
LCALLDELAY3
MOVA,P0
CPLA
ANLA,#0FFH
JZM3
JBACC.0,CMOD1
JBACC.1,CMOD2
JBACC.2,CMOD3
CMOD1:
LJMPMOD1
CMOD2:
LJMPMOD2
CMOD3:
LJMPMOD3
M3:
CALLREAD;调用显示子程度
INCR4
DJNZR6,M3
MOVR4,#00
DJNZR1,M2
MOVA,20H
ADDA,#04;移动列数*2
MOV20H,A
CJNEA,#192,M1;汉字数目*32
JMPMOD2
READ:
MOVA,R4
MOVP1,A
MOVA,R0
MOVDPTR,#TABLE2
MOVCA,@A+DPTR
MOVP2,A
INCR0
MOVA,R0
MOVCA,@A+DPTR
MOVP3,A
INCR0
MOVR3,#128
DJNZR3,$;延时
MOVP2,#00H
MOVP3,#00H
RET
MOD3:
MOVP0,#0FFH;静态显示
MOVA,P0
CPLA
ANLA,#0FFH
JZI2
LCALLDELAY3
MOVA,P0
CPLA
ANLA,#0FFH
JZI2
JBACC.0,DMOD1
JBACC.1,DMOD2
JBACC.2,DMOD3
DMOD1:
LJMPMOD1
DMOD2:
LJMPMOD2
DMOD3:
LJMPMOD3
I2:
MOVR6,#32
MOVR4,#00H
MOVR0,#00H
I3:
MOVDPTR,#TABLE3
MOVA,R4
MOVP1,A
INCR4
MOVA,R0
MOVCA,@A+DPTR
MOVP2,A
INCR0
MOVA,R0
MOVCA,@A+DPTR
MOVP3,A
INCR0
MOVR3,#128
DJNZR3,$;延时
MOVP2,#00H;清除画面
MOVP3,#00H
DJNZR6,I3
JMPMOD3
DELAY3:
MOVR7,#10H
D31:
MOVR6,#0FFH
D32:
DJNZR6,D32
DJNZR7,D31
RET
TABLE1:
;至乐
DB00H,00H,00H,40H,02H,40H,42H,44H,62H,44H,52H,44H,4AH,44H,46H,44H,42H,7FH,42H,44H,42H,44H,52H,44H,62H,44H,0C2H,44H,02H,40H,00H,40H
DB00H,00H,0D8H,44H,0B4H,44H,93H,24H,0C8H,25H,00H,14H,0FCH,0DH,26H,05H,25H,0FFH,24H,05H,0FCH,0DH,00H,14H,0D8H,24H,0B4H,24H,93H,44H,0C8H,45H
TABLE2:
;欢送光临
DB00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB00H,00H,04H,04H,74H,02H,5FH,0FFH,0F4H,55H,04H,55H,74H,7FH,0DFH,55H,74H,55H,24H,80H,18H,60H,0FH,1CH,0C8H,03H,08H,1CH,28H,60H,18H,80H
DB00H,00H,40H,00H,40H,40H,42H,20H,0CCH,1FH,00H,20H,00H,40H,0FCH,4FH,04H,44H,02H,42H,00H,40H,0FCH,7FH,04H,42H,04H,44H,0FCH,43H,00H,40H
DB00H,00H,40H,80H,40H,80H,42H,40H,44H,20H,58H,18H,0C0H,07H,40H,00H,7FH,00H,40H,00H,0C0H,3FH,50H,40H,48H,40H,46H,40H,40H,40H,40H,78H
DB00H,00H,00H,00H,0FEH,7FH,22H,42H,22H,42H,3EH,7EH,22H,42H,0E2H,43H,10H,00H,08H,0FCH,0E7H,45H,24H,0FDH,24H,01H,24H,0FDH,0E4H,45H,04H,0FCH
DB00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
TABLE3:
;IloveU
DB00H,00H,00H,00H,10H,40H,10H,40H,0F0H,7FH,10H,40H,10H,40H,00H,00H
DB00H,00H,0C0H,03H,0E0H,07H,0F0H,0FH,0F0H,1FH,0F0H,3FH,0E0H,7FH,0C0H,0FFH,0E0H,7FH,0F0H,3FH,0F0H,1FH,0F0H,0FH,0E0H,07H,0C0H,03H,00H,00H,00H,00H
DB10H,00H,0F0H,3FH,10H,40H,00H,40H,00H,40H,10H,40H,0F0H,3FH,10H,00H
END