《三色LED显示屏的设计与实现.pdf》由会员分享,可在线阅读,更多相关《三色LED显示屏的设计与实现.pdf(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 三色 LED 显示屏的设计与实现 三色 LED 显示屏的设计与实现 武汉大学 电子信息学院 电子信息工程 薛妮 韩淼【摘要】【摘要】本文给出基于单片机系统的1615三色LED点阵双显示屏设计方案,采用动态显示原理,配合优化的程序设计,在动态扫描方式下,得到较高刷新速率、画面清晰的三色显示效果。本设计实现了由红、黄、绿组成的十二种颜色搭配的静态和动态字符、文字、动画显示:集成 ASCII 码子库显示;四条广告语的十二种颜色循环显示;生动的动画显示。按键控制上下左右移动及速度大小和灰度等级。【关键词】三色【关键词】三色 LED 显示屏 动态显示 单片机 双屏显示【引言】【引言】LED 电子显示屏
2、是随着计算机及相关的微电子、光电子技术的迅猛发展而形成的一种电子广告媒体,已经渗透到工业、农业、交通、金融及信息广告等各个行业,用于显示字符、图像等信息。LED 电子显示屏的象素采用 LED 发光二极管,将多个发光二极管以点阵的形式排列构成 LED 阵列,这种显示屏具有耗电省、成本地、清晰度高、寿命长等优点。本文重点提出了基于单片机系统的三色屏控制电路、驱动电路设计方法,并针对两个1615 屏同时显示的特点,对其软件实现的算法给出了具体的分析。1.系统设计思路 1.1 设计任务 1.系统设计思路 1.1 设计任务 设计并制作一个单片机为控制核心的三色 LED 点阵显示系统,系统实现的功能及要求
3、如下:红、绿、黄、黑、彩色图形、文字显示,画面清晰无闪烁。12 种颜色配置循环显示,集成 ASCII 码字库及三条以上中文广告语 通过按键键盘选择不同的广告语 显示方式的变化功能(上移、下移、左移、右移)及显示速度的键盘控制(加、减速)动画显示 1.2 数学模型 1.2 数学模型 对于点阵型 LED 显示可以采用共阴极或共阳极,本系统采用共阴极,其硬件电路如图 1所示。当行上有一负脉冲选通信号时,列端四位数据为 1 者发光二极管导通点亮。这样只需要将图形或文字的显示码作为列信号且对应于行信号的 0 逐行扫描,就可以逐行点亮点阵。由于扫描时间很快和人眼的视觉暂留效应,就可以显示图形或文字。例如,
4、若要图中所示 16 个 LED 显示一方框,则:a)行 14 上加循环选通脉冲 b)对应行选通时,在列端(四位数据端)分别加下列数据:行及行选通 A B C D 1 1 1 1 1 2 1 0 0 1 http:/ 电子发烧友 http:/ 电子技术论坛 1 3 1 0 0 1 4 1 1 1 1 这样,当选通第一行时列信号为 1111,选通第二行时列信号为 1001,选通第三行时列信号为 1001,选通第四行时列信号为 1111,当刷新频率足够高时,由于人眼的视觉暂留特性,便可观察到稳定的方框。图 1 44 共阴极 LED 阵列 1.3 方案选择论证 1.3 方案选择论证 LED 电子显示屏
5、的系统组成主要由单片机控制模块、驱动模块(电子显示屏屏体由若干模块拼装而成)和 INTERFACE 组成。针对任务要求,我们发现此项设计的核心部分在扫描方式的选择以及数据输出的不同形式上。因此,设计方案的比较主要对此展开。1.3.1 方案的提出 1.3.1 方案的提出 方案一:静态显示 方案二:采用动态扫描法并行输出数据 方案三:采用动态扫描法串行输出数据 1.3.2 方案的比较 1.3.2 方案的比较 方案一所谓的静态显示就是对 LED 电子显示屏中的每一象素点都通过硬件单独控制,整个 LED 显示屏所有的 LED 的同时显示。此方式最大优点是程序设计简单,且画面无闪烁。但这种设计存在致命的
6、缺点:电路复杂,硬件利用率低,成本巨大。所以此方式一般不被采用。方案二和方案三同样采用动态扫描实现显示过程。所谓的动态扫描法是利用人眼的视觉暂留特点而实现的一种显示方法,即当刷新速率足够高时,人眼就察觉不出显示屏画面更迭的闪烁。若要显示一帧画面,先送出第一行的数据,然后选通并点亮第一行,延时;此后送出第二行的数据,同样选通、点亮并延时;依次将所有行扫描完,即给出了一帧的画面。但方案二的缺点也是明显的,比较而言,方案二的译码电路比较复杂,相对硬件开销大一些;方案三电路构成简单,译码电路简洁。1.3.3 方案的确定 1.3.3 方案的确定 在此次设计中我们采用“动态扫描法串行输出数据”的方法。具体
7、设计在下面的叙述中将详细讨论。2.系统硬件具体制作 2.系统硬件具体制作 http:/ 电子发烧友 http:/ 电子技术论坛 22.1 控制部分设计与实现2.1 控制部分设计与实现 2.1.1 数据串行输出的电路实现 2.1.1 数据串行输出的电路实现 本设计显示三种颜色的方法是:只有红色 LED 亮时,显示屏呈红色;只有绿色 LED 亮时,显示屏呈绿色;红色和绿色 LED 均点亮时,显示屏呈现黄色。这就要求同时输出红、绿两路数据,为此,考虑采用两个并入串出的移位寄存器,在 W78E58B 的时钟(CLK)控制下同时输出两路数据。实现的电路方框图如下:红数据 红控制信号 绿数据 绿控制信号
8、时钟 CLK 锁存信号 行地址选通 图 2 数据传送与控制清单如下:P0.0P0.7 输出点阵数据 P1.0 与两个 3/8 译码器的 A 相连,与 P1.1、P1.2、P1.组成行选通地址 P1.1 与两个 3/8 译码器的 B 相连,与 P1.0、P1.2、P1.组成行选通地址 P1.2 与两个 3/8 译码器的 C 相连,与 P1.0、P1.1、P1.组成行选通地址 P1.3 与其中一个 3/8 译码器的 G1相连,与另一个 3/8 译码器的 G2相连,与 P1.0、P1.1、P1.组成行选通地址 P1.4 串/并转换控制信号 P1.5 数据锁存信号(LOAD)P2.7 红通道选通信号
9、P2.6 绿通道选通信号 TXD 数据移位脉冲 CLK(上升沿)电路图(见附图一)串行数据产生的具体过程?输出红色信号:置位 P2.7,当红信号选通信号(P2.7)与写有效信号(WR)同时有效,且绿信号选通信号(P2.6)无效时,锁存器 1 锁存 P0 口数据,数据即作为红色数据存到并/串移位寄存器 1 的输入端;?输出绿色信号:置位 P2.6,当绿信号选通信号(P2.6)与写有效信号(WR)同时有效,且红信号选通信号(P2.7)无效时,锁存器 2 锁存 P0 口数据,数据即作为绿色数据存到并/串移位寄存器 2 的输入端;?令串/并转换控制信号(P1.4)有效,通过 MOV SBUF,A 指令
10、,单片机串口向外输出数据,TXD 产生 8 个 CLK 信号。在 CLK 的上升沿作用下,数据右移。?至此,P0 口先后输出的两个八位并行数据就被分别转换成了红绿串行数据,同时输 P0。0P0。7 P2。7 WR W78E58B W78E58B P2。6 P1。4 TxD P1.5 P1。0P1。3 八位移位寄存器 1 八位移位寄存器 2 74LS373锁存器 174LS373 锁存器 2http:/ 电子发烧友 http:/ 电子技术论坛 3出。2.1.2 键盘 2.1.2 键盘 键盘是人机交互的重要界面,由于需要实现按键选择广告语、动画等功能,所以外加一片 8255A 以扩展 I/O 来实
11、现键盘控制。实现的电路方框图如下:数据 地址 图 2 电路图(见附图一)键盘定义 键盘采用独立式,用 PA0PA7、PB0PB3(共 12 个输入口),每个按键独立地占用一根输入口线。键 1 键 2 键 3 键 4 键 5键 6键 7键 8键 9键 10 键 11 键 12 键 1:ASCII 码输出 键 2:广告语 1 左移 键 3:广告语 1 右移 键 4:广告语 2 左移 键 5:广告语 2 右移 键 6:广告语 3 左移 键 7:广告语 3 右移 键 8:广告语 4 上移 键 9:广告语 4 下移 键 10:广告语 4 闪烁 键 11:动画 键 12:4 级亮度控制 2.2 驱动电路设
12、计与实现 2.2 驱动电路设计与实现 2.2.1 驱动电路简介 2.2.1 驱动电路简介 所谓驱动电路是指包括 LED 阵列的驱动显示电路,显示屏的主要技术要求是由驱动模块直接实现的,其中包括:?显示色彩(单色、红、绿、黄、黑、全彩)?刷新速率?显示亮度?使用场所(户内或户外)为保证在整屏刷新时有足够的亮度,我们将驱动模块的大小设计为 1615 的独立模块组,整块屏体由若干功能完全一致的独立单元模块要求尺寸拼装而成。2.2.2 驱动电路的设计 2.2.2 驱动电路的设计 P0.0P0.7 W78E58B W78E58B RD*WR*A0 地址锁存器74LS373 8255A8255ARD*WR
13、*A0 A1 键盘 http:/ 电子发烧友 http:/ 电子技术论坛 4驱动电路作为驱动模块中的基本电路,包括输出数据的驱动和行选驱动(即行、列驱动),其设计要求应满足给定的 LED 阵列的显示亮度。在电路设计中,我们采用两个 3/8 译码器选通要显示的那一行,为了加大驱动能力,锁存器和译码器后面都加了驱动器。实现的电路方框图如下 CLK 信号 红_IN 红_OUT (至下一 锁存信号 模块)行地址 绿_IN 绿_OUT (至下一 模块)图 4 电路图(见附图二)电路的具体工作过程 P1.0、P1.1、P1.2、P1.3输出第 0 行地址,在 TxD 产生的 CLK 信号下,串/并转换移位
14、寄存器将控制模块中输出的红、绿串行数据分别转换成并行数据并输出。令锁存信号有效,锁存寄存器将上述输出数据锁存,经驱动电路送至发光二极管的列端,同时锁存信号使 3/8 译码器译码产生有效地址,从而选中该行。P1.0、P1.1、P1.2、P1.3依次输出第 115 行地址线,并重复以上过程,则一帧显示完毕 2.3 接口电路 2.3.1 2.3 接口电路 2.3.1 驱动部分与控制部分的接口电路 驱动部分与控制部分的接口电路 1616 三色 LED 显示屏1616 三色 LED 显示屏 8 位串/并转换移位寄存器8 位串/并转换 移位寄存器 8 位串/并转换移位寄存器 8 位串/并转换 移位寄存器
15、8 位锁存器 8 位锁存器 8 位驱动器 8 位驱动器 8 位锁存器 8 位锁存器 8 位驱动器 8 位驱动器 驱动驱动3/8 译 码 器 3/8 译 码 器 http:/ 电子发烧友 http:/ 电子技术论坛 5 根据显示部分的控制信号,我们将驱动部分与控制部分接口插槽定义如下:引脚 1:移位寄存器 74LS164 的移位时钟(CLK)输入 引脚 2:扫描锁存 74LS373 锁存信号输入 引脚 3、4、5、6:扫描行选信号输入 引脚 7:红色数据输入 引脚 8:绿色数据输入 2.3.22.3.2 显示屏与驱动电路的连接 显示屏与驱动电路的连接 引脚 1-15:红色数据的 1-15 列 引
16、脚 16-23:第 1-8 行 引脚 1-15:绿色数据的 1-15 列 引脚 16-23:第 9-16 行 引脚 24-25:空闲。为了避免插接时将显示屏和驱动电路接反,特意将两个插槽的插针设计的数量不同(一个 23 个引脚,一个 25 个引脚)3.系统软件设计 3.13.系统软件设计 3.1 软件算法 软件算法 软件的设计是该设计的关键部分之一,对文字的输出控制不仅多而且复杂,其中要用到很多的多重循环,同时还要考虑显示屏的刷新率、C51 和汇编语言的机器执行效率问题,故软件算法的高效极为重要。这些都是该系统设计着重解决的问题。3.1.1 显示程序的算法 3.1.1 显示程序的算法 1、静态
17、显示子程序 静态显示是通过反复帧扫描实现的,而每一帧画面的显示是通过顺序点灯 0-15 行实现的。为了保证画面稳定无闪烁,行与行之间的点灯时间间隔都不能超过人眼的视觉暂留时间0.1s。其中刷新速度是由每一帧的显示时间决定的,而亮度则是由一行灯点亮后的延时长短决定的,调整这些参数可以改变相应的指标。两个显示屏需要 152=30 个点灯数据,故静态显示的算法如下:将要显示的两个字的字模数据分别存储在 20H-3FH 和 40H-5FH 这 40 字节的 RAM 中,每两字节存储一行的点灯数据,20 个字节由小到大依次存储 0 到 15 行的数据,比如:20H、21H存储第一个字的第一行点灯数据,4
18、0H、41H 存储第二个字的第一行点灯数据 P1.0、P1.1、P1.2、P1.3口输出第 0 行地址 http:/ 电子发烧友 http:/ 电子技术论坛 6P0 口分别向外输出第一屏的前 8 位红、绿点灯数据,然后由 TxD 产生时钟信号,使数据移位到寄存器 P0 口分别向外输出第一屏的后 7 位(一个字节 8 位,故第 8 位对显示无影响)红、绿点灯数据,并移位寄存 同样的道理输出并寄存第二屏的 15 位数据 锁存信号有效,前面移位寄存的 30 位数据被锁存并输出,与此同时,3/8 译码器译码使相应行选通,延时,这样就点亮一行 判断 P1.0、P1.1、P1.2、P1.3口输出的行地址是
19、否第 15 行地址,是,则跳至,否则跳至 2、动态显示 动态显示是通过连续显示不同的静态画面实现的,静态显示是其基础。动态移动速度与静态画面的转换速度是一一对应的,对一幅画面(一帧)的扫描次数越多,则转换速度越慢,即移动速度越慢。所以可以通过改变扫描的次数来控制移动速度。动态平行移动子程序 动态平行移动显示中静态画面的点灯数据是由上一帧静态画面点灯数据左移或右移得到的,而该子程序的关键也在此。由于每行有 152=30 个点灯数据,而单片机数据的输出是以 8 为单位的,故向左移动与向右移动有所不同,下面分别给出分析(以广告语:“你好,武汉大学!”为例,一屏显示一个字):平行左移显示 1)数据存储
20、:将要显示的前两字“你好”的字模数据分别存到 20H-3FH 和 40H-5FH 中,第三个“,”的字模作为备用数据存储到 60H-7FH 中 第 0-7 列 第 1-7 列 7 0 7 1 0 7 0 7 1 0 7 0 7 1 0 第 15 行 3FH 5FH 7FH 第 0 行 20H 40H 60H 2)移前准备:将“好”的左半边数据的最高位移到“你”的右半边数据的最低位,本身保持不变 7 0 7 1 0 7 0 7 1 0 7 0 7 1 0 3FH 5FH 7FH 20H 40H 60H 3)一个字字模数据左移:数据每左移一位显示一次,直到将“,”全移至“好”的位置,移位的过程是一
21、行一行进行的,每行移动时先将“,”左移,再将“好”左移,最后移“你”,下面以“,”和“好”的左移程序示例:mov r1,#60h mov r0,#40h inc r1 你 好,你 好,http:/ 电子发烧友 http:/ 电子技术论坛 7 mov a,r1 rlc a mov r1,a dec r1 mov a,r1 rlc a mov r1,a mov c,acc.7 inc r0 mov a,r0 rlc a mov r0,a dec r0 mov a,r0 rlc a mov r0,a 4)再将“武”作为备用数据,存储到 60H-7FH,以下过程与上面类似 5)依次类推,移动并显示下几
22、个字 平行右移显示 1)数据存储:与左移类似,不同的是“你”的字模数据存在 40H-5FH,“好”字模数据存在 20H-3FH 7 0 7 1 0 7 0 7 1 0 7 0 7 1 0 7FH 3FH 5FH 60H 20H 40H 2)一个字字模数据右移:过程与左移类似,但因为“你”“好”的存储单元改变了,所以除了移动方向不同外,存储单元的移动次序也有所不同,以“,”“好”的右移显示示意图及程序示例如下:7 0 7 1 0 7 0 7 1 0 7 0 7 1 0 7FH 3FH 5FH 60H 20H 40H 右移程序:mov r1,#60h mov r0,#20h clr c mov a
23、,r1 rrc a mov r1,a inc r1,好 你,好 你 http:/ 电子发烧友 http:/ 电子技术论坛 8mov a,r1 rrc a mov r1,a mov c,acc.0 mov a,r0 rrc a mov r0,a inc r0 mov a,r0 rrc a mov r0,a 3)后面几个字的右移与上面相同 动态垂直移动子程序 动态垂直上移 示意图如下:3EH 5FH 3CH 5CH 0H 40H 1)数据存储:将自强的字模数据分别存储在 20H-3FH 和 40H-5FH 中并显示 2)字模数据上移 将自和强的点灯数据依次上移一行,即将 20H-3FH 和 40H
24、-5FH 中的数据依次后移两位,即:3CH 移至 3EH,3DH 移至 3FH,20H 移至 22H,21H 移至 23H;5CH 移至 5EH,5DH 移至 5FH50H 移至 52H。再将“弘”“毅”的最后两个数据分别存到 20H、21H 或 40H、41H 两个字节,并静态显示,这时就将字体上移了一行。依次类推,连续显示,就可以实现上移了。动态垂直下移 示意图如下 3EH 5FH 3CH 5CH 0H 40H 自 强 弘 毅弘 毅http:/ 电子发烧友 http:/ 电子技术论坛 9 具体过程与上移类似,这里就不详叙 3、动画显示 动画的实质是若干幅静态显示画面依次循环播放,当这些静态
25、画面在人眼视觉暂留时间之内连续显示时,就使人眼产生动画的感觉。因此,每一幅静态画面的制作就成为动画制作的关键,既要保证每一幅画面的完整,又要保证相邻两幅画面之间相对的连续。3.1.23.1.2 键盘 键盘 键盘扫描子程序 键盘扫描子程序穿着整个程序的始终,因此,该程序中的变量大多为全局变量。R5:作用有二:a)依据其值判断继续执行原程序,还是跳转。当 R50FFH 时,则跳转回 START 程序,进行键值判别,否则继续原子程序。b)当有键按下时,用来标志键值。R5=0H、1H、2H、3H、4H、5H、6H、7H、8H、9H、AH 分别表示按了第 1、2、3、4、5、6、7、8、9、10、11
26、个键。R7:用来控制一帧的扫描次数,间接控制移动速度 1BH:标志亮度级。(1BH)=#0H,显示亮度为 1 级(最暗级)(1BH)=#1H,显示亮度为 2 级(较亮级)(1BH)=#2H,显示亮度为 3 级(亮级)(1BH)=#3H,显示亮度为 4 级(最亮级)1AH:控制每行点灯的延时时间 由于每行的点灯延时时间决定一帧的扫描时间,而动态移动速度又受一帧的扫描时间和每帧的扫描次数决定,为了保证在同一速度级、不同亮度级下移动速度相同,(1BH)不同时,需对 R7、(1AH)进行调整。R7 亮度级 (1BH)(1AH)慢 快 1 0H 01H 30H 15H 2 1H 20H 20H 10H
27、3 2H 40H 18H 0CH 4 3H F0H F0H 60H 自 强http:/ 电子发烧友 http:/ 电子技术论坛 10 键盘扫描子程序流程图 Y Y N N N N Y Y Y Y N N N N YES N N Y Y Y Y N N Y Y N N Y Y N N Y Y N N Y Y N N Y Y Y Y N N Y Y Y Y N N 读 8255A 口数据有键按下?读 8255B 口数据有键按下?延时 读 8255B 口数据 有键按下?判断键值 亮度级按键亮度级增 1判断键值 有键按下?亮度级为 4延时 读 8255B 口数据 亮度级为 2亮度级为 3亮度级为 1慢
28、键?R7=30H R7=15H 返回 R5=0FFH 返回 返回 返回返回返回返回 返回R7=20H R7=18HR7=0CH R7=10HR7=0CHR7=06H返回慢键?慢键?慢键?http:/ 电子发烧友 http:/ 电子技术论坛 113.1.2 主程序流程图 Y N 3.1.2 主程序流程图 Y N N Y N Y N N Y N Y Y N Y N N Y Y Y Y 判断 R5的值,根据 R5的值转入相应的子程序。在每一个子程序中,又有键盘扫描,当检测到有键按下时,则跳转到主程序,继续判断键值,再根据 R5的值跳到相应的子程序。键盘扫描子程序的流程图在上面已有介绍。4.系统测试
29、4.1 预期达到结果 4.系统测试 4.1 预期达到结果 上电后,系统处于初始状态,屏幕无显示,开关处于右端时,ASCII 字库和广告语的移动速度为快,处于左端时,为慢;按下第 1 个键时,屏幕右移循环显示 12 种颜色的 ASCII 字库;按下第 2 个键时,屏幕 12 种颜色左移循环显示第 1 条广告语:“你好,武汉大学!”;按下第 3 个键时,屏幕 12 种颜色右移循环显示第 1 条广告语:“你好,武汉大学!”;按下第 4 个键时,屏幕 12 种颜色左移循环显示第 2 条广告语:“明天会更好!”;按下第 5 个键时,屏幕 12 种颜色右移循环显示第 2 条广告语:“明天会更好!”;按下第
30、 6 个键时,屏幕 12 种颜色左移循环显示第 3 条广告语:“没有最好,只有更好!”;按下第 7 个键时,屏幕 12 种颜色左移循环显示第 3 条广告语:“没有最好,只有更好!”;按下第 8 个键时,屏幕 12 种颜色上移循环显示第 4 条广告语、武大校训:“自强弘毅求是拓新”;start 初始化 R5=0ffH (1B)=0H键盘扫描 ASCII 码 左移子程序R5=0ffH?R5=0H?广告语 1 左移子程序广告语 1 右移子程序广告语 4 闪烁子程序 R5=1H?R5=2H?R5=9H?动画显示子程序 http:/ 电子发烧友 http:/ 电子技术论坛 12按下第 9 个键时,屏幕
31、12 种颜色下移循环显示第 4 条广告语、武大校训:“自强弘毅求是拓新”;按下第 10 个键时,屏幕 12 种颜色闪烁显示第 4 条广告语、武大校训:“自强弘毅求是拓新”;按下第 11 个键时,屏幕显示动画“游泳的鱼”;第 12 键的作用是:控制亮度,每按一次键亮度级增 1,第 4 级之后转为第 1 级,刚上电或复位后,亮度级为第 1 级。前 11 个键之间可以任意切换,切换后,新显示的移动速度(动画显示除外)、显示亮度保持不变;移动显示过程中可以通过按第 12 键控制亮度,通过拨动开关来进行快慢转换。RST 键为复位键,按下键之后,系统处于初始状态,屏幕无显示。4.2 测试结果 4.2 测试
32、结果 经测试,系统完全达到预期结果:屏幕显示稳定、清晰,左右移动速度基本一致,能够实现 12 种颜色平稳自然的转换(12 种颜色依次为:黄字黑底、红字黑底、绿子黑底、红字绿底、黄字绿底、黑字绿底、黑字黄底、红字黄底、绿字黄底、绿字红底、黑字红底、黄字红底),不同显示之间能够有效切换,速度开关和亮度控制键正常工作,RST 键实现正常复位。5.实验小结 5.实验小结 在此次制作中,1615 LED 三色显示屏采用动态显示原理,双屏显示,具有清晰度高,寿命长的特点;显示程序设计合理,实现了静态和动态三色文字、动画显示,三条以上广告语循环现实功能。画面清晰无闪烁,刷新率高,很好的实现了设计要求和指标。附录 附录 附一:1615 三色 LED 显示控制电路 附二:1615 三色 LED 显示驱动电路 http:/ 电子发烧友 http:/ 电子技术论坛