历史上的今天
今天是:2025年06月21日(星期六)
2018年06月21日 | Keil C51对C语言的关键词扩展之十七: sbit
2018-06-21 来源:eefocus
sbit用来定义一个特殊功能寄存器的某一位。
sbit name = sfr-name ^ bit-position; sbit name = sfr-address ^ bit-position; sbit name = sbit-address;
| name | 特殊功能寄存器某一位的名称 |
| sfr-name | 已定义的特殊功能寄存器名称 |
| bit-position | 特殊功能寄存器比特位置 |
| sfr-address | 特殊功能寄存器的地址 |
| sbit-address | 特殊功能寄存器的比特地址 |
sbit提供了访问可位寻址特殊功能寄存器以及其他可位寻址对象的方法。
sbit EA = 0xAF;
该语句将EA定义为特殊功能寄存器某位,地址为0XAF,在8051单片机中代表开启中断使能寄存器的所有位。
以sbit访问的对象与sfr16相同为小端模式存储,而int、long型以大端模式存储。
为sbit 名称指定地址的三种方法:
1)
sbit name = 特殊功能寄存器名称^比特位置;
比如:
sfr PSW = 0xD0; sfr IE = 0xA8; sbit OV = PSW^2; sbit CY = PSW^7; sbit EA = IE^7;
2)
sbit name = 特殊功能寄存器地址^比特位置;
sbit OV = 0xD0^2; sbit CY = 0xD0^7; sbit EA = 0xA8^7;
特殊功能寄存器地址必须能被8整除。
3)
sbit name = 位地址;
比如:
sbit OV = 0xD2; sbit CY = 0xD7; sbit EA = 0xAF;
只有地址能够被8整除的特殊功能寄存器才是可位寻址的。
sbit用来访问bdata类型变量的某一比特位。
sbit变量不能在函数内部声明。
推荐阅读
史海拾趣
|
猎头公司为某外资企业招聘招聘资深应用工程师(工作地点:上海) 职责: 售前售后技术支持。 技术培训等。 要求: 熟悉通信、电子、安防等行业; 熟悉嵌入式系统开发、FPGA、HDL编码和验证、DSP数字信号处理、通讯算法等相关知识。 如果有兴 ...… 查看全部问答> |
|
/*实验板 MSP430 LaunchPad * 利用定时器编写PWM电路,驱动LED,并可以通过按键调节亮度 * MCLK=SMCLK=DCOCLK=32×ACLK=1.048576MHz, */ #include void main(void) { P1DIR |= BIT6+BIT0; P1DIR &=~BIT3; &nb ...… 查看全部问答> |




