/*********************************************************************************************
修改:CallReceiver
程序名:测试
/*********************************************************************************************/
#include <reg52.h>
sbit relay1=P1^3;
sbit relay2=P1^4;
sbit k=P0^0;
unsigned char cou, TIME_HH,TIME_MM,TIME_SS;
void main()
{
TMOD=0x01;
TH0 = 0x3c; // 重置定时常数
TL0 = 0xb0;
EA=1; ET0=1;
TR0=0;
while(1){
if(k==0){
TR0=1;//如果k按键按下开始计时
relay1=0;//继电器1通电
}
}
}
void timer0() interrupt 1
{
cou++; // 软计数器加1
if(cou > 19){ // 计数值到100(1s)
cou = 0; // 软计数器清零
TIME_SS++; // 秒计数器加1(进位10ms*100=1s)
if(TIME_SS > 59){ // 秒计数值到60
TIME_SS = 0; // 秒计数器清零
TIME_MM++; // 分计数器加1(进位60s=1m)
if(TIME_MM > 59){ // 分计数到60
TIME_MM = 0; // 分计数器清零
TIME_HH++; // 时计数器加1(进位60m=1h)
if(TIME_HH = 0)relay1=0;
if(TIME_HH = 1)relay1=1;//1小时到关继电器1
if(TIME_HH = 2)relay2=0;//又到1小时开继电器2
if(TIME_HH = 3)relay2=1;//又到一小时关继电器2
if(TIME_HH = 4){ // 计数到4h
TIME_HH = 0; // 时计数器清零重新循环
relay1=0;
}
}
}
}
TH0 = 0x3c; // 重置定时常数
TL0 = 0xb0;
}
/************************************END*********************************************************/
|