(毕业论文)基于单片机的led点阵广告牌设计内容摘要:

有 16 行,为充分利用单片机的接口,本电路需要用到一个 4 线 16线译码器。 为了解决单片机 I/O 端口不足 , 行译码 选用 为串 并转换器 74HC138。 两个 138级联成 4 线 16 线译码器, 然后通过 74LS00 取反再 接显示屏 H1H16 解决了显示屏供电不足的问题 [12]。 具体电路如图 所示: 10 图 行驱动电路图 列驱动系统设计 列驱动电路由 74HC595 构成,它具有一个 8 位串入并出的移位寄存器和一个 8 位输出锁存器,而且移位寄存器和输出锁存器的控制是各自独立的,可以实现在显示本行各列数据的同时,传送下一行的列数据,达到重叠处理的目的。 74HC595 输入侧有 8 个串行移位寄存器,每个移位寄存器的输出都连接一个输出锁存 器。 引脚 SI 是串行数据的输入端。 引脚 SCK 是移位寄存器的移位时钟脉冲,在其上升沿发生移位,并将 SI 的下一个数据打入最低位 [13]。 将 8片 74HC595 进行级连,可共用一个移位时钟 SCK 及数据锁存信号 RCK。 这样,当第一行需要显示的数据经过 8x8=64 个 SCK 时钟后便可将其全 部移入 74HC595 中,此时 11 还将产生一个数据锁存信号 RCK 将数据锁存在 74HC595 中,并在使能信号 G 的作用下,使串入数据并行输出,从而使与各输出位对应的场驱动管处于放大或截止状态;同时由行扫描控制电路产生信号使第一行扫描管导通,相当 于第一行 LED 的正端都接高,显然,第一行 LED 管的亮灭 就取决于 74HC595 中的锁存信号;此外,在第一行 LED 管点亮的同时,再在 74HC595 中移入第二行需要显示的数据,随后将其锁存,同时由行扫描控 制电路将第一行扫描管关闭而接通第二行,使第二行 LED 管点亮,以此类推,当第十六行扫描过后再回到第一行,这样,只要扫描速度足够高,就可形成一幅完整的文字或图像 [14]。 具体电路如图 所示: 图 列驱动电路图 点阵显示电路设计 本方案 采取模块构成的方法来制作一个 LED 点阵显示屏。 本设计采 用 1664 的点阵显示屏,将 1664 的点阵显示屏分为四个独立的 1616 的 LED 点阵屏,再将四个 1616的 LED 点阵屏级联成 1664 的点阵显示屏。 而 1616 的 LED 点阵屏 则 选用四块 88 点阵模块。 88 点阵模块如图 所示: 12 图 88 点阵模块 4 LED 点阵显示系统软件设计 设计目标和硬件总体结构确定的情况下,软件可以分为主程序,显示子程序,各种特效显示子程序三个主要部分组成。 用 C 语言 程序设计,实现 LED 点阵显示内容,并使显示的内容在屏幕上从 上 到 下 的滚动显示。 系统采用模块化结构,包括 主程序、显示子程序。 用 STC89C5 74HC13 74HC59 74LS00 芯片和 4 个 1616LED 点阵显示器构成一个 完整的 1664 点阵 LED 显示 系统。 具体结构如图 所示 : 13 图 软件功能结构框图 主程序设计 按照模块化的设计思路设计。 首先分析程序所要实现的功能,程序要实现静态显示,动态显示两大功能。 主程序的工作流程如图 所示: 开始系统初始化从显示数组读取数据到显示寄存器读取显示控制命令选择显示方式调用相应显示程序 图 主程序流程图 程序开始时首先必须对单片机进行初始化,其中初始化的内容包括:中断优先级的 14 设定 ,中断初始化,串行通信时通信方式的选择和波特率的设定,各 IO 口功能的设定等。 初始化完成后程序进入待机状态等待中断的发生,该程序中主要用到了两个外部中断源和串行中断。 外部中断源由按键的电平变化触发,外部中断主要功能是选择 LED 点阵显示屏的控制方式是由按键控制还是上位机控制和显示状态是静态显示还是动态显示。 串行中断包括发送中断和接收中断都是由软件触发。 中断产生后由预先初始化时设定跳转执行中断子程序。 中断程序设定了 LED 点阵显示屏所要显示的内容和显示的方式,最后执行的是各种显示程序。 按照设定的方式和内容显示出所需 要的内容 [15]。 显示程序的设计 LED 点阵屏显示方式主要由静态显示和动态扫描显示两种。 对静态显示来说,每一个发光二极管都需要一套驱动电路,一帧画面输入以后便可一劳永逸地显示,除非我们改变了显示内容,需要重新输出新的点阵数据。 这种方式系统原理相对简单一些,但所需的译码驱动装量很多,引线多而繁杂,不便于大屏幕的制造,成本高,其可靠性也较低。 另一种动态扫描显示是把整个 LED 屏幕分成若干部分,每一幅画面的显示是显示完一部分后,又显示第二部分 …… 直到显示完最后一部分又重新开始显示第一部分,重复循环 进行。 在重复扫描速度足够快的情况下,我们看到的就是一幅稳定的画面。 也就是说采用动态扫描显示需要不断进行画面的刷新。 在这种方式下其显示驱动电路可重复利用,引线也大大减少,从而使硬件成本降低,且屏幕上的发光二极管轮流发光,使用时的耗电量大大降低。 大屏幕的制造、维护要容易许多,可靠性也增加了。 两种显示方式的比较再结合 51 单片机 I/O 口数量有限的原因决定采用动态扫描的方式进行显示。 动态扫描分为行扫描和列扫描两种方式区别在于选通端和数据输入端分别是行还是列。 在该显示系统中扫描显示的工作原理如图 所示,先选通列 然后再从行送入对应列的数据,这样从第 1 列到第 16 列循环往复,只要切换的速度足够的快 , 利用人眼的延时特性就可以看见一幅稳定的画面 [16]。 15 读取所需要显示的数据至显示寄存器选通第 1 列16 *1 6L E D从数据中读取第 1 列对应的行数据选通第 2 列从数据中读取第 2 列对应的行数据选通第 16 列从数据中读取第 16 列对应的行数据16 *1 6L E D 16 *1 6L E D 图 扫描显示程序原理图 点阵显示某一行程序如下: void main() { uchar j。 uchar i,y=0。 uchar han。 move=0。 word=0。 move1=1。 while(1) { while(word864) { while(move16) for(i=0。 ispeed。 i++) { for(line=0。 line16。 line++) { loadline0()。 sendline0()。 //74HC138 输出控制 EN_port = 1。 //关屏显示 ABCD_port = (ABCD_port amp。 0x0f)|(han4)。 //74HC138 译码输出 han++。 if(han==16) disp_han=0。 Latch_port = 1。 //允许 74HC595 数据输出到 Q1Q8 //端口 16 EN_port = 0。 //74HC138 输出有效,打开显示 Latch_port = 0。 //锁定 74HC595 数据输出 } } move++。 } move=0。 word=word+32。 } word=0。 } 下 移显示的设计 显示程序分为静态显示程序、 下 移显示 2 种显示方式。 其中 下 移动程序调用了静态显示程序为子程序。 显示采用的是 行 扫描的显示方式,选通一 行 后按照列与数据元素的对应关系第 i 行对应的行数据为数组中的第 i 和第 i+16 个元素。 将对应元素的由低至高位依次从端口输出具体做法为将元素向右逻辑移位后再与 0X01 相与,所得结果通过单片机端口输出到串并转换器的 A 端,锁存在锁存器里完成一 行 数据移位后再将其输出。 如此依次循环选通各列来显示所需画面。 下 移 显示要求汉字在显示屏上按从 上 到 下 的顺序出现。 设计时可采用如下方法:首先将 LED 显示屏对应的显示缓冲区全部清零,即 LED 显示空白,然后每间隔一个 “软定时器 ”设定的动态显示时间,显示缓冲区依次加入一个汉字点阵数据并进行扫描显示,这样就可达到动态显示的效果 [17]。 动态显示程序流程如图 所示 : 17 图 下 移程序流程图 点阵下移显示的程序如下: void sendline0() //对于 下 移发送到 595 的子程序 { char s,p。 uchar inc,k,j。 if(move8) inc=0。 else inc=1。 Latch_port = 0。 //74HC595 锁定输出 ,避免数据传输过程中 , //屏数据变化从而显示闪烁 CLK_port = 0。 for(s=0+inc。 s=7+inc。 s++) { if(move8) j=move。 else j=move8。 k=(buf[s]j)|(buf[s+1](8j))。 //字模左边字节左移 j 位, //右边字节右移 j 位, 2 者 相 或 for(p=0。 p8。 p++) 18 { if((kamp。 0x80)!=0) DA_in_port = 1。 else DA_in_port = 0。 CLK_port = 1。 CLK_port = 0。 k= 1。 } } } 19 5 LED 点阵显示 系统调试 软件调试 软件调试主要是软件编译和将各功能块程序分别写入以验证其功能的可实现性。 在进行功能调试前必须用 KEIL C 对所有程序进行编译,编译成功生产可执行 的 .hex 后方可进行功能测试。 软件部分是先参考书上的例子,然后自己根据硬件电路写程序,由于 C 语言编程比较简单,程序可移植性较强,所以这个系统在编写程序过程中都采用 C 语言编写。 刚刚开始,编写不会一次性通过,经过仔细分析修改最后编译成功。 但是在实际中, LED 显示屏出现各种各样的乱码,。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。