帮我用C写一段LCD1602字符串输入的函数
时间: 2023-12-10 09:42:09 浏览: 73
以下是使用C语言编写的LCD1602字符串输入函数的示例代码:
```c
#include <reg51.h>
#define LCD_RS P2_0
#define LCD_RW P2_1
#define LCD_EN P2_2
#define LCD_DATA P0
void delay(unsigned int ms) {
unsigned int i, j;
for (i = 0; i < ms; i++) {
for (j = 0; j < 1141; j++);
}
}
void lcd_init() {
LCD_RS = 0;
LCD_RW = 0;
LCD_EN = 0;
LCD_DATA = 0x38; // function set: 2 lines, 5x7 dots
LCD_EN = 1;
delay(5);
LCD_EN = 0;
LCD_DATA = 0x0C; // display control: display on, cursor off, blink off
LCD_EN = 1;
delay(5);
LCD_EN = 0;
LCD_DATA = 0x01; // clear display
LCD_EN = 1;
delay(5);
LCD_EN = 0;
LCD_DATA = 0x06; // entry mode set: cursor moves right, no display shift
LCD_EN = 1;
delay(5);
LCD_EN = 0;
}
void lcd_write_char(unsigned char c) {
LCD_RS = 1;
LCD_RW = 0;
LCD_EN = 0;
LCD_DATA = c;
LCD_EN = 1;
delay(5);
LCD_EN = 0;
}
void lcd_write_string(unsigned char *s) {
while (*s) {
lcd_write_char(*s++);
}
}
void main() {
lcd_init();
lcd_write_string("Hello, world!");
while (1);
}
```
说明:
- `LCD_RS`、`LCD_RW`、`LCD_EN` 和 `LCD_DATA` 分别对应于 LCD 模块的 RS、RW、EN 和数据线,根据实际连接进行修改。
- `delay` 函数用于延时,具体延时时间需要根据实际情况进行调整。
- `lcd_init` 函数用于初始化 LCD 模块。
- `lcd_write_char` 函数用于向 LCD 模块写入单个字符。
- `lcd_write_string` 函数用于向 LCD 模块写入字符串。
- 在主函数中,首先调用 `lcd_init` 函数进行初始化,然后调用 `lcd_write_string` 函数向 LCD 模块写入字符串。
阅读全文