51单片机P3口作为输入的问题

最近编了一个单片机程序,想利用p3口作为输入数据口,然后选择程序中数组中的一个数,进过运算之后,在P2口输出八位数据。设计的p3^1输入口电路图图一,其余端脚与之相同。但... 最近编了一个单片机程序,想利用p3口作为输入数据口,然后选择程序中数组中的一个数,进过运算之后,在P2口输出八位数据。设计的p3^1输入口电路图图一,其余端脚与之相同。但实际情况是,当开关断开,测量到P3的1,2脚电压并不是高,而是低电平,电阻上分压为5V,特别奇怪。因为我记得P3是I/o口,外部驱动类型的。 展开
 我来答
shamork1
2010-09-09 · 超过12用户采纳过TA的回答
知道答主
回答量:25
采纳率:0%
帮助的人:27.1万
展开全部
呵呵,这个你记错了。普通51系列的P1 P2 P3都是带内部上拉电阻的输入口,外部不需要上拉电阻就可以进行输入输出,当然驱动能力比较弱(8个TTL负载)。如果用P3.1作为输入的话,不需要任何外部电路,直接读P3.1就可以。当然前提是你不能将P3.1置0.意思就是51的这里IO口在读之前都要写1.即
sbit P3_1 = P3^1;//Keil C中的端口映射
P3_1 = 1; //置为读状态
flag = P3_1; //读P3.1

下面的兄弟,5V对5V永远还是5V,仍然是高电平。不会不要误导人哦。
百度网友c2b962de9
2010-09-09 · 超过13用户采纳过TA的回答
知道答主
回答量:62
采纳率:0%
帮助的人:37.1万
展开全部
由于51芯片内部有弱上拉,大约是5V,如果开始不对P3口进行初始化的话就是5V,5V对5V当然是低电平拉~~~所以程序里面需要对I/O口的电平进行初始化,加一句P3=0x00;就OK了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式