微机原理与单片机技术实践课程设计-基于at89c52的1664led点阵的设计内容摘要:

图 行共阳 8*8 点阵显示屏内部原理图 图 16*16 点阵连接图 图 16*64 点阵连接图 3. 3 LED 点阵显示器的扫描驱动 LED 显示屏驱动电路的设计应与所用控制系统相配合。 驱动通常分为动态扫描型及静态锁 存型驱动二大类。 本文以动态扫描型驱动电路的设计为例来进行分析。 动态扫描型驱动方式是指显示屏上的 16行发光二极管共用一组列驱动寄存器,然后通过行驱动管的分时工作.来使每行 LED 的点亮时间占总时间的 1/ 16。 只要每行的刷新速率大于 50 Hz,利用人眼的视觉暂留效应。 人们就可以看到一幅完整的文字或画面。 AT89S52 单片机有四个 I/ O口 (P0、 P P P3)。 每个 I/ OEl 有 8位,如果都采用并行输出,显然不能满足要求。 因此,本设计中的行扫描驱动采用并口输出。 而场扫描驱动采用串口输出。 、行 驱动电路 由于 16x64 点阵显示器有 16 行,为充分利用单片机的接口。 本电路中加入了一个 4— 16 线译码器 74LSl54,其输入是一个 16 进制码,解码输出为低态扫描信号.它们的管脚示意图如图 7所示。 把 74LSl54 的 G1和 G2引脚接地。 然后以 A、 B、 C、 D四脚为输入端。 就会形成 16种不同的输入状态,分别为 0000~1111,然后使每种状态只控制一路输出。 即会有 16 路输出。 如果一行 64点全部点亮。 则通过 74LSl54 的电流将达 640 mA,而实际上, 74LSl54 译码器提供不了足够的吸收电流来同时驱动 64个 LED 同时点亮,因此,应在 74LSl54 每一路输出端与 16x64 点阵显示器对应的每一行之间用一个三极管来将电流信号放大。 本文选用的是达林顿三极管 TIPl27。 这样, 74LSl54 某一输出脚为低电平时.对应的三极管发射极为高电平。 从而使点阵显示器的对应行也为高电平。 图 74HC154 引脚图 、列驱动电路 本系统列扫描驱动电路的设计可用串人并出的通用集成电路 74HC595 来作为数据锁存。 74HC595 是一个八位串行输入三态并行输出的移位寄存器,其管脚见图 8所示,其中 SI是串行数据的输入端, RCK 是存储寄存器的输入时钟, SCK是移位寄存器的输入时钟。 Q 7H 是串入数据的输出, G是对输入数据的输出使能控制, QA~ QH 为串人数据的并行输出。 从 SI 口输入的数据可在移位寄存器的 SCK脚上升沿的作用下输入到 74HC595 中.并在 RCK 脚的上升沿作用下将输入的数据锁存在 74HC595 中,这样,当 G 为低电平时,数据便可并行输出。 为了避免与PC机串口输入的数据相互干扰,也可使用模拟串口 P1. 4~ P1. 7来分别输出串行数据、移位时钟 SCK、存储信号 RCK 和并行输出的使能信号 G。 为了消除电源电压的波动及行扫描管压降 (第一行点亮的点数不同,将引起管压降的变化,从而影响通过 LED 管的电流 1 的变化对 LED 显示屏亮度的影响,设计时可采用列恒 流驱动电路,可选用三极管 8550 和外围元件构成列恒流驱动电路,并通过调整100 kQ 可调电阻使三极管处于放大状态。 同时将集电极电流调整为 10 mA.从而使点亮对应点阵时通过 LED 的电流不变。 图 74HC595 引脚图 行列驱动电路如图所示 系统 软件 的设计 显示屏软件的主要功能是向屏体提供显示数据,并产生各种控制信号,使屏幕按设计的要求显示。 根据软件分层次设计的原理,可以把显示屏的软件系统分为两层;第一层是底层的显示驱动程序,第二层是上层的系统应用程序。 显示驱动程序负责向屏体送显示数据,并负责产生行扫描信号和其他控制信号,配合完成 LED 显示屏的扫描显示工作。 显示驱动器程序 由定时器 T0 中断程序实现。 系统应用程序完成系统环境设置(初始化)、显示效果处理等工作,由主程序来实现。 从有利于实现较复杂的算法(显示效果处理)和有利于程序结构化考虑,显示屏程序适宜采用 C 语言编写。 显示驱动程序 显示驱动程序在进入中断后首先要对定时器 T0 重新赋初值,以保证显示屏刷新率的稳定, 1/16 扫描显示屏的刷新率(帧频)计算公式如下: 刷频率(帧频) =161 0T 溢出率 =161 )65536(12 0tfosc  ( 41) 其中 f位晶振频率, t 为定时器 T0初值(工作在 16 位定时器模式)。 然后显示驱动程序查询当前燃亮的行号,从显示缓存区内读取下一行的显示数据,并通过串口发送给移位寄存器。 为消除在切换行显示数据的时候产生拖尾现象,驱动程序先要关闭显示屏,即消隐,等显示数据打入输出锁存器并 锁存,然后再输出新的行号,重新打开显示。 图 9 为显示驱动程序(显示屏扫描函数)流程图。 系统主程序 本文设计的系统软件能使系统在目测条件下 LED 显示屏各点亮度均匀、充足,可显示图形和文字,显示图形和文字应稳定、清晰无串扰。 图形或文字显示有静止、移入移出等显示方式。 系统主程序开始以后,首先是对系统环境初始化,包括设置串口、定时器、中断和端口;然后以“卷帘出”效果显示图形,停留约 3s;接着向上滚动显示“我爱单片机”这 5个汉字及一个图形,然后以“卷帘入”效果隐去图形。 由于 单片机没有停机指令,所以可以设置系统程序不断的循环执行上述显示效果。 单元显示屏可以接收来自控制器(主控制电路板)或上一级显示单元模块传输下来的数据信息和命令信息,并可将这些数据信息和命令信息不经任何变化地再传送到下一级显示模块单元中,因此显示板可扩展至更多的显示单元,用于显示更多的显示内容。 图 10是系统 主程序流程图。 图 11 为程序流程图 图 图 图 1 程序流程图 函数声明、宏定义、 全局变量 开始 初始化程序 显示列表函数 显示程序 主程序 延时程序 结束 调试及性能分析 开发环境介绍 程序编写采用 Keil 51 环境下调试 ,Keil C51 是美国 Keil Software 公司出品的 51系列兼容单片机 C 语言软件开发系统,与汇编相比, C 语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。 用过汇编语言后再使用 C来开发,体会更加深刻。 Keil C51 软件提供丰富的库函数和功能强大的集成开发调试工具,全 Windows 界面。 另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到 Keil C51 生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。 在开发大型软件时更能体现高级语言的优势。 理论性能分析 LED 显示屏硬件电路只要硬件质量可靠,引脚焊接正确,一般无需调试即可 正常工作。 软件部分需要调试的主要有显示屏刷新频率及显示效果两部分。 显示屏刷新率由定时器 T0 的溢出率和单片机的晶振频率决定,表 51 给出了实验调试时 采用的频率及其对应的定时器 T0 初值。 表 51 显示平刷新率与 T0初值关系。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。