51单片机LCD12864程序详解与初始化

需积分: 1 0 下载量 120 浏览量 更新于2024-09-21 收藏 11KB TXT 举报
"该资源是关于51单片机上使用的LCD12864液晶显示屏的编程示例,提供了详细的注释以帮助理解和调试。程序包括了LCD12864的基本操作函数,如初始化、写入指令等。" 在51单片机的嵌入式系统中,LCD12864是一种常见的字符型液晶显示器,常用于显示文本信息。这个程序主要涉及以下几个关键知识点: 1. **头文件和定义**:`#include<reg52.h>`和`#include<intrins.h>`是51单片机常用的头文件,前者包含51系列单片机的寄存器定义,后者包含内联汇编相关的函数。`uchar`和`uint`是无符号字符和无符号整数的别名,便于数据类型定义。`LCD_dataP0`将P0口定义为数据总线,其他如`LCD_RS`、`LCD_RW`、`LCD_EN`、`LCD_PSB`和`LCD_RST`则分别代表LCD的寄存器选择、读写控制、使能、电源选择位和复位信号。 2. **延时函数**:`delayms(uint z)`用于实现毫秒级的延时,内部通过两个for循环实现。`delay(unsigned int m)`则是微秒级别的延时,适用于更精细的定时需求。 3. **LCD12864的通信**:`L12864_writecmd(ucharcmd)`函数用于向LCD发送指令。它设置RS和RW为低电平(写模式),然后将命令数据写入数据总线,再通过使能信号EN的高低电平变化完成数据传输。 4. **LCD12864初始化**:`L12864_init_1()`函数执行LCD的初始化步骤,首先设置电源选择位PSB为高,然后进行一次硬件复位,最后发送初始化命令0x30。 5. **字符和数据数组**:代码中定义了`pic2[]`、`dis1[]`和`IC_DAT2[]`等字符数组,这些通常用于显示特定的图形或文本。 6. **指令编码**:例如`IC_DAT2[]`数组中的十六进制值是LCD12864的指令或字符编码,如`0x80`、`0x90`、`0x88`和`0x98`,它们对应不同的显示位置或控制功能。 7. **接口操作**:所有的LCD控制引脚如RS、RW、EN等都是通过P2口的相应位进行操作的,这反映了51单片机I/O口的直接位操作特性。 这个程序是学习51单片机驱动LCD12864显示屏的一个基础模板,通过注释和代码可以了解到LCD显示的基本工作原理和编程方法。对于初学者来说,理解并实践这段代码有助于掌握单片机与外部设备的交互以及简单的显示控制。