改好了,在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(); } } |