
救命,今天截止了,温湿度功能什么的都正常了,最小系统应该没问题,就是这个液晶一直乱码,我特意来注册的,救命!



关注让 “紫雾凌寒” 来帮你回答,本回答结合 DeepSeek
如果还有问题,请评论或点击头像私信,如果有帮助到您, 请关注、采纳、点赞
#include <reg51.h>
// 定义液晶端口
sbit RS = P2^0;
sbit RW = P2^1;
sbit E = P2^2;
#define LCD_DATA P0
// 延迟函数
void delay(unsigned int time) {
unsigned int i, j;
for(i = 0; i < time; i++)
for(j = 0; j < 1275; j++);
}
// 写指令函数
void write_command(unsigned char command) {
LCD_DATA = command;
RS = 0;
RW = 0;
E = 1;
delay(1);
E = 0;
}
// 写数据函数
void write_data(unsigned char dat) {
LCD_DATA = dat;
RS = 1;
RW = 0;
E = 1;
delay(1);
E = 0;
}
// 初始化液晶
void init_lcd() {
write_command(0x38); // 8位数据接口, 2行显示, 5x7字体
write_command(0x0C); // 显示开, 光标关, 闪烁关
write_command(0x06); // 光标自动右移
write_command(0x01); // 显示清屏
}
void main() {
init_lcd();
while(1) {
// 后续显示内容等代码
}
}
- 确保初始化时设置的显示模式、数据位数等与液晶实际参数匹配。
希望以上解答对您有所帮助。如果您有任何疑问,欢迎在评论区提出。