請教為何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++;
-
-
- }
復制代碼
|