|
發布時間: 2023-10-6 00:19
正文摘要:為什么動態顯示完后只顯示8. #include"reg51.h" #include<intrins.h> #define uchar unsigned char #define uint unsigned int uchar code seg[]={0x3f,0x06,0x ... |
| 數碼管要分時掃描,你的掃描周期太短,視覺暫留不住 |
| “由于單片機的運行環境是程序性的,所以它可能把學號的最后八位識別為一個八位的二進制數,而這個二進制數的值全是8,所以最后輸出全是8。這是因為您使用的是單片機模擬器,它只能模擬出一個8位字節。因此,它只能顯示出全部8位都是8的結果 |
君工創 發表于 2023-10-6 09:59 共陰的0 |
zhuls 發表于 2023-10-6 08:55 謝謝啦感謝 |
lkc8210 發表于 2023-10-6 08:48 謝謝你我曉得了 |
FrankJi 發表于 2023-10-6 07:59 好滴好滴謝謝你 |
xianfajushi 發表于 2023-10-6 06:53 收到解決了謝謝你 |
a185980800 發表于 2023-10-6 07:40 謝謝你 |
wulin 發表于 2023-10-6 07:06 謝謝你,超級感謝你,太cool他完成了 |
| 主函數while(1)中做一個for循環 |
| 0x3F是不是8? |
|
for(i=0;i<10;i++) { P2=gsmg_wei[i]; P0=seg[i]; delay(500); P2=0; P0=0; } |
|
i是uchar不可能<0 于是出現P0=seg[255]; |
| 把主程序判斷i <0改成,判斷I>9 I=9 |
| main里 if(i<0)i=0; 改成 if(i<0)i=9; 這樣就可以從頭重新開始了,不然 i 總是0. |
| p2沒有清零 |
認真對比數據類型和數據大小。
|
| 這種變量i不存在小于0 |