请问高手 单片机编程中#define ZXK XBYTE[0xfeff]中XBYTE[0xfeff]是什么意思 能讲详细

问题描述:

请问高手 单片机编程中#define ZXK XBYTE[0xfeff]中XBYTE[0xfeff]是什么意思 能讲详细点吗?
谢谢各位.可能我问得不是很清楚
我们这学期教单片机,C语言版,老师教得有点快,有些地方没弄懂
我重新问下:是否可以理解为 定义P2口的地址为0xfe,P0口的地址为0xff,然后用一个自定义的符号ZXK来表示它们合起来的地址,即ZXK=0xfeff.那0xfeff的二进制为1110111111111111,是说P2.4端口起作用吗?还有,在接下来的语句中,能给ZXK重新赋值吗?能的话,要怎么知道给它赋的是高位,还是低位呢?如我若再进行操作:ZXK=0xbf,是改变P2口地址的值?那如何改变P1口地址的值呢,这样可以吗:ZXK=0x00bf?
附:以下是代码
#include
#include
#define ZXK XBYTE[0xfeff]
#define ZWK XBYTE[0xfdff]
void delay()
{
unsigned int i=40000;
while(i--);
}
void main()
{
unsigned char i,j,a;
while(1)
{ ZXK=0xbf;
for(i=4;i
1个回答 分类:综合 2014-09-29

问题解答:

我来补答
你还没听懂楼上几位的意思.其实这个定义就是定义了一个字节的外部RAM,其地址为0xfeff.即将外部RAM中地址为0xfeff的字节定义为了ZXK这个名字.对它赋值即是对片外RAM的地址为0xfeff的字节赋值.这个和P0、P2没有关系,只是在程序执行过程中,访问这个外部RAM字节的时候P0口是0xff,P2口是0xfe.(根据这个地址来确定RAM中的哪个单元被选中)
比如ZXK=0x00bf这条赋值是不行的,因为ZXK是字节变量,ZXK=0xbf这条赋值是对的,作用是将片外RAM的地址为0xfeff的字节赋值为0xbf.
 
 
展开全文阅读
剩余:2000
上一页:牛刀小试4
下一页:第二问不会作