微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 单片机小白学步(23) 知识补充:双向IO口、互补推挽、高阻态

单片机小白学步(23) 知识补充:双向IO口、互补推挽、高阻态

时间:11-19 来源:互联网 点击:

,这个实验必须在P0.0什么都没接的情况下才能进行。很多成品开发板上,P0.0都连接了外部上拉电阻,没法做这个实验,建议自己搭建面包板。

程序烧写好之后,理论上来说,TOUCH管脚作为高阻态输入,电平是不确定的,因此LED的亮灭也是不定的。我在实际实验时,P0.0悬空的情况下,LED是一直点亮的,这可能是因为51单片机的高阻态和理想的高阻态还有一点差距,读取P0.0的电平为低。

当把手指或很大的电阻放在P0.0和VCC之间,就会发现LED熄灭了,或者变暗了(变暗了说明LED在闪烁,只是闪烁的很快所以看不出来,就像交流电驱动的白炽灯一样)。手指的电阻很大,如果是P1.0口,或者在P0.0上外接了上拉或下拉电阻,这时通过手指很难改变其电平状态。而由于是高阻态,所以P0.0原先的低电平,通过手指从VCC传过来的很微弱的电流就变成了高电平。

备注1:考虑到不同人的皮肤电阻不一样,不能保证用手指接触都能实现LED亮灭变化。如果没有效果,可以尝试用较大电阻(例如100kΩ)代替手指进行实验。

备注2:如果你通电的时候发现LED原先是熄灭的,说明P0.0读取到的是高电平,则应该用两个手指分别放在P0.0和GND上,使得电平变化,LED点亮。当然LED不亮还有一种可能是,你的程序没有被执行,可能是单片机最小系统电路出现了问题,或者程序写错了。

=======================================================

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top