欢迎您光临五金加工厂,如有问题请及时联系我们。

单片机1602一个读忙程序的问题,请大神赐教?

作者:五金加工
文章来源:本站

  

单片机1602一个读忙程序的问题,请大神赐教?

  

单片机1602一个读忙程序的问题,请大神赐教?

  /* busy_flag变量是bit型,位类型的;其结果只能是0和1; (P0 & 0x80); ---P0口是一个8位的,先对P0=0XFF;转换成二进制按位与1111 1111&1000 0000,不管P0^0-p0^6的结果是1还是0都为0,也就是屏蔽掉了低7位; 因为LCD1602 最高位D7位是LCD BUSY忙检测状态,当此位为1时,说明LCD还处于忙状态,不能进行读取操作,为0时处于空闲状态。 */ while(1) { /* 1.LCD BUSY位忙时,P0 & 0x80 = 1111 1111&1000 0000 = 1000 0000,结果不为0,转换为 位类型结果为1, 在赋值给位busy_flag 2.LCD BUSY位空闲时,P0 & 0x80 = 0111 1111&1000 0000 = 0000 0000,结果为0,转换为位类型结果为0, 在赋值给位busy_flag */ busy_flag = (bit)(P0 & 0x80);// (bit)的意思是把(P0 & 0x80)位与的结果强制转换为位类型的变量 if(busy_flag == 0) { break; //busy_flag为0时退出LCD等待检测 } }

来源:文章来源于网络,如有侵权请联系我们删除。本文由五金加工编辑,欢迎分享本文,转载请保留出处和链接!