LCD12864滚动显示程序及延时忙碌检查功能

需积分: 9 8 下载量 157 浏览量 更新于2024-09-18 收藏 44KB DOC 举报
"LCD12864程序是用于控制128x64点阵LCD显示屏的单片机程序,包含初始化、延时、忙碌检测、写指令和写数据等基本功能。" 该程序是为单片机设计的,主要用于驱动128x64像素的LCD液晶显示器。它使用了标准的I/O端口来控制LCD的RS(寄存器选择)、RW(读/写)和EN(使能)信号。程序中包含了几个关键的函数和定义: 1. **头文件**:`#include<reg51.h>` 和 `#include<intrins.h>`,这两个头文件分别为51系列单片机的寄存器定义和内联汇编函数提供支持。 2. **类型定义**:`uchar` 和 `uint` 分别被定义为无符号字符型和无符号整型,这是为了简化代码中变量类型的声明。 3. **字符数组**:定义了四个字符数组,分别用于存储两行文本,用于左滚动和右滚动显示。例如,`line1_R` 和 `line2_R` 是用于右滚动显示的字符数组。 4. **I/O位定义**:`sbit LCD_RS=P2^0;`,`sbit LCD_RW=P2^1;` 和 `sbit LCD_EN=P2^2;` 定义了P2口的特定位作为LCD的RS、RW和EN信号。 5. **延时函数**:`void Delay_ms(uint xms)` 实现了一个毫秒级别的延时,通过嵌套循环来达到所需的时间延迟。 6. **忙碌检查函数**:`bit lcd_busy()` 检测LCD是否忙于处理当前操作,通过读取数据线上的状态来确定。如果LCD忙,则返回1,否则返回0。 7. **写指令函数**:`void lcd_wcmd(uchar cmd)` 向LCD写入指令,先等待LCD不忙,然后设置RS和RW为低,写入指令并使能LCD,最后关闭使能。 8. **写数据函数**:`void lcd_wdat(uchar dat)` 类似于写指令函数,但将RS设为高,表示写入数据到数据寄存器DR。 9. **初始化函数**:`void lcd_init()` 用于设置LCD的基本配置,如设置显示模式、清屏等。 通过这些函数,程序可以实现对LCD的控制,包括显示文本、滚动效果等功能。用户可以依据需求修改字符数组的内容,以及调用这些函数来实现自定义的显示效果。