专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
51单片机
求助一个单片机的问题
2019-07-15 22:24
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
51单片机
9073
4
1532
电路图
如下,P0口接8路遥控开关,常开型点动式,相当于接了八个非自锁开关。
由于接入的是12V,八路输出后都进行了分压,分到5V左右,送给
单片机
P0口。
程序中,端口初始化时,P0口初始为0,随后不断查询P0口状态。
可是,在遥控器按下后为什么查询不到P0口相应位变成高呢?为什么送给单片机的电压始终是0?
按下按键时,在6.8K电阻上面,电压是12V,6.8K电阻下面,也就是P0口处,电压一直都是0。12V电压全降在6.8K电阻上面了,分压
电路
没有起到作用啊,为什么会这样?
友情提示:
此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
ntmusic
1楼-- · 2019-07-15 23:55
从你的电路图看不出你那8位遥控开关与P0口有什么关系。此外,P0口初始化为0是不能读取状态的。因为外部电平无法将其拉高,只能读出0。只有写1才能读取状态。可参考IO口结构
加载中...
sdutkqb
2楼-- · 2019-07-16 02:36
精彩回答 2 元偷偷看……
加载中...
ntmusic
3楼-- · 2019-07-16 04:28
首先要搞清楚IO口的结构。尤其是51单片机的P0口,它是开漏型结构,即只能输出浮空态和低电平。一般需接上拉电阻使之能输出高电平。现在简要解释一下为什么要置1才能读取到高低电平信号。
如上所说,一般的51单片机IO口都是一个上拉电阻和一个MOS管到地这种典型结构。当IO口置1时,MOS管截止,IO口由上拉电阻(一般有几K到几十K)输出高电平。由于上拉电阻限制,IO口不能输出大电流,状态也很容易改变,比如将IO口接高电平,读取时当然是高电平。将IO口直接接到地,读出来当然是低电平(上拉不了),画个电路图就很明了了。如果你一开始让IO口输出低电平,MOS管导通,由于MOS管导通电阻很小,可以认为IO口直接接到了地,可以承受较大电流流入(这也是为什么IO口输出电流小于灌电流)。因为你没办法使接到地的电位拉高,因此无论你怎么给IO口高电平,都无法拉高,读出都是低电位0,即使你接电源正极,也无法读出1,因为此时IO口已经相当于短路了,会烧毁IO口。如果还不明白,建议看看IO口的结构
评分
参与人数 1
积分
+2
收起
理由
dongyumin
+ 2 您的付出是论坛的动力,感谢您一直支持!.
查看全部评分
加载中...
liuzhaoxin1020
4楼-- · 2019-07-16 07:02
不错的文档,值得收藏
加载中...
一周热门
更多
>
相关问题
【东软载波ESF0654 PDS开发板活动】开箱
1 个回答
东软载波ESF0654 PDS开发板外部中断
1 个回答
东软载波ESF0654 PDS开发板高级控制定时器AD16C4T
1 个回答
用串口调试助手为什么只能在hex模式接收发送而在文本模式不行
9 个回答
触摸芯片SC02B/SC04B在地砖灯的设计方案
1 个回答
东软载波ESF0654 PDS开发板串口USART0代码分享
1 个回答
普通32位单片机使用linux的应用代码
5 个回答
东软载波ESF0654 PDS开发板AT24C04的调试
9 个回答
相关文章
51单片机与蓝牙模块连接
0个评论
51单片机的硬件结构
0个评论
基于51单片机的无线遥控器制作
0个评论
51单片机 AD转换
0个评论
51单片机数码管递增显示
0个评论
如何实现对单片机寄存器的访问
0个评论
基于51单片机的指纹密码锁
0个评论
×
关闭
采纳回答
向帮助了您的网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
51单片机
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
关闭
您已邀请
15
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
如上所说,一般的51单片机IO口都是一个上拉电阻和一个MOS管到地这种典型结构。当IO口置1时,MOS管截止,IO口由上拉电阻(一般有几K到几十K)输出高电平。由于上拉电阻限制,IO口不能输出大电流,状态也很容易改变,比如将IO口接高电平,读取时当然是高电平。将IO口直接接到地,读出来当然是低电平(上拉不了),画个电路图就很明了了。如果你一开始让IO口输出低电平,MOS管导通,由于MOS管导通电阻很小,可以认为IO口直接接到了地,可以承受较大电流流入(这也是为什么IO口输出电流小于灌电流)。因为你没办法使接到地的电位拉高,因此无论你怎么给IO口高电平,都无法拉高,读出都是低电位0,即使你接电源正极,也无法读出1,因为此时IO口已经相当于短路了,会烧毁IO口。如果还不明白,建议看看IO口的结构
评分
查看全部评分
一周热门 更多>