单片机控制LED点阵显示 2.docx
《单片机控制LED点阵显示 2.docx》由会员分享,可在线阅读,更多相关《单片机控制LED点阵显示 2.docx(19页珍藏版)》请在冰点文库上搜索。
单片机控制LED点阵显示2
MCS-51单片机控制LED点阵显示屏
摘要:
LED点阵显示屏作为一种新兴的显示器件,是由多个独立的LED发光二极管封装而成.LED点阵显示屏可以显示数字或符号,通常用来显示时间、速度、系统状态等。
文章给出了一种基于MCS-51单片机的5×7点阵LED显示屏的设计方案。
包括系统具体的硬件设计方案,软件流程图和部分汇编语言程序等方面。
在负载范围内,只需通过简单的级联就可以对显示屏进行扩展,是一种成本低廉的图文显示方案。
关键词:
MCS-51;LED;单片机
Abstract:
Asapopulardisplaydevicecomponent,LEDdot-matrixdisplayboardconsistsofseveralindependentLED(LightEmittingDiode).TheLEDdot-matrixdisplayboardcandisplaythenumberorsign,anditisusuallyusedtoshowtime,speed,thestateofsystemetc.Thispaperintroducesakindofsimple5x7LEDdisplayscreendesignprocessbasedonMCS-51singlechipminicomputer.Thedetailhardwarescheme,softwareflowandassemblelanguageprogrammerdesignandsoonisfollowed.Thedisplaypartcanbecascadedtomeettheneed.Thepracticeprovesthedesignislow-costandeffective.
Keywords:
MCS-51;LED;MCU
引言LED显示屏显示画面色彩鲜艳,立体感强,静如油画,动如电影,广泛应用于车站、码头、机场、商场、医院、宾馆、银行、证券市场、建筑市场、拍卖行、工业企业管理和其它公共场所。
在实际应用中的显示屏由于成本和可靠性的因素常采用一种称为动态扫描的显示方法。
本文设计的是一个室内用5x7的点阵LED图文显示屏,图形或文字显示有静止、移入移出等显示方式。
1.背景介绍
1.1LED及LED显示屏
LED就是LightEmittingDiode(发光二极管)的缩写。
在某些半导体材料的PN结中,注入的少数载流子与多数载流子复合时会把多余的能量以光的形式释放出来,从而把电能直接转换为光能。
PN结加反向电压,少数载流子难以注入,故不发光。
这种利用注入式电致发光原理制作的二极管叫发光二极管,通称LED。
发光二极管是由p型和n型半导体组成的二极管。
在LED的p-n结附近,n型材料中多数载流子是电子,p型材料中多数载流子是空穴。
p-n结上未加电压时构成一定的势垒,当加正向偏压时,在外电场作用下,p区的空穴和n区的电子就向对方扩散运动,构成少数载流子的注入,从而在p-n结附近产生导带电子和价带空穴的复合,同时释放出相对应的能量hν(h为普朗克常数,ν为光子频率)而发光。
该能量相当于半导体材料的带隙能量Eg(Ev),其与发光波长λ(nm)的关系为λ=1239.6PEg。
LED显示屏是一种通过控制半导体发光二极管的显示方式,用来显示文字、图形、图像、动画、行情、视频、录像信号等各种信息的显示屏幕。
LED显示屏分为图文显示屏和视频显示屏,均由LED矩阵块组成。
图文显示屏可与计算机同步显示汉字、英文文本和图形;视频显示屏采用微型计算机进行控制,图文、图像并茂,以实时、同步、清晰的信息传播方式播放各种信息,还可显示二维、三维动画、录像、电视、VCD节目以及现场实况。
LED显示屏显示画面色彩鲜艳,立体感强,静如油画,动如电影,广泛应用于车站、码头、机场、商场、医院、宾馆、银行、证券市场、建筑市场、拍卖行、工业企业管理和其它公共场所。
它的优点:
亮度高、工作电压低、功耗小、微型化、易与集成电路匹配、驱动简单、寿命长、耐冲击、性能稳定。
1.1.1点矩阵显示器的种类
点矩阵显示器的种类可以分为5*75*86*88*84种,若按LED发光变化颜色来分,又可分为单色双色三色3种,按LED的极性排列又可分为共阳极和共阴极两种。
1.1.2点矩阵显示器的结构
以5*7点矩阵为例,一般市售注明CA-P(共阳极)和CC-P(共阴极),端子如图2-1所示。
这里所介绍的皆为共阴极。
单色8*8点矩阵显示器在市场上两种不同端子,如图2-2,点矩阵显示器结构如图2-3所示。
点矩阵显示器结构图2-15*7点矩阵端子
图2-28*8点矩阵端子
图2-3点矩阵显示器结构
1.2MCS-51系列单片机简介
1.2.1MCS-51系列单片机及其特点
①可靠性高:
因为芯片是按工业测控环境要求设计的,故抗干扰的能力优于PC机。
系统软件(如:
程序指令,常数,表格)固化在ROM中,不易受病毒破坏。
许多信号的通道均在一个芯片内,故运作时系统稳定可靠。
②便于扩展:
片内具有计算机正常运行所必需的部件,片外有很多供扩展用的(总线,并行和串行的输入/输出)管脚,很容易组成一定规模的计算机应用系统。
③控制功能强:
具有丰富的控制指令:
如:
条件分支转移指令,I/O口的逻辑操作指令,位处理指令。
④实用性好:
体积小,功耗低,价格便宜,易于产品化。
1.2.2单片机的发展历史简介
①第1阶段(1971年—1978年),以MCS-48系列为代表,称4位单片机。
在片内:
CPU有4位或8位;ROM有1KB或2KB;RAM有64B或128B;只有并行接口,无串行接口;只有1个8位的定时/计时器;中断源只有2个。
在片外:
寻址范围只有4KB;芯片引脚有40个。
②第2阶段(1978年—1983年),以MCS-51系列为代表,称8位单片机。
在片内:
CPU有8位;ROM有4KB或8KB;RAM有128B或256B;有串/并行接口;有2个或3个16位的定时/计时器;中断源有5至7个。
在片外:
寻址范围有64KB;芯片引脚有40个。
③第3阶段(1983年以后),以MCS-96系列为代表,称16位单片机。
在片内:
CPU有16位;ROM有8KB;RAM有232B;有串/并行接口;有4个16位的定时/计时器;中断源有8个;增加了D/A和A/D转换电路。
在片外:
寻址范围有64KB;芯片引脚有48个或68个。
以上MCS-51系列以其优良的性价比,在我国得到了广泛的应用。
1.2.2功能要求
设计一个室内用5x7的点阵LED图文显示屏,要求在目测条件下LED显示屏各点亮度均匀、充足,可显示图形和文字,显示图形和文字应稳定、清晰无串扰。
图形或文字显示有静止、移入移出等显示方式。
2方案实现
从理论上说,不论显示图形还是文字,只要控制与组成这些图形或文字的各个点所在的位置相对应的LED器件发光,就可以得到我们想要的显示结果,这种同时控制各个发光点亮灭的方法称为静态驱动显示方式。
5x7的点阵共有35个发光二极管,显然单片机没有这么多的端口,如果我采用锁存器来扩展端口,按8位的锁存器来计算,5x7的点阵需要35/8=5个锁存器。
这个数字比较大,因为我们仅仅是5x7的点阵,在实际应用中的显示屏往往要大得多,这样在锁存器上花的成本将是一个很大的数字。
因此在实际应用中的显示屏几乎都不采用这种设计,而采用另外一种称为动态扫描的显示方法。
动态扫描的意思简单地说就是逐行轮流点亮,这样扫描驱动电路就可以实现多行(比如7行)的同名列共用一套驱动器。
具体就5x7的点阵来说,把所有同1行的发光管的阳极连在一起,把所有同1列的发光管的阴极连在一起(共阳极的接法),先送出对应第一行发光管亮灭的数据并锁存,然后选通第1行使其燃亮一定时间,然后熄灭;再送出第二行的数据并锁存,然后选通第2行使其燃亮相同的时间,然后熄灭;以此类推,第7行之后,又重新燃亮第1行,反复轮回。
当这样轮回的速度足够快(每秒24次以上),由于人眼的视觉暂留现象,就能够看到显示屏上稳定的图形了。
采用扫描方式进行显示时,每一行有一个行驱动器,各行的同名列共用一个驱动器。
显示数据通常存储在单片机的存储器中,按8位一个字节的形式顺序排放。
显示时要把一行中各列的数据都传送到相应的列驱动器上去,这就存在一个显示数据传输的问题。
从控制电路到列驱动器的数据传输可以采用并列方式或串行方式。
显然,采用并行方式时,从控制电路到列驱动器的线路数量大,相应的硬件数目多。
当列数很多时,并列传输的方案是不可取的。
采用串行传输的方法,控制电路可以只用一根信号线,将列数据一位一位传往列驱动器,在硬件方面无疑是十分经济的。
但是,串行传输过程较长,数据按顺序一位一位地输出给列驱动器,只有当一行的各列数据都以传输到位之后,这一行的各列才能并行地进行显示。
这样,对于一行的显示过程就可以分解成列数据准备(传输)和列数据显示两部分。
对于串行传输方式来说,列数据准备时间可能相当长,在行扫描周期确定的情况下留给行显示的时间就太少了,以致影响到LED的亮度。
解决串行传输中列数据准备和列数据显示的时间矛盾问题,可以采用重叠处理的方法。
即在显示本行各列数据的同时,传送下一列数据。
为了达到重叠处理的目的,列数据的显示就需要具有所存功能。
经过上述分析,就可以归纳出列驱动器电路应具有的功能。
对于列数据准备来说,它应能实现串入并处的移位功能;对于列数据显示来说,应具有并行锁存的功能。
这样,本行已准备好的数据打入并行锁存器进行显示时,串并移位寄存器就可以准备下一行的列数据,而不会影响本行的显示。
图1为显示屏电路实现的结构框图。
3设计目的:
掌握单片机控制原理与光显示器件的应用
熟悉汇编语言编程
主要器件:
AT89C51,RP1(100K*8),16*16LED点阵(green共阴极),74H154,晶振(12M),2个30PF电容,0.01UF电容,R1(100K),按钮开关
任务要求:
通过AT89C51的P1.0—P1.3连接4—16线译码器74LS154对16*16LED点阵的每一竖列进行逐列扫描,并将P0与P2端口作为数据输出端点亮数码管发光显示,实现“新余学院机电工程学院***单片机课程设计;”字样,并依次左移循环显示
3.1LED动态显示原理:
LED点阵显示系统中各模块的显示方式:
有静态和动态显示两种。
静态显示原理简单、控制方便,但硬件接线复杂,在实际应用中一般采用动态显示方式,动态显示采用扫描的方式工作,由峰值较大的窄脉冲电压驱动,从上到下逐次不断地对显示屏的各行进行选通,同时又向各列送出表示图形或文字信息的列数据信号,反复循环以上操作,就可显示各种图形或文字信息。
点阵式LED绝大部分是采用动态扫描显示方式,这种显示方式巧妙地利用了人眼的视觉暂留特性。
将连续的几帧画面高速的循环显示,只要帧速率高于24帧/秒,人眼看起来就是一个完整的,相对静止的画面。
最典型的例子就是电影放映机。
在电子领域中,因为这种动态扫描显示方式极大的缩减了发光单元的信号线数量,因此在LED显示技术中被广泛使用。
以8×8点阵模块为例,说明一下其使用方法及控制过程。
图2.1中,红色水平线Y0、Y1……Y7叫做行线,接内部发光二极管的阳极,每一行8个LED的阳极都接在本行的行线上。
相邻两行线间绝缘。
同样,蓝色竖直线X0、X1……X7叫做列线,接内部每列8个LED的阴极,相邻两列线间绝缘。
在这种形式的LED点阵模块中,若在某行线上施加高电平(用“1”表示),在某列线上施加低电平(用“0”表示)。
则行线和列线的交叉点处的LED就会有电流流过而发光。
比如,Y7为1,X0为0,则右下角的LED点亮。
再如Y0为1,X0到X7均为0,则最上面一行8个LED全点亮。
现描述一下用动态扫描显示的方式,显示字符“B”的过程。
其过程如图3.1
图3.1用动态扫描显示字符“B”的过程
Proteus中只有5×7和8×8等LED点阵,并没有16×16LED点阵,而在实际应用中,要良好地显示一个汉字,则至少需要16×16点阵。
下面我们就首先介绍使用8×8点阵构建16×16点阵的方法,并构建一块16×16LED点阵,用于本次设计。
首先,从Proteus7.5的元件库中找到“MATRIX-8X8-RED”元器件,并将四块该元器件放入Proteus文档区编辑窗口中。
此时需要注意,如果该元器件保持初始的位置(没有转动方向),我们要首先将其左转90°,使其水平放置,那么此时它的左面8个引脚是其行线,右边8个引脚是其列线(当然,如果你是将右转,则右边8个引脚是行线)。
然后我们将四个元器件对应的行线和列线分别进行连接,使每一条行线引脚接一行16个LED,列线也相同。
并注意要将行线和列线引出一定长度的引脚,以便下面我们使用。
连接好的16×16点阵如图3.2所示。
成如上图的16×16点阵只是第一步,这样分开的数块并不能达到好的显示效果,下面我们要将其进一步组合。
组合实际上很简单,首先选中如上图中右侧的两块8×8点阵,然后拖动并使其与左侧的两块相并拢,如图3.3所示。
图3.3
可以看到原来的连线已经自动隐藏了,至于线上的交点,我们不要去动。
然后,我们再来最后一步,选中下侧的两块点阵,并拖动使其与上侧的两块并拢,最后的效果如图3.4所示。
看到,原来杂乱的连线现在已经几乎全部隐藏了,一块16×16的LED点阵做成了。
需要注意,做成的LED点阵的行线为左侧的16个引脚,下侧的16个引脚为其列线,而且其行线为高电平有效,列线为低电平有效。
然后,我们将其保存,以便以后使用。
//*16X16LED点阵流动显示*//
ORG0000H
AJMPMAIN
ORG0030H
MAIN:
MOVDPTR,#TAB;字码表初址赋值
MOVR1,#00H;列控制码
MOVR4,#144;移动“”及“单片机仿真”6个字符,共96列
CM:
MOVR5,#5;每屏反复显示5次
MOVR3,#16;列数
C1:
MOVR2,#0;取码指针
C16:
MOVP0,#00H
MOVP2,#00H;关显示
CLRP3.0
MOVA,R2
MOVCA,@A+DPTR;取当前列显示字码的第一个字节
MOVP0,A;送1~8行控制口
INCR2
MOVA,R2
MOVCA,@A+DPTR;取当前列的显示字码的第二个字节
MOVP2,A;送9~15行控制口
INCR2
MOVP1,R1;送列控制码
INCR1
ACALLD1MS;显示2MS
ACALLD1MS
DJNZR3,C16;一屏16列是否显示完
MOVR3,#16
DJNZR5,C1;未显示5次,继续
INCDPTR;一屏反复显示5次完,字码表初值加2
INCDPTR
DJNZR4,CM;144列未移动完,继续
AJMPMAIN;144列移动完,返回,重新从“”开始显示
D1MS:
MOVR6,#2
MOVR7,#248
DJNZR7,$
DJNZR6,$-4
RET
TAB:
字模
从理论上来说,24Hz以上的刷新频率就能看到稳定的连续的显示,刷新率越高,显示越稳定,同时刷新频率越高,显示驱动程序占用的CPU时间越多。
试验证明,在目测条件下刷新频率40Hz一下的画面看起来闪烁较严重,刷新频率50Hz以上的已基本察觉不出画面的闪烁,刷新频率达到85Hz以上时再增加画面闪烁没有明显的改善。
显示效果处理程序的内容及方法非常广泛,其调试过程在此不作具体讨论,读者可以照源程序自行分析。
这个方案设计的5x7的点阵LED图文显示屏,电路简单,成本较低,且较容易扩展成更大的显示屏;显示屏各点亮度均匀、充足;显示图形或文字稳定、清晰无串扰;可用静止、移入移出等多种显示方式显示图形或文字。
3.2根据单片机原理设计自己名字:
#include
#defineint8unsignedchar
#defineint16unsignedint
#defineint32unsignedlong
int8flag;
int8n;
int8codetable[][32]={
{0x08,0x40,0xF8,0xFF,0x18,0x63,0x18,0x63,
0xD8,0x6F,0x18,0x63,0x18,0x63,0xF8,0x7F,
0x58,0x68,0xD8,0x7F,0xD8,0x6C,0xD8,0x6C,
0xCC,0x6F,0x4C,0x64,0x04,0x78,0x02,0x20},/*""周"*/
{0x00,0x10,0x40,0x10,0xDE,0x13,0x4C,0xEA,
0x4C,0x46,0x4C,0x6A,0xDE,0x33,0x0C,0x51,
0x4C,0x89,0x4C,0x47,0x4C,0xFD,0x5C,0x6D,
0x4E,0x6D,0x62,0x6F,0xF0,0x7D,0x20,0x44},/*"璐"*/
{0x00,0x10,0x40,0x10,0xDE,0x13,0x4C,0xEA,
0x4C,0x46,0x4C,0x6A,0xDE,0x33,0x0C,0x51,
0x4C,0x89,0x4C,0x47,0x4C,0xFD,0x5C,0x6D,
0x4E,0x6D,0x62,0x6F,0xF0,0x7D,0x20,0x44},/*"璐"*/
};
voiddelay(void);
int16offset;
voidmain(void)
{
int8i;
int8*p;
flag=0x10;
n=0;
TMOD=0x01;
TH0=0xb1;
TL0=0xe0;
ET0=1;
EA=1;
TR0=1;
p=&table[0][0];
while
(1)
{
for(i=0;i<8;i++)//显示左半边屏幕
{
P0=0x00;
P2=i|0x08;//P2.4=0,P2.3=1选中U2,输出扫描码给U6
P0=*(p+offset+2*i);
delay();
P0=0x00;
P2=i|0x10;//P2.4=1,P2.3=0选中U3,输出扫描码给U7
P0=*(p+offset+2*i+1);
delay();
}
for(i=8;i<16;i++)//显示右半边屏幕
{
P0=0x00;
P2=(i-8)|0x20;//P2.5=1P2.4=0,P2.3=0选中U4,输出扫描码U8
P0=*(p+offset+2*i);
delay();
P0=0x00;
P2=(i-8)|0x40;//P2.6=1P2.5=0,P2.4=0选中U5,输出扫描码U9
P0=*(p+offset+2*i+1);
delay();
}
}
}
voiddelay(void)
{
int16i;
for(i=0;i<30;i++)
;
}
voidtimer0()interrupt1using3
{
TF0=0;
TH0=0xb1;
TL0=0xe0;
if(n<100)
{
n++;
}
else
{
offset+=2;
if(offset>64)
offset=0;
n=0;
}
4总结
本文设计的一个室内用5x7的点阵LED图文显示屏,能够在目测条件下LED显示屏各点亮度均匀、充足,可显示图形和文字,显示图形和文字应稳定、清晰无串扰。
图形或文字显示有静止、移入移出等显示方式。
本系统具有硬件少,结构简单,容易实现,性能稳定可靠,成本低等特点。
总结本文的研究工作,主要做了下面几点较突出的工作:
1、通过查阅大量的相关资料,详细了解了LED的发光原理和LED显示屏的原理,了解了LED的现状,清楚地了解了LED显示屏与其它显示屏相比较有那些
优点,明确了研究目标。
2、本文设计的LED显示屏能够实现在目测条件下LED显示屏各点亮度均匀、充足,可显示图形和文字,显示图形和文字应稳定、清晰无串扰。
图形或文字显示有静止、移入移出等显示方式。
3、文章给出了系统具体的硬件设计方案,硬件结构电路图,软件流程图和具体汇编语言程序设计与调试等方面。
4、在这次毕业设计的过程中学会了Protel99se的基本使用,感到Protel99se对电子专业的同学来说是一门很有用的课程。
5、通过这次毕业设计,重新复习并进一步学习了MCS-51;熟练掌握
了WORD软件的使用。
6、存在缺陷:
没有考虑抗干扰的问题。
致谢
本文是在党国庆老师的悉心指导下完成的。
从课题的立项、选题到课题的开发与研究,再到本论文的撰写到定稿的每一步工作都倾注着党老师的心血和汗水,同时得到同学们相助,并提供了大量的资料.在此,对于老师和同学们的帮助表示忠心的感谢。
参考文献
1.何立民.MCS-51系列单片机应用系统设计与接口技术.北京航空航天大学出版社,1990
2.任涛等.闪速存储器数据及应用简明速查手册.电子工业出版社,1997
3.何立民.单片机应用技术选编.北京航空航天大学出版社,2000
4.张毅刚等.MCS-51单片机应用设计.哈尔滨工业电子出版社,1996
5.邬宽明.单片机外围器件实用手册.北京航空航天大学出版社,1998
6.张凯.LED介绍完全手册.北京航空航天大学出版社,2000
7.张友德等.单片微型机原理应用与实验,复旦大学出版社,1996