eidy00
驱动牛犊
驱动牛犊
  • 注册日期2004-04-07
  • 最后登录2006-03-06
  • 粉丝0
  • 关注0
  • 积分102分
  • 威望17点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
阅读:2909回复:1

请教关于C51程序中XBYTE[]函数的使用方法

楼主#
更多 发布于:2004-04-14 08:53
小弟没有考虑好XBYTE[]内部到底是怎样执行的!usb协议中说明的是:单片机发给usb芯片的地址和数据是通过一个8位数据端口传输得!这中说法是不是说:XBYTE[(addr)] = dat这种函数实现的就是在8位接口中先将addr传输到usb上,告诉传输的是地址;然后再将dat传输到usb上,告诉传输的是数据呢?
在固件中XBYTE[]到底是怎样工作的呢?
顺便问一下,再c++中_inp()和_outp()能够实现类似的这种8位端口就能够传输地址和数据的功能么?
多谢大家指点!
zhaobeishengcoo
驱动牛犊
驱动牛犊
  • 注册日期2004-02-25
  • 最后登录2005-05-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-04-16 21:47
 如:#define PORTA XBYTE[0xffc0]

表示是在xdata空间中,地址为ffc0

XBYTE的定义为:
#define XBYTE((unsigned char volatile xdata *)0)

PORTA=3

相当于汇编的
mov DPTR,#ffc0 ;送地址
movx a,#3 ;送数据到A
mov @DPTR,A
游客

返回顶部