高阻态时,要读端口电平IO口无需输出1.因为高阻态时,IO完全与单片机的输出断开,只做输入口作用。此时读IO口的状态是IO口电平状态,如果此时引脚悬空,读出的状态不确定。
双向IO模式时,一般是单片机内部有阻值较大的上拉电阻(当然也有开漏)。举例内部上拉,此时如果引脚悬空,由于内部上拉的存在,此时如果引脚写1,读出的将是高电平,如果写0,由于IO口的灌电流很大,会将引脚拉低,读出的是0。当IO口不是悬空而且IO口写1时,读引脚的电平将与接在这个引脚的负载的阻抗有关。阻抗小则会将引脚拉低,但由于io口的输出能力很小,也就是这个上拉电阻很大,所以你在引脚上接10K的落地电阻都有可能吧引脚拉到低电平。当你要读的信号的电流足以把引脚拉低时,双向模式下还是能够读出加载在引脚上的信号的状态的。
如果单片机自带ad引脚的话,就可以直接用那个脚 读取。如果没有,则外接ad转换芯片。
这个嘛 大体上是这样的
1】 准备一个带有ad的单片机
2】 用两路ad采样通道 ad0和ad1
3】 ad0 接被测电阻的一端 (假设是高压端)
ad1接被测电阻的另一端(假设是低压端)
4】 程序弄好
5】 程序功能是:ad采样电阻两端的电压值 然后单片机计算压差 然后把压差显示到led上 这个显示就是电阻的电压值了
也很简单的
1、两个单片机共地的话,直接连接。读本地单片机管脚状态即可。指单个IO口读取。
2、不共地的话,(且建议不共地)。用光电耦合器,需考虑对方的驱动能力应能使发光二极管导通。指单个IO口读取。
3、如果是某个端口,如8位的P0口。呵呵。建议用串口通信,协议查询之。物理层考虑提高抗干扰能力,如232的使用,485的使用。
单片机一个端口读出电阻的介绍就聊到这里吧,感谢您花时间阅读,谢谢。
本文标签:单片机一个端口读出电阻