51 AD转换,用ADC0804,数据接P1.0-1.7,例子要求读取数据前先用P1=0Xff将P1口写1,什么原因?为何不写0?

 我来答
百度网友76b774b
2014-03-15 · TA获得超过348个赞
知道小有建树答主
回答量:170
采纳率:0%
帮助的人:95.3万
展开全部
51的P1口可输入可输出。
那么哪条指令让它作为输入口,怎么样才能让它作为输入口呢?
每个口上都有一个锁存器,锁住之前写的值。
比如,口上只是接一个上拉电阻,这个口作为输入应该是高电平吧。
那你往口里写一个0,口会输出0,这个口就成了低电平了。此时,你读这个IO口,也会是低电平。
如果不改写为1,锁存器内就一直是0,也就是输出0 ,程序读这个口上的电平也是0。
改写为1后,这个口上的电平才会1,或者说,不会把这个口拉低。
作为输入口时,要事先写1,也可以不用每次都写,只要里面不是0就成。

简单的来说就是:因为单片机的构造(上拉了电阻),需要将P1口写1,使之成为高电平,能够作为输入口。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式