项目11_点阵LED显示设计

上传人:876****10 文档编号:133497819 上传时间:2020-05-27 格式:PPT 页数:47 大小:588KB
返回 下载 相关 举报
项目11_点阵LED显示设计_第1页
第1页 / 共47页
项目11_点阵LED显示设计_第2页
第2页 / 共47页
项目11_点阵LED显示设计_第3页
第3页 / 共47页
项目11_点阵LED显示设计_第4页
第4页 / 共47页
项目11_点阵LED显示设计_第5页
第5页 / 共47页
点击查看更多>>
资源描述

《项目11_点阵LED显示设计》由会员分享,可在线阅读,更多相关《项目11_点阵LED显示设计(47页珍藏版)》请在金锄头文库上搜索。

1、11点阵LED显示设计 知识目标 1 掌握8 8矩阵式LED的工作原理和字符的显示方法 2 掌握16 16矩阵式LED的工作原理和字符的显示方法 3 学会电子元器件74LS164 74HC573的原理和使用方法 能力目标 1 能根据设计任务要求正确选用元器件 并绘制电路原理图 2 能够编写驱动矩阵式LED的字符和汉字显示程序 3 会用keilC51软件对源程序进行编译调试及与protues软件联调 实现电路仿真 任务1单个字符显示设计 单个LED或者是数码管作为显示器件 只能显示简单的几个有限的简单字符 对于复杂的字符 比如汉字 以及图形等则无法显示 矩阵式LED将诸多个LED按矩阵的方式组合

2、一起 通过控制每个LED的工作 可完成各种字符和图形的显示 有关点矩阵显示器的商品 市面上有很多 例如活动字幕机广告 汽车站与火车站的车次显示板 活动布告板 股票显示板等 本任务利用AT89S51单片机来实现单个字符这一功能 任务1单个字符显示设计 1 提出任务 用AT89S51作为控制核心 外接8 8矩阵式LED 编写程序 使8 8矩阵式LED循环点亮0 9这十个数字 时间间隔为1s 2 分析任务 任务1单个字符显示设计 1 硬件电路设计电路组成 这里选择具有内部程序存储器的AT89S51单片机作为控制电路 其P0接8 8矩阵式LED的阳极 由于P0口没有上拉能力 所以采用接8个限流电阻后上

3、接电源提供上拉电流 P2接矩阵式LED的阴极 硬件电路原理图如图11 1所示 任务1单个字符显示设计 任务1单个字符显示设计 2 软件设计思路为了能LED正常的显示0 9等数字 首先要了解0 9这十个数字的具体显示代码 具体代码可以通过软件转换得到 也可以采用绘制方法得到 然后写出相应的代码 因此0 9等十个数字的代码可以由由如下方法取得 任务1单个字符显示设计 假设显示数字 0 如下图所示 因此 形成的列代码为00H 00H 3EH 41H 41H 3EH 00H 00H 只要把这些代码分别送到相应的列线上面 即可实现 0 的数字显示 数字 1 代码建立如下图所示 其显示代码为00H 00H

4、 00H 00H 21H 7FH 01H 00H 任务1单个字符显示设计 任务1单个字符显示设计 数字 2 代码建立如下图所示 其显示代码为00H 00H 27H 45H 45H 45H 39H 00H 数字 3 代码建立如下图所示 其显示代码为00H 00H 22H 49H 49H 49H 36H 00H 任务1单个字符显示设计 任务1单个字符显示设计 数字 4 代码建立如下图所示 其显示代码为00H 00H 0CH 14H 24H 7FH 04H 00H 数字 5 代码建立如下图所示 其显示代码为00H 00H 72H 51H 51H 51H 4EH 00H 任务1单个字符显示设计 数字

5、6 代码建立如下图所示 其显示代码为00H 00H 3EH 49H 49H 49H 26H 00H 任务1单个字符显示设计 数字 7 代码建立如下图所示 其显示代码为00H 00H 40H 40H 40H 4FH 70H 00H 任务1单个字符显示设计 数字 8 代码建立如下所示 其显示代码为00H 00H 36H 49H 49H 49H 36H 00H 任务1单个字符显示设计 数字 9 代码建立如下所示 其显示代码为00H 00H 32H 49H 49H 49H 3EH 00H 任务1单个字符显示设计 要想在8 8的LED点阵上显示一个数字 因为点阵的公共端是连接在一起的 就像我们在前面讲过

