89C51单片机之寄存器

片内RAM中的寄存器

内容介绍

  • 初步介绍89C51/S51中各个寄存器的基本概念和其作用。
  • 参考李朝青等单片机原理及接口技术第四版

低128字节片内RAM

  • 在低128字节片内RAM中 00H ~ 1FH 地址包含四组工作寄存器区,每组有8个工作寄存器(R0 ~ R7),总共占32个单元;
  • 通过对程序状态字PSW中RS1和RS0的设置,如下图,每组寄存器均可选作CPU当前工作寄存器组,后面会详细分析;

4组工作寄存器

RS1RS0寄存器片内RAM地址
00第0组00H~07H
01第1组08H~0FH
10第2组10H~17H
11第3组18H~0FH
  • 这四组工作寄存器在不用时可以作为一般的RAM单元。

高128字节片内RAM(SFR区)

  • SFR区如下图所示;
  • 89C51/S51片内高128字节RAM中有21个特殊功能寄存器(SFR),离散分布在80H~FFH中。
  • 其中21个特殊功能寄存器中有11个具有位寻址能力。其余的特殊功能寄存器或内存空间只能直接寻址。

部分特殊功能寄存器

累加器 ACC
  • 助记符: A
  • 地址:E0H
  • 位数:8位
  • 作用:最常用的8位特殊功能寄存器,指令操作数常存放于A中以及许多运算中间结果存放于A中。
寄存器 B
  • 助记符:B
  • 地址:F0H
  • 位数:8位
  • 作用:常在乘、除指令中用到,其他时刻作为一般的通用寄存器或RAM单元使用。
  • 在乘指令中两个操作数即两个乘数取之于累加器A和寄存器B中,所得16位积的高8位放在B中,低八位放在A中。 附:乘法指令:MUL AB
  • 在除指令中A存放被除数,B存放除数,商存放于A,商存放于B中。附:DIV AB
程序状态寄存器 PSW
  • 助记符: PSW
  • 地址:D0H
  • 位数:8位
  • 作用:一个重要的特殊功能寄存器,其8位的每个位都包含程序执行后的状态,提供程序查询或判别之用。
位地址D7D6D5D4D3D2D1D0
位名称CYACF0RS1RS2OV-P
位意义进、借辅进用户标定寄存器组选择寄存器组选择溢出保留奇偶
  • CY(PSW.7):在进行加减运算指令时,运算结果有向高位进位或借位,CY位由硬件置1,没有向高位进位或借位,则清0。常在系统指令中将CY写为C;
  • AC(PSW.6):辅助进位,进行加减指令时,如果运算结果的低半字节有相高半字节进位或借位则AC位置1,否则清0;
  • P0(PSW.5):用户自己根据需求设置含义,用软件进行置位或复位;
  • RS1和RS2(PSW.4和PSW.3):工作寄存器选择控制组,用来设置内部RAM低128字节中的工作寄存器的选择。
RS1RS0寄存器片内RAM地址
00第0组00H~07H
01第1组08H~0FH
10第2组10H~17H
11第3组18H~0FH
  • OV(PSW.2):溢出标记位,进行补码运算时,超出-128~127数值时由硬件置1,否则置0;
  • PSW.1:保留位
  • P(PSW.0):奇偶校验位,每条指令执行完成后,跟踪累加器A中的数,A中的8位数中如果有奇数个1,置P为1,否则置P为0。
栈指针 SP
  • 助记符 :SP
  • 地址:81H
  • 位数:8位
  • 作用:SP内容可以指向89C51片内00H~7FH RAM任何单元。
  • 附:其初始化有点特别,初始化值是07H;SP进行入栈(出栈)操作时,先进行加一(减一),在进行PUSH(POP)。
数据指针 DPTR
  • 助记符 :DPTR
  • 地址:82H和83H
  • 位数:16位
  • 作用:存放一个16位的数或当做两个独立的8位寄存器,DPTR是一个16位的特殊功能寄存器,高位字节存放在DPH(83H)中,低位字节存放在DPL(82H)中。主要用于存放16位地址,以便对64KB片外的RAM地址进行寻址
I/O端口 P0~P3
  • 助记符:P0、P1、P2或P3
  • 地址:80H、90H、A0H、B0H
  • 位数:每个端口8位
  • 作用:具有位地址和字节地址,输出时,可以锁存数据;输入时,可以对数据的缓冲。

中断系统中的特殊寄存器

定时器控制寄存器 TCON 之中断
  • 助记符:TCON
  • 地址:88H
  • 位数:8位(用6位)
  • 作用:作为锁存T0和T1的溢出中断标志和外部中断0和1的中断标志,与中断请求有关。
  • 格式图:如下图所示。
8FH8EH8DH8CH8BH8AH89H88H
TF1TF0IE1IT1IE0IT0
定时器控制寄存器 SCON
  • 助记符:SCON
  • 地址:98H
  • 位数:8位(用2位)
  • 作用:作为串行口控制寄存器,低2位锁存串行口的接受中断和发送中断标志。
  • 格式图:如下图所示。
9FH9EH9DH9CH9BH9AH99H98H
TIRI
中断允许寄存器 IE
  • 助记符:IE
  • 地址:A8H
  • 位数:8位
  • 作用:决定对中断源的开发或屏蔽。
  • 格式图:如下图所示。附:第六位和第五位没有实际的意义。
AFHAEHADHACHABHAAHA9HA8H
EAESET1EX1ET0EX0
中断优先级寄存器 IP
  • 助记符:IP
  • 地址:B8H
  • 位数:8位
  • 作用:决定那些中断源为高级中断,那些中断源为低级中断。
  • 格式图:如下图所示。附:高三位没有实际的意义。
BFHBEHBDHBCHBBHBAHB9HB8H
PSPT1PX1PT0PX0

定时器

工作模式寄存器 TMOD
  • 助记符:TMOD
  • 地址:89H
  • 位数:8位
  • 格式图:如下图所示。附:TMOD不可以位寻址。
D7D6D5D4D3D2D1D0
GATEC/~TM1M0GATEC/~TM1M0
定时器控制寄存器 TCON
  • 助记符:TCON
  • 地址:88H
  • 位数:8位
  • 格式图:如下图所示。
8FH8EH8DH8CH8BH8AH89H88H
TF1TR1TF0TR0IE1IT1IE0IT0

常用的特殊功能寄存器的复位值

寄存器复位值
SP07H
P0~P3FFH
PC0000H
DPTR0000H
ACC00H
B00H
PSW00H
TH000H
TL000H
TH100H
TL100H
TMOD00H
SCON00H
  • 14
    点赞
  • 83
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值