如何将51单片机I/O口设置为输入状态?急急急急急

2019-07-16 01:50发布

    我在做一个测温系统,采用RC充放电来进行测温。参考资料如下:
10531S503-0.jpg

图中:  P1.0、P1.1和P1.2是单片机的3个I/O脚;  RK为100k的精密电阻;  RT为100K-精度为1%的热敏电阻;  R1为100Ω的普通电阻;  C1为0.1μ的瓷介电容。其工作原理为:
  1.先将P1.0、P1.1、P1.2都设为低电平输出,使C1放电至放完。  2.将P1.1、P1.2设置为输入状态,P1.0设为高电平输出,通过RK电阻对C1充电,单片机内部计时器清零并开始计时,检测P1.2口状态,当P1.2口检测为高电平时,即C1上的电压达到单片机高电平输入的门嵌电压时,单片机计时器记录下从开始充电到P1.2口转变为高电平的时间T1。  3.将P1.0、P1.1、P1.2都设为低电平输出,使C1放电至放完。  4.再将P1.0、P1.2设置为输入状态,P1.1设为高电平输出,通过RT电阻对C1充电,单片机内部计时器清零并开始计时,检测P1.2口状态,当P1.2口检测为高电平时,单片机计时器记录下从开始充电到P1.2口转变为高电平的时间T2。  5.从电容的电压公式:

  可以得到:T1/RK=T2/RT,即 RT=T2×RK/T1  通过单片机计算得到热敏电阻RT的阻值。并通过查表法可以得到温度值。现在的问题是,我采用89c2051单片机,用proteus进行仿真,仿真不出来。不知道“将P1.0、P1.2设置为输入状态”是什么意思,是让P1.0和P1.2为0吗?但是那样发现
电容上的电压就是R1上的电压了,根本不会继续增加而使P1.2变为高电平。求高手知道。是不是我选的单片机不对。

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。