|
定時(shí)器不夠用怎么辦?當(dāng)然是吧一個(gè)定時(shí)器分成多個(gè)使用,用定時(shí)器中斷記錄定時(shí)器中斷次數(shù),所要的定時(shí)的時(shí)間=中斷次數(shù)*單次定時(shí)時(shí)長(zhǎng)。例如1s定時(shí)=20*50ms
例如用一個(gè)定時(shí)器控制兩個(gè)led燈以不同頻率閃爍,不用使用軟件延時(shí),不占用CPU資源
單片機(jī)源程序如下:
- #include <reg52.h>
- sbit LED1 = P1^2;
- sbit LED2 = P1^4;
- unsigned char t,s;
- void time0_Init()
- {
- TMOD = 0x01;
- TH0 = 0x3C; //50ms
- TL0 = 0xB0;
- TR0 = 1;
- EA = 1;
- ET0 = 1;
- }
- void timer0() interrupt 1 //2個(gè)分頻器
- {
- t++;
- s++;
- TH0 = 0x3C;
- TL0 = 0xB0;
- if(s==5) //250ms
- {
- s = 0;
- LED1 = !LED1;
- }
- if(t==20) //1000ms
- {
- t = 0;
- LED2 = !LED2;
- }
- }
- void main()
- {
- time0_Init();
- while(1);
- }
復(fù)制代碼
|
評(píng)分
-
查看全部評(píng)分
|