lcd1602只有背光亮_lcd1602背光和不背光
keil有仿真的,自己看看分析分析程序是哪里面出错了,lcd初始化不对,后面的程序根本就不用看,不可能成功
lcd1602只有背光亮_lcd1602背光和不背光
lcd1602只有背光亮_lcd1602背光和不背光
调对比电压的电阻接好了没,接好了调节如果还是什么反应都没有,那就是你端口接错了,因为即使程序错了调节电阻还是会有反应的,刚做了一块这样的板子,有什么问题问
亮代表背光灯亮了,没有显示,可能你程序并没有把LCD初始化
给你一个我实际的初始化程序,其中前后和命令之间的延时是我实际调试出来的,若延时时间短了也会出现你的现象:
voidcmd1602(unsignedcharddata)
{ctl1602_out=0//rs/rw/en=0;
//禁止1602(e=0),选择1602为命令方式(rs=0),将读写口改为写状态(rw=0)
delay_us(50);//等待busy位变低
dat1602_out=ddata;//送出数据到数据总线
set1602_en;//芯片使能位置1
delay_us(5);//保持一定宽度
set1602_di;//芯片使能位清0,命令被1602读到
delay_us(1);//保持一定宽度
}voidinit_disp(void)
{dat1602_sel=0;//数据总线口定义为i/o方式
dat1602_dir=0xff;//口定义为输出方式
ctl1602_sel&=~(sel+rw+enb);//各控制位定义为i/o方式
ctl1602_dir|=(sel+rw+enb);//口定义为输出方式
//以上4行为430的i/o口定义作,具体在头文件中定义
delay_ms(500);//延时500毫秒
cmd1602(0x38);/twolines,5x7fontstyle,nocursors,noblink/
delay_ms(10);
cmd1602(0x38);
delay_ms(10);
cmd1602(0x38);
delay_ms(10);
cmd1602(0x38);
delay_ms(10);
cmd1602(0x08);//closedisplay
delay_ms(10);
cmd1602(0x01);//cleardisplay
delay_ms(10);
cmd1602(0x06);//setacrightmove
delay_ms(10);
cmd1602(0x0c);//opendisplay
delay_ms(200);
}
LCD1602插上没有行方格,全亮没有显示字符
控制指令和数据没有写入。
LCD1602中有2个引脚是背光,不给电就是没背光,不会影响字符显示。
一般来说这个就是初始化没按照规格书来做.仿真不需要太准确,但是实物就要按照规格书来做了。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系 836084111@qq.com 删除。