0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

【硬见小百科】单片机的特殊功能寄存器

云创硬见 2019-01-16 13:45 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

单片机中有一些独立的存储单元是用来控制这些器件的,被称之为特殊功能寄存器(SFR)。

<特殊功能寄存器地址映象表(一)>

<特殊功能寄存器地址映象表(二)>

<特殊功能寄存器地址映象表(三)>

几个常用的SFR

1、ACC:累加器,常常用A表示。这是个什么东西,可不能从名字上理解,它是一个寄存器,而不是一个做加法的东西,为什么给它这么一个名字呢?或许是因为在运算器做运算时其中一个数一定是在ACC中的缘故吧。它的名字特殊,身份也特殊,稍后我们将学到指令,能发现,所有的运算类指令都离不开它。

2、B:一个寄存器。在做乘、除法时放乘数或除数,不做乘除法时,随你怎么用。

3、PSW:程序状态字。这是一个很重要的东西,里面放了CPU工作时的很多状态,借此,我们能了解CPU的当前状态,并作出对应的处理。它的各位功能请看下表。

PSW也称为标志寄存器,了解这个对于了解单片机原理非常的重要,存放各有关标志。其结构和定义如下:

sfr各位的用途

(1)CY:进位标志。用于表示Acc.7有否向更高位进位。8051中的运算器是一种8位的运算器,我们知道,8位运算器只能表示到0-255,如果做加法的话,两数相加可能会超过255,这样最高位就会丢失,造成运算的错误,怎么办?最高位就进到这里来。这样就没事了。

例:78H+97H(01111000+10010111)

(2)AC:辅助进位标志也叫半进位标志。 用于表示Acc.3有否向Acc.4进位

例:57H+3AH(01010111+00111010)

(3)F0:用户标志位,由我们(编程人员)决定什么时候用,什么时候不用。

(4)RS1、RS0:工作寄存器组选择位。这个我们已知了。
RS1、RS0 = 00 —— 0区(00H~07H)

RS1、RS0 = 01 —— 1区(08H~0FH)

RS1、RS0 = 10 —— 2区(10H~17H)

RS1、RS0 = 11 —— 3区(18H~1FH)

(5)0V:溢出标志位。 表示Acc在有符号数算术运算中的溢出,什么是溢出我们稍后再谈吧。

(6)P:奇偶校验位:它用来表示ALU运算结果中二进制数位“1”的个数的奇偶性。若为奇数,则P=1,不然为0。

例:某运算结果是78H(01111000),显然1的个数为偶数,所以P=0。

4、DPTR(DPH、DPL):数据指针,能用它来访问外部数据存储器中的任一单元,如果不用,也能作为通用寄存器来用,由我们自已决定如何使用。16位,由两个8位寄存器DPH、DPL组成。主要用于存放一个16位地址,作为访问外部存储器(外RAMROM)的地址指针。

5、P0、P1、P2、P3:这个我们已经知道,是四个并行输入/输出口的寄存器。它里面的内容对应着管脚的输出。

6、SP:堆栈指针。(专用于指出堆栈顶部数据的地址。)

【学习建议】其实并不需要把上面的这些东西都死记硬背在脑子里面,这是很难的,我们只需要理解工作原理,一次看不懂就要多看几次,等到要写程序的时候,我们再把这些表格拿出来查阅。

