使用 keil 和 51 单片机, 掌握LCD1602初始化,显示等程序编写。在LCD1602显示2行,第一行显示字符”HFNU”,第二行显示学生学号
时间: 2024-11-09 11:18:36 浏览: 47
LCD.rar_AT89C51 LCD_keil c51_keil显示屏代码
在使用Keil开发工具和51单片机控制LCD1602液晶显示器时,你需要首先理解LCD1602的基本结构和通信协议。以下是基本步骤:
1. **初始化LCD1602**:
- 设置 LCD 的起始地址,通常是0x20(对于4位数据线)或0x3F(8位数据线)。
- 初始化寄存器,如功能设置(如8位数据模式、4位地址、自动复位等),命令行寄存器(设置光标位置和显示模式)。
```c
void LCD_Init() {
LCD_Cmd(0x33); // 写入功能寄存器,设置为8位双向
LCD_Cmd(0x32); // 再写一次功能寄存器
LCD_Cmd(0x28); // 设置为4线或8线模式
LCD_Cmd(0x0C); // 开启显示并清屏
}
```
2. **显示字符和字符串**:
- 使用`LCD_Out()`函数逐字节写入数据,这里先显示“HFNU”:
```c
void LCD_DisplayString(char* str) {
while(*str != '\0') {
LCD_Out(*str++);
}
}
```
- 显示第二行的学生学号,同样通过`LCD_Out()`函数:
```c
void LCD_DisplayStudentID(char studentID[]) {
LCD_Cmd(0x80); // 移动到第二行
LCD_DisplayString(studentID);
}
```
最后,在主程序中调用这些函数来完成整个过程:
```c
int main(void) {
LCD_Init();
LCD_Cmd(0xC0); // 移动到第一行
LCD_DisplayString("HFNU");
LCD_Cmd(0xC0); // 再次移动回第一行(如果需要)
LCD_Cmd(0x80); // 移动到第二行
LCD_DisplayStudentID("123456"); // 替换为实际的学生学号
while (1); // 程序无限循环,防止中断
}
```
阅读全文