#include <reg52.h>
//就是按下key 继电器1开启计时1分钟关闭 然后继电器2开启 计时1分钟关闭 停止 来达到控制电动推杆的目的,问题来了 当我按下key按键 继电器1定时器工作 在按下key没有反应 必须要等程序跑完 在按key才会重新控制继电器1工作,有什么办法在按下key 让程序在重新走一遍呢
#define uchar unsigned char
#define uint unsigned int
sbit key=P1^0;//用P1.0做按键输入开!
sbit led=P1^7;//定义输出继电器1开
sbit led1=P1^6;//定义输出继电器2开
void UARTinit()
{
SCON=0x50;
TMOD=0x20;
TH1=0xFD; //11.0592MHz 9600bps
TL1=0xFD;
TR1= 1; //
}
void delay(uint n) {//延时代码
uint aa,bb;
for(aa=0;aa<n;aa++){
for(bb=0;bb<850;bb++)
;
}
}
void sc (uchar c)
{
SBUF =c ;
while(!TI);
TI=0;
}
void main(void)
{
UARTinit();
{
while(1)
{
if(!key)
{
delay(30);//如果按键按下就延时30毫秒去抖动再判断
led = 0; delay(99999);// 继电器1开启,延时60秒
led = 1; delay(3000);// 继电器1关闭
led1 = 0; delay(99999);//继电器2开启,延时60秒
led1 = 1; // 继电器2关闭
while(!key);//按键不放就死循环
}
}
}
}