LCD1602数据线接反 求助!!!谢谢

2020-01-23 14:29发布

实验板LCD1602的D0~D7是接C51的P0.7~P0.0!!!
可我的程序的D0~D7是接C51的P0.0~P0.7的!!!
求各位大虾  程序怎么改啊!!!
非常谢谢


#define yh 0x80 //LCD第一行的初始位置,因为LCD1602字符地址首位D7恒定为1(100000000=80)
#define er 0x80+0x40 //LCD第二行初始位置(因为第二行第一个字符位置地址是0x40)

//液晶屏的与C51之间的引脚连接定义(显示数据线接C51的P0口)
sbit rs=P2^0;
sbit en=P2^2;
sbit rw=P2^1; //如果硬件上rw接地,就不用写这句和后面的rw=0了
/********液晶写入指令函数与写入数据函数,以后可调用**************/

/*在这个程序中,液晶写入有关函数会在DS1302的函数中调用,所以液晶程序要放在前面*/

write_1602com(uchar com)//****液晶写入指令函数****
{
        rs=0;//数据/指令选择置为指令
        rw=0; //读写选择置为写
        P0=com;//送入数据
        delay(1);
        en=1;//拉高使能端,为制造有效的下降沿做准备
        delay(1);
        en=0;//en由高变低,产生下降沿,液晶执行命令
}


write_1602dat(uchar dat)//***液晶写入数据函数****
{
        rs=1;//数据/指令选择置为数据
        rw=0; //读写选择置为写
        P0=dat;//送入数据
        delay(1);
        en=1; //en置高电平,为制造下降沿做准备
        delay(1);
        en=0; //en由高变低,产生下降沿,液晶执行命令
}


lcd_init()//***液晶初始化函数****
{
        write_1602com(0x38);//设置液晶工作模式,意思:16*2行显示,5*7点阵,8位数据
        write_1602com(0x0c);//开显示不显示光标
        write_1602com(0x06);//整屏不移动,光标自动右移
        write_1602com(0x01);//清显示

        write_1602com(yh+1);//日历显示固定符号从第一行第1个位置之后开始显示
        for(a=0;a<14;a++)
        {
        write_1602dat(tab1[a]);//向液晶屏写日历显示的固定符号部分
        //delay(3);
        }
        write_1602com(er+2);//时间显示固定符号写入位置,从第2个位置后开始显示
        for(a=0;a<8;a++)
        {
        write_1602dat(tab2[a]);//写显示时间固定符号,两个冒号
        //delay(3);
        }

}

/*********************over***********************/

以上是有关LCD1602的程序  请各位大虾 帮帮忙 怎么改!!!!
非常谢谢
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。