12864液晶显示程序:移动显示与8051MCU控制

需积分: 9 1 下载量 64 浏览量 更新于2024-09-23 收藏 42KB DOC 举报
"12864液晶显示程序" 在电子工程和嵌入式系统领域,12864指的是一个128×64像素的点阵液晶显示器(LCD)。这种显示器常用于各种设备上,如工业控制面板、消费电子产品或教学实验。提供的代码是一个针对12864 LCD的显示程序,旨在展示如何与该类型显示屏进行通信和控制。 首先,代码中包含了两个头文件,`reg51.h` 和 `intrins.h`。`reg51.h` 是针对51系列单片机的标准寄存器定义头文件,它提供了一些基本的寄存器定义和宏,使得编程更加方便。`intrins.h` 文件则包含了一些内联汇编函数,如 `_nop_()`,这个函数通常用来插入空操作,用于延时或调整指令执行顺序。 接着,定义了几个位定义,例如 `LCD_RS`、`LCD_RW` 和 `LCD_EN`,这些都是连接到LCD控制器的引脚。它们分别代表数据/命令选择(Register Select)、读/写选择(Read/Write)和使能信号(Enable),是控制LCD显示的关键信号线。 程序中还定义了两个字符串 `dis1` 和 `dis2`,分别用于在LCD上显示"ILOVE8051MCU"和"TEL:13808311069"。 在代码的核心部分,有一个延时子程序 `delay()`. 这个函数使用了一个循环结构,通过计数器变量 `i` 和内联汇编函数 `_nop_()` 来实现一定时间的延时。延时函数在与硬件交互时非常常见,因为许多操作需要特定的时间来完成,如等待LCD的响应。 另一个关键函数是 `lcd_busy()`,它用于检测LCD是否处于忙碌状态。当LCD正在处理内部操作时,忙标志位会被置高。通过读取LCD的数据线并检查最高位(0x80)是否为1,可以确定LCD的状态。如果LCD忙,函数返回1,否则返回0。这确保了在发送新的指令或数据之前,不会干扰当前的显示操作。 此外,代码中可能还包含其他与LCD通信的函数,如初始化LCD、写指令、写数据等,但这些没有在提供的部分中显示出来。通常,完整的12864 LCD显示程序会包括设置显示模式、清屏、设置光标位置、写字符等功能。 这个程序展示了如何使用51系列单片机控制12864 LCD显示屏,包括发送指令、读取状态以及实现文本的移动显示。这对于学习嵌入式系统的开发和理解LCD显示原理是非常有帮助的。