SFR全称为:special function register(翻译为:特殊功能寄存器)

要想明白什么是sfr,需要先了解什么是寄存器

寄存器是RAM和ROM的统称

就像猫科动物是老虎与狮子的统称一样

ROM或者对于玩电脑的人并不陌生,什么内存3G(内存就是RAM),硬盘100G(硬盘就是ROM)

单片机里面和电脑一样,有ROM和RAM之分

那这两种寄存器的区别是什么呢?

1 . ROM的功能:ROM的数据在程序运行的时候是不容改变的,除非你再次烧写程序,他就会改变,就像我们的书本,印上去就改不了了,除非再次印刷,这个就是ROM的原理

2 . RAM的功能:RAM就是在程序运行中,数据会随时改变的,就像我们的黑板,写上了可以擦,擦完再写上去,相当于程序运行的时候,调用ROM里面的数据进行各种运算

再来了解如何为特殊功能

这个SFR是在RAM(动态寄存器)里面的,如何为特殊功能呢?

举一个非常简单的例子区别一下:

比如我家的门牌号是:北京天安门喜悦小区3楼17号房,是刘大侠的家,你说记刘大侠的家好记,还是上面那个详细地址好记呢?

一开始单片机没程序的时候,单片机不认得什么叫P1口

他只知道P1口的8只引脚,是连着内部地址0x90

简洁来说就是,P1口这些引脚就是0x90地址延伸出来的引脚,在没程序的情况下,单片机是不知道什么叫P1口的,他只知道0x90地址和外部的引脚就这么连着,你也可以拿着0x80,0x90,这些地址去编写我们的程序,一个两个倒是无所谓,但是多几个你就会觉得很烦了

所以sfr P1 = 0x90,就是把单片机的地址0x90改名字为P1,方便我们使用,明白了吗?

一个弄明白后,剩下的一堆,你就懂了

sfr P1 = 0x90;

sfr P2 = 0xA0;

sfr P3 = 0xB0;

sfr PSW = 0xD0;

sfr ACC = 0xE0;

简单来了就是为RAM里面的地址改名字方便我们用

其实这些东西你不用过于研究的,你了解一下就可以,因为我们在写程序中肯定有一个reg52.h的头文件,因为定义名字这个事情就在这个头文件里面了,你会调用就行,不用过于研究。

如果你想学习更多单片机和程序的知识,可以看看我整理好的帖子网页链接

单片机SFR是什么意思?相关推荐

  1. c语言编程单片机中的sbit,单片机sfr和sbit的用法

    描述 单片机sfr和sbit详解 sfr用于将一个单片机的特殊功能寄存器(special function register)赋值给一个变量,这样在后面的程序中就可以中这个变量指引(refer to) ...

  2. 单片机 单片机sfr和sbit关键字

    bit与sfr用法类似,只是sbit是位操作,用于将某个sfr中具体位赋值给一个变量,这样后面程序就可用通过该变量为该位清0或置1. sfr用于将一个单片机的特殊功能寄存器(special funct ...

  3. 单片机 sfr 和 sbit 的区别

    1.bit和sbit都是C51扩展的变量类型. bit和int char之类的差不多,只不过char=8位, bit=1位而已.都是变量,编译器在编译过程中分配地址.除非你指定,否则这个地址是随机的. ...

  4. 请写出sfr和sbit的语句格式_单片机sfr和sbit关键字,详解

    sfr用于将一个单片机的特殊功能寄存器(special function register)赋值给一个变量,这样在后面的程序中就可以中这个变量指引(refer to)该寄存器. sbit与sfr用法类 ...

  5. 请写出sfr和sbit的语句格式_单片机关键字sfr和sbit区别

    单片机关键字sfr和sbit的理解 在单片机C语言编程中,扩充了两个关键字sfr和sbit. sfr(Special Function Register特殊功能寄存器的缩写),sbit(特殊功能寄存器 ...

  6. 51单片机特殊功能寄存器(SFR)介绍

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

  7. 发现好文!51单片机特殊功能寄存器 /I/O口操作 /中断/ 定时器/ 串口通信/ ---位寻址解释由来--以及程序例程

    51单片机特殊功能寄存器有哪些_功能是什么 最近学习中对寄存器的概念理解很迷惑,I/O口操作/中断/定时器/串口通信四大模块的寄存器应用不太明白,这篇文章,解释的不错,希望帮到各位! 1.21个寄存器 ...

  8. c51中sbit/sfr 用法

    sfr用于将一个单片机的特殊功能寄存器(special funcTIon register)赋值给一个变量,这样在后面的程序中就可以中这个变量指引(refer to)该寄存器. sbit与sfr用法类 ...

  9. 8051单片机c语言编程模板,完美的8051单片机C语言编程模板.doc

    完美的8051单片机C语言编程模板.doc <8051单片机C语言编程模板> [程序开始处的程序说明] /***************************************** ...

最新文章

  1. [Android Pro] svn实例
  2. OpenDesktop 1.0开放桌面操作系统光盘启动安装过程详细图解
  3. 教你 4 步搭建弹性可扩展的 WebAPI
  4. 摄像头图像分析目标物体大小位置_单个运动摄像头估计运动物体深度,谷歌挑战新难题...
  5. java 根据类名示例化类_Java即时类| getEpochSecond()方法与示例
  6. 国外开源的PACS服务器
  7. django2.x/3.x 前端页面在debug模式中找不到动态文件static
  8. ubuntu 64 12.04 oracle,Ubuntu 12.04 (amd64)安装Oracle 11g 总结
  9. 在NHibernate的单表继承模式下通过父类Repository查询子类
  10. java逆向框架_JOOQ框架学习(1):逆向编译生成代码
  11. 卢卡奇总体性原则_读书笔记|卢卡奇物化与无产阶级意识无产阶级的立场(1)...
  12. 在Linux下使用GIMP打印一寸照
  13. 不同颜色坐标系的坐标转换
  14. less面试_面试必看:less与sass的区别
  15. su - root 切换失败
  16. Codeforces - Mother of Dragons
  17. CSS 设置文字间距
  18. 《城市化》(顾朝林)-重要术语
  19. 图像处理/计算机视觉/python环境下如何用滤波器、算法恢复图片,对图片去污【附代码】
  20. cartographer自动更新地图,2条路径数据合并为1条数据

热门文章

  1. 拉格朗日乘数法及python实现
  2. Linux面试题汇总答案
  3. 人在旅途——》张家界之旅:20180418
  4. nodej.s 搭建一个socket服务(原生和sockjs)
  5. Autoleaders-可视化pyecharts
  6. vm服务器虚拟化迁移,在线迁移演示(存储在线迁移、虚拟机在线迁移)
  7. C语言 统计英语文章单词的数目
  8. 基于MATLAB的数字信号处理(3) 用FFT对信号作频谱分析
  9. 说一说ADI公司的DSP发展历程
  10. 1 最新最全新东方考研英语笔记