找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2811|回复: 10
收起左侧

单片机输入引脚电压不是高电平,也不是低电平,读取位数据的是1还是0?或不确定

[复制链接]
ID:50910 发表于 2021-7-1 15:44 | 显示全部楼层 |阅读模式
当单片机输入引脚的电压即不是高电平,也不是低电平,读取位数据的是1还是0,还是不确定?
回复

使用道具 举报

ID:401564 发表于 2021-7-1 17:13 | 显示全部楼层
数据手册!数据手册呀!
单片机对于低电平或者高电平都是有要求的,数据手册里有的
就算是启用了施密特触发,也是有电压要求的,这些,数据手册中都是有的
没有不确定的,他一定是确定的,只是这个0或者1并不一定是一个真实的结果而已
读取一个IO的电平,它一定是0或者1,总不能是0.5吧!
回复

使用道具 举报

ID:752974 发表于 2021-7-1 17:27 | 显示全部楼层
TTL电平定义:小于0.45V是低电平,大于2.3V是高电平。在这期间的电压为模糊区,读取的数值不确定。
回复

使用道具 举报

ID:777356 发表于 2021-7-1 18:48 | 显示全部楼层
像这种情况要看单片机的IO有没有配置下拉或上拉,如果配置了就跟着上拉或者下拉走,没有电平就不确定
回复

使用道具 举报

ID:50910 发表于 2021-7-1 22:06 | 显示全部楼层
谢谢答复。我总结一下:对于没有施密特触发功能的输入,读取的数值不确定。而对于有对于没有施密特触发功能的输入,读取的数值为确定的1或0。
回复

使用道具 举报

ID:123289 发表于 2021-7-2 08:44 | 显示全部楼层
对于一个特定的端口,必须存在一个0、1的界定电压,这是由物理特性所决定的。
芯片在设计是对于这个界定电压是有要求的。这就是芯片手册给出的标准,例如:<1.4=0,>3.6=1。
至于在1.4-3.6之间,设计师们就不关心,随它是什么,都认为设计是OK的。
于是:楼主的提问出现的结果是:可能是1,也可能是0。但是对于特定的引脚,它必是一个确定的值!
不过它也可能随着环境的变化而改变,例如温度改变,造成0,1改变。
总结:
给出一个非法的输入电压,从系统不说,0、1不确定。
从特定个案上来说,必有一个确定的0、1。当然,不同的个案,0、1是不同的。

回复

使用道具 举报

ID:592807 发表于 2021-7-2 09:50 | 显示全部楼层
yzwzfyz 发表于 2021-7-2 08:44
对于一个特定的端口,必须存在一个0、1的界定电压,这是由物理特性所决定的。
芯片在设计是对于这个界定电 ...

一般电平37分,小于0.3*vcc就默认低电平,大于0.7*vcc就判定高电平。在0.3-0.7之间视为浮空状态,是没有电平的,很多单片机对与浮空状态是不认可,返回默认值。
回复

使用道具 举报

ID:123289 发表于 2021-7-2 14:17 | 显示全部楼层
楼上:
1、你让一个端口输出1,给这个端口对地接上一个R,当R在10-10000欧之间变化时,你可以得到0.3-0.7VCC之间的所有电压。
2、你用317做一个可调电压源,给一个IO口强行输入0.3-0.7VCC之间的电压,并切换不同的电压值,再用CPU去读这个端口,看看结果是什么?
回复

使用道具 举报

ID:943857 发表于 2021-7-2 20:55 来自手机 | 显示全部楼层
既不是0也不是1,具体请参考芯片数据手册
回复

使用道具 举报

ID:517951 发表于 2021-7-4 08:51 | 显示全部楼层
如果是想用单片机IO输入功能读高低电平,如果输入的电压在规格书的高低电平阈值以内,为了防止读数错误,那么就要想办法把给到单片机的电平规范(用比较器等等方法)到能够可靠的判定1或0的区间。 单片机毕竟是机器。 要么就用AD转换。

回复

使用道具 举报

ID:420836 发表于 2021-7-4 09:19 | 显示全部楼层
信号既不是高电平也不是低电平,那么一定是悬空的。 在大多数情况下,这是一个错误状态。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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