标题: 想用单片机做一个延时电路,却没有思路 [打印本页]

作者: 林森    时间: 2018-11-26 11:01
标题: 想用单片机做一个延时电路,却没有思路
按钮1按下后过一段时间(比如2s)后,按下按钮2,控制继电器启动,按钮2按下后过一段时间(比如2s)后,按下按钮1,控制继电器启动,我想理解怎么让按钮2知道按钮1按下,有大佬可以给一下思路吗,看一下程序
作者: xuyaqi    时间: 2018-11-26 11:32
按键状态应建一个标志,根据标志就知道那个按下,那个没按下。
作者: devcang    时间: 2018-11-26 12:32
全局变量,记住按键状态


~~~~~~
作者: ssk7793    时间: 2018-11-26 13:05
比较A1代表按钮1的标志,A2代表按钮2的标志,当按钮1按下后,A1=1,按下按钮2里,判断A1=1的话就启动继电器 并让A1=0
作者: 封小墨    时间: 2018-11-26 13:40
你的按钮二不能自动按下吧,按钮一按下2s后按钮二按下的话,你写个延时函数就可以啊
作者: zhengaohui    时间: 2018-11-26 15:02
定义一个标志位,改变按钮1的时候给标志位赋值就ok

作者: qq1534646107    时间: 2018-11-26 15:43
最简单的是在按钮的程序时候定义标志位,根据标志位不同实现不同的功能。如果考虑到按下的时间就很复杂了
作者: yzgxhld    时间: 2018-11-26 16:23
按下按钮1后启动定时器,当定时器超过2s后,持续查询按钮2状态,如果按钮2按下,启动继电器
作者: 灭雷决88    时间: 2018-11-26 17:25
用单片机做延时电路,确实是浪费,还得编程。用555电路做就行,焊完电路通电就能用,方便很多。非要用单片机也行,你会编写程序吗,会编程就好办了,用单片机延时是最简单事了,延时的时间长短控制也非常灵活,范围更大,延时一年都行,最短几毫秒也行。
作者: wbw8465132    时间: 2018-11-26 20:24
A2代表按钮2的标志,当按钮1按下后,A1=1,按下按钮2里,判断A1=1的话就启动继电器 并让A1=0
作者: LLIIf    时间: 2018-11-26 21:15
按键按下,看P口是什么情况,给按键编号,通过比较P口值判断是几号按键按下
作者: 花板子    时间: 2018-11-27 11:06
比较判断嵌套,满足第一个条件和第二个条件之后进行跳转,可以跳转到一个子程序去执行你想要的功能。
作者: yfpc2006    时间: 2018-11-27 16:38

//仅提供编程思路,代码仅供参考,以51单片机为例:

sbit S1  Px.x
sbit S2  Px.x


bit S1_down_bit
bit S2_down_bit


if(S1 == 0)                                //按钮1 按下
{
        S1_down_bit = 1;        //按钮1 按下标志
}


if(S2 == 0)                                //按钮2 按下
{
        S2_down_bit = 1;        //按钮1 按下标志
}


if(S1_down_bit == 1)        //按钮1按下过,且在2秒内
{
        if(S2 == 0)                        //按钮2 按下
        {
                OUT1 = 1;                //继电器1输出
        }
}

if(S2_down_bit == 1)        //按钮2按下过,且在2秒内
{
        if(S1 == 0)                        //按钮1 按下
        {
                OUT2 = 1;                //继电器2输出
        }
}



//定时器中断程序

void TIMx() interrupt 1        //配置成2秒定时器中断
{
        //清中断标志
        S1_down_bit = 0;        //清0 按钮1 按下标志
        S2_down_bit = 0;        //清0 按钮2 按下标志
}


作者: cjm82    时间: 2018-11-27 23:49
简单的延迟功能用单片机确实有点浪费,555或者用分立原件加个LM358搭个RC延迟电路就能胜任了
作者: 董云交    时间: 2018-11-28 08:49
标志位
作者: wendellyang    时间: 2018-11-28 09:55
使用定时器延时,仔细看下规格书




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