12864液晶屏驱动代码详解

需积分: 9 2 下载量 77 浏览量 更新于2024-09-10 收藏 37KB DOC 举报
"12864液晶显示屏的驱动代码与相关函数实现" 在给定的文件中,主要涉及的是基于51单片机的12864液晶显示屏的驱动程序。12864是一种常见的液晶显示模块,具有128列和64行的显示能力,常用于嵌入式系统中的文本和简单图形显示。下面将详细解释其中的关键知识点: 1. **硬件接口**: - `RS` (Register Select):选择数据寄存器或指令寄存器,设置为1表示写入数据,0表示写入指令。 - `RW` (Read/Write):读写控制,设置为1表示读取,0表示写入。 - `EN` (Enable):使能信号,高电平时允许传输数据。 2. **并行接口定义**: - `P1^0`、`P1^1` 和 `P1^2` 分别被用作 RS、RW 和 EN 的控制线。 - `P0` 作为并行数据端口 `io_LCD12864_DATAPORT`,用于传输数据到液晶屏。 3. **宏定义**: - `SET_DATARS`、`SET_INCRS`、`SET_READRW`、`SET_WRITERW`、`SET_ENEN` 和 `CLR_ENEN` 定义了对RS、RW和EN的设置,简化了代码。 4. **函数定义**: - `v_DelayMs_f(unsigned int nDelay)`:延时函数,用于在写入指令或数据之间提供适当的延迟。 - `v_Lcd12864CheckBusy_f(void)`:忙检测函数,通过读取数据线的高电平来判断液晶屏是否准备好接收新的数据或指令。 - `v_Lcd12864SendCmd_f(unsigned char byCmd)`:发送液晶屏指令的函数。 - `v_Lcd12864SendData_f(unsigned char byData)`:发送数据到液晶屏的函数。 - `v_Lcd12864Init_f(void)`:初始化液晶屏的函数,通常包括设置显示模式、清屏等操作。 - `v_Lcd12864SetAddress_f(unsigned char x, unsigned char y)`:设置显示地址的函数,用于指定在128x64的矩阵中要显示的位置。 - `v_Lcd12864PutString_f(unsigned char x, unsigned char y, unsigned char *pData)`:在指定位置打印字符串的函数。 - `Screen_Four(unsigned char x, unsigned char y, unsigned int num)`:可能用于显示四位数字的函数,例如显示计数器或温度等。 5. **延时函数实现**: - `v_DelayMs_f` 使用了一个简单的循环来实现微秒级别的延时,适用于STC12C5A60S2这种低速单片机。 6. **忙检测函数实现**: - `v_Lcd12864CheckBusy_f` 设置液晶屏为读取模式,然后检测数据线上的最高位(bit7)是否为高,如果高则表示液晶屏还在处理上一个命令,需要等待。 通过这些函数,可以对12864液晶屏进行初始化、设置显示位置、发送指令和数据,从而实现文本和简单图形的显示。在实际应用中,用户可以根据需要调用这些函数来控制显示内容。