单片机如8051有21个SFR,地址为80H~0FFH的128个字节中,可以直接用寻址方式来操作SFR。(类似于sbit)

为了能直接访问这些SFR,keil提供饿了一种自汉族形式的定义方法。这种方法只适用于8051系列单片机进行C编程。

方法:引入关键字“sfr”,语法为:sfr sfr_name=int address

如:sfr SCON=0x98;

  sfr TMOD=0x89;

具体值应该参照SFR表。

关于sbit的使用有三种方式:

1、sfr PSW=0xD0;//

   sbit OV=PSW^2;

   sbit CY=PSW^7;

2、sbit OV=0xD0^2;

   sbit CY=0xD0^7;

3、sbit OV=0xD2;

  sbit CY=0xD7;

在工作中,这个sfr定义都包括在头文件<reg51.h>等头文件中了,不需要再自己定义。但是很多工程上的文件,都加上了这些定义,是为了防止<reg51.h>没有定义到这些寄存器

单片机特殊功能寄存器(SFR)的更多相关文章

  1. 关于单片机特殊功能寄存器(SFR)和内存(RAM)公用地址:80-FF 如何区分

    RAM 的 80-FF 需要间接寻址进行访问 如:  MOV R0,#80H;    MOV A,@R0 ;  (内存 80H地址内的数据放到A中) SFR的80-FF需要直接寻址进行访问如: MOV ...

  2. MCS-51特殊功能寄存器(SPR)的C51定义

    MCS - 51单片机中,除了程序计数器PC和4组工作寄存器组外,其它所有的寄存器均为特殊功能寄存器(SFR),分散在片内RAM区的高128字节中,地址范围为80H~0FFH.SFR中有11个寄存器具 ...

  3. 51单片机SRF寄存器

    1.21个寄存器介绍        51系列单片机内部主要有四大功能模块,分别是I/O口模块.中断模块.定时器模块和串口通信模块(串行I/O口),如其结构和功能如下图: 图1 51单片机结构和功能图 ...

  4. 寄存器、特殊功能寄存器和ram之间的区别联系

    存储器在CPU外,一般指硬盘,U盘等可以在切断电源后保存资料的设备,容量一般比较大,缺点是读写速度都很慢,普通的机械硬盘读写速度一般是50MB/S左右. 内存和寄存器就是为了解决存储器读写速度慢而产生 ...

  5. MCS-51系列特殊功能寄存器(摘录)

    MCS-51系列特殊功能寄存器(80H~FFH) 1. P0 (80H) P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0 2.SP 栈指针(81H) 3.DPTR 数据 ...

  6. Cortex-M3 R0~R15寄存器组 & 特殊功能寄存器组

    [R0~R15寄存器组] Cortex-M3处理器拥有R0~R15的寄存器组,如: [R0~R12通用寄存器]R0~R12都是32位通用寄存器,用于数据操作.其中: R0~R7为低组寄存器,所有的指令 ...

  7. stm32 中库函数、结构体、地址的强制类型转换、相应特殊功能寄存器之间的关系

    以一个挂接在APB2上的外设函数使能为例 A : RCC_APB2PeriphClockCmd():时钟使能函数 1 RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFI ...

  8. PIC单片机状态寄存器中的C(进位/借位位标志)

    查阅PIC单片机芯片手册,关于进位/借位位的说明为: C:进位/借位位. 1 = 结果的最高位发生了进位 0 = 结果的最高位未发生进位 同时有一条标注:借位的极性是相反的. 通过以上说明,可以将C的 ...

  9. 以ARM和RISC-V为内核的单片机写寄存器

    我以为这是个很简单的问题,没想到还有一些初学者不会.可能他们也是跟我一样是直接学的如何操作单片机并没有学微机原理么. ARM和RISC-V的机器的系统架构都是哈佛结构的,意思是程序存储器.数据存储器和 ...

随机推荐

  1. Android -- 初探MVP模式

    1,相信大家对mvp模式都很熟悉了,M-Model-模型.V-View-视图.C-Controller-控制器.MVP作为MVC的版本演化,与MVC的意义类似:M-Model-模型.V-View-视图 ...

  2. ajax讲解:“创建用户”和“用户登录”练习

    ajax可以在不重新加载整个网页的情况下,对网页的某部分进行更新. 传统的网页(不使用 AJAX)如果需要更新内容,必须重载整个网页页面.   接下来,将以例子的形式进行讲解   例一:创建用户   ...

  3. zw版【转发·台湾nvp系列Delphi例程】HALCON Histogram

    zw版[转发·台湾nvp系列Delphi例程]HALCON Histogram unit Unit1;interfaceuses Windows, Messages, SysUtils, Varian ...

  4. SqlServer 在创建数据库时候指定的初始数据库大小是不能被收缩的

    当你在SqlServer创建数据库的时候可以指定数据库文件的初始大小,比如下图中我们将新创建的数据库MyDB的大小设置成了1024MB 那么你建好的数据库的确也就会占用1024MB左右的磁盘空间 不过 ...

  5. 利用foreach对页面控件的遍历 及三目运算符的使用

    1.利用foreach对页面控件的遍历 及三目运算符的使用 利用div将一组CheckBox放在一起用于遍历 <body> <form id="form1" ru ...

  6. 使用 TC 对LInux中vpn 上传下载进行限速(转)

    TC 无需安装,Linux 内核自带 例:将vpn IP地址段192.168.1.0/24 上传下载限速为 5M 将以下内容添加到/etc/ppp/ip-up文件exit 0上面. down=5Mbi ...

  7. Failed to read auto-increment value from storage engine, Error Number: 1467

    重设auto_increment:ALTER TABLE tableName auto_increment=number

  8. Backup: Date and Time in Perl6

    时间 Date #Operators ==, <, <= , >, >=, !=, eq, lt, le # Methods $date = Date.new(YEAR, MO ...

  9. 连接ssh反应很慢,卡,延迟

    1.关闭DNS反向解析在linux中,默认就是开启了SSH的反向DNS解析,这个会消耗大量时间,因此需要关闭.# vi /etc/ssh/sshd_configUseDNS=no 在配置文件中,虽然U ...

  10. Hibernate,JPA注解@OneToMany_Map

    用例代码如下: 数据库DDL语句 1,CAT表 create table CAT ( id VARCHAR2(32 CHAR) not null, create_time TIMESTAMP(6), ...