标题: 单片机程序求助:按下开关3S,红灯亮,持续时间为3s,再次按下开关熄灭 [打印本页]

作者: 琲世    时间: 2020-8-5 16:39
标题: 单片机程序求助:按下开关3S,红灯亮,持续时间为3s,再次按下开关熄灭
目前大致的代码我已经写完了,就是不知道如何实现第二次按下开关小灯熄灭,求大佬支援!

单片机源程序如下:
#include        "STC15.h"
#define u8  uint8_t
#define u16 uint16_t
#define u32 uint32_t
typedef unsigned char    uint8_t;
typedef unsigned int     uint16_t;
typedef unsigned long    uint32_t;
sbit KEY=P5^5;
sbit RED=P1^2;
u16 T=0;
void main(void)
{
  while(1)
        {
    if(KEY==0)
                {
      TMOD=0x00;
           TH0=0xB8;
           TL0=0X00;
           TR0=1;
     if(TF0==1)
           {
      TF0=0;
                        TH0=0xB8;
            TL0=0X00;
                        T++;
       }
                         if(T>=150)
                        {
       TR0=0;T=0;RED=0;
      }
                        
    }
  }
}


作者: mffhxa    时间: 2020-8-5 21:17
在倒数第3个括号里加两条语句就可以了:while(KEY==1);RED=1;  第一条语句是按键没按下停在这,按键按下退出执行下一条语句关灯,再加个时延。
作者: wuziForevergod    时间: 2020-8-6 10:18
在里面加一个循环当关闭的时候摁键关灯。
作者: 我么得感情    时间: 2020-8-6 16:33
你设置一个变量啊,按下一次变量加1,执行亮灯的程序,然后再按一次,变量再加1,执行灭灯的程序,然后把变量清零。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1