0
问答首页 最新问题 热门问题 等待回答标签广场
我要提问

单片机

51单片机扩展IO及RAM

急,51单片机扩展IO及RAM后..P0 P2口未用到的IO还可以当一般IO用吗?

扩展RAM为6264,扩展用了13条地址线,P2.7//P2.6用做片选.还有P2.5未用.

会的指点下

提问者:cmh8 地点:- 浏览次数:578 提问时间:10-24 15:47
我有更好的答案
提 交
6条回答
biukee 07-11 15:49
安装了6264后P0口不能使用了。既然你扩展了IO,就应该使用扩展的IO去做,扩展51的IO才是充分使用了单片机
kkker 07-12 10:38
但在寻址时务必要避开涉及该IO的地址段,否则该IO会有被改写的可能,要特别注意,不建议初学者用这招,除非你的逻辑思维能力足够清晰、完整。
shide87812 07-11 04:50
“但在寻址时务必要避开涉及该IO的地址段” 怎么实现?
普通的8051不行吧/

是不是输出地址的时候,把端口计存器状态写入对应高地址,再把这个地址输出呢
60user96 07-16 02:40
现在正在调试,我是用8255扩展的IO口,不过只是用了P0口,用的PBYTE定义端口地址.PBYTE只用P0口,所以不影响P2口.

不过好像现在还是有点问题,先调下去再说吧
qi12345 07-16 02:09
任何地址段IO都可以对应一个或几个特定的地址段,利用寄存器保存现场并映射到地址空间中即可实现地址IO做普通IO用,寻址时要注意避开,跟是否普通的51没关系,只是注意其高位地址尽量不要用,否则地址映射的计算会非常麻烦。这种方法初学者会比较难理解,建议画画图,要仔细思考。当然,这属于“花活”,极特殊的场合才有意义,切记不要卖弄,做产品可靠性第一。
吔粪拉雷 07-14 12:30
首先,只能是扩展RAM,指用MOVX指令访问,剩余的P2口可以使用用

以你的情况为例,
1)P2.5完全可以作为输入口,唯一需要注意的就是,始终保持P2.5为高电平,这可以通过定义6264的地址位于XX10 0000 0000 0000B 到 XX11 1111 1111 1111 B,即地址位13是1的地址段内。

2)P2.5可以输出不太重要的数据, 比如驱动LED用于显示一类功能,由于P2口有锁存功能,在访问RAM时P2.5会有可能“闪烁”!,但访问完RAM后恢复数据,显示数据不会丢失

3)P2.5完全可以当做普通IO使用,但RAM访问则需要受到一些限制,把6264分成多个256字节的页,使用MOVX @R0指令访问,访问之前在P2口输出“页选”信号,即整个P2口作为普通IO口使用

当然,如果扩展ROM(用MOVC指令访问),也可以通过一定的技巧来实现空余的IO作输出,但是有点太过技巧性了,不建议使用!!
撰写答案
提 交
1 / 3
1 / 3
相关单片机
具有音调控制的单片机立体声前置放大器
用于单片机与电子装置中的开关电源
单片机软硬件复位的条件都有啥
电动机的单片机控制
单片机应用系统开发实例导航