C51读取LCD1602显示代码
时间: 2024-05-13 14:17:43 浏览: 174
以下是使用C51单片机读取LCD1602并显示的示例代码:
```
#include <reg52.h>
#define LCD_DATA P0
sbit RS = P2^0;
sbit RW = P2^1;
sbit EN = P2^2;
void delay(unsigned int i)
{
while(i--);
}
void write_command(unsigned char cmd)
{
RW = 0; // 设置为写模式
RS = 0; // 选择指令寄存器
LCD_DATA = cmd; // 向LCD发送指令
EN = 1; // 使能信号高电平
delay(5); // 延时
EN = 0; // 使能信号低电平
}
void write_data(unsigned char dat)
{
RW = 0; // 设置为写模式
RS = 1; // 选择数据寄存器
LCD_DATA = dat; // 向LCD发送数据
EN = 1; // 使能信号高电平
delay(5); // 延时
EN = 0; // 使能信号低电平
}
void init_lcd()
{
write_command(0x38); // 初始化LCD
write_command(0x0c); // 开启LCD显示,光标不显示
write_command(0x06); // 指定光标右移,字符不动
write_command(0x01); // 清空显示
}
void main()
{
init_lcd(); // 初始化LCD
write_data('H'); // 在LCD上显示字符H
write_data('e'); // 在LCD上显示字符e
write_data('l'); // 在LCD上显示字符l
write_data('l'); // 在LCD上显示字符l
write_data('o'); // 在LCD上显示字符o
while(1);
}
```
该代码使用了P0口作为LCD1602的数据线,P2^0、P2^1、P2^2分别作为LCD1602的RS、RW、EN信号线。在初始化函数init_lcd()中,依次发送了一些指令来初始化LCD1602,然后在主函数中使用write_data()函数向LCD1602中写入字符。
阅读全文