6、的数码管的动态显示类似 是不能同时将这些LED进行点亮的 只能采用按行或者是按列进行控制 那么 怎么样去控制LED显示一个字符的呢 送显示代码过程简单如下 送第一列线代码到P0端口 同时置第一行线为 0 其它行线为 1 延时2ms左右 送第二列线代码到P0端口 同时置第二行线为 0 其它行线为 1 延时2ms左右 如此下去 直到送完最后一列代码 又从头开始送 以显示字符 0 为例 任务1单个字符显示设计 首先在P0送首个行码00H 在P2口首个列码FEH 接着在P0送第二个行码00H 在P2口第二个列码FDH 再在在P0送第三个行码3EH 在P2口第三个列码FBH 再在在P0送第四个行码3EH

7、 在P2口第四个列码F7H 依次把所在的行码送完 这样就可以显示一个 0 字了 接着再重复上述过程 把所有的数字都显示完就可以达到效果了 任务1单个字符显示设计 思考 如果要显示A F等字符 该怎样修改程序呢 任务1单个字符显示设计 3 源程序编写根据程序流程图编写的源程序如下 文件名dz11 1 c include reg51 h defineucharunsignedcharunsignedcharcodetab 0 xfe 0 xfd 0 xfb 0 xf7 0 xef 0 xdf 0 xbf 0 x7f unsignedcharcodedispcode 10 8 0 x00 0 x00

8、 0 x3e 0 x41 0 x41 0 x41 0 x3e 0 x00 定义0的代码 0 x00 0 x00 0 x00 0 x00 0 x21 0 x7f 0 x01 0 x00 定义1的代码 0 x00 0 x00 0 x27 0 x45 0 x45 0 x45 0 x39 0 x00 定义2的代码 0 x00 0 x00 0 x22 0 x49 0 x49 0 x49 0 x36 0 x00 定义3的代码 0 x00 0 x00 0 x0c 0 x14 0 x24 0 x7f 0 x04 0 x00 定义4的代码 0 x00 0 x00 0 x72 0 x51 0 x51 0 x51

9、0 x4e 0 x00 定义5的代码 0 x00 0 x00 0 x3e 0 x49 0 x49 0 x49 0 x26 0 x00 定义6的代码 0 x00 0 x00 0 x40 0 x40 0 x40 0 x4f 0 x70 0 x00 定义7的代码 0 x00 0 x00 0 x36 0 x49 0 x49 0 x49 0 x36 0 x00 定义8的代码 0 x00 0 x00 0 x32 0 x49 0 x49 0 x49 0 x3e 0 x00 定义9的代码 unsignedintcount 定义计数变量ucharta tb 任务1单个字符显示设计 voidmain void T

10、MOD 0 x01 设定定时器0工作方式1 处于定时状态TH0 65536 2000 256 延时20msTL0 65536 2000 256 TR0 1 启动定时器0ET0 1 开放定时器0中断EA 1 允许全局中断while 1 voidt0 void interrupt1using0 TH0 65536 3000 256 TL0 65536 3000 256 P2 tab ta 送列码P1 dispcode tb ta 显示字符内容ta if ta 8 任务1单个字符显示设计 ta 0 count if count 500 判断是否到1s count 0 计时到 将计数变量清0 以便重新

11、计数tb if tb 10 tb 0 4 程序调试与电路仿真运行C语言编辑软件 在编辑区中输入上面的源程序 并以 dz11 1 c 为文件名存盘 运行KeilC51 然后建立一个 dz11 1 uv2 的工程项目 把源程序文件 dz11 1 c 添加到工程项目中 进行编译 得到目标代码文件 dz11 1 hex 运行Proteus 在编辑窗口中绘制如图11 1所示的电路图并存盘 然后选中单片机AT89s51 左键点击AT89s51 出现如图11 2所示的对话框 在ProgramFile后面的 按钮 找到刚才编译好的 dz11 1 hex 文件 然后点击 OK 就可以进行仿真了 点击模拟调试按钮

