1. 程式人生 > >使用定時器T1的模式2 定時器T0的模式2 每隔兩秒左右切換指示燈

使用定時器T1的模式2 定時器T0的模式2 每隔兩秒左右切換指示燈

#include <AT89X52.H> 
#define uint unsigned int
#define uchar unsigned char
uint i,j;
main(){
i=0;
j=0;
EA=1; //中斷總開關開  
ET0=1;//定時器T0中斷允許   
ET1=1;//定時器T1中斷允許  
TR0=1;// 啟動定時器T0
TR1=1;// 啟動定時器T1
TMOD=0x22;//使用定時器T1的模式2  定時器T0的模式2



TH0=TL0=256-255;       //計數器T0高8位賦初值 1       (有255微秒的時間)


TH1=TL1=256-255;       //計數器T0高8位賦初值 1       (有255微秒的時間)




P0=0x00; //開啟所有P0口的LED燈
P1=0xff; //關閉所有P1口的LED燈
while(1); //無限迴圈,
 
}
   


/**************************************************************
函式功能:定時器T0中斷服務程式
**************************************************************/
void int1(void) interrupt 1 //“interrupt”宣告函式為中斷服務函式
{
i=i+1;
if(i==7800){ //湊2秒左右
 
     P0=~P0; //P0口的LED燈取反
 i=0;
}                 
 }


 /**************************************************************
函式功能:定時器T1中斷服務程式
**************************************************************/
void int2(void) interrupt 3 //“interrupt”宣告函式為中斷服務函式
{
 
j=j+1;
if(j==7800){ //湊2秒左右
 
     P1=~P1;  //P1口的LED燈取反
 j=0;
}                 
  
 }