微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 51单片机P0口、低八位地址

51单片机P0口、低八位地址

时间:10-02 整理:3721RD 点击:
为什么用51单片机的P0口接LCD(1602)的数据接口后,不能对挂在单片机低八位地址的器件(RAM)进行操作了?不改动程序,取下LCD就可以对RAM操作了;
最后对LCD的数据接口用了一个锁存器之后就没问题了。
为什么?电流的原因吗?

当P0作为地址/数据总线使用时,在读指令码或输入数据前,CPU自动向P0口锁存器写入0FFH,破坏了P0口原来的状态。因此,不能再作为通用的I/O端口。大家以后在系统设计时务必注意,即程序中不能再含有以P0口作为操作数(包含源操作数和目的操作数)的指令。  
---===是这个原因么 ?看以前的资料发现的  不知道对不对,没有小编这样的想法  如果挂多个总线器件的话 我会用锁存!

你是对内部RAM操作还是对外部RAM操作,内部RAM不影响,如果是外部RAM,则P0口作为数据/地址总线用,和LCD端口复用了,因此出错。加个锁存器就能解决问题。

同学,先看一下51原理

P0口不是作为扩展使用的吗

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top