1616点阵LED电子显示屏的设计报告.docx
- 文档编号:29361382
- 上传时间:2023-07-22
- 格式:DOCX
- 页数:26
- 大小:474.27KB
1616点阵LED电子显示屏的设计报告.docx
《1616点阵LED电子显示屏的设计报告.docx》由会员分享,可在线阅读,更多相关《1616点阵LED电子显示屏的设计报告.docx(26页珍藏版)》请在冰豆网上搜索。
1616点阵LED电子显示屏的设计报告
单片机原理及应用
课程设计报告书
题目:
16×16点阵LED电子显示屏的设计
姓名:
学号:
*********
专业:
电子信息科学与技术
指导老师:
设计时间:
2011年4月
16×16点阵LED电子显示屏的设计
1.引言
1.1.设计意义
LED点阵显示屏在我们的日常生活中随处可见,广泛应用于车站、码头、机场、商场、医院、宾馆、银行、证券市场、建筑市场、拍卖行、工业企业管理和其它公共场所。
它的优点是:
亮度高、工作电压低、功耗小、微型化、易与集成电路匹配、驱动简单、寿命长、耐冲击、性能稳定。
我们已经学习了单片机及相关的课程,可以利用单片机来控制LED,以达到我们所需要的显示效果。
通过16x16点阵显示屏的课程设计,我们能更好的掌握单片机工作原理,把理论知识与实践结合起来,达到学以致用的目的。
课程设计能够提高我们的动手能力与解决实际问题的能力。
对于单片机我们已经学习了很多与之相关的理论知识,但是我们还没有机会来实际操作它,课程设计给我们提供了一个很好的机会,让我们更深入的去学习它,掌握它。
通过课程设计我们能基本掌握单片机硬件与软件相关的知识,掌握16X16LED点阵的工作原理。
1.2.系统功能要求
设计一个室内用16x16的点阵LED图文显示屏,要求在目测条件下LED显示屏各点亮度均匀、充足,可显示图形和文字,显示图形和文字应稳定、清晰无串扰。
图形或文字显示有上移、帘入帘出、左移、右移等显示方式。
2.方案设计
从理论上说,不论显示图形还是文字,只要控制与组成这些图形或文字的各个点所在的位置相对应的LED器件发光,就可以得到我们想要的显示结果,这种同时控制各个发光点亮灭的方法称为静态驱动显示方式。
16x16的点阵共有256个发光二极管,显然单片机没有这么多的端口,如果我采用锁存器来扩展端口,按8位的锁存器来计算,16x16的点阵需要256/8=32个锁存器。
这个数字很庞大,因为我们仅仅是16x16的点阵,在实际应用中的显示屏往往要大得多,这样在锁存器上花的成本将是一个很庞大的数字。
因此在实际应用中的显示屏几乎都不采用这种设计,而采用另外一种称为动态扫描的显示方法。
动态扫描的意思简单地说就是逐行轮流点亮,这样扫描驱动电路就可以实现多行(比如16行)的同名列共用一套驱动器。
具体就16x16的点阵来说,把所有同1行的发光管的阳极连在一起,把所有同1列的发光管的阴极连在一起(共阳极的接法),先送出对应第一行发光管亮灭的数据并锁存,然后选通第1行使其燃亮一定时间,然后熄灭;再送出第二行的数据并锁存,然后选通第2行使其燃亮相同的时间,然后熄灭;以此类推,第16行之后,又重新燃亮第1行,反复轮回。
当这样轮回的速度足够快(每秒24次以上),由于人眼的视觉暂留现象,就能够看到显示屏上稳定的图形了。
采用扫描方式进行显示时,每一行有一个行驱动器,各行的同名列共用一个驱动器。
显示数据通常存储在单片机的存储器中,按8位一个字节的形式顺序排放。
显示时要把一行中各列的数据都传送到相应的列驱动器上去,这就存在一个显示数据传输的问题。
从控制电路到列驱动器的数据传输可以采用并列方式或串行方式。
显然,采用并行方式时,从控制电路到列驱动器的线路数量大,相应的硬件数目多。
当列数很多时,并列传输的方案是不可取的。
采用串行传输的方法,控制电路可以只用一根信号线,将列数据一位一位传往列驱动器,在硬件方面无疑是十分经济的。
但是,串行传输过程较长,数据按顺序一位一位地输出给列驱动器,只有当一行的各列数据都以传输到位之后,这一行的各列才能并行地进行显示。
这样,对于一行的显示过程就可以分解成列数据准备(传输)和列数据显示两部分。
对于串行传输方式来说,列数据准备时间可能相当长,在行扫描周期确定的情况下留给行显示的时间就太少了,以致影响到LED的亮度。
解决串行传输中列数据准备和列数据显示的时间矛盾问题,可以采用重叠处理的方法。
即在显示本行各列数据的同时,传送下一列数据。
为了达到重叠处理的目的,列数据的显示就需要具有所存功能。
经过上述分析,就可以归纳出列驱动器电路应具有的功能。
对于列数据准备来说,它应能实现串入并处的移位功能;对于列数据显示来说,应具有并行锁存的功能。
这样,本行已准备好的数据打入并行锁存器进行显示时,串并移位寄存器就可以准备下一行的列数据,而不会影响本行的显示。
图一显示屏电路框图
3.硬件设计
3.1单片机系统及外围电路
单片机采用AT89S52或其兼容系列芯片,采用24MHZ或更高频率晶振,以获得较高的刷新频率,时期显示更稳定。
单片机的串口与列驱动器相连,用来显示数据。
P1口低4位与行驱动器相连,送出行选信号;P1.5~P1.7口则用来发送控制信号。
P0口和P2口空着,在有必要的时候可以扩展系统的ROM和RAM。
16x16的点阵显示屏的硬件原理图如图2所示
。
图二一个16x16点阵显示屏硬件原理图
图三8x8LED引脚图四电容
图五排针图六电源指示灯
图七电源
3.2行驱动器
单片机P1口低4位输出的行号经4/16线译码器74LS154译码后生成16条行选通信号线,再经过驱动器驱动对应的行线。
一条行线上要带动16列的LED进行显示,按每一LED器件20MA电流计算,16个LED同时发光时,需要320MA电流,选通三极管8550作为驱动管可满足要求.
3.3列驱动电路
列驱动电路有集成电路74HC595构成。
它具有一个8位串入并出的移位寄存器和一个8位输出锁存器的结构,而且移位寄存器和输出锁存器的控制是各自独立的,可以实现在显示本行列数据的同时,传送下一行的列数据,既达到重叠处理的目的。
74HC595的外形及内部结构如图3所示。
它的输入侧有8个串行移位寄存器,每个移位寄存器的输出都连接一个输出锁存器。
引脚SI是串行数据的输入端。
引脚SCK是移位寄存器的移位时钟脉冲,在其上升沿发生移位,并将SI的下一个数据打入最低位。
移位后的各位信号出现在各移位寄存器的输出端,也就是输出锁存器的输入端。
RCK是输出锁存器的打入信号,其上升沿将移位寄存器的输出打入输出锁存器。
引脚G是输出三态门的开放信号,只有当其为低时锁存器的输出才开放,否则为高组态。
SCLR信号是移位寄存器清零输入端,当其为低时移位寄存器的输出全部为零。
由于SCK和RCK两个信号是互相独立的,所以能够做到输入串行移位与输出锁存互不干扰。
芯片的输出端为QA~QH,最高位QH可作为多片74HC595级联应用时,向上一级的级联输出。
但因为QH受输出锁存器的打入控制,所以还从输出锁存器前引出QH,作为与移位寄存器完全同步的级联输出。
图三74HC595外形及内部逻辑结构图
4.软件设计
显示屏软件的主要功能是向屏体提供显示数据,并产生各种控制信号,使屏幕按设计的要求显示。
根据软件分层次设计的原理,可以把显示屏的软件系统分为两层;第一层是底层的显示驱动程序,第二层是上层的系统应用程序。
显示驱动程序负责向屏体送显示数据,并负责产生行扫描信号和其他控制信号,配合完成LED显示屏的扫描显示工作。
显示驱动器程序由定时器T0中断程序实现。
系统应用程序完成系统环境设置(初始化)、显示效果处理等工作,由主程序来实现。
从有利于实现较复杂的算法(显示效果处理)和有利于程序结构化考虑,显示屏程序适宜采用C语言编写。
4.1显示驱动程序
显示驱动程序在进入中断后首先要对定时器T0重新赋初值,以保证显示屏刷新率的稳定,1/16扫描显示屏的刷新率(帧频)计算公式如下:
刷频率(帧频)=1/16×T0溢出率
=1/16×f/12(65536-t)
其中f位晶振频率,t为定时器T0初值(工作在16位定时器模式)。
然后显示驱动程序查询当前燃亮的行号,从显示缓存区内读取下一行的显示数据,并通过串口发送给移位寄存器。
为消除在切换行显示数据的时候产生拖尾现象,驱动程序先要关闭显示屏,即消隐,等显示数据打入输出锁存器并锁存,然后再输出新的行号,重新打开显示。
图4为显示驱动程序(显示屏扫描函数)流程图。
图4显示驱动程序流程图
4.2系统主程序
本文设计的系统软件能使系统在目测条件下LED显示屏各点亮度均匀、充足,可显示图形和文字,显示图形和文字应稳定、清晰无串扰。
图形或文字显示有静止、移入移出等显示方式。
系统主程序开始以后,首先是对系统环境初始化,包括设置串口、定时器、中断和端口;然后以“卷帘出”效果显示图形,停留约3s;接着向上滚动显示“我爱单片机”这5个汉字及一个图形,然后以“卷帘入”效果隐去图形。
由于单片机没有停机指令,
所以可以设置系统程序不断的循环执行上述显示效果。
单元显示屏可以接收来自控制器(主控制电路板)或上一级显示单元模块传输下来的数据信息和命令信息,并可将这些数据信息和命令信息不经任何变化地再传送到下一级显示模块单元中,因此显示板可扩展至更多的显示单元,用于显示更多的显示内容。
图5是系统主程序流程图。
图5系统主程序流程图
5.系统调试
5.1性能分析
LED显示屏硬件电路只要器件质量可靠,管脚焊接正确,一般无需调试即可正常工作。
软件部分需要调试的主要有显示屏刷新频率及显示效果两部分。
显示屏刷新率由定时器T0的溢出率和单片机的晶振频率决定,表7.1给出了实验调试时采用的频率及其对应的定时器T0初值。
表7.1显示屏刷新率(帧频)与T0初值关系表(24M晶振)
刷新率(Hz)
25
50
62.5
75
85
100
120
T0初值
0xec78
0xf63c
0xf830
0xf97e
0xfa42
0xfb1e
0xfbee
从理论上来说,24Hz以上的刷新率就能看到连续稳定的显示,刷新率越高,显示越稳定,同时刷新率越高,显示驱动程序占用的CPU时间也越多。
实验证明,在目测条件下刷新率40Hz以下的画面看起来闪烁较严重,刷新率50Hz以上的已基本觉察不出画面闪烁,刷新率达到85Hz以上时再增加画面闪烁将没有明显改善。
显示效果处理程序的内容及方法非常广泛,其调试过程在此不作具体讨论,读者可对照源程序自行分析。
这个方案设计的16×16点阵LED图文显示屏,电路简单,成本较低,且较容易扩展成更大的显示屏;显示屏各点亮度均匀、充足;显示图形或文字稳定、清晰无串扰;可用静止、移入移出等多种显示方式显示图形或文字。
5.2调试过程中遇到的问题及解决方案
(1)当我把所有的线都接好之后,接上电源却没有看到任何现象,LED显示屏没有一个灯是亮的,用万用表检测之后发现,LED行驱动电路没有接好,三级管的C级没有接上高电平,当接上高电平之后,LED开始发光了。
(2)调试过程中发现点阵的1行永远是亮的,按复位键还是高亮的。
用万用表的欧姆档测点阵的第1行和高电平线是否连在一起,并检测与点阵第1行的相连的三极管是否好坏。
经过我多次的检测,终于发现了第1行与三极管相连的线与一个高电平的触电连在一起了。
(3)调试过程中发现有一块点阵LED图文显示不是很稳定,有点闪烁。
检测发现,一些电平漏接了,该接高电平或者低电平的引脚没有接上。
用万用表的欧姆档测引脚和电源之间的电阻值,经过几次检测,找到了74LS595的13号引脚没有接地。
解决好上述问题之后,16X16点阵显示屏就能够稳定的工作了。
只不过现在的程序还是使用的是书上的源程序,书上的程序是为4快16X16点阵设计的,而我们的硬件电路只有一块16X16LED点阵,所以必须修改源程序。
6.设计总结
6.1硬件电路的总结
(1)硬件电路焊接不是问题,因为在以前的试验中,我们曾多次的练习过电烙铁的使用方法,所以在这次试验中,焊接工作进行的十分顺利,在焊接的过程中没有出现虚焊和错焊的问题。
(2)在焊接板子之前需要弄懂8x8点阵的结构,需要弄懂怎么样将4个8x8点阵并成一个16x16的点阵,这是我初次接触,需要努力的去分析,初次我也失败过,我没有搞清点阵外部结构是固定不变的,从而造成我将行和列给接错。
(3)在焊接板子过程中需要考虑布局,怎么样布局能让板子焊接起来轻松点并且美观点。
然而我在布局的缺陷就是没有在意整体的美观,只在意部分美
(4)在焊接板子过程中,我急于求成而造成板子的背面焊点不够整洁,不够美观。
(5)硬件电路的调试是关键,有时候,当我们把电路都连接好了之后,却没有任何实验现象,这是非常常见的情况,遇到这种情况,我们就要使用自己的电路知识对电路进行检测,找出问题并解决问题。
6.2软件设计总结
(1)软件设计部分书上已经给了参考源程序,但是书上给的是4个16x16的点阵LED图文显示屏的源程序,我们的课程设计是1个16x16的点阵LED图文显示屏的源程序,因此我们需要在课本上给的源程序上进行改动,这样我们就需要看懂书上的源程序。
(2)程序编程时一个最重要的就是字模提取,在字模提取过程中,我刚开始没有弄懂字模提取软件,造成提取的字模在显示时是暗色的。
最后经过徐老师的指导,我弄懂了字模提取软件的方法。
(3)通过这次课程设计,我熟练了proteus软件的基本操作,用proteus软件仿真16x16点阵的动态。
缺点就是不够熟练,操作起来费时。
6.3感想
通过这次课程设计,加强了我们动手、思考和解决问题的能力。
做课程设计同时也是对课本知识的巩固和加强,由于课本上的知识太多,平时课间的学习并不能很好的理解和运用各个元件的功能,而且考试内容有限,所以在这次课程设计过程中,我们了解了很多元件的功能,并且对于其在电路中的使用有了更多的认识。
平时看课本时,有时问题老是弄不懂,做完课程设计,那些问题就迎刃而解了。
而且还可以记住很多东西。
比如一些芯片的功能,平时看课本,这次看了,下次就忘了,通过动手实践让我们对各个元件映象深刻。
认识来源于实践,实践是认识的动力和最终目的,实践是检验真理的唯一标准。
所以这个课程设计对我们的作用是非常大的。
这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。
这次课程设计终于顺利完成了,在设计中遇到了很多专业知识问题,最后在徐武雄老师的辛勤指导下,终于游逆而解。
同时,在老师的身上我们学也到很多实用的知识,在次我们表示感谢!
同时,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢!
7.附录A;源程序
源程序代码(主要语句要有注释)。
7.1C语言源程序
#include"reg52.h"
#defineBLKN2//列锁存器数(=LED显示字数*2)
#defineTOTAL20//待显示字个数,本例共20个
#defineCONIOP1//显示控制口
sbitG=CONIO^7;//CONIO.7为154译码器显示允许控制信号端口,0时输出,1时输出全为高阻态.
sbitCLK=CONIO^6;//CONIO.6为595输出锁存器时钟信号端,1时输出数据,从1到0时锁存输出数据.
sbitSCLR=CONIO^5;//CONIO.5为595移位寄存器清零口,平时为1,为0时,输出全为0.
unsignedcharidatadispram[(BLKN/2)*32]={0};//显示区缓存,四字共4*32单元
//
//**************字模表******************//
unsignedcharcodeBmp[][32]={
/*--文字:
电--*/
/*--Fixedsys12;此字体下对应的点阵为:
宽x高=16x16--*/
{0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xC0,0x07,0xDE,0xF7,0xDE,0xF7,0xC0,0x07,0xDE,0xF7,
0xDE,0xF7,0xDE,0xF7,0xC0,0x07,0xDE,0xF7,0xFE,0xFD,0xFE,0xFD,0xFF,0x01,0xFF,0xFF},
/*--文字:
子--*/
/*--Fixedsys12;此字体下对应的点阵为:
宽x高=16x16--*/
{0xFF,0xFF,0xC0,0x0F,0xFF,0xDF,0xFF,0xBF,0xFF,0x7F,0xFE,0xFF,0xFE,0xFF,0xFE,0xFB,
0x00,0x01,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFA,0xFF,0xFD,0xFF},
/*--文字:
与--*/
/*--Fixedsys12;此字体下对应的点阵为:
宽x高=16x16--*/
{0xFF,0xFF,0xF7,0xFF,0xF7,0xFB,0xF0,0x01,0xF7,0xFF,0xF7,0xFF,0xF0,0x03,0xFF,0xFB,
0xFF,0xFB,0xFF,0xDB,0x80,0x0B,0xFF,0xFB,0xFF,0xFB,0xFF,0xB7,0xFF,0xCF,0xFF,0xFF},
/*--文字:
信--*/
/*--Fixedsys12;此字体下对应的点阵为:
宽x高=16x16--*/
{0xF7,0x7F,0xF3,0x9F,0xE7,0xBF,0xE8,0x01,0xCF,0xFF,0xCC,0x07,0xAF,0xFF,0x6C,0x07,
0xEF,0xFF,0xEC,0x07,0xED,0xF7,0xED,0xF7,0xED,0xF7,0xEC,0x07,0xED,0xF7,0xFF,0xFF},
/*--文字:
息--*/
/*--Fixedsys12;此字体下对应的点阵为:
宽x高=16x16--*/
{0xFE,0xFF,0xFD,0xFF,0xE0,0x0F,0xEF,0xEF,0xE0,0x0F,0xEF,0xEF,0xE0,0x0F,0xEF,0xEF,
0xE0,0x0F,0xFF,0xFF,0xF6,0xFF,0xD7,0x7B,0xD7,0x6D,0x97,0xED,0xF8,0x0F,0xFF,0xFF},
/*--文字:
工--*/
/*--Fixedsys12;此字体下对应的点阵为:
宽x高=16x16--*/
{0xFF,0xFF,0xC0,0x03,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,
0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0x00,0x01,0xFF,0xFF,0xFF,0xFF},
/*--文字:
程--*/
/*--Fixedsys12;此字体下对应的点阵为:
宽x高=16x16--*/
{0xF2,0x07,0x8E,0xF7,0xEE,0xF7,0xEE,0xF7,0x02,0xF7,0xEE,0x07,0xCF,0xFF,0xC4,0x03,
0xAB,0xBF,0xAF,0xBF,0x6C,0x03,0xEF,0xBF,0xEF,0xBF,0xEF,0xBF,0xE8,0x01,0xEF,0xFF},
/*--文字:
学--*/
/*--Fixedsys12;此字体下对应的点阵为:
宽x高=16x16--*/
{0xFE,0xF7,0xEF,0x73,0xF3,0x37,0xF7,0x6F,0x80,0x01,0xBF,0xFB,0x70,0x17,0xFF,0xBF,
0xFF,0x7F,0x80,0x01,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFD,0x7F,0xFE,0xFF},
/*--文字:
院--*/
/*--Fixedsys12;此字体下对应的点阵为:
宽x高=16x16--*/
{0xFF,0x7F,0x07,0xBF,0x70,0x01,0x6B,0xFB,0x5F,0xFF,0x5C,0x07,0x6F,0xFF,0x77,0xFF,
0x70,0x01,0x56,0xDF,0x6E,0xDF,0x7E,0xDF,0x7D,0xDD,0x7D,0xDD,0x7B,0xDD,0x77,0xE1},
/*--文字:
O--*/
/*--Fixedsys12;此字体下对应的点阵为:
宽x高=16x16--*/
{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xC3,0x83,0x99,0x7D,0x99,0x7D,0x99,0x7D,0x99,0x83,
0x99,0x7D,0x99,0x7D,0x99,0x7D,0xC3,0x83,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},
/*--文字:
电--*/
/*--Fixedsys12;此字体下对应的点阵为:
宽x高=16x16--*/
{0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xC0,0x07,0xDE,0xF7,0xDE,0xF7,0xC0,0x07,0xDE,0xF7,
0xDE,0xF7,0xDE,0xF7,0xC0,0x07,0xDE,0xF7,0xFE,0xFD,0xFE,0xFD,0xFF,0x01,0xFF,0xFF},
/*--文字:
气--*/
/*--Fixedsys12;此字体下对应的点阵为:
宽x高=16x16--*/
{0xF7,0xFF,0xF7,0xFF,0xE0,0x01,0xEF,0xFF,0xDF,0xFF,0xB0,0x07,0xFF,0xFF,0xE0,0x0F,
0xFF,0xEF,0xFF,0xEF,0xFF,0xEF,0xFF,0xEF,0xFF,0xF5,0xFF,0xF5,0xFF,0xF9,0xFF,0xFD},
/*--文字:
2--*/
/*--Fixedsys12;此字体下对应的点阵为:
宽x高=16x16--*/
{0xFF,0xFF,0xFF,0xFF,0xF8,0x1F,0xF3,0xCF,0xE7,0xCF,0xE7,0xCF,0xFF,0x9F,0xFF,0x3F,
0xFE,0x7F,0xFC,0xFF,0xF9,0xFF,0xF3,0xFF,0xE7,0xFF,0xE7,0xF7,0xE0,0x07,0xFF,0xFF},
/*--文字:
班--*/
/*--Fixedsys12;此字体下对应的点阵为:
宽x高=16x16--*/
{0xFE,0xFF,0x06,0x81,0xDE,0xEF,0xDE,0xEF,0xDE,0xEF,0xDA,0xEF,0x02,0x81,0xDA,0xEF,
0xD6,0xEF,0xDE,0xEF,0xDE,0xEF,0xC5,0xEF,0x3D,0xEF,0xFB,0x01,0xF7,0xFF,0xEF,0xFF},
/*--文字:
袁--*/
/*--Fixedsys12;此字体下对应的点阵为:
宽x高=16x16--*/
{0xFE,0xFF,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 1616 点阵 LED 电子显示屏 设计 报告