|
我學(xué)單片機(jī)3個月了,也寫了一個,樓主可以測試一下
#include <reg52.h>
sbit relay = P1^3; //繼電器,0線圈吸合,1線圈斷開
sbit key = P3^0; //按鍵,0為按下,1為松開
bit flag=0;
#define uchar unsigned char
#define uint unsigned int
void Init_T0(void) //50毫秒@11.0592MHz
{
TMOD = 0x01;
TL0 = 0x00; //設(shè)置定時初值
TH0 = 0x4C; //設(shè)置定時初值
TF0 = 0; //清除TF0標(biāo)志
TR0 = 1; //定時器0開始計時
ET0 = 1;
EA = 1;
}
void main(void)
{
Init_T0();
relay = 1; //斷開繼電器
while(1)
{
//想實(shí)現(xiàn)其他功能,再這里添加代碼
}
}
void T0_ISR() interrupt 1
{
static uint mm,nn;
TL0 = 0x00; //設(shè)置定時初值 50毫秒
TH0 = 0x4C; //設(shè)置定時初值
if(key==0) //判斷按鍵是否被按下
nn++;
if((key==0)&&( nn>=1200)) // 按鍵按下并且到達(dá)1分鐘
{
while(!key); nn=0; //等待按鍵釋放
relay=0; flag=1;
}
if(flag==1)
mm++;
{
if( mm>=6000) //吸合5分鐘斷開
{ mm=0; relay=1; flag=0;}
}
} |
|