标题: 51单片机如何检测3路低电平?求分析与指导 [打印本页]

作者: szhubp    时间: 2021-1-2 14:09
标题: 51单片机如何检测3路低电平?求分析与指导
由于本论坛禁止直接求程序,禁止伸手党,所以向大家请教一下大致的实现方法与思路,理清头绪后我自己来写程序去实现
初学51单片机,不知道咋弄,请高手指点。

1、P5.4为开机按键(AN);
2、P3.1为开机控制输出,低电平为开机;
3、P3.2、3.3、3.0分别为3路低电平检测端口。当AN1按下后,D1亮,为了检测的可靠性,按下AN1的同时给3路低电平检测延时3秒,3秒后,当任意一路检测到低电平后,D1熄灭(为高电平)。直到下一次再按下AN1。
谢谢!


2.jpg (94.17 KB, 下载次数: 77)

2.jpg

作者: wulin    时间: 2021-1-2 16:42
检测P3.2、3.3、3.0低电平原理与检测按键低电平道理是一样的。

作者: bj000315    时间: 2021-1-2 18:38

检测P3.2、3.3、3.0低电平原理与检测按键低电平道理是一样的。
作者: szhubp    时间: 2021-1-3 12:45
wulin 发表于 2021-1-2 16:42
检测P3.2、3.3、3.0低电平原理与检测按键低电平道理是一样的。

谢谢。
这里有个问题,假如P3.2、3.3、3.0某个口在AN1没有按下之前就已经是低电平,这里就可能没有办法工作了吧?
所以,怎样实现在AN1按下的同时延时3秒,不去判断P3.2、3.3、3.0的状态?
大师可否给个源程序实例学习一下?
作者: 张小不懂    时间: 2021-1-3 13:57
szhubp 发表于 2021-1-3 12:45
谢谢。
这里有个问题,假如P3.2、3.3、3.0某个口在AN1没有按下之前就已经是低电平,这里就可能没有办法 ...

加个标志位就好了啊    AN1按下定时器延时3S,时间一到标志位置位,P3.0/P3.2/P3.3只能在标志位置位的时候检测,检测到信号后标志位复位等待下一次的AN1
作者: xqleft    时间: 2021-1-3 15:25
你把它当作按键检测来就可以了啊。只是三个按键而已,就这么简单啊。按键检测就涉及到消抖,就会出现你之前说到的情况,本来就已经有了低电平, 这个时候怎么弄? 检测判断之前先读IO口电平,然后再做检测判断。这样确保不会出错。  楼上说的标志位是比较好的。加个标志位,然后读取标志位,标志位到了再读取IO口电平来判断
作者: szhubp    时间: 2021-1-8 09:30
张小不懂 发表于 2021-1-3 13:57
加个标志位就好了啊    AN1按下定时器延时3S,时间一到标志位置位,P3.0/P3.2/P3.3只能在标志位置位的时 ...

谢谢,按照这个思路,搞定了。




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