基于单片机的led点阵显示屏论文内容摘要:

系统框图如图 21 所示,系统主要由三大模块组成即 LED 驱动模块、数据存储模块、 PC 机通信模块。 数据存储电路设计 数据存储电路由串行 EEPROM 24C256组成。 24C256是 美国 CATALYST 公司出品的一个 1256K位的支持 I2C总线数据传送协议的串行 CMOS E2PROM, 可用电擦除 , 可编程自定时写周期 ( 包括自动擦除时间不超过 10ms 典型时间为5ms) 的串行 E2PROM。 该芯片有 两种写入方式 , 一种是字节写入方式 , 还有另一种页写入方式。 允许在一个写周期内同时对 1个字节到一页的若干字节的编程写入。 24C256的引脚排列及引脚功能描述如图 321和表 321 图 321 24C256 的引脚排列图 A T 8 9 C 5 1串行EE P R OM驱动模块LED 显示模块M AX 2 32电平转换PC 机通信 基于单片机的 LED 点阵显示屏 10 表 321引脚功能描述 该存储电路仅由芯片 24C256组成, SCL为 串行时钟引脚,用于产生器件所有数据发送或接收的时钟。 SDA为 串行数据 /地址,这是一个双向传输端,用于传送地址和所有数据的发送或接收。 当 LED显示屏控制系统工作时,单片机 89C51通过读 SDA和 SCL脚读取 24C256中的内容,并将其显示于 LED显示屏上。 也可以通过上位机( PC机)将编辑好的数据内容下载到 24C256芯片内 4 系统的软件设计 下位机软件 流程 本系统中下位机(单片机 89C51)的主要功能就是实现 LED 显示屏上字样的移位、显示、数据的读取等功能。 其主程序流程如图 421 所示。 开机 机 系统初始化 否 是 判断是否处于通信状态。 移位显示 读取显示内容 图 421 主程序流程图 读取 24C256 的标志位 等待 判断是否有中断标志。 是 否 基于单片机的 LED 点阵显示屏 11 设计过程 总体设计 图 31 显示屏电路框图 如 图 31 所示 , 本产品拟采用以 AT89C51 单片机为核心芯片的电路来实现,主要由 AT89C51 芯片、 电源 、 行驱动器 、列驱动 器 、 16 16 LED 点阵 5 部分组成。 从理论上说,不论显示图形还是文字,只要控制与组成这些图形或文字的各个点所在的位置 相对应的 LED 器件发光,就可以得到我们想要的显示结果,这种同时控制各个发光点亮灭的方法称为静态驱动显示方式。 16x 16 的点阵共有256 个发光二极管,显然单片机没有这么多的端口,如果我采用锁存器来扩展端口,按 8 位的锁存器来计算, 16x 16 的点阵需要 256/8=32 个锁存器。 这个数字很庞大,因为我们仅仅是 16x 16 的点阵,在实际应用中的显示屏往往要大得多,这样在锁存器上花的成本将是一个很庞大的数字。 因此在实际应用中的显示屏几乎都不采用这种设计,而采用另外一种称为动态扫描的显示方法。 动态扫描的意思简单地说就是逐 行轮流点亮,这样扫描驱动电路就可以实现多行(比如 16 行)的同名列共用一套驱动器。 具体就 16x 16 的点阵来说,把所有同 1 行的发光管的阳极连在一起,把所有同 1 列的发光管的阴极连在一起(共阳极的接法),先送出对应第一行发光管亮灭的数据并锁存,然后选通第 1 行使其燃亮一定时间,然后熄灭;再送出第二行的数据并锁存,然后选通第 2 行使其 基于单片机的 LED 点阵显示屏 12 燃亮相同的时间,然后熄灭;以此类推,第 16 行之后,又重新燃亮第 1 行,反复轮回。 当这样轮回的速度足够快(每秒 24 次以上),由于人眼的视觉暂留现象,就能够看到显示屏上稳定的图形了。 采用扫描方式 进行显示时,每一行有一个行驱动器,各行的同名列共用一个驱动器。 显示数据通常存储在单片机的存储器中,按 8 位一个字节的形式顺序排放。 显示时要把一行中各列的数据都传送到相应的列驱动器上去,这就存在一个显示数据传输的问题。 从控制电路到列驱动器的数据传输可以采用并列方式或串行方式。 显然,采用并行方式时,从控制电路到列驱动器的线路数量大,相应的硬件数目多。 当列数很多时,并列传输的方案是不可取的。 系统硬件选择 由图 32 可知此次设计的硬件选择如下: AT89C51 芯片 、 LED、 74LS13 LED 的驱动 三极管、电阻等 一些单片机外围应用电路 组成。 硬件电路实现 经分析本设计的电路原理图如下 图 31 所示: 基于单片机的 LED 点阵显示屏 13 软件的程序实现 编译、装载、连续运行程序,点阵显示模块应循环显示“ 民族职业 学院欢迎你。 ”字样。 16 16 点阵显示程序清单如下: ORG 0000H LJMP XB13。 ==========点阵扫描子程序 ==================== X01A: CLR A。 清列值 MOV 0EH, A。 指向零列 X023: MOV A, 0EH。 取列值 CLR C SUBB A, 10H。 减 16(十进制数 ) JC X0D2。 末满 16 列继续扫描下一列 RET。 本次扫描完毕返回主程序 X0D2: MOV 0F0H, 02H MOV A, 0EH MUL AB。 当前列 值与“ 2”进行十进制调正 MOV 82H, A。 调正结果送数据指针 DPTR MOV 83H, 0F0H LCALL XB1F。 取与当前列对应的扫描代码 MOV 20H, A。 ===================== LCALL XB4E。 扫描代码送高八位锁存器。 ===================== MOV A, 0EH。 取列值 MOV 0F0H, 02H。 当前列值与“ 2”进行十进制调正 MUL AB ADD A, 01H。 调正结果加 1 送数据指针 DPTR MOV R7, A CLR A ADDC A, 0F0H。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。