标题:
51单片机读i/o口前为什么要先输入高电平?
[打印本页]
作者:
nw446401071
时间:
2019-10-8 22:07
标题:
51单片机读i/o口前为什么要先输入高电平?
如题
作者:
csmyldl
时间:
2019-10-9 07:31
因为单片机IO口数据出进是两条通道,输出时门是趟开的,输入时需把另一通首的门打开才可以进去,打开门的方式是先向端口输出高电平(使端口场效应管关断)
作者:
aking991
时间:
2019-10-9 08:14
没这回事吧,读IO口状态就是读就好了,没有必要先输入高电平,如果输入了那还读他作什么,因为你已经知道它是高电平了
作者:
xuyaqi
时间:
2019-10-9 08:28
这是51单片机i/o口结构决定的。
作者:
zhlf200212
时间:
2019-10-9 09:13
必须先输出高电平,把输出驱动电路的场效应管截止,使口线引脚被内部的上拉电阻拉为高电平。其后,若输入为高,则引脚维持高电平;若输入为低,引脚被下拉为低电平。读引脚才能保证正确。
作者:
yzwzfyz
时间:
2019-10-9 16:09
51的IO口是复用的(输入输出),
如果输出=1,这时你输入=0,1会被拉成0,这样读到的是0。不错。
如果输出=0,这时你输入=1,1是出不来的,会被原来的0拉低,这样读至的只能是0。出错了。
作者:
cphnkj188
时间:
2019-10-11 12:14
4楼正解:
必须先输出高电平,把输出驱动电路的场效应管截止,使口线引脚被内部的上拉电阻拉为高电平。其后,若输入为高,则引脚维持高电平;若输入为低,引脚被下拉为低电平。读引脚才能保证正确
作者:
yong761228
时间:
2019-10-11 18:17
我也谢谢各位师傅,我也发现这个问题,在STC单片机里,IO口设置双向模式,开始赋值低电平0无效,设置成推挽模式就可以,开始设置低电平O就有效。现在明白了,谢谢大家。
作者:
恨你@
时间:
2019-10-12 11:51
通常作输入时,要选置1,但单片机上电后,默认的是置1的,只要你不是做出其它用,再做输入,就不用置1了。但为保险起见,多置一次1,没有关系。 作输出时,不用管它,直接用就行了。 当然这是基本的51,有的增强型的,就不一定了。
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1