单片机IO脚电平控制

有单片机A和单片机B单片机B是89c51单片机,请问这两块单片机只有各自一个IO脚相连,控制51单片机的IO脚能使单片机A的IO脚发生电平变发吗(单片机A的IO脚电平是任意的,无法知道的)。如果这个方法不能那如何做到控制单片机B的电平状态来控制单片机A的IO脚的电平状态
假设单片机A的IO脚是0伏特的低电平那可以做到吗
为什么必须共地原因是??需要共正极吗

首先两个单片机必须共地。
单片机A的IO是低电平的话是做不到的。A引脚是0的话,给他输入高电平A引脚依然是0,如果A引脚是1,则外接高电平则高电平,外接低电平则被拉到低电平。
所以51单片机要读IO状态要先设置为高电平。

可以这样理解:设置IO=1,相当于IO经过一个电阻接电源正,如果在另一边接入高电平,读IO口处的电压肯定是高电平,如果接入地,那读出来的电压就是0;设置IO=0,则相当于IO经过电阻(电阻相对稍小)接地,那么在另一边无论接入多少伏电压,IO读出来的电压肯定是0伏左右了,当然输入电压内阻必须够大,如果内阻比较小则不一定,如单片机输出的高电平虽然有5v(假设是5V高电平),然而电流却很小,相当于内阻很大的5V电源,让它接入一个置0的IO引脚,显然影响不了它的状态。

通过以上你也可以理解上拉电阻的作用,相当于用上拉电阻和单片机内阻并联,以减小内阻,使输出的高电平有更大的驱动电流;当然如果你把上拉电阻弄得很小(比如100欧)虽然可以让高电平状态时输出的电流很大,但是同时你也将失去低电平的输出能力,这时低电平输出不再是0V,甚至可能是2.5V,至于为什么,可以通过以上的原理画画图就可以推出了。你可以自己试试,我以前试验过。

至于那些有输入输出控制寄存器的单片机,在设置为输入状态时,相当于IO悬空(这样好理解),很多单片机资料里都有IO口不同状态的电路原理,多看看对单片机IO口就会理解得深点。

为什么必须共地原因是??
共地点原因是要等电势啊,电势差都是相对的,假设电源a有GND,+5v,+12V,电源b有GND,+5V,如果把a的+5V端口与b的GND相连,测量a的GND和b的+5v之间的电压就是+10V了。所以共地就是让两个单片机之间有一个共同的参考电势点,这样a、b之间的高低电平才能联系上,否则a的高电平输入到b中,b根本就不知道是什么电压。建议楼主可以多了解一些电路、摸电知识,这些都是很重要哦。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-09-05
可以,前提是单片机所接电源要共地,如果在加个光耦或非门就更稳定了。接一下,如果你用的单片机是51的话,不必在程序上初始化I/O 端口,但注意P0没有上拉电阻,输出电平不稳定,要用需加上拉电阻。如果你用的是凌阳单片机的话,就需初始化端口,可设为上拉输入,下拉输入等。再通过软硬件就可实现了。
第2个回答  2010-08-28
单片机b的io为输出口的话,单片机a与单片机b的这个输出口相连的io口就需设置成输入口,这样才能读单片机a这个io的状态0/1

re:假设单片机A的IO脚是0伏特的低电平那可以做到吗
你是用单片机a的io检测单片机b的io状态,你都知道a的io为0了,你还想做什么?
如果你的意思是想知道a的状态为0时,b的io状态发生变化时a的io是高还是低的话,答案是:a的状态为0。
第3个回答  2010-09-04
我觉得如果要实现你上面说的那些功能,你可以利用中断或者循环扫描,通过单片机里面编入的程序实现你想实现的功能,总之,不管你想实现怎么样的功能,如果利用单片机,我觉得把C语言学好,再编写程序都是可以实现的
第4个回答  2010-08-28
可以。将B相应的脚定义为输入即可。本回答被网友采纳