Skip to main content

单片机_基础

sfr特殊功能寄存器

51单片机内部有一个CPU用来运算、控制,有四个并行I/O口,分别是P0、P1、P2、P3,有ROM,用来存放程序,有RAM,用来存放中间结果,此外还有定时/ 计数器 ,串行I/O口,中断系统,以及一个内部的时钟电路。在单片机中有一些独立的存储单元是用来控制这些器件的,被称之为 特殊功能寄存器 (SFR)。

英文缩写为SFR,是Special Function Register(特殊功能寄存器)的缩写。

SFR数据类型

SFR也是一种扩充数据类型,占用一个内存单元,值域为0~255。利用它可以访问51单片机内部的所有特殊功能寄存器。如用sfr P1 = 0x90这一句定P1为P1端口在片内的寄存器,在后面的语句中我们可以用P1 = 255(对P1端口的所有引脚置高电平)之类的语句来操作特殊功能寄存器。

PSW程序状态字

程序状态寄存器PSW是计算机系统的核心部件——运算器的一部分,PSW用来存放两类信息:一类是体现当前指令执行结果的各种状态信息,称为状态标志,如有无借位进位(CY位)、有无溢出(OF位)、结果正负(SF位)、结果是否为零(ZF位)、奇偶标志位(PF位)等;另一类是存放控制信息,称为控制状态,如允许中断(IF位),跟踪标志(TF位),方向标志(DF)等。有些机器中将PSW称为标志寄存器FR(Flag Register)。

作用:

程序状态字用来指示处理器状态、控制指令的执行顺序并且保留和指示与运行程序有关的各种信息,其主要作用是方便地实现程序状态的保护和恢复。每个正在执行的程序都有一个与其执行相关的PSW,而每个处理器都设置一个程序状态字寄存器。一个程序占有处理器执行,它的PSW将占有程序状态字寄存器。

标志位作用
CY(PSW.7):进位标志。在执行加减运算指令时,如果运算结果的最高位(D7)发生了进位或借位,则CY由硬件自动置1。
AC(PSW.6):半进位标志位,也称为辅助标志位。在执行加减运算指令时,如果运算结果的低半字节(D3)发生了向高半字节进位或借位,则AC由硬件自动置1。
F0、F1(PSW.5 和PSW.1):用户标志位。用户可以根据需要对F0、F1赋予一定的含义,由用户置1和清0,作为软件标志。
RS1、RS0(PSW.4 和PSW.3):工作寄存器组选择控制位。通过对这两位设定,可以从4个工作寄存器组中选择一组作为当前工作寄存器。
OV(PSW.2):溢出标志位,有两种情况影响该位。一是执行加减运算时,如果D7或D6任一位,并且只一位发生了进位或借位,则OV自动置1,
P(PSW.0):奇偶标志位。每条指令执行完后,该位都会指示当前累加器A中1的个数。如果A中有奇数个1,则P自动置1。