|
發布時間: 2022-11-22 08:01
正文摘要:#include <REGX51.H> int count0=0,num0=0; int temp=1; unsigned char a[]={0xff,0x00}; void delay() { int i,j; f ... |
|
明顯這句錯了啊num0=~num0; 不應該使用按位取反操作,按位取反操會讓num0由0x00變成0xFF,當num0==0xFF時,執行P2=a[num0];就會導致一個致使錯誤“數組越界”,系統會出現你想不到的現象。 基于你的思路,現有兩種改法: 1、刪除unsigned char a[]={0xff,0x00}; 把P2=a[num0]修改成P2=num0 2、其它地方不變,把num0 =~num0;修改成 num0 = num0 > 0 ? 0 : 1; |
| i num0=~num0; 這句,因為前面定義了這個數組 unsigned char a[]={0xff,0x00};,所以這里也要用數組 |
XCYYLX 發表于 2022-11-22 20:30 好的感謝你 |
| 中斷有問題,得改一下 |
|
太感謝你了大佬 |
|