基于单片机的LED显示器系统单片机期末课程设计Word格式文档下载.doc
《基于单片机的LED显示器系统单片机期末课程设计Word格式文档下载.doc》由会员分享,可在线阅读,更多相关《基于单片机的LED显示器系统单片机期末课程设计Word格式文档下载.doc(18页珍藏版)》请在冰豆网上搜索。
参考文献:
20
基于单片机的LED字符显示器
第1节引言
当今世界,电子技术迅猛发展,点阵式显示器件作为现代信息显示的重要媒体,在金融证券、体育、机场、交通、商业、广告宣传、邮电电信、指挥调度、国防军事等许多领域中得到了广泛应用。
因此点阵式显示器件的研制、生产也的到了迅速的发展,并逐步形成产业,成为光电子行业的新兴产业领域。
目前,点阵式显示器件具体包括LED显示模块和LCD显示模块等。
现在发展的LCD比较先进,LCD的优点较为明显,他体积小,容易控制,功能强,价格适宜,能够适应显示器的发展方向,因而在通信、家电、大屏幕投影等领域得到了越来越广泛的应用;
随着社会经济的迅猛发展,工业生产逐渐实现了自动化,其中,设备的工作状态和生产过程状态的显示与监控起到了非常重要的作用,对于那些需要显示的信息量不是很大,分辨率不是很高,又需要制造成本相对比较低的场合,使用大、小屏幕LED点阵显示器是比较经济适用的,他可以显示字符、数字、汉字和简单图形,可以根据需要使用不同字号、字型,显示亮度较高,并且对环境条件要求比较低。
LED显示又可以分为单色显示和双色显示,可以按照需要的大小、形状和颜色进行组合,并用单片机控制实现各种文字或图形的变化,达到宣传和提示的目的。
据不完全统计,1991年,全国LED显示屏的产值还不到亿元人民币,而在1993年,仅蓝通公司一家企业的显示屏产值即达1亿多人民币。
由于LED电子显示屏具有所显内容信息量大,外形美观大方,操作使用方便灵活.适用于火车,汽车站,码头,金融证券市场,文化中心,信息中心体育设施等公共场所.该项目广泛涉及了计算机及电子技术中的电源技术,单片机技术,数据通讯技术,显示技术,存储技术,系统软件技术,接口及驱动等技术.我国经济发展迅猛,对信息传播有越来越高的要求.可以相信,LED电子显示屏以其色彩鲜亮夺目,大的显示信息量,寿命长,耗电量小,重量轻,空间尺寸小,稳定性高,易于操作,安装和维护等特点,将在社会经济发展中扮演越来越重要的角色。
1.1系统概述
单片机控制的时钟电路,根据不同的要求有不同的设计思路,根据我们现在的水平和现有的设计能力,我们选择了比较简单的那种电路,但是,也是有两种可以选择的方案。
方案一:
显示预先想要显示的内容,在本设计中要求显示“电子设计”四个文字,显示方式分三种:
①逐字显示,②向上滚动显示,③向左滚动显示。
本程序中显示前两中.
方案二:
在8X8LED点阵上显示柱形,让其先从左到右平滑移动三次,其次从右到左平滑移动三次,再次从上到下平滑移动三次,最后从下到上平滑移动三次,如此循环下去。
方案三:
点阵LED扫描介绍:
点阵LED一般采用扫描式显示,实际运用分为三种方式:
(1)点扫描
(2)行扫描(3)列扫描
若使用第一种方式,其扫描频率必须大于16*64=1024Hz,周期小于1ms即可。
若使用第二种和第三种方式,则频率必须大于16*7=128Hz,周期小于7.8ms即可符合视觉暂留要求。
此外一次驱动一列或一行(8颗LED)时需外加驱动电路提高电流,否则亮度会不足。
根据烧入程序的不同而显示的方式就不同.
显示屏在设计与使用中存在如下问题:
1.由于要对显示屏上数以万计的像素进行控制,并且随着显示屏面积的增大,电路结构也非常庞大,因此系统的模块化设计成为重点考虑的问题.
2.为了在屏上显示动画,视频图像等信息,显示系统必须用30帧/秒以上的速度来更新显示画面,这就要求显示系统有非常高的处理速度.
3.为了在显示屏上细致的显示出信息所表示的形状,一般每帧有多至几百KB的显示数据送到显示屏,因此有非常大的数据传输量.
4.用LED器件制造的显示屏主要用于大型公共设施和室外场所,尺寸通常在几米到几十米长,显示数据传输距离达几百米到千米以上.
有上文可以看到LED显示屏的制造技术是集大容量的数据传输,高速处理,高速LED控制,超高亮度LED器件等技术于一体,涉及了计算机,信息,电子技术,色彩学等领域的综合产物,有着较高的技术难度和较大的生产工作量.
对于上文所述的难点有以下解决方案:
1.总体设计采用集散控制方案,在统一协调的基础上来进行分级递阶控制,并通过功能分散,危险分散来达到设计的优化.
2.化整为零,将显示屏分解为规模较小的显示单元,即用显示单元来组成显示系统.
3.显示单元本身具有与显示屏相同的控制功能,并具有良好的嵌入性.
4.显示单元具备稳定,高速,简洁的长距离数据传输系统.
5.显示单元组成的显示系统应结构简单,性能稳定.
本设计思路是:
利用单片机对整个系统进行总体控制,进行显示所要显示的字符。
显示方式分为三种:
逐字显示、上滚显示、左滚显示,其中显示字模数据由单片机输入显存,点阵的点亮过程有程序控制,由驱动电路完成,点阵采用单色显示,该显示器电路的特点是:
点阵的动态显示过程占用时间比较短,亮度比较高,而且亮度可以改变电阻进行调节。
系统的总体设计框图
单片机最小系统
控制部分
显示部分
时钟
电路
复位
第二节系统主要硬件电路设计
2.1硬件电路整体设计
本字符显示器采用AT89C52单片机作控制器,12MHZ晶振,8*8点阵共阳LED显示器,其中,P0作为字符数据输出口,P2为字符显示扫描输出口,第31脚(EA)接电源,P1.0~P1.2口分别接开关K1、K2、K3,改变电阻(270*)的大小可改变显示字符的亮度,驱动用9012三极管。
2.2硬件电路的结构图
AT89C52的引脚结构图:
AT89C52是一个低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的Flash只读程序存储器和256bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大的AT89C52单片机可为您提供许多较复杂系统控制应用场合。
AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52可以按照常规方法进行编程,也可以在线编程。
其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。
此外,AT89S52设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。
空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。
2.3硬件电路的主要特性
主要功能特性:
·
兼容MCS-51指令系统
·
8k可反复擦写(>
1000次)ISPFlashROM
32个双向I/O口
4.5-5.5V工作电压
3个16位可编程定时/计数器
时钟频率0-33MHz
全双工UART串行中断口线
256x8bit内部RAM
2个外部中断源
低功耗空闲和省电模式
中断唤醒省电模式
3级加密位
看门狗(WDT)电路
软件设置空闲和省电功能
灵活的ISP字节和分页编程
双数据寄存器指针
8X8 点阵LED工作原理说明
8X8点阵LED结构如下图所示:
从上图中可以看出,8X8点阵共需要64个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一列置1电平,某一行置0电平,则相应的二极管就亮;
因此要实现一根柱形的亮法,如上图所示,对应的一列为一根竖柱,或者对应的一行为一根横柱,因此实现柱的亮的方法如下所述:
一根竖柱:
对应的列置1,而行则采用扫描的方法来实现。
一根横柱:
对应的行置0,而列则采用扫描的方法来实现。
第3节系统的软件设计
3.1主程序
在刚上电时对系统进行初始化,然后读一次键开关状态,由键标志位值(00H、01H、02H)决定显示的方式。
主程序流程图如下:
开始
调用扫描子程序
(KEYWORK)
20H.0=1?
?
20H.1=1?
20H.2=1?
转向左滚动显示程序(FUN2)
转逐字显示程序(FUN0)
转向上滚动显示程序(FUN1)
Y
N
3.2初始化程序
在系统初始化时,对四个端口进行复位,将显示用的字符数据从ROM表中装入内存单元50H—6FH中。
“电子设计”中的每个字占用8个地址单元。
3.3显示程序
显示程序由显示主程序和显示子程序写成。
显示主程序负责每次显示时的显示地址首址(在B寄存器中)、每个字的显示时间(由30H中的数据决定)和下一个显示地址的间隔(31H中的数据决定)的处理。
显示子程序则负责对指定8个地址单元的数据进行输出显示,显示一个完整文字的时间约为8ms。
在显示子程序中,1ms延时程序是用调用键扫描子程序的方法实现的。
下图为逐字显示及向上滚动显示方式时的显示控制程序流程图;
逐字或上移显示开始
设1帧显示时间及换帧布距
显示首址修改:
(B)+R5—(B)
调显示子程序(DISPLAY)
寄存器B、R4、R5赋初值
转START1
(R4)-1=0?
(B)=#68H?
利用键扫描程序代替显示程序中的1ms延时程序,既为了按键的快速响应,又可以提高动态显示的扫描频率,减少文字显示时的闪烁现象。
对于多个文字的大屏幕显示,应该使用输出数据缓冲寄存器,才可以得到稳定的显示文字。
程序设计清单
SECOND
EQU30H
MINITE
EQU31H
HOUR
EQU32H
HOURK
BITP0.0
MINITEK
BITP0.1
SECONDK
BITP0.2
DISPBUF
EQU40H
DISPBIT
EQU48H
T2SCNTA
EQU49H
T2SCNTB
EQU4AH
TEMP
EQU4BH
ORG00H
LJMPSTART
ORG0BH
LJMPINT_T0
START:
MOVSECOND,#00H
MOVMINITE,#00H
MOVHOUR,#12
MOVDISPBIT,#00H
MOVT2SCNTA,#00H
MOVT2SCNTB,#00H
MOVTEMP,#0FEH
LCALLDISP
MOVTMOD,#01H
MOVTH0,#(65536-2000)/256