阅读:2908回复:1
请教关于C51程序中XBYTE[]函数的使用方法
小弟没有考虑好XBYTE[]内部到底是怎样执行的!usb协议中说明的是:单片机发给usb芯片的地址和数据是通过一个8位数据端口传输得!这中说法是不是说:XBYTE[(addr)] = dat这种函数实现的就是在8位接口中先将addr传输到usb上,告诉传输的是地址;然后再将dat传输到usb上,告诉传输的是数据呢?
在固件中XBYTE[]到底是怎样工作的呢? 顺便问一下,再c++中_inp()和_outp()能够实现类似的这种8位端口就能够传输地址和数据的功能么? 多谢大家指点! |
|
沙发#
发布于: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 |
|