【摘要】:MCS-51系列单片机片内有4个并行I/O口,因这4个并行I/O口都是SFR,故这4个并行I/O口的定义采用定义SFR的方法。另外,MCS-51系列单片机在片外可扩展并行I/O口,因其外部I/O口与外部RAM是统一编址的,即把一个外部I/O口当作外部RAM的一个单元来看待。对于片外扩展的I/O口,根据硬件译码地址,将其看作片外RAM的一个单元,使用语句#define进行定义。
MCS-51系列单片机片内有4个并行I/O口(P0~P3),因这4个并行I/O口都是SFR,故这4个并行I/O口的定义采用定义SFR的方法。另外,MCS-51系列单片机在片外可扩展并行I/O口,因其外部I/O口与外部RAM是统一编址的,即把一个外部I/O口当作外部RAM的一个单元来看待。
利用绝对地址访问的头文件absacc.h可对不同的存储区进行访问。该头文件的函数有:
CBYTE (访问code区字符型)
DBYTE (访问data区字符型)
PBYTE (访问pdata区或I/O口字符型)
XBYTE (访问xdata区或I/O口字符型)(www.xing528.com)
另外,还有CWORD、DWORD、PWORD、XWORD 4个函数,它们的访问区域同上,只是访问的数据类型为int型。
对于片外扩展的I/O口,根据硬件译码地址,将其看作片外RAM的一个单元,使用语句#define进行定义。例如:
#include<absacc.h> /*必须要,不能少*/
#define PORTA XBYTE[0x FFC0] /*定义外部I/O口PORTA的地址为外部RAM的0FFC0H*/
当然也可把对外部I/O口的定义放在一个头文件中,然后在程序中通过#include语句调用,一旦在头文件或程序中通过使用#define语句对片外I/O口进行了定义,在程序中就可以自由使用变量名(如PORTA)来访问这些外部I/O口了。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。