AT89S52驱动1602液晶,8条数据线反着接的解决方法?

2020-02-05 09:15发布

1.用AT89S52驱动1602液晶,单片机的P0.0-0.7分别连液晶的DB7-DB0,原定义为 #define databus P0 ,改为 #define databus ~P0 这样可以吗,如果不行,是否要把程序里的每处P0 都改为~P0呢?
2.如果MCU连接1602的8位数据线不连续,比如P0.1 P0.3 P0.8 P0.9 P1.5 ...分别连DB0-DB7,用什么指令能解决?
刚开始学51,菜鸟一个,望大家支持,谢谢
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
13条回答
myqiang1990
2020-02-05 15:28
1.取反不可以
  unchar temp,i;
for(i=0;i<8;i++)
  {
    if(date&0x80)//date就是你要写的数据
    temp|=0x80;
    temp>>=1;//最后temp赋给IO口可以了
    date<<=1;
  }
2.你可以分别定义这8个口啊,然后把要写的数据一位一位的取出来,然后按照高低位分别赋给这几个口就OK拉!!
上面是的我解决方法,楼下朋友有更好的,让大家分享一下。。呵呵

一周热门 更多>