原创 SBIT的用法

2009-2-18 17:16 3660 5 6 分类: MCU/ 嵌入式
C51中sbit用来定义特殊寄存器中的位标志.如:

 

sfr PSW = 0xD0;

sbit OV = PSW^2;

sbit OV = 0xD0^2;

sbit OV = 0xD2;

 

此外,也可以用sbit把几个标志定义在一个位寻址区字节中,如:

 

uchar bdata main_flag;                                             //在BDATA区定义一个字节

sbit sms_enable=main_flag^0;                                  //定义位标志

sbit mms_enable=main_flag^1;

sbit set_flag=main_flag^2;

sbit ring_enable=main_flag^3;

sbit motion_flag=main_flag^4;

sbit soft_reset=main_flag^5;

 

在别的文件中调用这些位标志时,需要在文件头做extern 声明

extern bit sms_enable;

extern bit mms_enable;

extern bit set_flag;

extern bit ring_flag;

extern bit motion_flag;

extern bit soft_reset;
PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

用户42640 2009-3-10 14:30

学习了,正在被sbit变量共享困扰着
相关推荐阅读
用户1035191 2012-05-18 16:36
根据年月日计算星期
在门禁系统中要用到星期,但是在设置时间的时候,一般只设置年月日时分秒,不会去设置星期,那么如何根据年月日来得到星期?有一个公式: (年+年/4+年/400-年/100-年基数+月基数+日)%7...
用户1035191 2012-05-09 12:40
串口扩展芯片VK3214使用总结
最近一个项目需要用到3个串口,但是用的MCU只有2个串口,选择多串口的单片机成本太高,最后打算用串口扩展芯片VK3214扩展2个串口。 VK3214可以用单片机的一个串口扩展出4个子串口,每个...
用户1035191 2011-10-12 17:54
STM32串口发送时序图分析
下面是STM32使用手册上的串口发送时序图:1、 使能串口发送TE,此时USART_DR为空,此时应查询TXE是否置1,TXE置1,TX脚先发送一个空闲帧,把F1帧写入USART_DR,TXE被清零。...
用户1035191 2011-09-30 14:52
STM32的RTC实现日历功能程序
STM32的RTC只有一个32位的计数器用来计时,没有寄存器来存年月日时分秒等。通过设置可以让这个计数器1秒加1,从0-0XFFFFFFFF大概可以计时136年。程序要设置一个时间起点表示0,一般设...
用户1035191 2011-09-14 17:30
C语言计算时间差
以前曾写过一篇文章C51计算时间差,采用的算法是网上查到的,虽然测试没有问题,但是感觉那种算法不便于理解。最近重新考虑了一种算法。 用2个BCD码数组存储进场时间和出场时间: unsigned ch...
用户1035191 2011-08-24 17:06
C51扩展外部RAM释放P2口
51单片机经常要使用一些外部器件,有些器件内部有寄存器,一般都把这些寄存器当做外部RAM读写。以IC卡读卡芯片RC500为例,这个芯片有D0-D7共8个数据线,接在51的P0口,D0-D7既做>...
EE直播间
更多
我要评论
1
5
关闭 站长推荐上一条 /3 下一条