16,64LED点阵显示课程设计报告.docx
16,64LED点阵显示课程设计报告 吉林工程技术师范学院 信息工程学院 单片机应用设计 课程设计报告 题 目: 16×64LED广告屏设计 专 业: 电子信息工程 班 级: D1043班 姓 名: * 学 号: * 指导教师: 许艳惠、范珩 时 间: 2022年6月10日至28日 单片微型计算机(single chip microcomputer)简称单片机,它是为各类专用控制器而设计的通用或专用微型计算机系统,高密度集成了普通计算机微处理器,一定容量的RAM和ROM以及输入/输出接口,定时器等电路于一块芯片上构成的。 单片机自20世纪70年代问世以来,以极其高的性价比受到人们的重视和关注,所以应用很广,发展很快。单片机的优点是体积小、重量轻、抗干扰能力强,对环境要求不高,价格低廉,可靠性高,灵活性好,开发较为容易。在现代工业控制和一些智能化仪器仪表中,越来越多的场所需要用点阵图形显示器显示汉字,汉字显示屏也广泛应用到汽车报站器,广告屏等。所以研究LED显示有实用的意义。 LED点阵显示屏作为一种新兴的显示器件,是由多个独立的LED发光二极管封装而成. LED点阵显示屏可以显示数字或符号, 通常用来显示时间、速度、系统状态等。 本设计是4个16×64点阵LED电子显示屏的设计。整机以美国ATMEL公司生产的40脚单片机AT89C51为核心,介绍了以它为控制系统的LED点阵电子显示屏的动态设计和开发过程。通过该芯片控制一个行驱动器74LS154和八个列驱动器74HC595来驱动显示屏显示。该电子显示屏可以显示各种文字或单色图像,全屏能显示4个汉字,采用16块8×8点阵LED显示模块来组成4个16×16点阵显示模式。显示采用动态显示,使得图形或文字能够实现静止、移入移出等多种显示方式。文中详细介绍了LED点阵显示的硬件设计思路、硬件电路各个部分的功能及原理、相应软件的程序设计,以及使用说明等。 关键词:AT89C51单片机 LED 16×64点阵显示 动态显示 第一章绪论 (1) 1.1设计的背景与意义 (1) 1.2设计内容与目的 (2) 1.3设计要求 (2) 第二章 设计方案的论证 (3) 2.1显示模块方案论证 (3) 第三章 系统的硬件设计 (5) 3.1单片机最小系统的设计 (5) 3.2驱动电路设计 (5) 第四章 系统的软件设计 (7) 4.1系统主程序流程 (7) 4.2系统子程序流程 (7) 第五章 系统调试 (8) 5.1系统硬件调试 (8) 5.2系统软件调试 (8) 第六章 课设总结与体会 (10) 致 谢 (11) 参考文献 (12) 附录.I 附录.II 附录.VIII 第一章绪论 1.1 设计的背景与意义 单片微型计算机(single chip microcomputer)简称单片机,它是为各类专用控制器而设计的通用或专用微型计算机系统,高密度集成了普通计算机微处理器,一定容量的RAM和ROM以及输入/输出接口,定时器等电路于一块芯片上构成的。 单片机自20世纪70年代问世以来,以极其高的性价比受到人们的重视和关注,所以应用很广,发展很快。单片机的优点是体积小、重量轻、抗干扰能力强,对环境要求不高,价格低廉,可靠性高,灵活性好,开发较为容易。在现代工业控制和一些智能化仪器仪表中,越来越多的场所需要用点阵图形显示器显示汉字,汉字显示屏也广泛应用到汽车报站器,广告屏等。所以研究LED显示有实用的意义。 LED显示屏分为图文显示屏和视频显示屏,均由LED矩阵块组成。图文显示屏可与计算机同步显示汉字、英文文本和图形;视频显示屏采用微型计算机进行控制,图文、图像并茂,以实时、同步、清晰的信息传播方式播放各种信息,还可显示二维、三维动画、录像、电视、VCD节目以及现场实况。LED显示屏显示画面色彩鲜艳,立体感强,静如油画,动如电影,广泛应用于交通运输、车站、商场、医院、宾馆、证券市场、工业企业管理等公共场所。 LED显示屏可以显示变化的数字、文字、图形图像;不仅可以用于室内环境还可以用于室外环境,具有投影仪、电视墙、液晶显示屏无法比拟的优点。 LED之所以受到广泛重视而得到迅速发展,是与它本身所具有的优点分不开的。这些优点概括起来是:亮度高、工作电压低、功耗小、小型化、寿命长、耐冲击和性能稳定。LED的发展前景极为广阔,目前正朝着更高亮度、更高耐气候性、更高的发光密度、更高的发光均匀性,可靠性、全色化方向发展。 现代LED的发展很快,很多研究领域非常已经深刻,实际情况是:很多相关的知识已经远远超出我们在校学生的能力范围,所以在此只是简单的研究一下用单片机驱动的LED显示移动的汉字。目的有三:一是亲手制作一个简单实用的显示文字的LED点阵;二是通过制作LED点阵增强对LED点阵的了解和应用,以及复习巩固单片机知识;三是通实践操作,增强动手实践的意识,为以后走向社会工作打下基础。 汉字显示方式是先根据所需要的汉字提取汉字点阵(如16×16 点阵),将点阵文件存入ROM,形成新的汉字编码;而在使用时则需要先根据新的汉字编码组成语句,再由MCU根据新编码提取相应的点阵进行汉字显示。不论显示图形还是文字,都是控制与组成这些图形或文字的各个点所在位置相对应的LED器件发光。通常事先把需要显示的图形文字转换成点阵图形,在按照显示控制的要求以 一定的格式形成显示数据。对于只控制通断的图文显示屏来说,每个LED发光器件占据数据中的1位(1bit),在需要该LE D器件发光的数据中相应的位填1,否则填0。当然,根据控制电路的安排,相反的定义同样时可行的。显示图形的数据文件,其格式相对自由,只要能够满足显示控制的要求即可。文字的点阵格式比较规范,可以采用现行计算机通用的字库字模。组成一个字的点阵,其大小也可以有16×16、24×24、32×32、48×48等不同规格。 用点阵方式构成图形或文字,是非常灵活的,可以根据需要任意组合和变化,只要设计好合适的数据文件,就可以得到满意的显示效果。因而采用点阵式图文显示屏显示经常需要变化的信息,是非常有效的。 图文显示屏的颜色,有单色、双色、和多色几种。最常用的是单色图文屏。单色屏多使用红色或橘红色或橙色LED点阵单元。双色图文屏和多色图文屏,在LED点阵的每一个“点”上布置有两个或多个不同颜色的LED发光器件。换句话说,对应于每种颜色都有自己的显示矩阵。每一种颜色的控制方法和单色的完全相同,因此掌握了单色图文显示屏的原理,双色屏和多色屏就不难理解了。 为了吸引观众增强显示效果,可以有多种显示模式。最简单的显示模式是静态显示。与静态显示模式相对应,就有各种动态显示模式,它们所显示的图文都是能够动的。按照图文运动的特点又可以分为闪烁、平移、旋转、缩放等多种显示模式。产生不同显示模式的方法,并不意味着一定要重新编写显示数据,可以通过一定的算法从原来的显示数据直接生成。例如,按顺序调整行号,可以使显示图文产生上下平移;而顺序调整列显示数据的位置,就可以达到左右平移的目的;刷新的时间控制,要考虑运动图形文字的显示效果。刷新太慢,动感不显著;刷新太快了,中间过程看不清。一般刷新周期可控制在几十毫秒范围之内。 1.2 设计内容与目的 1.要求采用51单片机作为微控制器。 2.通过四个16×16的点阵LED进行文字显示。 3.在目测条件下LED显示屏各点亮度均匀、充足、稳定、清晰无串扰。 4.文字显示具有每排字有滚动和逐排等显示方式。 1.3 设计要求 要求通过本实践教学环节,能较好地巩固单片机课程的相关知识,强化程序的编写和阅读能力。 本教学环节主要以学生上机编程独立操作实践为主,教师指导为辅,尤其要强调学生自主设计,独立思考。 课题的选定应考虑既要工作量适宜,又能较好地融合所学主要知识点。 第二章 设计方案的论证 2.1 显示模块方案论证 点阵显示原理图 数码管在显示某一个数码时,加在数码管上的段码保持不变,直至换显其他数码为止。这样数码管的每一段均应由一条输出线来 当N位显示则需N×8根输出控制线。 为解决静态显示占用较多I/O资源的问题,在多位显示时通常采用动态显示方式,动态显示是将所有数码管的段码线对应并联在一起,由一个8位的输出口控制,每位数码管的公共端分别出一位I/O线控制。显示不同数码时,由位线控制各位轮流显示。位线控制某位选通时,该位应显示数码的段码同时加在段码线上,即每一时刻仅仅有一位数码管是被点亮的,当轮流显示的速度较快(每秒24次以上),由于人眼的视觉暂留现象,看起来就像所有位同时显示一样,这时,我们就能看到稳定的图像了。 由于单片机的特性,我们将采用方案2:动态显示方式,采用动态显示方式进行显示时,每一行有一个行驱动器,各行的同名列共用一个驱动器。显示数据通常存储在单片机的存储器中,按8位一个字节的形式顺序排放。显示时要把一行中各列的数据都传送到相应的列驱动器上去,这就存在一个显示数据传输的问题。从控制电路到列驱动器的数据传输可以采用并列方式或串行方式。 3.数据传输方案论证 显然,采用并行方式时,从控制电路到列驱动器的线路数量大,相应的硬件 数目多。当列数很多时,并列传输的方案是不可取的。 采用串行传输的方法,控制电路可以只用一根信号线,将列数据一位一位传往列驱动器,在硬件方面无疑是十分经济的。但是,串行传输过程较长,数据按顺序一位一位地输出给列驱动器,只有当一行的各列数据都以传输到位之后,这一行的各列才能并行地进行显示。这样,对于一行的显示过程就可以分解成列数据准备(传输)和列数据显示两部分。对于串行传输方式来说,列数据准备时间可能相当长,在行扫描周期确定的情况下留给行显示的时间就太少了,以致影响到LED的亮度。 解决串行传输中列数据准备和列数据显示的时间矛盾问题,可以采用重叠处理的方法。即在显示本行各列数据的同时,传送下一列数据。为了达到重叠处理的目的,列数据的显示就需要具有所存功能。经过上述分析,就可以归纳出列驱动器电路应具有的功能。对于列数据准备来说,它应能实现串入并处的移位功能;对于列数据显示来说,应具有并行锁存的功能。这样,本行已准备好的数据打入并行锁存器进行显示时,串并移位寄存器就可以准备下一行的列数据,而不会影响本行的显示。图2-2为显示屏电路实现的结构框图。 图2-2 显示屏电路框图 第三章 系统的硬件设计 3.1 单片机最小系统的设计 图3-1 单片机最小应用系统原理图 该最小系统由按键复位RESET 电路、晶体振荡电路以及I/O 接口电路组成。 3.2 驱动电路设计 驱动电路设计与驱动程序: 图3-2 驱动电路 显示驱动程序: - 多个16*64LED 显示演示程序 MCU AT89C51 XAL 24MHz - /以下程序能实现多个16*16LED 屏的多个字符显示,显示方式有整行上移、帘入 帘出、左移、右移/ #include "reg52.h" #define BLKN 8 /列锁存器数(=LED显示字数*2) #define TOTAL 20 /待显示字个数,本例共20个 #define CONIO P1 /显示控制口 sbit G=CONIO7; /CONIO.7为154译码器显示允许控制信号端口,0时输出,1时输出全为高阻态. sbit CLK=CONIO6; /CONIO.6为595输出锁存器时钟信号端,1时输出数据,从1到0时锁存输出数据. sbit SCLR=CONIO5; /CONIO.5为595移位寄存器清零口,平时为1,为0时,输出全为0. unsigned char idata dispram(BLKN/2)*32=0; /显示区缓存,四字共4*32单元 / /*显示屏扫描(定时器T0中断)函数*/ void leddisplay(void) interrupt 1 using 1 register unsigned char m, n=BLKN; TH0 = 0xFc; /设定显示屏刷新率每秒62.5帧(16毫秒每帧) TL0 = 0x18; m = CONIO; /读取当前显示的行号 m = +m & 0x0f; /行号加1,屏蔽高4位 do n-; SBUF = dispramm*2+(n/2)*30 + n; /送显示数据 while (!TI); TI = 0; while (n); /完成一行数据的发送 G = 1; /消隐(关闭显示) CONIO &= 0xf0; /行号端口清0 CLK=1; /显示数据打入输出锁存器 CONIO |= m; /写入行号 CLK=0; /锁存显示数据 G = 0; /打开显示 / 第四章 系统的软件设计 4.1 系统主程序流程 图4-1 主程序流程图 4.2 系统子程序流程 图4-2 子程序流程图 第五章 系统调试 5.1 系统硬件调试 按实验电路图连接电路,使其按预先设定的目的实现实验要求。连接硬件电路如图5-1所示。 图5-1 硬件电路连接 图5-2 硬件电路显示 5.2 系统软件调试 软件部分是先参考书上的例子,然后自己根据硬件电路写程序,由于以前所学是C语言,所以这个系统在编写程序过程中都采用C语言编写。刚刚开始,编写不会一次性通过,经过仔细分析修改最后编译成功。但是,在实际写如S51中,LED显示屏出现各种各样的乱码,通过再次认真仔细分析多次修改程序后,程序能够正常运行。 1.建立工程建立.h文件建立.c文件。 2.标准设置并编译加载C文件。 3.下载至显示屏显示。