C51里面XBYTE如何对外部存储器进行操作
我看到许多的程序里面是使用XBYTE来对外部存储器进行操作的,请问一下具体是怎样实现的?
是不是当传输数据的时候,P2口就保持不变的呢? .
你是说xdata吧,我还真没听过xbyte
xdata在C51里面一般是用在定义变量的时候,加此前缀可以使编译器在编译时,将该变量的地址定在外部ram中,然后在使用该变量时,编译器会将值传递的函数自动转译成DPTR的形式来对该变量进行读写。
看‘ABSACC.H’
#define XBYTE ((unsigned char volatile xdata *) 0)
就是说对外部存储器的读取,高地址送P2口吧
这个问题说难是不难的,只是想知道(请问一下具体是怎样实现的?是不是当传输数据的时候,P2口就保持不变的呢?)如果你看一下芯片说明,芯片对内存和设备操作有不同的设计,汇编指令也不同,而用C语言也必须把分开,再说各种语言只是编译,各种语言有不同的编译规则、但最终要符合各种芯片的指令,所以用C51语言写51系列时有xdata和data,这只是说明数据在哪个区域,在编译时告诉编译器、对这个单片机怎样操作这些数据,在51单片机还有说明代码在哪个区域的、在这我这样回答你、外部存储器在指令的作用下、在种管脚及地址寄存器配合下实现操作、最后我只是说明你看一下芯片说明,我回答你的只是哪里有这方面的权威的答复。