请教为何while(j<10)时,LED灯正常闪烁5次,但是将while(j<10)改成while(j<5),LED灯进入无限闪烁状态?我本以为灯会闪烁2次。
- /*************************************************
- *实验名:定时器实验
- *实验效果:第一个led灯以500ms一次的精确频率闪烁,共闪烁5次;
- *************************************************/
- #include<reg52.h>
- sbit led = P1^6;
- int i = 0;
- int j=0;
- void timer1_init()
- {
- TMOD = 0x10; //定时器1选择工作方式1
- TH1 = 0x4C; //设置初始值,定时50ms
- TL1 = 0x00;
- EA = 1; //打开总中断
- ET1 = 1; //打开定时器1中断
- TR1 = 1; //启动定时器1
- }
- void main()
- {
- led = 0;
- timer1_init();
- while(j<10)
- {
- if(i>=10)
- {i=0;
- led = ~led;
- j++;
- }
- }
-
- }
- void timer1() interrupt 3
- {
- TH1 = 0x4C; //设置初始值,定时50ms
- TL1 = 0x00;
- i++;
-
-
- }
复制代码
|