标题:
想用单片机做一个延时电路,却没有思路
[打印本页]
作者:
林森
时间:
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