基于51单片机的led点阵显示屏系统设计与实现内容摘要:
止新数据输入,在时钟端( CLOCK)脉冲上升沿作用下 Q0为低电平。 当 A、 B 有一个为高电平,则另一个就允许输入数据,并在 CLOCK 上升沿作用下决定 Q0 的状态。 表 31 74LS164 工作参数 参数 最小值 标准值 最大值 单位 高电平输入电压 2 — — V 低电平输入电压 — — V 高电平输出电压 V 低电平输出电压 — V 时钟频率 0 — 25 MHZ 这就要求单片机的引脚输出的高低电平要在芯片的识别范围内,由于采用了列选通行传送显示代码的方法所以行译码电路上也加上了 74L373 锁存芯片。 这就要求 74LS164 芯片的输出要满足锁存芯片的高低电平区分范围和频率要求。 锁存器 74L373 由于 74LS164 芯片不具有锁存功能,所以在 74LS164 进行八位数据的串并转 基于单片机点阵电子显示屏设计 15 换时,串行数据的第一位会从 QA依次移位到 QH,第二位数据会从 QA依次移位到QG,依次类推在八位数据转换完成之前 74LS164 芯片的输出会出现一段时间的乱序输出,这一结果会通过驱动电路表现在显示屏上。 结果就是显示屏无序导通闪烁,不能显示所需内容。 因此在串并转换完成前就需要 74LS164 的输出口不与驱动电路导通。 所以选择锁存器 74LS373 来完成这一功能。 74LS373 为八 D 锁存器 (3S,锁存允许输入有回环特性 )。 373 为三态输出的 八 D透明锁存器 ,共有 54/74S373和 54/74LS373 两种线路结构形式当三态允许控制端 OE为低电平时, O0~O7 为正常逻辑状态,可用来驱动负载或总线。 当 OE为高电平时,O0~O7 呈高阻态,即不驱动总线,也不为总线的负载,但锁存器内部的逻辑操作不受影响。 当锁存允许端 LE 为高电平时, O 随数据 D 而变。 当 LE 为低电平时, O被锁存在已建立的数据电平。 表 32 74LS373 工作参数表 参数 最小值 额定值 最大值 单位 电源电压 5 V 输入高电平电压 2 — — V 输入低电平电 压 — — V 输出高电平电压 — — - mA 输出低电平电压 — — 24 mA 由表与表比较可以看出, 74LS164 的输出条件与 74LS373 的输入条件相匹配,理论上可以实现锁存器对译码器的数据锁存。 驱动电路设计 行驱动电路设计 发光二极管, LED(Light Emitting Diodes),即是在在某些半导体材料的 PN 结中,注入的少数载流子与多数载流子复合时会把多余的能量以光的形式释放出来,从而把电能直接转换为光能。 PN 结加反向电压,少数载流子难以注入 ,故不发光。 这种利用注入式电致发光原理制作的二极管叫发光二极管,通称 LED。 行驱动采用 PNP 三极管 8550 接法如图 34 示: 基于单片机点阵电子显示屏设计 16 1 K5 VL E D 点 阵 屏 阳 极译 码 电 路 输 出 图 34 行驱动器件 8550 的接法 8550 为 PNP 型三极管,内部结构如图 35 示。 发射极 e 接 5V 电源,基极接译码信号输出端,集电极接输出驱动 LED 点阵屏。 当译码器端口输出为低电平时,发射极与基极电势差为 5V- 0v 基极中带负电的电子越过 PN 结扩散到发射区。 发射极产生和电子扩散方向相反的电流 ,由于基极电子大量扩散到发射极集电极电子扩散到基极中形成了电流 cI。 当译码器端口输出高电平时发射极与基极之间的电势差为 5V- 0V - BV ,由于发射极与基极之间电势差的减少基极电子向发射极扩散的电子数量减少故集电极电流也随之减少。 故 8550 在驱动电路中起到提供驱动电流和选通开关的作用。 P N P5 V译 码 器 输 出 信 号输 出 驱 动 L E D 屏eI0v 0v空 穴 空 穴电 子 图 35 8550 内部结构图 列驱动 电路设计 列驱动采用 ULN2803。 ULN2803 是一种高电压大电流达林顿管阵列内部结构如图,该阵列中的八个 NPN 达林顿连接晶体管是低逻辑电平数字电路(如TTL,CMOS 或 PMOS)和大电流高电压的灯,继电器,打印机锤和其他类似负载间的接口的理想器件。 广泛用于计算机,工业和消费类产品中。 所有器件有集电极开路输出和用于瞬变抑制的续流箝位二极管。 集电极输出功率可达 50V600mA[13]。 ULN2803 作为列驱动执行的是列选的工作,当选通的列输入高电平时其对应的 基于单片机点阵电子显示屏设计 17 输输出低电平。 相对应的输出取反,并能提供较大的 灌电流来吸收行驱动流出进过显示屏后的电流。 具体电路如图 37 所示。 图 37 列驱动原理图 通信系统硬件设计 AT89S51单片机具有全双工串行 UART通道,支持单片机进行数据的串行传输。 除了单片机要与 PC 机制定通信协议,确定发送速率外还需要解决的问题就是信号电平问题。 RS232C 标准规定了 PC 机发送数据总线 TXD 和接收数据总线 RXD 采用 EIA 电平,即传送数字 “1”时传输线上的电平在- 3~- 15V 之间;传送数字 “0”时,传输线上的电平在+ 3~+ 15 之间。 但单片机串行口采用正逻辑 TTL 电平, 即数字 “1”时为+ 5V 数字 “0”时为 5V,所以单片机与计算机不能直接相连进行通信必须将 RS232C 与 TTL 电平进行转换 [14]。 在通用的电平转换芯片中 MAX232 系列的芯片以集成度高,单+ 5V 电源工作,只需外接 5 个小电容即可完成 RS232C 与 TTL 电平之间的转换而成为单片机系统中的常用芯片。 在该显示系统中, MAX232 为通信系统中最重要的硬件组成部分 [15]。 电路如图 38 所示: 基于单片机点阵电子显示屏设计 18 C 1+1VDD2C 13C 2+4C 25V E E6T 2O U T7R 2I N8R 2O U T9T 2I N10T 1I N11R 1O U T12R 1I N13T 1O U T14GND15V C C165M A X 23 2A C P E12345678911101D C on ne c t or 9C1104C2104C3104C4104V C CP 3. 1 T XP 3. 0 R XV C C 图 38 串口通信系统电路图 电源设计 在系统中 MAX23 74LS16 74LS37 AT89S51 都需要 5V 的供电电压,在系统开发过程中可以使用电脑 USB 供电。 在实际的大屏幕 LED 显示屏设计中,用电脑 USB 供电明显不切实际。 此时需要对民用的 220V 进行降压整流为 5V 直流电压为显示系统供电。 电路图如图 39 所示。 如图所示,用 220V 转 12V 的变压器进行降压后再通过一个桥式整流电路将交流电整流为直流电。 最后通过 5V 三端稳压模块 LM7805 得出稳定的 5V 输出。 级连大屏幕 LED 显示屏 要实现 LED 的大屏幕显示主要采用内部译码器级连和多个单片机系统级连的方法。 将第 1 个 74LS164 的 Q7 端接第 2 个 74LS164 的 A 端,将第 2 个 74LS164 的Q7 端接第 3 个 74LS164 的 A 端,如此炮制当 N 块 74LS164 相级连时就变为一个串行输入 7N 口输出的串并转换器。 这种级连的优点在于一块单片机可以同时控制更多的 LED 点阵显示屏,且 74LS164 的价格低廉整体成本得到了降低。 但是这种级连方法也存在一定的缺点, 51 系列的单片机的晶振频率不高 74LS164 级连过多会增加一次扫描的时间从而导致显示出现闪烁。 从端口输出的显示数据的显示也要作出相应的改变。 基于单片机点阵电子显示屏设计 19 图 310 74LSL64 级连 构建大屏幕 LED 显示屏的另一种方法是将以较小的 LED 显示系统做为模块进行级连。 如图 311 所示,由独立的 LED 显示系统组成一个大的 LED 显示系统。 其中各子显示系统之间在功能和控制上都是相互独立的,将一幅大屏幕画面拆分为几块小画面再分别送入到各子系统中,各子系统同步显示便可以得到一幅大的画面。 使用这种级连的办法可以避免 51 单片机晶振频率低的弱点,更容易实现大屏幕的显示。 但这种方法仍然存在难点,一是各独立的子系统的通信和协调性要求更高了,如果要实现显示内容的实时性必须需要上位机不断更新显示内容则增加了上位机的通 信数据量,逐个的单片机传送数据也会影响整个画面的更新速度;二是成本提高了。 在实际应用中通常采用内部扩展和外部级连联合使用的方法来构建大屏幕LED 显示屏幕。 即增加单个显示系统显示屏幕大小的同时又将单个的显示系统级连。 详细硬件原理图见附录 1。 基于单片机点阵电子显示屏设计 20 第 4 章 系统软件设计 程序设计 系统软件采用 C 语言编写,按照模块化的设计思路设计。 首先分析程序所要实现的功能,程序要实现串口通信,静态显示,动态显示三大功能。 其功能结构如图24 所示。 通信程序接收上位机数据,交给主程序处理再通过控制程序选择不同的显示程序进 行显示。 主程序的工作流程如图 41 所示: 图 41 主程序流程图 系统初始化 从显示数组读取数据到显示寄存器 读取显示控制命令选择显示方式 调用相应显示程序 RI=1? 起始位。 接收显示数据及控制命令 将显示数据移入显示数组将控制命令赋值给控制字符 N N Y Y 开 始 中断开始 中 断 返 回 基于单片机点阵电子显示屏设计 21 程序开始时首先必须对单片机进行初始化,其中初始化的内容包括:中断优先级的设定,中断初始化,串行通信时通信方式的选择和波特率的设定,各 IO 口功能的设定等。 初始化完成后程序进入待机状态等待中断的发生,该程序中主要用到了两个外部中断源和串行中断。 外部中断源由按键的电平变化触发,外部中断主要功能是选择 LED 点阵显示屏的控制方式是由按键控制还是上位机控制和显示状态是静态显示还是动态显示。 串行中断包括发送中断和接收中断都是由软件触发。 中断产生后由预先初始化时设定跳转执行中断子程序。 中断程序设定了 LED 点阵显示屏所要显示的内容和显示的方式,最后执行的是各种显示程序。 按照设定的方式和内容显示出所需要的内容。 显示程序的设计 LED 显示屏的显示方式 LED 点阵屏显示方式主要由静态显示和动态扫描显示两种。 对静态显示来说,每一个发光二极管都需要一套驱动电路,一帧画面输入以后便可一劳永逸地显示,除非我们改变了显示内容,需要重新输出新的点阵数据.这种方式系统原理相对简单 一些,但所需的译码驱动装量很多,引线多而繁杂,不便于大屏幕的制造,成本高,其可靠性也较低. 另一种动态扫描显示是把整个 LED 屏幕分成若干部分,每一幅画面的显示是显示完一部分后,又显示第二部分 …… 直到显示完最后一部分又重新开始显示第一部分,重复循环进行.在重复扫描速度足够快的情况下,我们看到的就是一幅稳定的画面.也就是说采用动态扫描显示需要不断进行画面的刷新.在这种方式下其显示驱动电路可重复利用,引线也大大减少,从而使硬件成本降低,且屏幕上的发光二极管轮流发光,使用时的耗电量大大降低.大屏幕的制造、维护要容易 许多,可靠性也增加了. 两种显示方式的比较再结合 51单片机 IO 口数量有限的原因决定采用动态扫描的方式进行显示。 动态扫描分为行扫描和列扫描两种方式区别在于选通端和数据输入端分别是行还是列。 在该显示系统中扫描显示的工作原理如图 42 所示,先选通列然后再从行送入对应列的数据,这样从第 1 列到第 16 列循环往复,只要切换的速度足够的 基于单片机点阵电子显示屏设计 22 快利用人眼的延时特性就可以看见一幅。基于51单片机的led点阵显示屏系统设计与实现
相关推荐
NG EQU。 南北方向绿灯 ER EQU。 东西方向红灯 EY EQU。 东西方向黄灯 EG EQU。 东西方向绿灯 BREAKRULE EQU。 交通违章模拟信号输入 SOUND EQU。 警报声输出信号 PEAKORNORM EQU。 高峰信 号输入 ALLSTOP EQU。 全部禁行输入 ALLGO EQU。 全部通行输入 NSTHROUGH EQU。 南北通行输入 EWTHROUGH
用 keil软件编写源程序。 在 protues中画好其电路图如下图。 软件程序的调试一般可以将重点放在分模块调试上,统调是最后一环。 软件调试可以采取离线调试和在线调试两种方式。 前者不需要硬件仿真器,可借助于软件仿真器即可;后者一般需要仿真系统的支持。 本次课题, Keil软件来调试程序,通过各个模 块程序的单步或跟踪调试,使程序逐渐趋于正确,最后统调程序。 图 实时时钟 仿真图
2:MOV 30H,20H MOV 31H,7EH MOV R7,06H SSE1:MOV R1,20H MOV A,30H CPL A MOVX @R1,A。 字位送入 MOV R0,31H MOV A,@R0 MOV DPTR,DDFF MOVC A,@A+DPTR。 取字形代码 MOV R1,21H MOVX @R1,A。 字形送入 MOV A,30H RR A。 右移 MOV 30H,A
in)) /*当时间到闹钟的时间时,蜂铃器叫 5次 */ { if(ring5) { ring++。 alarm=0。 delay(100)。 alarm=1。 } } } } void Leap_Nonleap(int aa) /*判断是否为闰年 */ { if(((aa%4==0)amp。 amp。 (aa%100!=0))||(aa%400==0)) {
第 三 章 软件系统设计介绍 为了使汇编程序段和 C 程序能够兼容,必须为汇编语言编写的程序段指定段名并进行定义。 如果要在它们之间传递函数,则必须保证汇编程序用来传递函数的存储区和 C 函数使用的存储区是一样的。 被调用的汇编函数不仅要在汇编程序中使用伪指令以使 CODE 选项有效,并声明为可再定位的段类型,而且还要在调用它的 C 语言主程序中进行声明。 函数名的转换规律如表 所示。
utton 目录 : 一 单片机概述 单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。 单片机微型计算机简 称单片机,特别适用于控制领域,故又称为微控制器。 通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:中央处理器、存储器和 I/O 接口电路等。 因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。 单片机经过 3 代的发展