單片機 C語言(LED動態)
<p>#include<reg51.h></p> <p>#define unit unsigned int</p> <p>#define uchar unsigned char</p> <p>sbit P0_7=P0^7;</p> <p>void delay()</p> <p>{</p> <p>int x=20000;</p> <p>do{x--;}while(x>1);</p> <p>}</p> <p>void main()</p> <p>{</p> <p>uchar code num1[5]={0x06,0x5b,0x4f,0x66,0xd3};</p> <p>uchar code num2[5]={0x76,0x79,0x06,0x06,0x3f};</p> <p>uchar i;</p> <p>P0_7=0;</p> <p>while(1)</p> <p>{</p> <p>P3=0x01; //有5個數碼管,分別接P3.0~3,用proteus仿真發現只有後四個數碼管顯示1234,然後代表高低電平的小正方形只有P3.1~P3.5有變化(移位),其他均為藍色低電平,為什麼這樣呢,程序仿現成的,應該沒錯吧?</p> <p></p> <p>
</p> <p>for(i=0;i<5;i++)</p> <p>{</p> <p>if(P0_7==0)</p> <p>P0=num1[i];</p> <p>else</p> <p>P0=num2[i];</p> <p>P3<<=1;</p> <p>delay();</p> <p>P0_7=!P0_7;</p> <p>} </p> <p>}</p> <p>}</p>
最佳回答:
說明你的循環體裡根本沒有第五個led等的循環,檢查一下循環體。。。。