【摘要】:mcs-51系列单片机中,地址范围为80h~ffh的单元为sfr寄存器。例如:mcs-51系列单片机的特殊功能寄存器的数量与类型不尽相同,因此建议将所有特殊的“sfr”定义放入一个头文件中,该文件应包括mcs-51系列单片机机型中的sfr定义。对于位寻址的sfr中的位,cx51的扩充功能支持特殊位的定义,像sfr一样不与标准c兼容,使用“sbit”来定义位寻址单元。
mcs-51系列单片机中,地址范围为80h~ffh的单元为sfr寄存器。
为了能直接访问这些sfr,keilcx51提供了一种自主形式的定义方法,这种定义方法与标准c语言不兼容,只适用于对8051系列单片机进行c语言编程。
cx51中定义特殊功能寄存器的一般语法格式:sfrname=intconstant;
“sfr”是定义语句的关键字,其后必须为mcs-51系列单片机中真实存在的特殊功能寄存器名;“=”后面必须是一个整型常数,不允许带有运算符的表达式,是特殊功能寄存“sfr name”的字节地址,这个常数值的范围必须在sfr地址范围内,位于0x80~0xff。
例如:
mcs-51系列单片机的特殊功能寄存器的数量与类型不尽相同,因此建议将所有特殊的“sfr”定义放入一个头文件中,该文件应包括mcs-51系列单片机机型中的sfr定义。cx51编译器的“reg51h”头文件就是这样一个文件。
对于位寻址的sfr中的位,cx51的扩充功能支持特殊位的定义,像sfr一样不与标准c兼容,使用“sbit”来定义位寻址单元。
1)第一种格式:(www.xing528.com)
“sbit”是定义语句的关键字,后跟一个寻址位符号名(该位符号名必须是80c51系列单片机中规定的位名称);“=”后的“sfr-name”必须是已定义过的sfr的名字;“^”后的整常数是寻址位在特殊功能寄存器“sfr-name”中的位号,必须是0~7范围中的数。
例如:
2)第二种格式:
例如:
3)第三种格式:
例如:
特殊功能位代表了一个独立的定义类,不能与其他位定义和位域互换。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。