单片机的P2口和P0口有什么联系

单片机的P2口和P0口有什么联系,我在P0接LCD,还有P2接CC1100时,P0口无数据输出而P2口一切正常,当我把P0接CC1100,还有P2接LCD时,管脚的定义也... 单片机的P2口和P0口有什么联系,我在P0接LCD,还有P2接CC1100时,P0口无数据输出 而P2口一切正常,当我把P0接CC1100,还有P2接LCD时,管脚的定义也改回来了,这样一切都正常了,这是为什么?跪求解释 展开
 我来答
改变世界的魔法师
推荐于2018-03-20 · TA获得超过681个赞
知道小有建树答主
回答量:158
采纳率:0%
帮助的人:108万
展开全部
单片机的P0中是集电集开路输出,也叫OC门(真对TTL型逻辑),或者是OD门,源级开路(真对MOS芯片)。所以要在P0口加上一个上拉电阻,这样P0口才会有高电平输出。P0口的低电平驱动能力要比其他口大,最大的可以达到几十个毫安。这是把这个口单独当成普通IO口使用时要注意的。
P0口和P2口在当成地址总线时,这两个口是用来一起进行外部存储器寻址用的。这个时候P0口是低八位地址,P2口是高八地址。加起来一共是16位地址。也就是可以寻址64KB的存储器空间。当你用汇编语言指令MOVX访问外部数据存储器的时候就是这种情况。这个地址在这个时候是存在DPTR的这个16位寄存器里的。而数据是对P0口分时复用的,数据是走P0口的。
当你要访问程序存储器的时候,用MOVC指令,同样要先设置DPTR寄存器才能访问,这个时候如果是读芯片外的程序空间,同样也是P0口是低八位,P2口是高八位。
如果你用到了MOVC或者MOVX这两个指令来给LCD写数据或者CC1100写数据,并且设置了DPTR寄存器(这个寄存器可以高八位用DPTRH读写,低八位可以用DPTRL读写),可能就会因为不知道具体的地址设置情况而出错。
另外说一下,P0口设计成集电极开路输出是有原因的。因为这样P0口就可以同时接两个芯片了。而这两个芯片也同样都是OC门,一起接在同一个上拉电阻上,就形成了一种线“与”逻辑,接在线上的芯片因为只能高为低电平或者高阻态而可以互相不影响的分时使用总线了,但每次只能有一个芯片使用这条总线,这就是分时复用。
c278726402
2012-10-25
知道答主
回答量:13
采纳率:0%
帮助的人:2.1万
展开全部
只有一个单片机的话P2和P0口应该没什么关系,不影响输出的,即使你用的是像开发板一样的东西,我建议1.你再检查一下程序。2,。看下有没有什么短路帽之类的东西存在。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
1224101
2012-10-25 · 超过10用户采纳过TA的回答
知道答主
回答量:21
采纳率:0%
帮助的人:8万
展开全部
理论上市独立控制的啊。可能是你的外围器件的电压反供单片机造成的吧。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
早三斗8
2012-10-26
知道答主
回答量:5
采纳率:0%
帮助的人:1.9万
展开全部
你可能P0口没有加上拉电阻~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
229513138
2012-10-25
知道答主
回答量:22
采纳率:0%
帮助的人:3.4万
展开全部
5R56RE
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式