51单片机P0口、低八位地址
时间:10-02
整理:3721RD
点击:
为什么用51单片机的P0口接LCD(1602)的数据接口后,不能对挂在单片机低八位地址的器件(RAM)进行操作了?不改动程序,取下LCD就可以对RAM操作了;
最后对LCD的数据接口用了一个锁存器之后就没问题了。
为什么?电流的原因吗?
最后对LCD的数据接口用了一个锁存器之后就没问题了。
为什么?电流的原因吗?
当P0作为地址/数据总线使用时,在读指令码或输入数据前,CPU自动向P0口锁存器写入0FFH,破坏了P0口原来的状态。因此,不能再作为通用的I/O端口。大家以后在系统设计时务必注意,即程序中不能再含有以P0口作为操作数(包含源操作数和目的操作数)的指令。
---===是这个原因么 ?看以前的资料发现的 不知道对不对,没有小编这样的想法 如果挂多个总线器件的话 我会用锁存!
你是对内部RAM操作还是对外部RAM操作,内部RAM不影响,如果是外部RAM,则P0口作为数据/地址总线用,和LCD端口复用了,因此出错。加个锁存器就能解决问题。
同学,先看一下51原理
P0口不是作为扩展使用的吗