单片机sfr和sbit关键字,详解
来源:互联网 发布:windows和安卓平板 编辑:程序博客网 时间:2024/05/16 06:13
sfr用于将一个单片机的特殊功能寄存器(special function register)赋值给一个变量,这样在后面的程序中就可以中这个变量指引(refer to)该寄存器。
sbit与sfr用法类似,只是sbit是位操作,用于将某个sfr中具体位赋值给一个变量,这样后面程序就可用通过该变量为该位清0或置1。
STC该系列单片机的特殊功能寄存器布局如下:
看过图1这么多特殊功能寄存器之后可能会产生一些困扰,我们用sfr P0 = 0×80表示P0,用sfr SP = 0×81表示SP,这个没有歧义。有困扰的是:假如用sbit P0_1 = 0×81表示P0口的第一位,那么我想表示SP寄存器的第0位怎么办呢?如果也是定义成sbit SP_0 = 0×81那么明显会有二义性,编译器理解不了。其实这个问题是不存在的,从图1中可以看出,SFR又可以分为两个区域:可位寻址区和不可位寻址区。可位寻址区的寄存器地址能够被8整除,而不可位寻址区的寄存器地址不满足这一要求。因此例子中的sbit SP_0 = 0×81对于SP寄存器这是无效的应该写成sfr SP=0x81。
例如:sbit P1^1=0x81;sfr SP=0x81;
它们虽然都引用了同一个地址0×81,但是对于编译器来说,这两者的含义完全不同,前者因为有sfr关键字,所以是字节地址。后者因为是sbit关键字,所以是位寻址,表示的是一个bit。
0 0
- 单片机sfr和sbit关键字,详解
- 详解单片机中的关键字:sfr sbit
- 单片机关键字sfr和sbit的理解
- 51单片机sfr sbit bit学习
- sbit与sfr关键字简析
- sfr与sbit的理解,及单片机中断
- 单片机中几种常用数据类型 bit,sbit,sfr,sfr16。
- sfr,sfr16,esfr,sbit
- c51中sbit/sfr 用法
- 单片机中的SFR是什么?
- 单片机中的sbit
- c51编程中sbit sfr 用法
- 关于51单片机中的RAM、SFR和位地址的问题
- ISO 12233和SFR
- SFR
- 单片机中C语言sbit使用方法
- 51单片机的特殊功能寄存器(SFR)
- 51单片机的特殊功能寄存器(SFR)
- FPGA开发之配置模式
- sqlplus批量执行脚本日志输出
- Node.js 博客实例(二)使用 Markdown
- Command Prompt 命令目录
- S2SH框架搭建
- 单片机sfr和sbit关键字,详解
- 技术高手必备的几大素质
- Python 集合 set
- sqlplus登陆方式
- C#记事本-查找与替换
- 正则表达式 数量词
- JS获取浏览器窗口大小 获取屏幕,浏览器,网页高度宽度
- inline成员函数
- SP2-1503: 无法初始化 Oracle 调用界面 SP2-1503: 无法初始化 Oracle