单片机课程设计点阵实现汉字显示系统的设计课程设计报告Word下载.docx
《单片机课程设计点阵实现汉字显示系统的设计课程设计报告Word下载.docx》由会员分享,可在线阅读,更多相关《单片机课程设计点阵实现汉字显示系统的设计课程设计报告Word下载.docx(27页珍藏版)》请在冰点文库上搜索。
3.2PROTEUS仿真(22)
4.结果分析(24)
5.总结(经验教训)(22)
参考文献(23)
摘要
LED点阵显示屏在银行、车站、医院、街头、公交车等随处可见。
LED点阵模块以发光二极管为像素单元,将发光二极管芯阵列组合后封装而成。
具有亮度高、功耗低、引脚少、视角大、寿命长、耐湿、耐冷热、耐腐蚀等特点。
本文详细介绍了基于51单片机的LED显示屏控制系统的显示原理,对8*16点阵汉字、字母、数字进行显示,显示屏由2个8*8的LED点阵模块组成一个8*16点阵LED。
系统仿真利用PORTEUS仿真软件和KEIL软件的联调对LED点阵显示屏系统进行调试,最终在试验台进行测试。
本次设计使用双色共阴极LED点阵,系统使用74HC595芯片,使串行输出转换成并行输出,驱动矩阵LED。
最终在点阵屏上能滚动显示汉字字母数字。
因使用的是双色点阵,该系统还能通过按键控制显示屏的颜色。
关键字:
AT89C51双色点阵屏PROTEUS仿真74HC595
1.系统方案(方案论证)
1.1设计框图及介绍LED点阵总体框图如图1.1所示,点阵电路大体上可以分成微机本身的硬件、显示驱动电路、控制信号电路三部分。
控制电路部分包括一个51CUP和一些外围电路。
在整个电路当中此控制电路部分相当于一个上位机,它负责控制整个电路以及相应的程序的运行、与PC机的串行通讯、以及给屏体电路部分发送命令。
点阵显示屏体、以及它的行和列的各个驱动电路。
由于两部分的电路在制板时可以放到一起,所以可以将其字库放到控制电路部分使用串行通讯方式来与屏体电路部分进行数据和命令的传送。
图1.1点阵显示的总体框图1.251系列单片机简介
单片机(Microcontroller,又称微处理器)是在一块硅片上集成了各种部件的微型机,这些部件包括中央处理器CPU、数据存储器RAM、程序存储器ROM、定时器/计数器和多种I/O接口电路。
8051单片机的基本结构见图1.2。
单
片机LED显示点阵行驱动器
列驱动器
温馨推荐
您可前往XX文库小程序
享受更优阅读体验
不去了
立即体验
图1.28051单片机的基本结构
8051是MCS-51系列单片机的一个产品。
MCS-51系列单片机是Intel公司推出的通用型单片机,8051单片机系列指的是MCS-51系列和其他公司的8051衍生产品。
这些衍生品是在基本型基础上增强了各种功能的产品。
这些产品给8位单片机注入了新的活力,给它的开发应用开拓了更广泛的前景。
8051系列的内部结构可以划分为CPU、存储器、并行口、串行口、定时器/计数器、中断逻辑几部分。
(1)中央处理器
8051的中央处理器由运算器和控制逻辑构成,其中包括若干特殊功能寄存器(SFR)。
算术逻辑单元ALU能对数据进行加、减、乘、除等算术运算;
“与”、“或”、“异或”等逻辑运算以及位操作运算。
ALU只能进行运算,运算的操作数可以事先存放到累加器ACC或寄存器TMP中,运算结果可以送回ACC或通用寄存器或存储单元中,累加器ACC也可以写为A。
B寄存器在乘法指令中用来存放一个乘数,在除法指令中用来存放除数,运算后B中为部分运算结果。
程序状态字PSW是个8位寄存器,用来寄存本次运算的特征信息,用到其中七位。
PSW的格式如下所示,其各位的含义是:
CY:
进位标志。
有进位/错位时CY=1,否则CY=0。
AC:
半进位标志。
当D3位向D4位产生进位/错位时,AC=1,否则AC=0,常用于十进制调整运算中。
F0:
用户可设定的标志位,可置位/复位,也可供测试。
RS1、RS0:
四个通用寄存器组选择位,该两位的四种组合状态用来选择0~3寄存器组。
。
OV:
溢出标志。
当带符号数运算结果超出-128~+127范围时OV=1,否则OV=0。
当无符号数乘法结果超过255时,或当无符号数除法的除数为0时OV=1,否则OV=0。
P:
奇偶校验标志。
每条指令执行完,若A中1的个数为奇数时P=1,否则P=0,即偶校验方式。
控制逻辑主要包括定时和控制逻辑、指令寄存器、译码器以及地址指针DPTR和程序寄存器PC等。
单片机是程序控制式计算机,即它的运行过程是在程序控制下逐条执行程序指令的过程:
从程序存储器中取出指令送指令存储器IR,然后指令译码器ID进行译码,译码产生一系列符合定时要求的微操作信号,用以控制单片机的各部分动作。
8051的控制器在单片机内部协调各功能部件之间的数据传送、数据运算等操作,并对单片机发出若干控制信息。
这些控制信息的使用专门的控制线,诸如PSEN、ALE、EA以及RST,也有一些是和P3口的某些端子合用,如WR和RD就是P3.6和P3.7,他们的具体功能在介绍8051引脚是一起叙述。
(2)存储器组织
8051单片机的存储器结构特点之一是将程序存储器和数据存储器分开,并有各自的寻
址机构和寻址方式,这种结构称为哈佛结构单片机。
这种结构与通用微机的存储器结构不同,一般微机只有一个存储器逻辑空间,可随意安排ROM或RAM,访存时用同一种指令,这种结构称为普林斯顿型。
8051单片机在物理上有四个存储空间:
片内程序存储器和片外程序存储器、片内数据存储器和片外数据存储器。
8051片内有256K数据存储器RAM和4KB的程序存储器ROM。
除此之外,还可以在片外扩展RAM和ROM,并且各有64KB的寻址范围。
也就是最多可以在外部扩展2*64KB存储器。
8051的存储器组织结构如图2.3所示。
图1.38051存储器组织结构
64K字节的程序存储器(ROM)空间中,有4K字节地址区对于片内ROM和片外ROM是公用的,这4K字节地址是0000H~FFFH。
而1000H~FFFFH地址区为外部ROM专用。
CPU的控制器专门提供一个控制信号EA用来区分内部ROM和外部ROM的公用地址区:
当EA接高电平时,单片机从片内ROM的4K字节存储器区取指令,而当指令地址超过
0FFFH后,就自动的转向片外ROM取指令。
当EA接低电平时,CPU只从片外ROM取指令。
程序存储器的某些单元是保留给系统使用的:
0000H~0002H单元是所有执行程序的入口地址,复位以后,CPU总是丛0000H单元开始执行程序。
0003H~002AH单元均匀地分为五段,用做五个中断服务程序的入口。
用户程序不应进入上述区域。
8051的RAM虽然字节数不很多,但却起着十分重要的作用。
256个字节被分为两个区域:
00H~7FH时真正的RAM区,可以读写各种数据。
而80H~FFH是专门用于特殊功能寄存器(SFR)的区域。
对于8051安排了21个特殊功能寄存器,每个寄存器为8位,所以实际上128个字节并没有全部利用。
内部RAM的各个单元,都可以通过直接地址来寻找,对于工作寄存器,则一般都直接用R0~R7,对特殊功能寄存器,也是直接使用其名字较为方便。
8051内部特殊功能寄存器都是可以位寻址的,并可用“寄存器名.位”来表示,如ACC.0,B.7等。
1.3LED点阵介绍
8×
8单色点阵共需要64个发光二极管组成,且每个二极管是放置在行线与列线的叉点上。
对于点阵型LED显示可以采用共阴极或共阳极,本系统采用共阳极,其硬件电路如图1.1所示。
当行上有一正选通信号时,列选端八位数据为0的发光二极管便导通点亮。
这样只需要将图形或文字的显示编码作为列信号跟对应的行信号进行逐次扫描,就可以逐行点亮点阵。
只要扫描速度大于24Hz,由于扫描时间很快,人眼的视觉有暂留效应,就可以看到显示的是完整的图形或文字。
8点阵LED结构下图1.5所示。
图1.48×
8点阵外观及引脚图
图1.58*8LED点阵结构
1.474HC595介绍
图1.674HC595
74HC595是硅结构的CMOS器件,兼容低电压TTL电路,遵守JEDEC标准。
74HC595是具有8位移位寄存器和一个存储器,三态输出功能。
移位寄存器和存储器是分别的时钟。
数据在SHcp的上升沿输入,在STcp的上升沿进入的存储寄存器中去。
如果两个时钟连在一起,则移位寄存器总是比存储寄存器早一个脉冲。
移位寄存器有一个串行移位输入(Ds),和一个串行输出(Q7’),和一个异步的低电平复位,存储寄存器有一个并行8位的,具备三态的总线输出,当使能OE时(为低电平),存储寄存器的数据输出到总线。
8位串行输入/输出或者并行输出移位寄存器,具有高阻关断状态。
三态。
特点
8位串行输入/8位串行或并行输出存储状态寄存器,三种状态
输出寄存器可以直接清除100MHz的移位频率
输出能力
并行输出,总线驱动;
串行输出;
标准中等规模集成电路
595移位寄存器有一个串行移位输入(Ds),和一个串行输出(Q7’),和一个异步的低电平复位,存储寄存器有一个并行8位的,具备三态的总线输出,当使能OE时(为低电平),存储寄存器的数据输出到总线。
参考数据
CPD决定动态的能耗,
PD=CPD×
VCC×
f1+∑(CL×
VCC2×
f0)
F1=输入频率,CL=输出电容f0=输出频率(MHz)Vcc=电源电压
引脚说明
符号引脚描述
Q0…Q715,1,7并行数据输出
GND8地
Q7’9串行数据输出
MR10主复位(低电平)
SHCP11移位寄存器时钟输入
STCP12存储寄存器时钟输入
OE13输出有效(低电平)
DS14串行数据输入
VCC16电源
功能表
输入输出功能
SHCPSTCPOEMRDSQ7’Qn
×
×
L↓×
LNCMR为低电平时仅仅影响移位寄存器
↑LL×
LL空移位寄存器到输出寄存器
HL×
LZ清空移位寄存器,并行输出为高阻状态
↑×
LHHQ6NC逻辑高电平移入移位寄存器状态0,包含所有的移位寄存器状态移入,例如,以前的状态6(内部Q6”)出现在串行输出位。
↑LH×
NCQn’移位寄存器的内容到达保持寄存器并从并口输出
↑↑LH×
Q6’Qn’移位寄存器内容移入,先前的移位寄存器的内容到达保持寄存器并出。
注释
H=高电平状态L=低电平状态↑=上升沿↓=下降沿Z=高阻NC=无变化×
=无效
当MR为高电平,OE为低电平时,数据在SHCP上升沿进入移位寄存器,在STCP上升沿输出到并行端口。
2.理论分析与计算
2.1LED显示方式
汉字显示屏用于显示汉字、字符及图像信息,在公共汽车、银行、医院及户外广告等地方都有广泛的应用。
下面是简单的汉字显示屏的制作,由单片机控制汉字的显示内容。
使用了两块8×
8的LED点阵发光管的模块,组成了一个8×
16的LED点阵显示屏。
在这里仅做了四个汉字四个字母和十个数字的显示,在实际的使用中可以根据这个原理自行的扩展显示的内容,下面是介绍汉字显示的原理。
LED驱动显示采用动态扫描方法,动态扫描方式是逐列轮流点亮,描驱动以8×
16点阵为例,把所有同一行的发光管的阳极连在一起,把所有同一列的发光管的阴极连在一起(共阳的接法),先送出对应第1列发光管亮灭的数据并锁存,然后选通第1列使其燃亮一定的时间,然后熄灭;
再送出第2列的数据并锁存,然后选通第2列使其燃亮相同的时间,然后熄灭;
….第16列之后,又重新燃亮第1列,反复轮回。
当这样轮回的速度足够快(每秒24次以上),由于人眼的视觉暂留现象,就能看到显示屏上稳定的图形。
该方法能驱动较多的LED,控制方式较灵活,而且节省单片机的资源。
显示数据传输采用串行传输的方法,控制电路可以只用一根信号线,将行列数据一位一位传往行列驱动器,在硬件方面无疑是十分经济的。
LED点阵显示模块进行的方法有两种:
(1)水平方向(X方向)扫描,即逐列扫描的方式(简称列扫描方式):
此时用一个P口输出列码决定哪一列能亮(相当于位码),输出行码(列数据),决定该行上那哪个LED亮(相当于段码)。
能亮的列从左到右扫描完16列(相当于位码循环移动16次)即显示出一个完整的图像。
(2)竖直方向(Y方向)扫描,即逐行扫描方式(简称行扫描方式):
此时用一个P口输出决定哪一行能亮(相当于位码),输出列码(行数据,行数据为将列数据的点阵旋转90度的数据)决定该行上哪些LED灯亮(相当于段码)。
能亮的行从上向下扫描完8行(相当于位码循环移位8次)即显示一帧完整的图像。
本设计应用的是第一种的扫描方法,即水平方向(X方向)扫描。
每一个字由8行8列的点阵形成显示,即每个字均由64个点阵来表示,我们可以把每一个点理解为一个像素。
一般我们使用的8×
8的点阵宋体字库,即所谓的8×
8,是每一个汉字在纵横各8点的区域内显示的。
事实上这个汉字屏不仅可以显示汉字,也可以显示在64像素范围内的任何图形。
2.2程序流程图
N
YYN
Y
2.3颜色变换
由下图2.1可知点阵的行和列由5个595芯片驱动,通过列码选通是红色LED点亮还是绿色LED点亮。
第一个595控制第一个8*8中红色LED,第二个595控制第一个8*8中绿色开始字码表初址
赋值检测颜色更换
按键是否按下
取码指针默认红色显示取当前列显示字
码第一个字节选择显示颜色每屏显示4次?
DPTR加1延时18个字符显示完?
取码指针加1置位595输出行
列码显示内容16列显示
完?
N
个595控制两个点阵的行。
本系统可通过调用不同的送码子程序控制点阵的颜色
图2.1行列控制电路图
3.电路与程序设计
3.1源程序
;
------------------------------------------------;
8X16双色LED点阵流动显示
逐列扫描
------------------------------------------------ORG0000H
AJMPMAIN
ORG0030H
MAIN:
MOVDPTR,#TAB;
字码表初址赋值
MOV18H,#16;
列数
MOV19H,#144;
移动18个字符,共144列
CM:
MOVR5,#4;
每屏反复显示4次
MOVR3,#16
C1:
MOVR1,#0FEH;
列控制码
MOVR4,#0FFH
C8:
CJNER3,#8,BB;
前后八列之间的列控制码转换MOVR4,#0FEH
MOVR1,#0FFH
BB:
MOVA,R2
MOVCA,@A+DPTR;
取当前列的显示字码的一个字节CJNER3,#9,LP;
前后八列之间的列控制码选择
LP:
JNCCC;
后八列列控制码
JNBP3.0,M2;
选择显示模式
JNBP3.1,M3
JNBP3.2,M4
LCALLSONG2
SJMPDDD
M2:
LCALLSONG4
M3:
LCALLSONG6
M4:
LCALLSONG8
CC:
;
前八列列控制码
JNBP3.0,M21
JNBP3.1,M31
JNBP3.2,M41
LCALLSONG1
M21:
LCALLSONG3
M31:
LCALLSONG5
M41:
LCALLSONG7
DDD:
INCR2
CLRP2.2
SETBP2.2
ACALLDMS;
显示1MS
DECR3
DJNZ18H,C8;
未显示16列,继续
MOV18H,#16
DJNZR5,C1;
未显示4次,继续
INCDPTR;
一屏反复显示4次完,字码表初值加1
DJNZ19H,CM;
144列未移动完,继续
AJMPMAIN;
144列显示完,返回,重新从“中文”开始显示
---------------------------------------------------------
延时子程序
--------------------------------------------------------DMS:
MOVR6,#8;
延时子程序
L1:
MOVR7,#60
L2:
DJNZR7,L2
DJNZR6,L1
RET
送信号子程序
----------------------------------------------------------SLM:
MOVC,ACC.7;
送信号子程序
MOVP2.0,C
CLRP2.1
SETBP2.1
RLA
DJNZ20H,SLM
MOV20H,#08H
--------------------------------------------------------
红色显示
----------------------------------------------------------SONG1:
红色显示前面八列送信号子程序
MOV21H,#03H
LCALLSLM;
送行控制码
LOOP:
MOVA,R4;
送列控制码
LCALLSLM
DJNZ21H,LOOP
MOVA,R1;
MOVR1,A
SONG2:
;
后面八列送信号子程序
MOV21H,#02H
MOVA,R1
MOVA,R4
MOVR4,A
LOOP1:
DJNZ21H,LOOP1
----------------------------------------------------;
绿色显示
----------------------------------------------------SONG3:
绿色显示前八列送信号子程序
LOOP2:
DJNZ21H,LOOP2
SONG4:
后八列送信号子程序
LOOP3:
MOVA,R1;
DJNZ21H,LOOP3
---------------------------------------------------;
左红右绿显示
---------------------------------------------------SONG5:
LOOP4:
MOVA,R4;
DJNZ21H,LOOP4
SONG6:
LOOP5:
DJNZ21H,LOOP5
橙黄色显示
------------------------------------------------------SONG7:
LOOP6:
DJNZ21H,LOOP6
LOOP7:
DJNZ21H,LOOP7
SONG8:
LOOP8:
DJNZ21H,LOOP8
MOVR4