以上所有信息仅作为学习交流使用,不作为任何学习和商业标准。若您对文中任何信息有异议,欢迎随时提出,谢谢!

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6078

    文章

    45580

    浏览量

    673681
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    瑞萨8位单片机740族:指令系统与使用要点解析

    和使用注意事项,对于设计出稳定、高效的电路至关重要。 文件下载: R5F211A2NP#U0.pdf 寄存器结构与功能 740族的CPU拥有6个寄存器,程序计数(PC)由16位构成,
    的头像 发表于 04-13 15:10 148次阅读

    三菱PLC特殊辅助继电器指令功能用法教程

    ‌三菱PLC的M8000指令大全‌包括了一系列特殊功能寄存器,这些寄存器在PLC的运行中起着重要的作用。
    的头像 发表于 01-23 16:22 1590次阅读
    三菱PLC<b class='flag-5'>特殊</b>辅助继电器指令<b class='flag-5'>功能</b>用法教程

    请问如何实现C语言访问MCU寄存器

    单片机特殊功能寄存器SFR,是SRAM地址已经确定的SRAM单元,在C语言环境下对其访问归纳起来有两种方法。 采用标准C的强制类型转换和指针来实现   采用标准C的强制转换和指针的概念来实现访问
    发表于 12-26 07:00

    请问CW-DAPLINK有哪些特殊功能

    CW-DAPLINK有哪些特殊功能
    发表于 12-24 07:58

    单片机的入门准备

    基础,学习单片机就只要花几周的时间就能上手。但学习单片机时,主要从单片机寄存器开始,其中特殊功能寄存器
    发表于 12-22 07:39

    单片机堆栈解析

    自动将当前PC值压栈保存,返回时自动将PC值弹栈。 保护现场/恢复现场 数据传输 单片机堆栈原理: 堆栈区由特殊功能寄存器堆栈指针SP管理 堆栈区可以安排在 RAM区任意位置,一般不安排在工作
    发表于 12-09 06:52

    使用位操作精准配置单片机寄存器

    int state = READ_BIT(GPIOA_ODR, PIN_5); // 读取状态​3、使用结构体映射寄存器 单片机寄存器通常是地址连续的,可以使用结构体映射寄存器,提高
    发表于 11-24 07:22

    单片机启动&amp;库函数的构成

    多少字节的容量,32位单片机就是4字节,所以地址偏移量基本上就是4字节步进来累加的,某些情况会有多个寄存器一起负责一个功能的情况,这个时候偏移量要酌情理解。 那地址代表了寄存器,地址
    发表于 11-18 08:15

    C语言和单片机C语言有什么差异

    语言的功能特性外,它可以很好的操作底层的硬件接口。在C语言的基础上,如果你把一些单片机的端口或特殊功能寄存器加于定义,使用的时候会更加方便,写语句的时候,直接直观的编写。这样就差不多是
    发表于 11-14 07:55

    单片机的误区

    1.去背寄存器 寄存器不用死记背,,当我们去使用单片机外设的时候就要去配置,千万别去记寄存器,华维单片
    发表于 11-14 07:46

    ‌TPIC6B595 8位功率移位寄存器技术文档总结

    TPIC6B595器件是一款单片、高压、中电流功率8位移位寄存器,设计用于需要相对高负载功率的系统。该器件在输出端包含一个内置电压钳位,用于电感瞬态保护。功率驱动应用包括继电器、螺线管和其他中电流
    的头像 发表于 09-09 10:16 1168次阅读
    ‌TPIC6B595 8位功率移位<b class='flag-5'>寄存器</b>技术文档总结

    刷知识也能上瘾,活力百科对年轻人做了什么?

    放下短视频刷起了百科,谁悄悄改写了年轻人的内容消费习惯?
    的头像 发表于 07-09 10:09 1367次阅读
    刷知识也能上瘾,活力<b class='flag-5'>百科</b>对年轻人做了什么?

    51单片机笔记(建议收藏!)

    +外设”的结构,外设多,单片机就复杂些,总线位数高,运行就快一些。本质上还逃不出这个架构。对于设计人员编程来说,操作外设实际上就是读写各种特殊功能寄存器,传输数据就是读写总线,相应外设就是处理中断
    发表于 05-21 17:24

    第四章 什么是寄存器

    本篇文章我们讲解了寄存器的概念、地址映射和寄存器操作等内容,内容比较干,大家有个概念即可,不要求全部熟记掌握,有需要时可重复查阅观看。下一篇我们将开始进行实操内容,通过控制单片机的GPIO来点亮一颗LED,敬请期待!
    的头像 发表于 05-21 14:23 1673次阅读
    第四章 什么是<b class='flag-5'>寄存器</b>

    C51单片机及C语言知识点必备秘籍

    单片机关键知识点一览: 系列一 1:单片机简叙 2:单片机引脚介绍 3:单片机存储结构 4:第一个
    发表于 05-15 14:00