程序一般例程不会出错,确认一下你的delay函数是否准确,可以main开始delay(1000)然后debug看看用时是不是你想要的 |
不是对比度调整的问题,如果是对比度不正常,会出现二行白条而不是只有第二行白条,从硬件上检查接线是否正确,软件上好好看看程序有没有问题。 |
从图片看,对比度没太大问题。 应该是初始化问题,延迟函数准不准? 另外硬件的引脚定义正确么? 另外,写指令和写数据用下面这段试试 void Lcd1602_Write_Cmd(unsigned char cmd) //写命令 { Read_Busy(); LCD1602_RS = 0; LCD1602_RW = 0; LCD1602_EN = 1; LCD1602_DB = cmd; _nop_();_nop_();_nop_();_nop_(); LCD1602_EN = 1; _nop_();_nop_();_nop_();_nop_(); LCD1602_EN = 0; } void Lcd1602_Write_Data(unsigned char dat) //写数据 { Read_Busy(); LCD1602_RS = 1; LCD1602_RW = 0; LCD1602_EN = 1; LCD1602_DB = dat; _nop_();_nop_();_nop_();_nop_(); LCD1602_EN = 1; _nop_();_nop_();_nop_();_nop_(); LCD1602_EN = 0; } |
正巧,我前几天发了一个LCD1602 的贴子 专门 针对复位失败这个问题的 |
ANT1987 发表于 2021-5-7 14:14 是对比度的问题吗?我百度里说的是初始化失败才有这个白条...对比度调整是不是得接电阻 |
贼个调一下对比度就好啦 后面有旋钮 |
初始化前有问题,检查一下接线,还有显示屏说明书和仿真软件命令上的差异 |