51单片机如何检测高电平输入?
需要用51单片机的端口实现这样一个功能:1.先将P1.0、P1.1、P1.2都设为低电平输出,使C1放电至放完。2.将P1.1、P1.2设置为输入状态,P1.0设为高电平...
需要用51单片机的端口实现这样一个功能:
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。。赋值的话:理论上作为输出的时候只要将对应的管脚写1或者是写0,对应着51输出高电平或者是低电平;而作为输入的时候,要先将对应的管脚写1,然后接收输入的的信号!那么如何实现”检测P1.2为高电平”呢?之前想要让他做输入状态的话就已经要赋予1值了!(之前很多资料都是先拉高然后检测是否变低,这个好理解)而且,还有一个问题就是,一旦 ”把某脚设置为输入状态“,以及”另某脚高电平输出“ 这两个都需要赋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。。赋值的话:理论上作为输出的时候只要将对应的管脚写1或者是写0,对应着51输出高电平或者是低电平;而作为输入的时候,要先将对应的管脚写1,然后接收输入的的信号!那么如何实现”检测P1.2为高电平”呢?之前想要让他做输入状态的话就已经要赋予1值了!(之前很多资料都是先拉高然后检测是否变低,这个好理解)而且,还有一个问题就是,一旦 ”把某脚设置为输入状态“,以及”另某脚高电平输出“ 这两个都需要赋1值的话,第二步和第四步就突然变成一样的程序了=-=太囧了=-=小弟初学,觉得这个程序应该挺好做的,但是一开始就晕了,求指教啊!!!谢谢!!! 展开
6个回答
展开全部
51单片机,把引脚设置为输入状态,方法就是输出一个1。
这是单片机的设计者、生产厂家所规定的。
在这个前提下,外界,只有输入低电平,才会改变引脚的状态。
输入高电平,是没有反应的。
如果,外设,一定要送来高电平,那就必须加上一个反相器,再连接到单片机的引脚。
这是单片机的设计者、生产厂家所规定的。
在这个前提下,外界,只有输入低电平,才会改变引脚的状态。
输入高电平,是没有反应的。
如果,外设,一定要送来高电平,那就必须加上一个反相器,再连接到单片机的引脚。
追问
对于我这个功能来讲,是不是只要在P1.2口前加一个反相器就可以了?
谢谢
追答
理论上,应该是这样。
但是,你要测量电容的充电、放电的时间,这属于模拟电子技术。
充电到多少伏,反相器才能翻转,这还不好定论。
模拟、数字,两种电路混合,较难。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个电路和功能是可以实现的
c2放完电p1.0,p1.1,p1.2处为低电平
p1.0,p1.1,p1.2拉高后,由于51单片机拉高电流只有200多微安
通过电阻给电容充电很缓慢(r1,rt,rk,c都要选稍大值),不会一下就变为高电平的
所以是可以测到时间T1和T2的
c2放完电p1.0,p1.1,p1.2处为低电平
p1.0,p1.1,p1.2拉高后,由于51单片机拉高电流只有200多微安
通过电阻给电容充电很缓慢(r1,rt,rk,c都要选稍大值),不会一下就变为高电平的
所以是可以测到时间T1和T2的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
电压表或者示波器测量引脚电压
在线调试状态下查看目标引脚的输入寄存器值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的想法比较奇特?
理论上说可以实现,但是实际过程中,P1.0 口的高电平能拉高 P1.1、P1.2 口吗
这个只能靠实际硬件电路来验证了!!
理论上说可以实现,但是实际过程中,P1.0 口的高电平能拉高 P1.1、P1.2 口吗
这个只能靠实际硬件电路来验证了!!
追问
只看能不能拉高P1.2口的就行了=-=
P1.2的R比较小,100欧吧
我打算给它接一个反相器,检测低电平
追答
你在这里接反相器有意义吗
P1.2没有完全被拉高的时候,反相器的门限可以已经到了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询