xpstudio2003 发表于 2010-2-4 13:05:03

51进行外部总线扩展的时候,可不可以不加锁存器件呢,,就扩展一个总线地址,用总线的速

51兼容芯片,S*T*C的,


内部有XDATA 1K,


进行外部扩展的时候,如下这样,,

unsigned char volatile xdata        CMD_PORT _at_ 0x7FFF;        /* 命令端口的I/O地址 */
unsigned char volatile xdata        DAT_PORT _at_ 0x3FFF;        /* 数据端口的I/O地址 */

A0应该是在上面的地址是CMD为1,DATA为0的,
CS应该在上面的地址 是一直为0的.

再就是把上面的地址要超出内置的XDATA地址之外,,



我不想加上锁存器,太麻烦了,,


起直接P2上接地址那几根线,P2.7 P2.6接 A0 CS
WR RD还是按原样接,
P0直接接数据口,,


但是这样一直没的操作成功呢,,,

请哪位大虾给指点一二..

XU_MAJIA 发表于 2010-2-4 13:24:31

unsigned char volatile xdata CMD_PORT _at_ 0x7FFF; /* 命令端口的I/O地址 */
unsigned char volatile xdata DAT_PORT _at_ 0x3FFF; /* 数据端口的I/O地址 */

A0应该是在上面的地址是CMD为1,DATA为0的,
CS应该在上面的地址 是一直为0的.


起直接P2上接地址那几根线,P2.7 P2.6接 A0 CS

地址有错误吧?
unsigned char volatile xdata CMD_PORT _at_ 0x8000; /* 命令端口的I/O地址 */
unsigned char volatile xdata DAT_PORT _at_ 0x0000; /* 数据端口的I/O地址 */

XU_MAJIA 发表于 2010-2-4 13:25:53

unsigned char volatile xdata DAT_PORT _at_ 0x0000; /* 数据端口的I/O地址 */
和内部地址冲突,不会输出
得换接线方式

XU_MAJIA 发表于 2010-2-4 13:28:19

直接P2上接地址那几根线,P2.7 P2.6接 CS   A0
unsigned char volatile xdata CMD_PORT _at_ 0x4F00; /* 命令端口的I/O地址 */
unsigned char volatile xdata DAT_PORT _at_ 0x0F00; /* 数据端口的I/O地址 */

xpstudio2003 发表于 2010-2-4 13:34:17

我试下,3Q

user_hzp 发表于 2012-4-10 11:41:45

弱弱的问一句,哪位大哥能说一下_at_作用
页: [1]
查看完整版本: 51进行外部总线扩展的时候,可不可以不加锁存器件呢,,就扩展一个总线地址,用总线的速