stc15w4k32s4系列单片机的某个io口接30k电阻,测电阻两端电压,为什么只有大约0.4v?

电路如图1、2、3所示,P1.0接电阻,通过电阻接到gnd。

img

img

img

程序如图4、5所示,设置端口为推挽输出且输出高电平。

img

img


**
最后测的电阻两端电压如图6万用表显示:0.381v。**

img

你那个设置IO模式的函数有问题,按你的字面意思,应该是想设置成推挽输出,那M1应该是0, M0是1,你的写法确实可以把M1置0,却无法把M0置1,第二句应该写成PxM0 |= (0x01 << pin)

你单独写个程序给P1端口,让P1_0值输出高电平测试一下两端电平,如果测试电压在2V以上这是正常输出,这里看电压是输出的低电平,因为对于5V电源的单片机来说,低电平在1.3V以下,高电平在3.7V以上,还有,如果是数字信号尽量不要使用1.3---3.7V这个区间,这有可能会造成单片机无法识别或识别错误.
一般情况下,若电源电压为5V,输出高电位电压也是5V左右,低电位电压接近0V. 具体输出依电源电压而定.
也就是输入0到0.8V,单片机认为是低电平.
2V到电源电压,单片机认为是高电平。
有帮助请点一下右上角的采纳,谢谢