找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1321|回复: 3
收起左侧

单片机程序求助:按下开关3S,红灯亮,持续时间为3s,再次按下开关熄灭

[复制链接]
ID:811125 发表于 2020-8-5 16:39 | 显示全部楼层 |阅读模式
目前大致的代码我已经写完了,就是不知道如何实现第二次按下开关小灯熄灭,求大佬支援!

单片机源程序如下:
#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;
      }
                        
    }
  }
}

回复

使用道具 举报

ID:195446 发表于 2020-8-5 21:17 | 显示全部楼层
在倒数第3个括号里加两条语句就可以了:while(KEY==1);RED=1;  第一条语句是按键没按下停在这,按键按下退出执行下一条语句关灯,再加个时延。
回复

使用道具 举报

ID:811766 发表于 2020-8-6 10:18 | 显示全部楼层
在里面加一个循环当关闭的时候摁键关灯。
回复

使用道具 举报

ID:457495 发表于 2020-8-6 16:33 | 显示全部楼层
你设置一个变量啊,按下一次变量加1,执行亮灯的程序,然后再按一次,变量再加1,执行灭灯的程序,然后把变量清零。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表