关于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要怎么写):低电平输出,高电平输出?设置为输入状态?

谢谢啦!
展开
 我来答
百度网友acd61b0
2013-06-05 · TA获得超过170个赞
知道答主
回答量:78
采纳率:0%
帮助的人:45.1万
展开全部
第一:你问的51要不要设置输入输出,不知道你问的是不是定义51 的引脚作为输入还是输出引脚?是这个意思么?如果是,那么51单片机不需要对其引脚定义为输入引脚还是输出引脚。
第二:单片机区分引脚作为什么引脚功能的话可以通过你的软件语句来判断,比如,你主动让单片机引脚输出高电平,那么对于我们操作者来说引脚为输出。当你写语句不断检测单片机引脚状态的时候,那么对于操作者来说引脚就是用其输入功能。
第三:对引脚赋值的话,普通I/o就是输出的高地电平。
希望对你有帮助!
追问
谢谢!懂了很多!
还有一些不明,比如就我上面那个例子来说,第一步可以先都赋予0值使其低电平输出;第二步,P1.0=1,高电平输出,这一步主要是想让RK给电容充电,不断检测P1.2的电平高低以计算时间。那对于P1.1,P1.2需要怎么办?怎样让他不输出而是输入状态(因为第一步设置了他两个低电平输出,如果不改的话会不会对电容充放电有影响?)
追答
应该不会的,你这个电路其实跟51单片机的复位电路有点相似,就是在充电的那个极短的时间内,电容式可以看作短路的,此时P1.2不是相当于通过电阻接地么,然后当电容的电充好之后,电容断路,此时P1.2口应该就出现了你所要检测的高电平。具体电容充放电你可以百度一下的呀,你百度复位电路具体原理,跟你这个原理很像的!
windy王凯帆
2013-06-05
知道答主
回答量:16
采纳率:0%
帮助的人:9.4万
展开全部
作为输出的时候只要将对应的管脚写1或者是写0,对应着51输出高电平或者是低电平,作为输入的时候,要先将对应的管脚写1,然后接收输入的的信号!
追问
谢谢!
那如果都写1的话,到底是高电平输出呢?还是输入状态?如何区分?
追答
就是在你程序当中写假设写io口P0 = 0xfe;就表示八个io口是11111110的状态,此时就是让输出高电平,假设外面的有和io口直接相连,那么你先将这个口写1,后读这个口表示输入。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友1368bbd
2013-06-05
知道答主
回答量:15
采纳率:0%
帮助的人:12.3万
展开全部
个人感觉普通的51单片机是不可以的,因为它的I/O口无法设置成高阻态
追问
反正我觉得怪怪的。比如:如果都写1的话,到底是高电平输出呢?还是表示输入状态?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
天使爱天空16
2013-06-05 · TA获得超过207个赞
知道答主
回答量:213
采纳率:0%
帮助的人:154万
展开全部
kanbudong...........
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式