第一篇:a点阵报告
16*16点阵式广告牌报告
组员:赵泽翔
班级:圆方1301 指导老师:夏敏磊
童景哲
王诵鉴
一、设计思路
此次点阵是16*16规格,用红色LED逐个焊在板子上,行驱动用74hc138芯片,列驱动用74hc595芯片,中央控制器用89c51芯片。
二、MCU—89c51
三、74HC138驱动模块
74HC138 原理图 真值表:
软件设计思路:两块74C138直接A、B、C口直接接单片机的P2前3个口,利用P2.3和P2.4分别控制两块138芯片的使能端,设置单片机初始是0x80,这样第一块芯片就能运行了,当数值加到0x10时就能控制第二块芯片,利用row++;P2=row;这样就能实现行扫描。
四、595驱动模块
74HC595简单说明
74hc595模块原理图
74ls595能实现串行输入并行输出的功能,利用这一功能直接将模传输进去,就能实现列的扫描。
void send(unsigned int lie4data)
//74ls595传输子程序 { unsigned int i;//列
for(i=0;i<8;i++){ SH_CP=0;DS=(lie4data&0x80)>>7;lie4data=lie4data<<1;SH_CP=1;} }
五、点阵
使用256个红色LED焊在板子上,红色led的电压、电流承受能力有点低,和绿色的没法比,不过红色的led比较好看。所以我们选用红色LED。
六、主程序
void main(){
while(1)
{
unsigned char n;// unsigned char row=0x07;
unsigned int c;
unsigned char a;
for(c=0;c<=37*16;c++){
for(a=0;a<=v;a++){ //
row=0x07;
for(n=0;n<16;n++)
{
ST_CP=0;
send(lie1[2*n+2*c]);
send(lie1[2*n+1+2*c]);
P2=row[n];//
row++;//
P2=row;
ST_CP=1;
//扫描行列
}
delay();
}
}
}
}
七、总结
这次点阵的实验耗费了我大量的时间,并且通宵焊板子焊了好几夜,通宵写程序写了好几夜,程序全部是自己写的,脑袋都快想破了,真想不出那些人是怎么把那些无线、彩屏那些程序写出来,经过这次党的点阵实验,我觉的自己效率太低,写了两个月的程序才把他写出来,虽然全是自己写的,不过感觉两个月的时间可以给我学到很多别的知识,最后只学到点阵这一块知识点,哎。说起点阵,这点阵之路也是很坎坷的,开始想做32*16的,结果变成16*16,后来说点阵的pcb画不出,把点阵改成8*8的,我越想越生气,最初的梦想还有吗?当天晚上就焊了256个小灯的16*16点阵,然后是画驱动的pcb,总共腐蚀了4遍,改了4遍的pcb图,最后我把驱动的板子调出来,由于16*16点阵板经常有人好奇的拿起来看,所以也不知是谁,把我的点阵板中烧了2个led,查了一个晚上才查出是点阵的问题并把其中的2个led补上去。程序的话,写了一个月,期间跟傻子没什么两样,一大早起来,想到程序这样可能回对,飙车到实验室,一试没用,这样的情况有过10几次,记得自动控制考试的时候,刚开始考试,就想到程序可能是这样写的,结果考试都没有心情了,还没做完就直接交卷跑了,电力电子考试也是这样,结果两次都不能用,把我打击的不像样子了,不过在我最后的一次通宵的晚上,终于把点阵的程序搞定了。不过当我把驱动板调出来,并接上点阵时,效果和预想的一样的时候,我的脸上并没有露出久违的笑容,而是淡淡的送了口气,本
来我以为自己会哈哈大笑的,可能花的心血太多了吧,成功已是预料之内的事了吧。
第二篇:LED点阵开题报告
毕业设计(论文)开题报告
题 目 基于单片机的
led点阵显示系统的设计
二〇一二年十二月
开题报告填表说明 1.开题报告是毕业设计(论文)过程规范管理的重要环节,是培养学生严谨务实工作作风的重要手段,是学生进行毕业设计(论文)的工作方案,是学生进行毕业设计(论文)工作的依据。
2.学生选定毕业设计(论文)题目后,与指导教师进行充分讨论协商,对题意进行较为深入的了解,基本确定工作过程思路,并根据课题要求查阅、收集文献资料,进行毕业实习(社会调查、现场考察、实验室试验等),在此基础上进行开题报告。3.课题的目的意义,应说明对某一学科发展的意义以及某些理论研究所带来的经济、社会效益等。
4.文献综述是开题报告的重要组成部分,是在广泛查阅国内外有关文献资料后,对与本人所承担课题研究有关方面已取得的成就及尚存的问题进行简要综述,并提出自己对一些问题的看法。
5.研究的内容,要具体写出在哪些方面开展研究,要突出重点,实事求是,所规定的内容经过努力在规定的时间内可以完成。6.在开始工作前,学生应在指导教师帮助下确定并熟悉研究方法。7.在研究过程中如要做社会调查、实验或在计算机上进行工作,应详细说明使用的仪器设备、耗材及使用的时间及数量。8.课题分阶段进度计划,应按研究内容分阶段落实具体时间、地点、工作内容和阶段成果等,以便于有计划地开展工作。9.开题报告应在指导教师指导下进行填写,指导教师不能包办代替。10.开题报告要按学生所在系规定的方式进行报告,经系主任批准后方可进行下一步的研究(或设计)工作。篇二:led点阵显示系统开题报告
电气与信息学院
毕业设计(论文)开题报告
《基于单片机的led点阵显示系统设计》开题报告
一、课题的目的和意义
1、研究目的(1)运用51系列单片机控制技术,编写程序,通过程序控制led的显示,使led显示能够固定,平移,左右跑马,垂帘等多种显示功能,达到熟练使用c51语言进行单片机编程的目的。
(2)以89c51单片机为主要芯片,通过与译码器芯片、行列驱动器件及周围辅助电路的连接,形成硬件电路,并用dxp2004绘制出电路原理图与pcb图。通过设计,达到熟练使用dxp绘图的目的,同时锻炼动手能力,并对51系列单片机熟练应用。
2、研究意义 led是取自 light emitting diode 三个字的缩写,中文译为“发光二极管”,顾名思义发光二极管是一种可以将电能转化为光能的电子器件具有二极管的特性。
八十年代以来出现了组合型ied点阵显示器,以发光二极管为像素,它用高亮度发光二极管芯阵列组合后,环氧树脂和塑模封装而成。具有高亮度、功耗低、引脚少、视角大、寿命长、耐湿、耐冷热、耐腐蚀等特点。点阵显示器有单色和双色两类,可显示红,黄,绿,橙等。led点阵有4×4、4×8、5×7、5×8、8×8、16×16、24×24、40×40等多种。目前,在大型商场、车站、码头、地铁站以及各类办事窗口等越来越多的场所需要用led点阵显示图形和汉字。led行业已成为一个快速发展的新兴产业,市场空间巨大,前景广阔。随着信息产业的高速发展,led显示作为信息传播的一种重要手段,已广泛应用于室内外需要进行服务内容和服务宗旨宣传的公众场所,例如户内外公共场所广告宣传、机场车站旅客引导信息、公交车辆报站系统、证券与银行信息显示、餐馆报价信息豆示、高速公路可变情报板、体育场馆比赛转播、楼宇灯饰、交通信号灯、景观照明等。显然,led显示已成为城市亮化、现代化和信息化社会的一个重要标志。
二、文献综述
发光二极管是一种可以将电能转化为光能的电子器件具有二极管的特性。目前不同的发光二极管可以发出从红外到蓝间不同波长的光线,目前发出紫色乃至紫外光的发光二极管也已经诞生。除此之外还有在蓝光 led 上涂上荧光粉将
蓝光转化成白光的白光led。
制造led的材料不同,可以产生具有不同能量的光子,借此可以控制led所发出光的波长,也就是光谱或颜色。历史上第一个led所使用的材料是砷(as)化镓(ga),其正向pn结压降(vf,可以理解为点亮或工作电压)为1.424v,发出的光线为红外光谱。另一种常用的led材料为磷(p)化镓(ga),其正向pn结压降为2.261v,发出的光线为绿光。在实际使用中,led显示屏这种主动发光体一般采用cd/平方米作为发光强度单位,并配合观察角度为辅助参数,其等效于屏体表面的照度单位勒克司;将此数值与屏体有效显示面积相乘,得到整个屏体的在最佳视角上的发光强度,假设屏体中每个像素的发光强度在相应空间内恒定,则此数值可被认为也是整个屏体的光通量。一般室外led显示屏须达到4000cd/平方米以上的亮度才可在日光下有比较理想的显示效果。普通室内led,最大亮度在700~2000 cd/平方米左右。当多个led较紧密规则排放,其发光球面相互叠加,导致整个发光平面发光强度分布比较均匀。在计算显示屏发光强度时,需根据led视角和led的排放密度,将厂商提供的最大点发光强度值乘以30%~90%不等,作为单管平均发光强度。
常见的led点矩阵显示器有5*
7、5*
8、8*8等3种阵型。高度有17.78mm、30.48mm,35.56mm,50.80mm,60mm,42mm等多种。尺寸有小到只有0.7英寸的757,也有大到4英寸的4085,最常见的是约2英寸的2057、2058及2088品种。其中5*7阵型主要用于西文显示,5*8阵型用于中西文显示,8*8阵型主要用于中文显示,也可用于西文显示,这几种阵型都可显示图形。l ed 已经有近30 年的历史, 广泛应用于指示灯, 大屏幕显示等, 1996 年l ed 在全世界的销售额已达几十亿美元。由于l ed 具有使用寿命长, 能经受较强的冲击和震动, 可靠性高、工作电流小, 可与数字电路兼容等许多优点, 一直受到研究开发人员的重视。l ed 大屏幕电子显示屏在国内外已被普遍采用。同其它显示媒体相比, 它具有显示内容丰富、动态范围广、画面生动、无污染、寿命长、亮度高、效果好等显著优点, 是目前性能价格比最高的显示媒体。
三、研究(设计)内容和拟解决的关键问题
1、研究内容
(1)研究单片机i/o接口的扩展与led的行列驱动方式。
(2)以89c51芯片为主体,与行列驱动芯片、译码器及其它外围电路结合进行电路图设计与pcb图绘制。
(3)研究led点阵显示的原理,并用c51语言进行软件编程。
(4)通信电路的设置。(5)在线调试仿真,以达到所需结果。
2、研究途径
收集资料和文献,系统学习led点阵显示系统的原理,根据设计要求进行软件编程,并进行程序调试,仿真。设计以89c51单片机为主芯片、以rs-232作为通信设备,以74hc595做为列驱动,用三极管2n5401来作为行驱动和一片8*8led点阵显示屏来设计电路原理图和pcb。
3、技术路线
(1)首先要了解led点矩阵的结构、种类及用途,并知道led的内部结构及工作方式,最主要的是其行列驱动。
(2)选择合适的行列驱动芯片。(3)选择8位高性能单片机89c51为核心控制器控制led的显示,并设计单片机硬件和软件系统。硬件设计采用dxp2004制作原理图和印刷电路板,软件设计计划采用89c51汇编语言编程,以有效提高软件开发和维护效率。
(4)进行在线调试与仿真,使其实现led能够固定,平移,左右跑马,垂帘等多种显示功能。
4、拟解决的关键问题
(1)led点阵显示系统的硬件设计: l e d 点阵显示系统由计算机、行列驱动电路、控制电路和led点阵显示电路构成。这是完成硬件设计所必需的。在硬件设计中,最重要的是如何选择好需要的芯片,使电路达到最佳效果且成本最低。
(2)led点阵显示的原理及软件设计:本次设计的点阵led显示系统以单片机89c 5l为基础,加以外围电路,实现led显示固定、平移、左右跑马、垂帘等多种功能。在编程过程中,最重要的是明白led点阵显示的原理与单片机的通信原理,理清编程思路。
四、研究(设计)方案与进度计划安排
1、研究(设计)方案:(1)主控制器的选择方案
方案一:采用通用的51单片机at89c51作为主控制器,at89c51是一种带4k字节闪烁可编程可擦除只读存储器(fperom—falsh programmable and erasable read only memory)的低电压,高性能cmos8位微处理器。at89c2051是一种带2k字节 闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用atmel高密度非易失存储器制造技术制造,与工业标准的mcs-51指令集和输出管脚相兼容,且价格低廉。
方案二:采用pic系列的pic17cxx单片机,其特点是速度快,所以适用于高速数字运算的应用场合中,加之它具备一个指令周期内(160ns)可以完成8×8(位)二进制乘法运算能力,所以可取代某些dsp产品。再有pic17cxx单片机具有丰富的i/o控制功能,并可外接扩展eprom和ram,使它成为目前8位单片机中性能最高的机种之一。所以很适用于高、中档的电子设备中使用。
但在该设计中,所需存储数据和运算速度都没有太高要求,因此选用方案一。
(2)显示驱动器件的选择
方案一:采用74hc595作为列驱动,74hc595是硅结构的cmos器件,兼容低电压ttl电路,遵守jedec标准。74hc595是具有8位移位寄存器和一个存储器,三态输出功能。移位寄存器和存储器是分别的时钟。8位串行输入/输出或者并行输出移位寄存器,具有高阻关断状态。这使列数据的准备和列数据的显示可以同时进行。十分适合本设计。
方案二:采用74ls154与16个三极管来做驱动。74ls154是一个4-16译码器,它需要单片机的四个i/o口来控制,且自身不能完成驱动,需三极管来完成驱动部分。使用74ls154不仅浪费i/o口,而且使电路变得复杂,因此,应选择方案一。
2、进度计划安排
五、预期结果和创新成果 led显示能够固定,平移,左右跑马,垂帘等多种显示功能,并能够保证长时间的显示。设计开始采用16*16的led点阵屏,在此基础上进行扩展,扩大点阵显示屏,使显示屏可动态滚动显示多个字符或图案。篇三:基于单片机的led点阵显示屏的合计的开题报告
衡水学院
毕业设计开题报告
题目:基于单片机的led点阵显示屏的设计
学生姓名 : 肖霄
系 别 : 物理与电子信息系 专 业 : 电子信息工程
年 级 : 2008级
学 号 : 200840513043 指导教师 : 郭海丽
衡水学院教务处印制
毕业设计开题篇四:led点阵电子显示屏开题报告
武汉工程大学邮电与信息工程学院2011届毕业设计(论文)
开题报告
注:此表中的一、二、三项,由学生在教师的指导下填写。
报告
第三篇:LED点阵屏报告
大作业报告
课程:单片机系统项目设计
题目:16X64LED点阵屏设计与制作
系 别
信息工程系
专 业
电子应用技术
学 号
123242****
学生姓名
lsxc晓
任课教师 完成日期 2014/6/22
目录
1.设计内容及要求………………………………………………………………..3 2.设计方法…………………………………………………………………………..4 3.16X64LED点阵屏PCB板图设计图…………………………………………..5 4.显示字符(汉字)程序设计……………………………………………….7 5.显示汉字图片…………………………………………………………………………..9 6.总结……………………………………………………………………..9
设计题目:16X64点阵屏设计与制作
设计一个16X64 LED点阵屏,并用所设计的LED点阵屏静态或滚动显示汉字。要求完成电路原图、PCB板图的设计及制作(工厂打板),器件焊接及电路调试、汉字显示程序的编写等工作。
2.1
8X8LED点阵的结构及显示字符原理
利用PC上的8*8点阵汉字库,提取后将点阵文件存入ROM,直接利用PC中汉字内码作为单片机系统的编码。并使用外部中断和定时中断,采用74LS373作为地址锁存器。
LED阵列是将多个LED以矩阵方式排列成一个器件,其中各LED的引脚有规律的连接。我们以最常见的8×8单色LED点阵显示器为例。8×8 LED的内部电路结构和外型规格
如图1所示
图1 8X8LED点阵的结构及显示
2.2 16X16LED点阵的结构及显示汉字原理
16×16的点阵显示屏共有256个发光二极管(如图2),显然单片机没有这么多端口,如果我们采用锁存器来扩展端口,按8位的锁存器来计算,16×16的点阵需要256/8=32个锁存器。
就16×16的点阵来说,我们把所有同一行的发光管的阳极连在一起,把所有同一列的发光管的阴极连在一起,先送出对应第一行发光管亮灭的数据并锁存,然后选通第一行使其燃亮一定的 时间,然后熄灭;再送出第二行的数据并锁存,然后选通第二行使其燃亮相同的时间,然后熄灭;„„ 第十六行之后又重新燃亮第一行,这样反复轮回。
图2 16X16LED点阵的结构
2.3
16X64LED点阵设计
本系统采用AT89C51单片机作控制器。整个电路主要由单片机控制及其接口电路、驱动显示电路、电源电路等部分组成。本系统场扫描驱动电路的设计可用串人并出的通用集成电路74HC595来作为数据锁存。74HC595是一个八位串行输入三态并行输出的移位寄存器,8片74HC595进行级连,可共用一个移位时钟SCK及数据锁存信号RCK。这样,当第一行需要显示的数据经过8x8=64个SCK时钟后便可将其全部移入74HC595中。此时还将产生一个数据锁存信号RCK将数据锁存在74HC595中。并在使能信号G的作用下.使串人数据并行输出。
从而使与各输出位对应的场驱动管处于放大或截止状态;同时由行扫描控制电路产生信号使第一行扫描管导通,相当于第一行LED的正端都接高,显然,第一行LED管的亮灭就取决于74HC595中的锁存信号;此外,在第一行LED管点亮的同时。再在74HC595中移人第二行需要显示的数据,随后将其锁存,同时由行扫描控制电路将第一行扫描管关闭而接通第二行,使第二行LED管点亮,以此类推,当第十六行扫描过后再回到第一行,这样。只要扫描速度足够高。就可形成一幅完整的文字或图像。
我们来分析一下16*16点阵行控线,列控线。级联方法:如图四个点阵。把00,01相同的行线相连接。把10,11相同的行线相连接。把00,10相同的列线相连接。把,11相同的列线相连接。最后,00,01的列就作为16x16点阵的列控线。00,10的行就作为16x16 点阵的行控线。同理:16*64的点阵也是一样的,将同一行的所有行连在一起,同一列的所有列连在一起!(我们这次点阵用的是共阳型点阵,即行接阳极)
图3 LED显示屏接线图 74HC595介绍:
74HC595 是一款漏极开路输出的CMOS 移位寄存器,输出端口为可控的三态输出 端,亦能串行输出控制下一级级联芯片。10 脚 SCLR 移位寄存器清零端 直接接地,11 脚 SCK 数据输入时钟线 ,12 脚 RCK 输出存储器锁存时钟线,13 脚 OE 输出使能,低电平为输出有效,14脚SI数据线,串行输入数据,亦能串行输出数据到下一级级联芯片。
ME4953介绍:
LED点阵显示屏驱动,当每一显示行需要的电流是比较大时,要使用行驱动管,每片4953内部有两个行驱动管,可以驱动2个显示行。其内部是两个CMOS管,1、3脚VCC,2、4脚控制脚,2脚控制7、8脚的输出,4脚控制5、6脚的输出,只有当2脚为“0”时,7、8才会输出,否则输出为高阻状态(漏极开路),只有当4脚为“0”时,5、6才会输出,否则输出为高阻状态(漏极开)。
3.16X64LED点阵屏PCB板图设计图
图4 16X64LED点阵屏PCB原理图设计
图5 16X64LED点阵屏PCB板图
要考虑PCB 尺寸大小。PCB 尺寸过大时,印制线条长,阻抗增加,抗噪声能力下降,成本也增加;过小,则散热不好,且邻近线条易受干扰。在确定PCB 尺寸后.再确定特殊元件的位置。最后,根据电路的功能单元,对电路的全部元器件进行布局。输入输出端用的导线应尽量避免相邻平行。可以手动布线尽量手动布线。最好加线间地线,以免发生反馈藕合。数字、模拟元器件及其相应走线尽量远离并限定在各自的布线区域内.。
4.显示字符(汉字)程序设计
#include
#define uchar unsigned char #define uint unsigned int
uchar code tab1[]= {DB 00H,70H,7FH,80H,02H,10H,7FH,F8H,04H,00H,FFH,FEH,08H,10H,1FH,F8H,30H,10H,5FH,F0H,90H,10H,1FH,F0H,10H,10H,10H,10H,1FH,F0H,10H,10H};
uchar code tab2[]={DB 01H,10H,11H,10H,11H,10H,11H,10H,11H,14H,FFH,FEH,11H,10H,11H,10H,11H,10H,11H,10H,11H,F0H,11H,10H,10H,00H,10H,08H,1FH,FCH,00H,00H};
uchar code tab3[]= {DB 00H,10H,1FH,F8H,11H,10H,11H,10H,1FH,F0H,11H,10H,11H,10H,1FH,F0H,02H,80H,04H,60H,0CH,50H,34H,4EH,C4H,44H,04H,40H,08H,40H,10H,40H };
uchar code tab4[]={DB 10H,00H,10H,04H,17H,FEH,10H,20H,FCH,20H,10H,40H,30H,40H,38H,D0H,55H,48H,52H,46H,94H,42H,18H,40H,10H,40H,10H,40H,10H,40H,10H,40H };
uchar code hang[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0X0e,0x0f};
sbit DS = P3^0;sbit SH = P3^1;sbit OE = P2^0;sbit ST = P2^1;
void CH595(uchar BT7,uchar BT6,uchar BT5,uchar BT4,uchar BT3,uchar BT2,uchar BT1,uchar BT0){ uchar i;for(i=0;i<8;i++){
DS = BT7 >>7;
BT7 <<= 1;
SH = 0;
SH = 1;
}
for(i=0;i<8;i++){
DS = BT6 >>7;
BT6 <<= 1;
SH = 0;
SH = 1;} for(i=0;i<8;i++){ DS = BT5 >>7;BT5 <<= 1;SH = 0;SH = 1;} for(i=0;i<8;i++){ DS = BT4 >>7;BT4 <<= 1;SH = 0;SH = 1;} for(i=0;i<8;i++){ DS = BT3 >>7;BT3 <<= 1;SH = 0;SH = 1;} for(i=0;i<8;i++){ DS = BT2 >>7;BT2 <<= 1;SH = 0;SH = 1;} for(i=0;i<8;i++){ DS = BT1 >>7;BT1 <<= 1;SH = 0;SH = 1;}
for(i=0;i<8;i++){
DS = BT0 >>7;
BT0 <<= 1;
SH = 0;
SH = 1;
}
//ST = 0;//ST = 1;}
void main(void){ uint i;CH595(0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff);while(1){
for(i=0;i<16;i++)
{
OE=0;
CH595(~tab4[2*i+1],~tab4[2*i],~tab3[2*i+1],~tab3[2*i],~tab2[2*i+1],~tab2[2*i],~tab1[2*i+1],~tab1[2*i]);
P1=hang[i];
ST=1;
ST=0;
OE=1;
} } }
5.显示汉字图片
图6字幕显示
6.总结:
本文设计的一个16x64LED点阵汉字屏,能够在目测条件下LED显示屏各点亮度均匀、充足,显示文字稳定、清晰无串扰。文字显示为静止显示方式。本系统具有硬件少,结构简单,容易实现,性能稳定可靠,成本低等特点。
总结本文的研究工作,主要做了下面几点较突出的工作。
一、通过查阅大量的相关资料,详细了解了LED的发光原理和16X64点阵屏设计与制作原理,了解了LED的现状和LED显示屏与其它显示屏相比较的优点,明确了研究目标。
二、熟练掌握了系统具体的硬件设计方案,硬件结构电路图,语言程序设计与调试等方面的内容。加深了对C51芯片的理解和应用。
三、在此次课程设计中认识到还有好多知识缺少,以后我会继续学习攻下难关。因此,通过查资料与动手操作,培养了我们独立思考与主动学习的能力,在电子课程设计中,我们思考交流,将一个个难点攻克,对于原理及其工作过程都比较清楚而深刻。同时,巩固了单片机的知识,收获很大。
第四篇:LED8x8点阵显示设计说明报告
班级:电子1649
姓名:王立学号:***44
LED8x8点阵显示设计说明报告
一、设计任务
1.设计要求
利用一块点阵数码板,按编程者要求实现任意符号的显示。2.此次设计研究的主要内容及应解决的问题
此次设计研究的主要内容是设计一个符号显示牌:通过程序控制符号显示牌,使符号显示牌,在无按键按下时,显示数字“0-9”,当第一次按下按键时,显示字母“μ”,当第二次按下按键时显示汉字“公”。应解决的问题:单片机P1口的输出电流不足以驱动二极管,需要加驱动,本次研究中以S8050作为驱动,同时在S8050NPN晶体管基极加4.7K的电阻。实验前要弄清晶体管三个引脚代表的极性,以免符号显示牌不亮导致而设计失败。
二、总体设计方案
2.1 硬件电路组成
本产品采用以89C51单片机为核心芯片的电路来实现,主要由89C51芯片、晶振电路、三极管驱动电路、按键控制电路、8×8 LED点阵5部分组成,电路框图如图1所示。其中,89C51是一种带4kB闪烁可编程可擦除只读存储器(Falsh Programmable and Erasable Read OnlyMemory,FPEROM)的低电压、高性能CMOS型8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,工业标准的MCS一51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,能够进行1 000次写/擦循环,数据保留时间为10年。他是一种高效微控制器,为很多嵌人式控制系统提供了一种灵活性高且价廉的方案。因此,在智能化电子设计与制作过程中经常用到89C51芯片。时钟电路由89C51的18,19脚的时钟端(XTAI 1及XTAL2)以及12 MHz晶振X、电容C2、C3组成,采用片内振荡方式。复位电路采用简易的上电复位电路,主要由电阻R,R2,电容C,开关K 组成,分别接至89C51的RST复位输人端。LED点阵显示屏采用8x8共64个象素的点阵,可通过万用表检测发光二极管的方法测试判断出该点阵的引脚分布。我们把行列总线接在单片机的I/O口,然后把上面分析到的扫描代码送入总线,就可以得到显示的字符了。我们在实际应用中是将LED点阵的8条列线通过驱动电路接在P1口,8条行线通过限流电阻接在P0口。单片机89C51按照设定的程序在P1和P0接口输出与内部字符对应的代码电平送至LED点阵的行列线(高电平驱动),从而选中相应的象素LED发光,并利用人眼的视觉暂留特性合成整个字符的显示。再改变取表地址实现字符的滚动显示。硬件电路组成框图如图2-1所示。
图2-1 硬件电路组成框图
2.2 系统各单元电路设计 2.2.1 89C51单片机最小系统
最小系统包括晶体振荡电路、复位开关和电源部分。图2-2为89C51单片机的最小系统。图2-2 单片机最小系统
2.2.2 按键控制电路
单片机开始工作时,P2.0是高电平。当按键按下时,检测到一个低电平信号,改变P0口输出信号,控制8×8 LED点阵显示屏显示不同字符。
图2-3 按键控制电路
2.2.3 三极管驱动电路
扫描驱动电路的功能主要是有P1口输出高电平使三极管发射结导通,发射结输出足够大的电流使二极管导通。
图2-4 三极管驱动电路 2.2.4 8×8 LED点阵介绍 图(4)为8×8点阵LED外观及引脚图,只要其对应的X、Y轴顺向偏压,即可使LED发亮。例如如果想使左上角LED点亮,则电子模块中的0口为1,A口为0即可。应用时限流电阻可以放在横轴或列轴。
图2-5 8×8点阵LED外观及引脚
(1)把“单片机系统”区域中的P0端口用8芯排芯连接到“点阵模块”区域中的“A~H”端口上;
(2)把“单片机系统”区域中的P1端口用8芯排芯连接到“点阵模块”区域中的“0~7”端口上;
为了方便于单片机连接,我们在焊接的过程中特意将0~7接口排列出来作为列,将A~H接口作为行,这样我们就可以直接将AT89C51单片机的P0口与0~7接口一次连接,将AT89C51单片机的P1口与A~H接口一次连接。要使LED发亮即使给予数字端高电平,字母端给予低电平,就能使二极管发亮。
2.3 字符的点阵显示原理及字库代码获取方法
我们以UCDOS中文宋体字库为例,每一个字由8行8列的点阵组成显示。我们可以把每一个点理解为一个象素,而把每一个字的字形理解为一幅图像。事实上这个汉字屏不仅可以显示汉字,也可以显示在64象素范围内的任何图形。如查用8位的AT89C51单片机控制,如图所示
图2-6 8×8点阵等效电路
为了弄清楚汉字的点阵组成规律,首先通过列扫描方法获取汉字的代码。首先将8行分成4位的上、下两部分,把发光的象素位编为0不发光的象素位为1的十六进制代码。这样就把要显示的“公”字编为如下代码:
0x7f,0xbf,0xc1,0xdf,0xdf,0xdf,0xc1,0xdf
由这个原理可以看出,无论显示何种字体或图像,都可以用这个方法来分析出他的扫描代码从而显示在屏幕上。上述方法虽然能够让我们弄清楚字符点阵代码的获取过程。字符点阵显示一般有点扫描、行扫描和列扫描3种。为了符合视觉暂留要求,点扫描方法的扫描频率必须大于16×64—1024 Hz,周期小于1 ms即可。行扫描和列扫描方法的扫描频率必须大于16×8—128 Hz,周期小于7.8 ms即可。
三、程序设计
3.1程序流程图
开始初始化依次显示0~9是否按键NoYes依次显示0~9显示字符μ是否按键NoYes显示字符μ显示汉字公是否按键NoYes显示汉字公
图3-1 主程序流程图
3.2程序设计
根据上述所说的程序流程图,设计程序如附录1。
四、调试及性能分析
4.1系统调试 4.1.1软件调试
首先根据各单元电路模块,利用Proteus软件将总的硬件原理图绘制好,设计好各模块要使用的I/O口,如:8×8点阵LED显示屏时候插反,先检测下,无硬件错误后,再进行程序编程。
利用C语言的编程方式,将系统要求的基本功能,以及创新功能根据程序流程图编写出来,用Keil软件调试无误后,生成Hex文件。
双击Proteus中的AT89C51芯片,将Keil生成的Hex加载到芯片内,进行仿真,经调试后所编写的程序能够完美实现系统所需的各种功能。
4.1.2硬件调试
硬件调试主要是检测硬件电路是否有短路、断路、虚焊等。具体步骤及测试结果如下:(1)检查电源与地线是否全部连接上,用万用表对照电路原理图测试各导线是否完全连接,对未连接的进行修复。
(2)参照原理图,检查各个器件之间的连接是否连接正确,是否存在虚焊,经测试,各连接不存在问题。
(3)以上两项检查并修复完后,给该硬件电路上电,电源指示灯点亮。
(4)将烧录好程序的最小单片机系统接入各模块后,各模块能过正常工作,如:数码管正常发光。
4.2设计分析
将烧录好程序的最小单片机系统与各模块连接好后,8×8点阵LED显示屏显示初始值。按键一次之后,显示屏显示滚动字符μ,再按键一次,显示屏显示汉字“公”。
经软件调试和硬件调试后,所设计的系统完美实现了所需的控制要求和创新要求。
附录1:程序清单
#include
for(y=110;y>0;y--);} void main(){ key=1;num=0;while(1){
if(num==0)
{
for(j=0;j<10;j++)
{
if(key==0)
{
delay(10);
if(key==0)
{
num=1;
公 // //1 //2 //3 //4 //5 //6 //7 //8
while(!key);
}
}
if(num!=0)
break;
for(k=0;k<30;k++)
{
scan=0x01;
for(i=0;i<8;i++)
{
P0=table[j][i];
P1=scan;
delay(2);
scan<<=1;
}
} } } if(num==1){
for(j=0;j<8;j++)
//8组数据
{
if(key==0)
{
delay(10);
if(key==0)
{
num=2;
while(!key);
}
}
if(num!=1)
break;
for(k=0;k<10;k++)
{
scan=0x01;
//初始扫描信号
for(i=8;i>0;i--)
//扫描周期
{
if(i>j)P0=table1[8+(j-i)];
else P0=table1[j-i];
P1=scan;
delay(2);
scan<<=1;
}
}
}
}
if(num==2)
{
if(key==0)
{
delay(10);
if(key==0)
{
num=0;
while(!key);
}
}
scan=0x01;
for(i=0;i<8;i++)
{
P0=table2[count++];
if(count==8)count=0;
P1=scan;
delay(2);
scan<<=1;
}
}
} }
附录2:点阵的放置与接线方法:
附录3:硬件原理图
第五篇:LED点阵显示屏设计报告
XX大学
开发性实验结题报告
学
院:
电子工程学院
班
级:光信
姓
名:
学
号:
班
级:光信
姓
名:
学
号:
班
级:光信
姓
名:
学
号:
2014年X月X日
1632点阵LED电子显示屏
摘要:
本设计是一16×32点阵LED电子显示屏的设计。
整机以美国ATMEL
公司生产的40脚单片机AT89C52为核心,介绍了以它为控制系统的LED点阵电子显示屏的动态设计和开发过程。通过该芯片控制两个行驱动器74HC573和四个列驱动器74HC573来驱动显示屏显示。该电子显示屏可以显示各种文字或单色图像,全屏采用8块8×8点阵LED显示模块来组成16×32点阵显示模式。文中详细介绍了LED点阵显示的硬件设计思路、硬件电路各个部分的功能及原理、相应软件的程序设计,以及使用说明等。
单片机控制系统程序采用单片机C语言进行编辑,通过编程控制各显示点对应LED阳极和阴极端的电平,就可以有效的控制各显示点的亮灭。LED显示以其组构方式灵活、显示稳定、功耗低、寿命长、技术成熟、成本低廉等特点得到广泛的应用。
关键词:AT89C51单片机;LED;点阵显示;动态显示;C语言。
一
绪论
LED显示屏是利用发光二极管点阵模块或像素单元组成的平面式显示屏幕。它具有发光效率高、使用寿命长、组态灵活、色彩丰富以及对室内外环境适应能力强等优点。并广泛的应用于公交汽车,码头,商店,学校和银行等公共场合的信息发布和广告宣传。LED显示屏经历了从单色,双色图文显示屏到现在的全彩色视频显示屏的发展过程,自20世纪八十年代开始,LED显示屏的应用领域已经遍布交通、电信、教育、证券、广告宣传等各方面。
LED点阵显示屏概述
LED点阵显示屏的构成型式有多种,其中典型的有两种。一种把所需展示的广告信息烧写固化到EPROM芯片内,能进行固定内容的多幅汉字显示,称为单显示型;另一种在机内设置了字库、程序库,具有程序编制能力,能进行内容可变的多幅汉字显示,称可编程序型。
目前,国内的LED点阵显示屏大部分是单显示型,其显示的内容相对较少,显示花样较单一。一般在产品出厂时,显示内容就已写入显示屏控制系统中的EPROM芯片内,当需要更换显示内容时就非常困难,这样使该类型的显示屏使用范围受到了限制。
国内的另一种LED显示屏——可编程序型LED显示屏,虽然增加了显示屏系统的编程能力,显示内容和显示花样都有所增加,但也存在着更换显示内容不便的缺点。随着社会经济的迅速发展,如今的广告牌都存在着显示内容丰富、信息量大、信息更换速度快等特点。因此传统的LED显示屏控制系统已经越来越不能满足现代广告宣传业的需要。而利用PC机通信技术控制LED显示屏,则具有显示内容丰富,信息更换灵活等优点。
LED显示屏控制技术状况
显示屏的控制系统包括输入接口电路、信号控制、转换和数字化处理电路及输出接口电路等,涉及的具体技术很多,其关键技术包括串行传输与并行传输技术、动态扫描与静态锁存技术、自动检测及远程控制技术等。
二
系统总体设计方案
需要实现的功能
设计一个室内用16×32点阵LED图文显示屏,要求在目测条件下LED显示屏各点亮度均匀、充足,可显示图形和文字,显示图形或文字应稳定、清晰无串扰。图形或文字显示有静止、移入移出等显示方式。
LED显示特点
从理论上说,不论显示图形还是文字,都是控制与组成这些图形或文字的各个点所在位置相对应的LED器件发光。通常事先把需要显示的图形文字转换成点阵图形,再按照显示控制的要求以一定的格式形成显示数据。对于只控制通断的图文显示屏来说,每个LED发光器件占据数据中的1位(1bit),在需要该LED器件发光的数据中相应的位填1,否则填0。当然,根据控制电路的安排,相反的定义同样是可行的。这样依照所需显示的图形文字,按显示屏的各行各列逐点填写显示数据,就可以构成一个显示数据文件。
显示图形的数据文件,其格式相对自由,只要能够满足显示控制的要求即可。文字的点阵格式比较规范,可以采用现行计算机通用的字库字模。组成一个字的点阵,其大小也可以有16×16、24×24、32×32、48×48等不同规格。汉字的点阵结构相应的显示数据是用16进制格式以字节为单位表示的。
用点阵方式构成图形或文字,是非常灵活的,可以根据需要任意组合和变化,只要设计好合适的数据文件,就可以得到满意的显示效果。因而采用点阵式图文显示屏显示经常需要变化的信息,是非常有效的。点阵显示方式适应信息变化的优点,是以点阵显示器的价格和其复杂的控制电路为代价的。点阵显示器在整个显示单元的所有位置上都布置了LED器件,而像数码管一类的显示器件只在需要发光的七段位置上布置LED器件,其它位置是空白的。因此,点阵显示器在相同面积情况下,价格要贵些。但是,数码管可显示的信息有限,只有0~9或单个的英文字符,由于组合形成的字符不多,所以其显示数据和控制电路都比较简单。点阵显示器则不然,它要对点阵上全部LED进行控制,并能生成所有可能显示的图形文字,其显示数据和控制电路自然要复杂得多。
设计方案论证:
3.1显示模式方案
为了吸引观众增强显示效果,可以有多种显示模式,最简单的显示模式是静态显示。这里所说的“静态显示模式”不同于静态驱动方式。与静态显示模式相对应,就有各种动态显示模式,它们所显示的图文都是能够动的。按照图文运动的特点又可以分为闪烁、平移、旋转、缩放等多种显示模式。产生不同显示模式的方法,并不意味着一定要重新编写显示数据,可以通过一定的算法从原来的显示数据直接生成。例如,按顺序调整行号,可以使显示图文产生上下平移;而顺序调整列显示数据的位置,就可以达到左右平移的目的;同时调整行列顺序,就能得到对角线平移的效果。其它模式的数据刷新,也可找到相应的算法。不过当算法太复杂,太浪费时间的话,也可以考虑预先生成刷新数据,存储备用。刷新的时间控制,要考虑运动图形文字的显示效果。刷新太慢,动感不显著;刷新太快了,中间过程看不清。一般刷新周期可控制在几十毫秒范围之内。
动态扫描的意思简单地说就是逐行轮流点亮,这样扫描驱动电路就可以实现多行(比如16行)的同名列共用一套列驱动器,每行有一个行驱动器,具体就16×32的点阵来说,把所有同一行的发光管的阳极连在一起,把所有同一列的发光管的阴极连在一起(共阳的接法),由行译码器给出的行选通信号,从第一行开始,按顺序依次对各行进行扫描(把该行与电源的一端接通)。
另一方面,根据各列锁存的数据,确定相应的列驱动器是否将该列与电源的另一端接通。接通的列,就在该行该列燃亮相应的LED;未接通的列所对应的LED熄灭。当一行的扫描持续时间结束后,该行燃亮的LED也就熄灭;下一行又以同样的方法进行显示。全部各行都扫过一遍之后(一个扫描周期),又从第一行开始下一个周期的扫描。只要一个扫描轮回的速度足够快(每秒24次以上),由于人眼的视觉暂留现象,就不容易感觉出闪烁现象,就能看到显示屏上稳定的图形了。而且动态扫描方式功耗低,硬件成本低,每个LED都不是连续工作,因而还有利于延长LED的使用寿命。
3.2
数据传输方案
采用扫描方式进行显示时,显示数据通常存储在单片机的存储器中,按8位一个字节的形式顺序排放。显示时要把一行中各列的数据都传送到相应的列驱动器上去,这就存在一个显示数据传输方式的问题。从控制电路到列驱动器的数据传输可以采用并行方式或串行方式。显然,采用并行方式时,从控制电路到列驱动器的线路数量大,相应的硬件数目多。当列数很多时,并行传输的方案是不可取的。
采用串行传输的方法,控制电路可以只用一根信号线,将列数据一位一位传往列驱动器,在硬件方面无疑是十分经济的。但是,串行传输过程较长,数据要经过并行到串行和串行到并行两次变换。首先,单片机从存储器中读出的8位并行数据要通过并串变换,按顺序一位一位地输出给列驱动器。与此同时,列驱动器中每一列都把当前数据传向后一列,并从前一列接收新数据,一直到全部列数据都传输完为止。只有当一行的各列数据都已传输到位之后,这一行的各列才能并行地进行显示。这样,对于一行的显示过程就可以分解列数据准备(传输)和列数据显示两个部分。对于串行传输方式来说,列数据准备时间可能相当长,在行扫描周期确定的情况下,留给行显示的时间就太少了,以至影响到LED的亮度。
解决串行传输中列数据准备和列数据显示的时间矛盾问题,可以采用重叠处理的方法。即在显示本行各列数据的同时,准备下一行的列数据。为了达到重叠处理的目的,列数据的显示就需要具有锁存功能。
经过上述分析,可以归纳出列驱动器电路应具备的主要功能。对于列数据准备来说,它应能实现串入并出的移位功能;对于列数据显示来说,应具有并行锁存的功能。这样,本行已准备好的数据打入并行锁存器进行显示时,串并移位寄存器就可以准备下一行的列数据,而不会影响本行的显示。图2-1为显示屏电路实现的结构框图。
单片机
列驱动器
四个74HC573
两个74HC573
列
LED显示点阵
16x32
电源
显示屏电路框图
三
硬件系统设计
元器件的选择
元件编号
规格参数
LED
16x32点阵
PCB板
20cm*20cm环氧板
U1~
U6
74HC573
U7
AT89C52
U8,U9
74HC02
R1~R33
330欧姆
C1、C2
22pF
晶振
1个
可行性分析:作品选用52做核心,相对于其他芯片52读取也很方便,价格低廉。选取138以及02选通74HC573做行、列驱动器。之所以选取138以及02是因为用138及02选通573是因为,当138选通573时其他573被默认关闭,这给软件编写提供了很大便利。用573而不用595做驱动是因为对573熟悉,对以前学过的硬件有一个复习巩固的作用。没有用2803做驱动是因为573提供的电压完全可以提供16x32LED灯的两端电压。
芯片简介
(1)AT89C52
AT89C52是美国ATMEL公司生产的8位Flash
ROM单片机。其最突出的优点是片内ROM为Flash
ROM,可擦写1000次以上,应用并不复杂的通用ROM写入器就能方便的擦写,读取也很方便,价格低廉,具有在片程序ROM二级保密系统。因此可灵活应用于各种控制领域。AT89C52包含以下一些功能部件:
(1)一个8位CPU;
(2)一个片内振荡器和时钟电路;
(3)4KB
Flash
ROM;
(4)128B
内RAM;
(5)可寻址64KB的外ROM和外RAM控制电路;
(6)两个16位定时/计数器;
(7)21个特殊功能寄存器;
(8)4个8位并行I/O口;
AT89C52单片机一般采用双列直插DIP封装,共40个引脚,图3-3为其引脚排列图。40个引脚大致可分为4类:电源、时钟、控制各I/O引脚。
电源
Vcc——芯片电源,接+5V;GND——接地端。
时钟
XTAL1、XTAL2——晶体振荡电路反相输入端和输出端。
单片机系统外围电路
(2)74HC573
编程时,先将使能端置1,此时输出数据和输入数据一致;为了将输出的数据锁定,防止误操作,可将使能端清0,此时,输出端保持原有值,不再变化。(1,使能置1;
2,数据输入到锁存器输入端(输出=输入);
3,使能置0(输
出恒定=先前输入);(达到锁存功能))
74HC系列的数字集成电路,当5V供电时,输出高电平接近5V,带负载后,能输出4.95V左右。
从你图上看,这里需要573输出高电平段码,138输出位码,进行动态显示。但是图上有错,为了LED安全使用,在573的输出端与7LED连接之间,应串联300Ω电阻。
附加:
锁存器的作用
锁存器(Latch)是一种对脉冲电平敏感的存储单元电路,它们可以在特定输入脉冲电平作用下改变状态。锁存,就是把信号暂存以维持某种电平状态。锁存器的最主要作用是缓存,其次完成高速的控制其与慢速的外设的不同步问题,再其次是解决驱动的问题,最后是解决一个
I/O
口既能输出也能输入的问题。
(3)74HC02
74HC02
概述
74HC02是一款高速CMOS器件,74HC02遵循JEDEC标准no.7A。74HC02引脚兼容低功耗肖特基TTL(LSTTL)系列。
74HC02实现了4路2输入或非门功能。
74HC02
特性
·
输入电平
o
74HC02
CMOS电平
·
ESD保护
o
HBM
JESD22-A114E超过2000
V
o
MM
JESD22-A115-A超过200
V
·
可选多种封装类型
·
温度范围
o
-40~+85
℃
o
-40~+125
℃
(4)74HC138
CD74HC138,CD74HC238和CD74HCT138,CD74HCT238是高速硅栅CMOS解码器,适合内存地址解码或数据路由应用。74HC138
作用原理于高性能的存贮译码或要求传输延迟时间短的数据传输系统,在高性能存贮器系统中,用这种译码器可以提高译码系统的效率。将快速赋能电路用于高速存贮器时,译码器的延迟时间和存贮器的赋能时间通常小于存贮器的典型存取时间,这就是说由肖特基钳位的系统译码器所引起的有效系统延迟可以忽略不计。HC138
按照三位二进制输入码和赋能输入条件,从8
个输出端中译出一个
低电平输出。两个低电平有效的赋能输入端和一个高电平有效的赋能输入端减少了扩展所需要的外接门或倒相器,扩展成24
线译码器不需外接门;扩展成32
线译码器,只需要接一个外接倒相器。在解调器应用中,赋能输入端可用作数据输入端。
行、列驱动电路
行、列驱动电路由集成电路74HC573构成,它具有一个8位串行输入/输出或者并行输出的移位寄存器和一个8位输出锁存器的结构,而且移位寄存器和输出锁存器的控制是各自独立的,可以实现在显示本行各列数据的同时,传送下一行的列数据,即达到重叠处理的目的。
74HC系列的数字集成电路,当5V供电时,输出高电平接近5V,带负载后,能输出4.95V左右。
从你图上看,这里需要573输出高电平段码,138输出位码,进行动态显示。但是图上有错,为了LED安全使用,在573的输出端与7LED连接之间,应串联300Ω电阻。
行由两个573分别控制,列由四个573控制。行给高电平,列给低电平实现
点阵控制。
LED显示屏电路
LED显示屏是将发光二极管按行按列布置的,驱动时也就按行按列驱动。在扫描驱动方式下可以按行扫描按列控制,当然也可以按列扫描按行控制。LED显示屏现多采用多块8×8点阵显示单元拼接而成。本文就是使用8块SBM1388型号的实验模块组成16×32点阵,以满足汉字显示的要求。8×8
LED点阵是最基本的点阵显示模块,理解了8×8
LED点阵的工作原理就可以基本掌握LED点阵显示技术。8×8点阵LED结构如图3-10所示,其等效电路如图3-11所示:
图3-10
8×8点阵LED结构图
从图中(本图的LED阵列采用共阳的接法)可以看出,8×8点阵共需要64个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上。要实现显示图形或字体,只需考虑其显示方式,通过编程控制各显示点对应LED阳极和阴极端的电平,就可以有效的控制各显示点的亮灭。当采用按行扫描按列控制的驱动方式时,LED显示屏8行的同名列共用一套列驱动器。行驱动器一行的行线连接到电源的一端,列驱动器一列的列线连接到电源的另一端。应用时还应在各条行线或列线上接上限流电阻。扫描中控制电路将行线的1到
8轮流接通高电位,使连接到各该行的全部LED器件接通正电源,但具体那一个LED导通,还要看它的负电源是否接通,这就是列控制的任务了。当对应的某一列置0电平,则相应的二极管就亮;反之则不亮。例如:如果想使屏幕左上角LED点亮,左下角LED熄灭的话,在扫描到第一行时,第一列的电位就应该为低,而扫描到第八行时第一列的电位就应该为高。这样行线上只管一行一行的轮流导通,列线上进行通断控制,实现了行扫描列控制的驱动方式。
四
系统软件设计
在单片机系统中,硬件是系统的基础,软件则是在硬件的基础上对其合理的调配和使用,从而完成应用系统所要完成的任务。软件的设计是设计控制系统的应用程序。其任务是在总体设计和硬件设计的基础上,确定程序结构,分配内RAM资源,划分功能模块,然后进行主程序和各模块程序的设计,最后连接起来成为一个完整的应用程序。
在进行系统总体设计时,曾经规划过软件结构,但由于硬件系统尚未仔细确定,软件结构框图十分粗糙,当硬件设计接口扩展及各功能模块与CPU连接关系确定后,就能够具体明确对软件设计的要求。本设计的LED显示屏软件的主要功能是向屏体提供显示数据,并产生各种控制信号,使屏幕按设计的要求显示。根据软件分层次设计的原理,可把显示屏的软件系统分成两大层:第一层是底层的显示驱动程序,第二层是上层的系统应用程序。显示驱动程序负责向屏体送显示数据,并负责产生行扫描信号和其它控制信号,配合完成LED显示屏的扫描显示工作。显示驱动程序由定时器T0中断程序实现。系统应用程序完成系统环境设置(初始化)、显示效果处理等工作,由主程序来实现。
编程思路
根据以上硬件电路和单片机控制原理,编程思路为:
a先对相关变量进行初始化。
b调用显示程序
c装载汉字的第一行数据,并显示出来。
d依次显示汉字的第二行至第十六行。
e结束
程序见附录1
流程图:
调用显示程序序
扫描第1行并显示
显示汉字
延时
扫描第2行并显示
依次扫描3,4….16行
结束
开始
五
调试及性能分析
一个单片机系统经过总体设计,完成了硬件和软件设计开发。元器件安装后,在系统的程序存储器中写入编制好的应用程序,系统即可运行。但编制好的程序或焊接好的线路不能按预计的那样正常工作是常见的事,多少会出现一些硬件、软件上的错误。这就需要通过调试来发现错误并加以改正。调试可分为硬件调试和软件调试。在允许的条件下,根据本设计系统的需求性首先采用在PC机上用模拟开发软件进行检测和调试,然后进行硬件的组装与调试。
软件调试
软件调试采用脱机调试的方法,即完全用仿真器软件在PC机上对目标电路原理图和程序进行检测和调试。调试过程中单片机相应输入端由通用键盘和鼠标设定,运行状态、各寄存器状态、端口状态等都可以在CRT指定的窗口区域显示出来,以确定程序运行有无错误。调试可按下列步骤进行:
目标程序纠错
该阶段工作通常在目标程序编辑时就完成。一般来说,仿真器软件能给用户输入的程序指令纠错,包括书写格式、标号未定义或多重定义、转移地址溢出等错误。
整体程序综合调试
即把各子程序整体连起来进入到综合电路调试,看是否能实现预计的功能显示。在这阶段若发生故障,可以考虑各子程序在运行时是否破坏现场,数据缓冲单元是否发生冲突,标志位的建立和清除在设计上是否失误,堆栈是否溢出,输入输出状态是否正常等。
硬件调试
单片机应用系统的硬件调试和软件调试是分不开的,许多硬件故障在软件调试时才能发现,但通常要先排除系统中明显的硬件故障。调试工作可以分为四步:
目测检查
根据硬件逻辑设计图,仔细检查样机线路是否连接正确,并核对元器件的型号、规格和安装是否符合要求,必要时可用万用表检测线路通断情况。
电源调试
样机的第一次通电测试很重要,若样机中存在电源故障,则加电后将造成器件损坏。调试的方法有两种:一种是断开样机稳压电源的输出端检查空载时电源工作情况;另一种是拔下样机上的主要集成芯片,检查电源的负载能力(用假负载)。确保电源无故障并性能符合设计要求。
通电检查
在确保电源良好前提下,接通电源。最好在电源与其余电路之间串接一个电流表。若接通后电流很大,必须立即切断电源。电源大得超出正常范围,说明电路中有短路或故障。通电检查的主要目的是看系统是否存在短路或由元器件损坏、装配错误引起的电流异常。
检查相应芯片的逻辑关系
加电后检查各芯片插座上相关引脚的电位,仔细测量相应的输入输出电平是否正常。单片机系统大都是数字逻辑电路,使用电平检查法可首先查出逻辑设计是否正确,选用器件和连接关系是否符合要求等。
根据实践证明,这个方案设计的16×32点阵LED图文显示屏,结构合理,成本较低,且较容易扩展成更大的显示屏;显示屏各点亮度均匀、充足;显示图形或文字稳定、清晰无串扰;可用静止、移入移出等多种显示方式显示图形或文字。
心得:
以上仅对LED显示屏的结构和驱动、显示电路原理作一详细介绍和分析。LED点阵的应用很广,对于不同的应用环境和应用要求,可以有各种各样的应用方式,在这里就不做详尽叙述。由于自己知识水平的局限和时间的仓促,设计中或还存在着一些不足,我真诚的接受老师们的批评和指正。
从课题选择、方案论证到具体设计,每一步对我来说无疑是巨大的尝试和挑战,我不断地给自己提出新的问题,然后去论证、推翻,不懂就请教学长,再接着提出新的问题,在这个往复的过程中,我这篇稚嫩的设计日趋完善。每一次改进我都收获良多,虽然我的设计作品不是很成熟,而且借鉴了前人的很多资料,但我仍然心里有一种莫大的幸福感,因为我实实在在地走过了一个完整的设计所应该走的每一个过程,并且享受了每一个过程,更重要的是这个设计中我加入了自己鲜活的思想,而且在调试中积累了很多经验。
在做这次的设计过程中使我学到了很多,加深了对数子电路的理解,验证了所学理论知识,提高了基本的解决实际问题的能力,并增加了对电子设计方面的兴趣。更重要的是我体会到不论做什么事都要真真正正用心去做,才会使自己更好的成长,没有学习就不可能有实践的能力,实践才是最终的目的,没有实践就不会有自己的突破和创新,希望这次的经历能让我在以后的工作和生活中不断成长与进步。
在这里要特别感谢我们的学长,谢谢他们的悉心指导!
参考文献:马家辰.MCS-51单片机原理及接口技术.哈尔滨工业大学出版社,1997
胡汉才.单片机原理与应用.清华大学出版社
邱丽芳.单片机原理与应用
[M].北京:人民邮电出版社,2007
附录1
#include
#define
uchar
unsigned
char
#define
uint
unsigned
int
uchar
code
atable[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}
;
uchar
code
btable[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
void
delay(uint
i)
//延时1ms
{
uint
x,y;
for(x=i;x>0;x--)
for(y=115;y>0;y--);
}
void
clear()
//清屏
{
P2=0xa0;P0=0xff;
P2=0xc0;P0=0xff;
P2=0x00;P0=0xff;
P2=0x20;P0=0xff;
P2=0x40;P0=0xff;
P2=0x60;P0=0xff;
}
void
main(void)
{
uint
x;
clear();
WR
=
0;
while(1)
{
P2=0xa0;
P0=atable[0];
P2=0xe0;
P0=btable[0];
P2=0x60;
P0=0xf7;
P2=0x40;
P0=0x7f;
P2=0xc0;
P0=0xff;
P2=0x00;
P0=0xff;
delay(2);
//扫描第1行
P2=0xa0;
P0=atable[1];
P2=0xe0;
P0=btable[1];
P2=0x60;
P0=0xfb;
P2=0x40;
P0=0x07;
P2=0xc0;
P0=0xfe;
P2=0x00;
P0=0xff;
delay(2);
//2
P2=0xa0;
P0=atable[2];
P2=0xe0;
P0=btable[2];
P2=0x60;
P0=0xfd;
P2=0x40;
P0=0x7f;
P2=0xc0;
P0=0xff;
P2=0x00;
P0=0xff;
delay(2);
//3
P2=0xa0;
P0=atable[3];
P2=0xe0;
P0=btable[3];
P2=0x60;
P0=0xfe;
P2=0x40;
P0=0x7f;
P2=0xc0;
P0=0xff;
P2=0x00;
P0=0xff;
delay(2);
//4
P2=0xa0;
P0=atable[4];
P2=0xe0;
P0=btable[4];
P2=0x60;
P0=0xff;
P2=0x40;
P0=0x07;
P2=0xc0;
P0=0x01;
P2=0x00;
P0=0xff;
delay(2);
//5
P2=0xa0;
P0=atable[5];
P2=0xe0;
P0=btable[5];
P2=0x60;
P0=0xff;
P2=0x40;
P0=0x7f;
P2=0xc0;
P0=0x7f;
P2=0x00;
P0=0xff;
delay(2);
//6
P2=0xa0;
P0=atable[6];
P2=0xe0;
P0=btable[6];
P2=0x60;
P0=0xff;
P2=0x40;
P0=0x7f;
P2=0xc0;
P0=0xbf;
P2=0x00;
P0=0x93;
delay(2);
//7
P2=0xa0;
P0=atable[7];
P2=0xe0;
P0=btable[7];
P2=0x60;
P0=0x80;
P2=0x40;
P0=0x07;
P2=0xc0;
P0=0xbf;
P2=0x00;
P0=0x6d;
delay(2);
//8
P2=0xa0;
P0=atable[8];
P2=0xe0;
P0=btable[8];
P2=0x60;
P0=0xbf;
P2=0x40;
P0=0xff;
P2=0xc0;
P0=0xbf;
P2=0x00;
P0=0x7d;
delay(2);
//9
P2=0xa0;
P0=atable[9];
P2=0xe0;
P0=btable[9];
P2=0x60;
P0=0xbf;
P2=0x40;
P0=0xff;
P2=0xc0;
P0=0xbf;
P2=0x00;
P0=0xbb;
delay(2);
//10
P2=0xa0;
P0=atable[10];
P2=0xe0;
P0=btable[10];
P2=0x60;
P0=0x80;
P2=0x40;
P0=0x27;
P2=0xc0;
P0=0xbf;
P2=0x00;
P0=0xd7;
delay(2);
//11
P2=0xa0;
P0=atable[11];
P2=0xe0;
P0=btable[11];
P2=0x60;
P0=0xfe;
P2=0x40;
P0=0xdb;
P2=0xc0;
P0=0xbe;
P2=0x00;
P0=0xef;
delay(2);
//12
P2=0xa0;
P0=atable[12];
P2=0xe0;
P0=btable[12];
P2=0x60;
P0=0xfe;
P2=0x40;
P0=0xfb;
P2=0xc0;
P0=0xbe;
P2=0x00;
P0=0xff;
delay(2);
//13
P2=0xa0;
P0=atable[13];
P2=0xe0;
P0=btable[13];
P2=0x60;
P0=0x80;
P2=0x40;
P0=0x77;
P2=0xc0;
P0=0xbf;
P2=0x00;
P0=0xff;
delay(2);
//14
P2=0xa0;
P0=atable[14];
P2=0xe0;
P0=btable[14];
P2=0x60;
P0=0xff;
P2=0x40;
P0=0xaf;
P2=0xc0;
P0=0xbf;
P2=0x00;
P0=0xff;
delay(2);
//15
P2=0xa0;
P0=atable[15];
P2=0xe0;
P0=btable[15];
P2=0x60;
P0=0xff;
P2=0x40;
P0=0xdf;
P2=0xc0;
P0=0xbf;
P2=0x00;
P0=0xff;
delay(2);
//16
}
}