首先 IF(P1=2)的正确写法是 IF (P1==2)
"=" 是赋值 而"==" 才是判断
关于IF 语句 括号内的条件, 是 如果运算以后得出的是个非0值就算条件成立
比如 P1==2的运算结果是 如果P1的值是2 那么运算结果就是 0 ,(条件成立) 若P1的值不是2 运算结果就是任何一个不等于0的值,(条件不成立)
关于 dat&0x80 是把DAT 和 x080 做与运算 与运算的结果是只要两个数一个不为0就条件成立
(这个条件估计是永远成立应该是条件写错了)
根据0X80 这个值的特点和 DAT <<1 这里判断应该是用于行列扫描的
if(dat==0x80)
当扫描到最左边一列时 全部置零 重新从右边第一列开始。
具体的还要看线路图