4.16位特殊功能寄存器sfr16两个8位特殊功能寄存器,可以组成16位,sfr16如定时器2的TL2和TH2寄存器,可以组成16位sfr16定义格式:sfr16 SFR名=sfr16 的低端地址如定时器T2的TL2地址为0xcc,TH2地址为0xcd则可定义16位的特殊功能寄存器T2CNT:sfr16T2CNT = 0xcc
4. 16位特殊功能寄存器 sfr16 两个8位特殊功能寄存器,可以组成16位 sfr16 如定时器2的TL2和TH2寄存器,可以组成16位 sfr16 定义格式: sfr16 SFR名 = sfr16 的低端地址 如定时器T2的TL2地址为0xcc, TH2地址为0xcd, 则可定义16位的特殊功能寄存器T2CNT: sfr16 T2CNT = 0xcc
3.2.6绝对地址访问的变量福变量是指定绝对地址的变量sfr、sfr16 、bitC51程序对绝对地址单元的访问还可以使用宏定义实现用C51提供的宏定义文件absacc.h定义绝对地址变量定义格式如下:
3.2.6 绝对地址访问的变量 sfr、sfr16 、bit 变量是指定绝对地址的变量 C51程序对绝对地址单元的访问还可以使用宏定义实现 用C51提供的宏定义文件absacc.h定义绝对地址变量 定义格式如下:
#include <absacc.h>//预处理命令#define变量名XBYTE【绝对地址】//在外部64KRAM中定义字节变量#define变量名XWORD【绝对地址】/在外部64KRAM中定义字变量#define变量名CBYTE【绝对地址】在程序存储器中定义字节变量#define变量名CWORD【绝对地址】在程序存储器中定义字变量#define变量名PBYTE【绝对地址】//在外部RAM某页中定义字节变量
#define 变量名 XBYTE【绝对地址】 //在外部64KRAM中定义字节变量 #define 变量名 XWORD【绝对地址】 //在外部64KRAM中定义字变量 #define 变量名 CBYTE【绝对地址】 //在程序存储器中定义字节变量 #define 变量名 CWORD【绝对地址】 //在程序存储器中定义字变量 #define 变量名 PBYTE【绝对地址】 //在外部RAM某页中定义字节变量 #include <absacc.h> //预处理命令
#define变量名PWORD【绝对地址】/在外部RAM某页中定义字变量#define变量名DBYTE【绝对地址】/在内部RAM中定义字节变量#define变量名DWORD【绝对地址】//在内部RAM中定义字变量
#define 变量名 DBYTE【绝对地址】 //在内部RAM中定义字节变量 #define 变量名 DWORD【绝对地址】 //在内部RAM中定义字变量 #define 变量名 PWORD【绝对地址】 //在外部RAM某页中定义字变量
例: #include <absacc.h>//包含宏定义文件absacc.h#define PA8155 XBYTE「0xdff11//定义8155A口#define PB8155 XBYTE 「Oxdff21//定义8155B口#define PC8155 XBYTE 「0xdff31//定义8155C口#define COM8155 XBYTE [0xdff0]//定义8155命令状态寄存器
#define PA8155 XBYTE [0xdff1] //定义8155A口 例:#include <absacc.h> //包含宏定义文件absacc.h //定义8155命令状态寄存器 #define PB8155 XBYTE [0xdff2] //定义8155B口 #define PC8155 XBYTE [0xdff3] //定义8155C口 #define COM8155 XBYTE [0xdff0]