我是一个初学者有关1602液晶屏的问题哪位大哥能帮我解答一下。

2019-03-24 18:49发布

#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit lcden=P3^4;
sbit lcdrs=P3^5;
sbit dula=P2^6;
sbit wela=P2^7;

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()
{
        dula=0;
        wela=0;
    lcden=0;
        write_com(0x38);
        write_com(0x0e);
    write_com(0x06);
        write_com(0x80);
        write_com(0x01);
}
void main()
{
        init();
     write_data('1');
        while(1);
       
}



这是我按视频教材写的1602程序,但是没有显示错误下载后却无法在1602上显示1,这是为什么?我按照视频教的排查了一遍没发现错误,哪位大哥能帮我看看哪里出错了 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
15条回答
138hc487
2019-03-26 09:34
write_com(0x80);
write_com(0x01);这个把显示清0,数据指针清0了,就没有具体位置了。
你在初始化函数里面这样写不对。
write_com(0x80);
不要写在初始化函数里面,直接写在主函数里面,写在你要显示数据的前面。

一周热门 更多>