//假設晶振12MHZ,檢測的是P1.1下降沿
#include "reg51.h"
unsigned int YSJS;
sbit K1 = P1^1;
void main(void)
{
TMOD |= 0X10; //定時器1工作于方式1,16位定時器
TL1 = 0x78; //設定定時初值
TH1 = 0xEC; //定時器1定時時間=5000us
ET1 = 1; //使能定時器1中斷
EA =1; //開總中斷
K1 = 1;
YSJS = 0;
while(1)
{
if(K1==0)TR1 = 1; //啟動定時器1
if(YSJS == 12000) //已定時一分鐘
{
//這裡加入你自己定時一分鐘後要做的處理
}
}
}
void TIMER1(void) interrupt 3 //定時器1中斷函數使用預設寄存器組
{
TL1 = 0x78; //設定定時初值
TH1 = 0xEC; //定時器1定時時間=5000us
YSJS++;
if(YSJS==12000) //已定時一分鐘
{
TR1 = 0;關閉定時器1
}
}
取消
評論