AT89x51控制下LED汉字移动与点阵显示编程
需积分: 44 147 浏览量
更新于2024-09-10
3
收藏 5KB TXT 举报
本文档主要介绍了如何使用LED点阵显示器进行汉字移动显示的编程实现,以AT89x51单片机为核心处理器。以下是详细的知识点解析:
1. 编程环境与头文件引入:
首先,程序使用了`#include <AT89x51.H>`头文件,这表明它是在基于AT89系列单片机的开发环境中编写的,这是一种常用的51系列微控制器的标准库。
2. 变量定义:
- `unsigned int zimo` 和 `unsigned int xx` 是两个计数器,`zimo` 用于字模显示,`xx` 用于分屏显示时控制显示的字符数。
- `unsigned char yid` 和 `unsigned char h` 分别是移动计数器和行段计数器,用于控制汉字在屏幕上的移动和行的切换。
- `unsigned char code hanzi[]` 定义了一个数组,存储汉字的字模数据。
- `BUFF` 和 `BUFF2` 是两个字符数组,用于存储左移显示的缓存数据。
3. 函数声明:
- `qing()` 和 `xianshi()`:可能是清屏和显示字符的函数,它们可能负责处理显示前的准备工作以及字符的绘制。
- `fen()`:函数用于分屏操作,将屏幕分为两部分,交替显示内容。
- `zuo()`:可能是上移操作,负责将显示内容向上移动一格。
- `in_data()` 和 `rxd_data()`:这两个函数可能是用于数据输入和左移数据发送,可能涉及到与外部设备的数据交互。
- `out_rxd(unsigned char*)`:这是一个输出函数,可能是向串行口发送数据,用于驱动LED点阵显示。
4. 主程序流程:
主程序进入一个无限循环,首先调用 `fen()` 进行分屏操作,然后在两个独立的循环中分别执行 `qing()` 清屏,再调用 `zuo()` 上移。这种设计使得屏幕内容不断更新,实现了汉字的移动显示效果。
5. 具体函数实现细节:
- `qing()` 函数可能是通过 `out_rxd()` 发送一个全屏清除的命令到LED点阵,然后设置端口以驱动74HC595和74LS138等位移寄存器。
- `fen()` 函数则在循环中调用 `xianshi()`,在限定次数内显示字符,然后重置计数器 `xx` 以便下一轮循环显示新的内容。
- `xianshi()` 负责遍历每个字符的字模,并将其逐个显示到LED阵列。
6. 字模编码:
`char codesw[]` 定义了一个字模编码表,通常用于映射汉字的二进制编码到实际的LED点阵显示。
7. 硬件接口:
提及的74HC595和74LS138可能是外设芯片,分别用于串行到并行的数据转换和多路选择功能,以驱动大型LED点阵。
这个程序是基于AT89x51单片机的LED点阵汉字移动显示系统,通过精心设计的函数来管理字符显示、分屏、移动和数据传输,以实现动态的汉字显示效果。这对于学习和理解嵌入式系统、微控制器编程以及LED点阵显示技术具有很高的实用价值。
281 浏览量
1694 浏览量
769 浏览量
186 浏览量
2021-10-05 上传
2022-05-09 上传
1094 浏览量
baidu_20995969
- 粉丝: 0
- 资源: 1