我想使用定时器T0产生的中断制作跑马灯
- #include<reg51.h>
- void main(void)
- {
- EA = 1;
- ET0 = 1;
- TMOD = 0x01;
- TH0 = 15536 / 256;
- TL0 = 15536 % 256;
- TR0 = 1;
- P0 = 0xfe;
- while(1)
- ;
- }
- void time0(void) interrupt 1 using 0
- {
- P0 <<= 1;
- if (P0 != 0xff)
- P0 |= 1;
- else
- P0 = 0xfe;
- TH0 = 15536 / 256;
- TL0 = 15536 % 256;
- }
复制代码这样的话八个led只会执行一次循环后无反应
而将P0 <<= 1;if (P0 != 0xff)
P0 |= 1;
else
P0 = 0xfe; 换成_crol_(P0, 1);后,
效果如图:
希望各位解答一下这两种情况的原因
-
一周热门 更多>