[求助] 关于液晶的显示的问题

liufengjing9   2014-7-25 10:02 楼主
#include
#define uint unsigned int
#define uchar unsigned char
sbit lcdrs=P1^0;
sbit lcdrw=P1^1;
sbit lcden=P1^2;
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
  for(y=110;y>0;y--);
}
void write_com(uchar com)
{
lcdrs=0;
P0=com;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void write_data(uchar date)
{
lcdrs=1;
P0=date;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void init()
{
lcdrw=0;
lcden=0;
write_com(0x38);

write_com(0x0f);
write_com(0x06);
}
void main()
{
init();
while(1);
}



以上是编的一个液晶qc16202a的显示的程序,不过我通过测试,发现,在
void init()
{
lcdrw=0;
lcden=0;
write_com(0x38);
write_com(0x0f);
write_com(0x06);
  }
中,仅到write_com(0x38);能正确运行,而
write_com(0x0f);
write_com(0x06);
没运行,
不知道是怎么回事,请大家指教一下小弟,小弟,在此先谢过了!!!

回复评论 (13)

抱歉,那个液晶的型号是qc1602a,打错啦,实在对不住啦!
点赞  2014-7-25 10:03
用编译软件单步仿真,应该能查出哪里出错
点赞  2014-7-25 11:00
第一行黑块还有没有,如果有复位不成功,你最好再查查硬件.
第一条指令要复位的吧,而且要延时后复位.
点赞  2014-7-25 11:21
引用: FireLife 发表于 2014-7-25 11:00
用编译软件单步仿真,应该能查出哪里出错

如果仿真的话,我仅会计算时间,其他的,仿真还不知怎么用。愿您指教一下。
点赞  2014-7-25 22:41
引用: huo_hu 发表于 2014-7-25 11:21
第一行黑块还有没有,如果有复位不成功,你最好再查查硬件.
第一条指令要复位的吧,而且要延时后复位.

您说查硬件部分,这个请您指教一下,我认为是硬件可能出问题啦,不过,我不知检查哪里?
还有,就是您说的那个延时问题,是复位延时,这个也不太懂,能具体指教一下吗?小弟,提前谢谢啦!
点赞  2014-7-25 22:43
引用: liufengjing9 发表于 2014-7-25 22:43
您说查硬件部分,这个请您指教一下,我认为是硬件可能出问题啦,不过,我不知检查哪里?
还有,就是您说 ...

液晶需要上电稳定后发复位指令,所以延时一段时间再复位,可靠性强些.
复位成功后黑块就没了,这步做不到基本是硬件问题,再查查线IO什么的.
点赞  2014-7-25 23:12
LCD1602上有一个脚接的是滑动变阻器,调节对比度的,你调调看
点赞  2014-7-27 23:11
引用: huo_hu 发表于 2014-7-25 23:12
液晶需要上电稳定后发复位指令,所以延时一段时间再复位,可靠性强些.
复位成功后黑块就没了,这步做不到基 ...

哦哦,原来复位延时还有这功能。小弟受教啦。好,我试试,谢谢您!!!
点赞  2014-7-28 16:22
引用: 季夏木槿 发表于 2014-7-27 23:11
LCD1602上有一个脚接的是滑动变阻器,调节对比度的,你调调看

哦哦,这个,我明白您的意思。是不是调那个电位器。
但是我觉得,只要能看清图案,那个对比度,应该没什么问题,那次我调了一下,感觉作用不大。
您怎么看?

点赞  2014-7-28 16:26
引用: liufengjing9 发表于 2014-7-28 16:26
哦哦,这个,我明白您的意思。是不是调那个电位器。
但是我觉得,只要能看清图案,那个对比度,应该没什 ...

直接上网找个现成的程序,一切OK了再回头查看自己的错误
哈喽,我是卡索KaSuo~~
点赞  2014-7-28 23:01
可以找一个好使的,或者用proteus仿真一下。1602没那么难,应该是时序或者硬件上面的故障。
专业电子方案/zigbee方案设计,毕业设计。QQ:1397905781
点赞  2014-7-29 11:11
引用: sun1238898 发表于 2014-7-29 11:11
可以找一个好使的,或者用proteus仿真一下。1602没那么难,应该是时序或者硬件上面的故障。

那个液晶已经正确显示啦,不过,用的别人的单片机,我的板子具体的 错误还没查出来,估计就像您说的那样,是硬件的问题。
回头我好好查查,谢谢啦!!!
点赞  2014-7-30 16:49
谢谢各位的热心帮助。小弟非常感谢!!!
谢谢!!!
点赞  2014-7-30 16:50
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复