编译报错是void delayNop()后面少了个分号
result = (bit)(P0&0x80)这样写也不好.
如果P0作为输入口.
应写为
result = P0>>7;
尤其是当P0位输出口时,可能输出是1,但是接在IO口上的负载电阻如果小于内部上拉电阻,会造成将整个IO口电位拉低,这时候你再去读者个IO口,很有可能读出来的是0.这问题可以通过编译,但是一旦影响程序运行排查起来会比较费时.
作为输出口,建议这样操作
U8 TEMP; //建立一个变量用于缓冲
BIT FLAG; //标志位
TEMP = 0xXX; //TEMP赋值
P0 = TEMP; //TEMP的值再赋予 P0
/*P0赋值后,当需要查询P0具体一位的值,只需要在P0再次赋值前,查询TEMP 相应的位即可*/
FLAG = TEMP>>n ; (n=0--7)n值取决于你想FLAG等于TEMP的那一位
|