1. 程式人生 > >用定時器T0查詢方式2 P0口8位控制LED閃爍 T1查詢方式2 P1口8位控制LED閃爍

用定時器T0查詢方式2 P0口8位控制LED閃爍 T1查詢方式2 P1口8位控制LED閃爍

//用定時器T0查詢方式P0口8位控制LED閃爍T1查詢方式P1口8位控制LED閃爍
#include<reg52.h>        //  包含52微控制器暫存器定義的標頭檔案
#define uchar unsigned char
#define uint  unsigned int
/**************************************************************
函式功能:主函式
**************************************************************/
uint p,q;
void main(void)
{
p=0;//由於閃爍速度太快,看不出來,所以通過計數實現延遲   
q=0;//由於閃爍速度太快,看不出來,所以通過計數實現延遲                   
TMOD=0x22;            //使用定時器T1的模式2   T0的模式2
TL0=TH0=0;  //定時器T0的高8位賦初值  如果要2秒延遲大概需要中斷2000000/ 256  =7812

TR0=1;                //啟動定時器T0
TF0=0;                //溢位標誌位 先清零     

TR1=1;                //啟動定時器T1
TF1=0;                //溢位標誌位 先清零   
TL1=TH0=1;  //定時器T1的高8位賦初值  如果要2秒延遲大概需要中斷2000000/ 256  =7812

         
P0=0xff;              //關閉LED燈
P1=0x00;              //開啟LED燈
   while(1){//無限迴圈等待查詢
    
  while(TF0==1||TF1==1){ 
if(TF0==1){
p=p+1;
TF0=0;
}
if(TF1==1){
q=q+1;
TF1=0;
}
  }
  if(p>7812){
p=0;
P0=~P0;
  } 
  if(q>7812){
q=0;  
P1=~P1;
  }


}
 }