关于51单片机的输入输出,以及高、低电平的问题~
原理图如上,最重要的两步是:先将P1.0、P1.1、P1.2都设为低电平输出,使C1放电至放完。2.将P1.1、P1.2设置为输入状态,P1.0设为高电平输出,通过RK电...
原理图如上,最重要的两步是:
先将P1.0、P1.1、P1.2都设为低电平输出,使C1放电至放完。
2.将P1.1、P1.2设置为输入状态,P1.0设为高电平输出,通过RK电阻对C1充电,单片机内部计时器清零并开始计时,检测P1.2口状态,当P1.2口检测为高电平时,即C1上的电压达到单片机高电平输入的门嵌电压时,单片机计时器记录下从开始充电到P1.2口转变为高电平的时间T1。
有几个问题:
51单片机需不需要设置输入输出?
如果需要的话,如何设置?如果不需要的话,那么单片机如何区分?
如果赋值的哈所赋的值到底是表示一种输入输出的状态还是端口所存储的值?
具体到这个题目,要怎么设置(或者C要怎么写):低电平输出,高电平输出?设置为输入状态?
谢谢啦! 展开
先将P1.0、P1.1、P1.2都设为低电平输出,使C1放电至放完。
2.将P1.1、P1.2设置为输入状态,P1.0设为高电平输出,通过RK电阻对C1充电,单片机内部计时器清零并开始计时,检测P1.2口状态,当P1.2口检测为高电平时,即C1上的电压达到单片机高电平输入的门嵌电压时,单片机计时器记录下从开始充电到P1.2口转变为高电平的时间T1。
有几个问题:
51单片机需不需要设置输入输出?
如果需要的话,如何设置?如果不需要的话,那么单片机如何区分?
如果赋值的哈所赋的值到底是表示一种输入输出的状态还是端口所存储的值?
具体到这个题目,要怎么设置(或者C要怎么写):低电平输出,高电平输出?设置为输入状态?
谢谢啦! 展开
4个回答
展开全部
追问
谢谢!懂了很多!
还有一些不明,比如就我上面那个例子来说,第一步可以先都赋予0值使其低电平输出;第二步,P1.0=1,高电平输出,这一步主要是想让RK给电容充电,不断检测P1.2的电平高低以计算时间。那对于P1.1,P1.2需要怎么办?怎样让他不输出而是输入状态(因为第一步设置了他两个低电平输出,如果不改的话会不会对电容充放电有影响?)
追答
应该不会的,你这个电路其实跟51单片机的复位电路有点相似,就是在充电的那个极短的时间内,电容式可以看作短路的,此时P1.2不是相当于通过电阻接地么,然后当电容的电充好之后,电容断路,此时P1.2口应该就出现了你所要检测的高电平。具体电容充放电你可以百度一下的呀,你百度复位电路具体原理,跟你这个原理很像的!
展开全部
作为输出的时候只要将对应的管脚写1或者是写0,对应着51输出高电平或者是低电平,作为输入的时候,要先将对应的管脚写1,然后接收输入的的信号!
追问
谢谢!
那如果都写1的话,到底是高电平输出呢?还是输入状态?如何区分?
追答
就是在你程序当中写假设写io口P0 = 0xfe;就表示八个io口是11111110的状态,此时就是让输出高电平,假设外面的有和io口直接相连,那么你先将这个口写1,后读这个口表示输入。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
个人感觉普通的51单片机是不可以的,因为它的I/O口无法设置成高阻态
追问
反正我觉得怪怪的。比如:如果都写1的话,到底是高电平输出呢?还是表示输入状态?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
kanbudong...........
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询