找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3132|回复: 6
收起左侧

51单片机如何检测3路低电平?求分析与指导

[复制链接]
ID:295906 发表于 2021-1-2 14:09 | 显示全部楼层 |阅读模式
由于本论坛禁止直接求程序,禁止伸手党,所以向大家请教一下大致的实现方法与思路,理清头绪后我自己来写程序去实现
初学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
回复

使用道具 举报

ID:213173 发表于 2021-1-2 16:42 | 显示全部楼层
检测P3.2、3.3、3.0低电平原理与检测按键低电平道理是一样的。
回复

使用道具 举报

ID:865960 发表于 2021-1-2 18:38 | 显示全部楼层

检测P3.2、3.3、3.0低电平原理与检测按键低电平道理是一样的。
回复

使用道具 举报

ID:295906 发表于 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的状态?
大师可否给个源程序实例学习一下?
回复

使用道具 举报

ID:675145 发表于 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
回复

使用道具 举报

ID:548551 发表于 2021-1-3 15:25 | 显示全部楼层
你把它当作按键检测来就可以了啊。只是三个按键而已,就这么简单啊。按键检测就涉及到消抖,就会出现你之前说到的情况,本来就已经有了低电平, 这个时候怎么弄? 检测判断之前先读IO口电平,然后再做检测判断。这样确保不会出错。  楼上说的标志位是比较好的。加个标志位,然后读取标志位,标志位到了再读取IO口电平来判断
回复

使用道具 举报

ID:295906 发表于 2021-1-8 09:30 | 显示全部楼层
张小不懂 发表于 2021-1-3 13:57
加个标志位就好了啊    AN1按下定时器延时3S,时间一到标志位置位,P3.0/P3.2/P3.3只能在标志位置位的时 ...

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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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