|
- void tim0_isr()interrupt 1 using 1//定時(shí)器0中斷服務(wù)函數(shù)
- {
- irtime++;
- }
- void ex0_isr()interrupt 0 using 0//外部中斷0服務(wù)函數(shù)
- {
- static unsigned char i;
- static bit startflag;
- if(startflag)
- {
- if(irtime<63&&irtime>=33)//引導(dǎo)碼TC9012的頭碼
- i=0;
- irdata=irtime;
- irtime=0;
- i++;
- if(i==33)
- {
- irok=1;
- i=0;
- }
- }
- else{irtime=0;startflag=1;}
- }
- void TIM0init()//定時(shí)器0初始化
- {
- TMOD=0x02;//定時(shí)器0工作方式2,TH0是重裝值,TL0是初值
- TH0=0x00;//reload value
- TL0=0x00;//initial value
- ET0=1;//開(kāi)總中斷
- TR0=1;
- }
- void EX0init()
- {
- IT0=1;//Configure interrupt 0 for falling edge on/INT0(P3.2)
- EX0=1;//Enable EX0 Interrupt
- EA=1;
- }////////////////////////////////////////////////////////////////////////
- void lrcordpro()//紅外碼值處理函數(shù)(關(guān)鍵函數(shù))
- {
- unsigned char i,j,k=1;
- unsigned char cord,value;
- for(i=0;i<4;i++)
- {/////////////////////處理4個(gè)字節(jié)
- for(j=1;j<=8;j++)
- {//////////////////處理1個(gè)字節(jié)8位
- cord=irdata[k];
- value=value>>1;
- if(cord>7)value=value|0x80;//大于某值為1
- k++;
- }
- IRcord=value;
- value=0;
- }
- irpro_ok=1;//處理完畢標(biāo)志位置1
- }
- void lcd_delay(uchar ms)/*LCD1602延時(shí)*/
- {
- uchar j;
- while(ms--)
- {
- for(j=0;j<250;j++)
- {;}
- }
- }
- 我想問(wèn)一下這個(gè)定時(shí)器0在什么時(shí)候中斷,以及中斷的時(shí)間并且引導(dǎo)碼那部分能幫我解答一下嗎
|
|