1、8位特殊功能寄存器的定义 定义的一般格式为: sfr特殊功能寄存器名=地址常数 地址常数范围:0x80~0xf6 特殊功能寄存器定义例子(见reg51h reg52h等文件): sfr p0=0x80 //定义P0寄 存器 sfr P1=0x90 //定义P1口 寄存器 2 sfr psv=0xd0;∥定义PsWn
2021/2/9 12 1、 8位特殊功能寄存器的定义 定义的一般格式为: sfr 特殊功能寄存器名 = 地址常数 地址常数范围:0x80~0xff。 特殊功能寄存器定义例子(见reg51.h、 reg52.h等文件): sfr P0=0x80; //定义P0寄 存器 sfr P1=0x90; //定义P1口 寄存器 sfr PSW=0xd0; //定义PSW sfr IE=0xa8; //定义IE
2、16位特殊功能寄存器的定义 定义的一般格式为: sfr16特殊功能寄存器名=地址常数 地址常数范围:0x80~0xff 例如(见reg51h、reg52h等文件): sfr16 DPtR=ox82. sfr16 t2=0xcc //含TL2和 TH2 2021/29 13
2021/2/9 13 2、 16位特殊功能寄存器的定义 定义的一般格式为: sfr16 特殊功能寄存器名=地址常数 地址常数范围:0x80~0xff。 例如(见reg51.h、reg52.h等文件): sfr16 DPTR=0x82; sfr16 T2=0xcc; //含TL2和 TH2
几点说明 1)定义特殊功能寄存器中的地址必须 在0X80~0xf范围内。 2)定义特殊功能寄存器,必须放在函 数外面作为全局变量。 3)用sfr或sr16每次只能定义一个特 殊功能寄存器。 4)用sf或sr16定义的是绝对定位的 变量(因为名字是与确定地址对应的), 具有特定的意义,在应用时不能像一般变 量那样随便使用 2021/29
2021/2/9 14 几点说明: 1)定义特殊功能寄存器中的地址必须 在0x80~0xff范围内。 2)定义特殊功能寄存器,必须放在函 数外面作为全局变量。 3)用sfr或sfr16每次只能定义一个特 殊功能寄存器。 4)用sfr或sfr16定义的是绝对定位的 变量(因为名字是与确定地址对应的), 具有特定的意义,在应用时不能像一般变 量那样随便使用
3、sbit型位变量的定义 特殊功能寄存器的位声明 一般格式为: sbit位变量名=位地址表达式 这里的位地址表达式有三种戒式: 直接位地址 特殊功能寄存器名带位号 字节地址带位号 2021/29 15
2021/2/9 15 3、 sbit型位变量的定义 特殊功能寄存器的位声明 一般格式为: sbit 位变量名 = 位地址表达式 这里的位地址表达式有三种形式: 直接位地址 特殊功能寄存器名带位号 字节地址带位号
a、用直接位地址定义位变量 定义特殊功能寄存器的位。例如: sbit P0 0=0x80 sbit P1 1=0x91, sbit Rs0=0xd3;/定义PSW的第3 位 sbit Et0=0Xa9;/定义I的第1位 2021/29 16
2021/2/9 16 a、用直接位地址定义位变量 定义特殊功能寄存器的位。例如: sbit P0_0=0x80; sbit P1_1=0x91; sbit RS0=0xd3; //定义PSW的第3 位 sbit ET0=0xa9; //定义IE的第1位