我是一个初学者有关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条回答
罗曼帝客
1楼-- · 2019-03-26 13:17
写‘1’那里有问题,不能直接那样给他个1让他显示,应该写成write_data(0x30+1);这样让他显示1,不管行不行,给我个答复,我好对自己的理解也有个交代啊。
Li_Lei
2楼-- · 2019-03-26 16:42
'1' 就是(0x30+1)
yye110
3楼-- · 2019-03-26 16:44
你的板子上定义的LCDRS,LCDEN,LCDRW的引脚,是不是和抄人家的一样呢?这个程序是没有错误的

一周热门 更多>