改好了,在51hei-5單片機開發板上測試成功,注意紅色的字體為修改過的.
-----------------------
#include <REG51.H> #include <INTRINS.H>
void delay(void) //誤差 -0.152253987588us { unsigned char a,b; for(b=238;b>0;b--) for(a=250;a>0;a--); //原來的延時時間太短,各燈交替閃亮的時間太快,導致人眼無法看到跑馬燈效果. }
sbit p14 =P1^4; //你原來的定義方法是錯的
main() { unsigned char flag = 0xFE; //這里不能用整形的,要用uchar型,8位每一位代表一個燈 unsigned char aa; p14=0; while(1) { P0=flag; flag=_cror_(flag,1); delay(); } } |