标题: stc单片机IO口怎么检测到外部电压? [打印本页]

作者: wauuvs    时间: 2018-5-23 16:44
标题: stc单片机IO口怎么检测到外部电压?
本帖最后由 wauuvs 于 2019-6-26 16:31 编辑

已解决,谢谢
作者: 优雅的刺猬    时间: 2018-5-23 16:44
不能拉低waterline
直接把那一句删掉
作者: wenzedong    时间: 2018-5-23 17:25
确定P5.4和P5.5的模式设置在准双向口吗?现在的问题应该是检测P5.5脚的输入达不到高电平状态,你先试试给它加一个高电平5V,看看灯是否熄灭,电路图我不好判断,应该是经过你深思熟虑的吧,如果外加一个高电平灯熄灭了,可以试试用导线连接,是否也会熄灭,如果还熄灭了,我只能认为水的导电性太差,你可以往里面撒些盐再试试,估计问题就能解决了
作者: Robertzhang    时间: 2018-5-23 17:46
有几个问题:

1.  原理图不详细,LED在哪里看不到,VCC电压是多少?。
2. 这两个端口是否可以分别设置输入和输出?
3. 把图中三极管换位PNP的,P5.4改为Low level来控制VCC供电。

作者: wauuvs    时间: 2018-5-24 09:22
wenzedong 发表于 2018-5-23 17:25
确定P5.4和P5.5的模式设置在准双向口吗?现在的问题应该是检测P5.5脚的输入达不到高电平状态,你先试试给它 ...

你好,硬件电路是经过测试的,实际中我是用数码管显示的,而不是LED,为了简洁让大家明白,所以我把它替换成LED的概念,IO口根据那个官网的表格设置成了准双向口,现在就是有个问题,他文档上面写着IO口如果要读外部输入,那就要先锁存1,断开内部的下拉晶体管(我不知道在C里面是不是直接给他赋值1),如果已经赋值为1,那么再检测是否为高电平感觉有点没用,毕竟在之前已经赋值为1了,所以肯定是1的,我这个硬件电路,也没办法拉低IO口
作者: wauuvs    时间: 2018-5-24 09:27
Robertzhang 发表于 2018-5-23 17:46
有几个问题:

1.  原理图不详细,LED在哪里看不到,VCC电压是多少?。

你好,实际中我是用数码管来显示的,为了节省时间,就把它替代成LED来作为一个提问,好让大家容易了解,VCC的电压是4.75V,这两个端口都是设置为准双向口,如果硬件部分是这样,那么应该怎么写,他才能检测当中间那个水位是否接通尼?
作者: wauuvs    时间: 2018-5-24 09:51
问题已经解决了,谢谢大家的回答,因为我的硬件电路只可以根据是否有高电平输入才能进行判断是否导通,因此作为接收的IO口的P5.5,不能设置为准双向口(因为内部会有个弱上拉,导致输入时候无法识别是悬空还是有高电平输入),只能设置为开漏,还有种办法就是我把这两个设置为比较器,进行压降的比较,来进行判断
作者: ahshmj    时间: 2018-5-24 10:03
本帖最后由 ahshmj 于 2018-5-24 10:10 编辑

看来你点的知识比较薄弱。

图中漏写了:接P5.5的,接电极“B”。

作者: ahshmj    时间: 2018-5-24 10:06
程序和检测按键的一样。如果你检测的液体导电性能不好,可以加三极管。如果是普通的自来水、井水,不加三极管也可以。
作者: 长风007    时间: 2018-5-24 10:59
首先确定P5.4和P5.5的模式设置。其次是检测硬件P5.5脚的低高电平状态是否可以转换,可以先用表笔来测试一下。如果这两个条件能达到的,再看软件的调试情况来看看灯是否熄灭。没有全部的电路图不好判断。是否需要加驱动你要看实际的电流值。

作者: 懒惰的魔方    时间: 2019-11-11 18:54
wauuvs 发表于 2018-5-24 09:51
问题已经解决了,谢谢大家的回答,因为我的硬件电路只可以根据是否有高电平输入才能进行判断是否导通,因此 ...

只知道设置开漏方法,从这里又学到了设置为比较器方法.
不过这里有个问题,从手册看到,设置为开漏之后,还需要加外部上拉.
您加了么?不加是否可以?




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