单片机I0口的电平由谁决定
时间:10-02
整理:3721RD
点击:
通过软件可以改成0或者1,当AD与单片机连接时,又随AD的变化而变化,到底由谁决定啊,能不能由外围电路决定啊。
本来一个端口是1,与之相连的AD变成0,这个端口就成0了?
本来一个端口是1,与之相连的AD变成0,这个端口就成0了?
这要取决于你的IO口的状态,当IO口为输出状态时,取决于单片机程序;当IO口为输入状态时,取决于外围电路
什么时候是输出状态什么时候是输入状态?
当你的单片机需要发出信号通过IO口控制外围电路时,IO口处于输出状态;当单片机需要获取某个IO引脚的电平信息时,该IO口处于输入状态。
电平的定义就不用搞懂了,知道高电平和低电平效果即可
可能就是这样的问题。当我烧入单片机的程序如下:
#include<reg51.h>
void main()
{
while(1)
{
P0=0xff;
}
}
硬件连接如图。
那么P0.0口到底是高电平还是低电平,是这样的问题吗?
我好像懂一些了,这个时候就一直是高电平。 不管外围电路怎么接怎么变,一直是高电平,对不
这个电路不应该是一直高电平啊。都已经接地了,你给他高电平也会被拉低的。我觉得这个电路不管你给不给他高电平结果都是低电平啊。
当时看错啦,我现在觉得端口是高电平,会有电流流过,这样接是没意义的。
我当时发帖问的问题差不多搞明白了,如1楼和3喽所示
可以讲吧,就是说51的所有IO口除了P0口外只要单片机能正常工作那么就是高电平,P0口是高阻状态(这也就是为什么P0口要加上拉电阻的原因),而当外围的电路的影响,比如你图上画的,其实你哪个P0=0xff是没有意义的额,原因已经说过,p0口接地了那么此口就是低电平。你可以这么记忆就是IO口与外围电路是线与的关系,其实单片机内部也没有什么高低电平的,Vcc,GND你看电路还不是从外部供电电路取的。
受启发了
老话说的好,天天向上,好好学习
楼上说的很清晰 谢谢