編譯報錯是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的那一位
|