1. 然后它说8255的A口、B口、C口、控制寄存器的地址分别为7FFCH、7FFDH、7FFEH、7FFFH。这个是怎么算出来的?
高八位7F是因为p2.7为0是选通8255的cs片选端,第八位是FC,FD,FE,FF是由8255内部结构决定的,芯片的技术手册上会有,其实也是由最后两位的组合进行选择本文引用地址:http://www.eepw.com.cn/article/201611/315857.htm
2.在用C51的P0,P2口做外部扩展时使用,其中XBYTE [0x0002],P2口对应于地址高位,P0口对应于地址低位。一般P2口用于控制信号,P0口作为数据通道。
比如:P2.7接WR,P2.6接RD,P2.5接CS,那么就可以确定个外部RAM的一个地址,想往外部RAM的一个地址写一个字节时,地址可以定为XBYTE [0x4000],其中WR,CS为低,RD为高,那就是高位的4,当然其余的可以根据情况自己定,然后通过
XBYTE [0x4000] = 57;
这赋值语句,就可以把57写到外部RAM的0x4000处了,此地址对应一个字节。
个人总结:
以下图为例
P0口接了8根 低地址 地址线
P2口低4位接了4根 高地址 地址线
P2口高3位接了3