首页 理论教育 MCS-51并行接口与C51定义方法实现

MCS-51并行接口与C51定义方法实现

时间:2023-10-23 理论教育 版权反馈
【摘要】: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并行接口与C51定义方法实现

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口了。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