12、的运行按钮 进入调试状态 此时可看到从0开始显示一直到9 重复循环 任务1单个字符显示设计 任务1单个字符显示设计 知识链接1 点矩阵的结构与种类LED点阵显示器件是将要显示的字符 包括汉字 主要适用于汉字显示 点矩阵显示器的种类 按大小分 可分为5 7 5 8 6 8 8 8等4种 按LED发光变化颜色分 可分为单色 双色 三色 按LED的极性排列方式又可分为共阳极与共阴极 任务1单个字符显示设计 下面简单介绍几种常见的类型 单色5 7的外观 即共阳极LED结构如图11 3所示 单色5 7的内部结构 即共阴与共阳LED阵列图如图11 4所示 任务1单个字符显示设计 任务1单个字符显示设计 单

13、色5 7点阵引脚图如图11 5所示 任务1单个字符显示设计 单色8 8点阵引脚图如图11 6所示 任务1单个字符显示设计 双色8 8点阵引脚图如图11 7所示 任务1单个字符显示设计 2 点矩阵的工作原理由于点矩阵的种类很多 不能一一说明其工作原理 不过所有的点矩阵的工作原理都差不多相同 下面就以8X8点阵LED工作原理作说明 其它类型的点矩阵工作原理 读书可以触类旁通 图11 8是8 8点矩阵的内部结构图 任务1单个字符显示设计 任务1单个字符显示设计 从图中可以看出 8X8点阵共需要64个发光二极管组成 且每个发光二极管是放置在行线和列线的交叉点上 当对应的某一行置1电平 某一列置0电平

14、则相应的二极管就亮 若要使某一行亮 则对应的行置1 而列则采用扫描依次输出0来实现 若要使某一列亮 则对应的列置0 而列则采用扫描依次输出1来实现 任务1单个字符显示设计 任务小结LED点阵的应用很广 对于不同的应用环境和应用要求 可以有各种各样的应用方式 通过本任务的学习 了解8 8矩阵式LED的工作原理和字符的显示方法 掌握了8 8矩阵式LED与单片机接口技术 掌握了单片机是如何控制矩阵式LED的字符的显示程序 任务1单个字符显示设计 思考与练习修改程序dz10 2 c 使之循环点亮0 F 编写程序实现8 8点阵中的一列或一行依次点亮 编写程序实现在8 8点阵显示 图案 任务1单个字符显示

15、设计 5 7 8 8点矩阵由于太小 不能良好地显示汉字 在实际的应用中 要能良好地显示一个汉字 则至少需要16 16点阵 所以显示一个汉字则采用4块8 8点阵来组成 显示汉字的原理与8 8点阵显示字符一样 以 欢迎 二字为例 字符的点阵图如图11 9和图11 10所示 任务2移动汉字显示设计 任务2移动汉字显示设计 用AT89S51作为控制核心 在16 16点阵式LED上编写程序实现移动汉字的显示 显示的汉字为 柳州欢迎您 任务2移动汉字显示设计 1 提出任务 1 硬件电路设计电路组成 电路包括单片机 电源电路 时钟电路 复位电路 驱动电路和LED点阵电路等 由于在Proteus软件目前版本中

16、还没有16 16点阵模块 因此采用现有的8 8点阵模块组合成一个16 16点阵模块 本设计中需要四片74HC138译码器 循环扫描各列 显示一个完整的汉字需要扫描32次 硬件电路原理图如图11 11所示 2 任务分析 任务2移动汉字显示设计 任务2移动汉字显示设计 2 软件设计思路由于单片机总线为8位 一个字需要拆分为2个部分首先通过列扫描方法获取汉字代码 汉字可拆分为上部和下部 上部由8 16点阵组成 下部也由8 16点阵组成 也可以分为左部分和右部分 左部分是16 8点阵组成 右部分也由16 8点阵组成 因此一个汉字要用16 2 32个字节来表示 汉字点阵显示一般有点扫描 行扫描和列扫描3种 为了符合视觉暂留要求 点扫描方法扫描频率必须大于16 64 1024Hz 周期小于1ms即可 行扫描和列扫描方法扫描频率必须大于16 8 128Hz 周期小于7 8ms即可 但是一次驱动一列或一行 8颗LED 时需外加驱动电路提高电流 否则LED亮度会不足 由以上扫描方法原理 逐个扫描然后求出相应的代码 任务2移动汉字显示设计 3 源程序编写根据程序流程图编写的源程序如下 文件名dz11 2

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号