文章目录

  • 片内RAM中的寄存器
      • 内容介绍
    • 低128字节片内RAM
      • 4组工作寄存器
    • 高128字节片内RAM(SFR区)
      • 部分特殊功能寄存器
        • 累加器 ACC
        • 寄存器 B
        • 程序状态寄存器 PSW
        • 栈指针 SP
        • 数据指针 DPTR
        • I/O端口 P0~P3
      • 中断系统中的特殊寄存器
        • 定时器控制寄存器 TCON 之中断
        • 定时器控制寄存器 SCON
        • 中断允许寄存器 IE
        • 中断优先级寄存器 IP
      • 定时器
        • 工作模式寄存器 TMOD
        • 定时器控制寄存器 TCON
      • 常用的特殊功能寄存器的复位值

片内RAM中的寄存器

内容介绍

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

低128字节片内RAM

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

4组工作寄存器

RS1 RS0 寄存器 片内RAM地址
0 0 第0组 00H~07H
0 1 第1组 08H~0FH
1 0 第2组 10H~17H
1 1 第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位的每个位都包含程序执行后的状态,提供程序查询或判别之用。
位地址 D7 D6 D5 D4 D3 D2 D1 D0
位名称 CY AC F0 RS1 RS2 OV - 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字节中的工作寄存器的选择。
RS1 RS0 寄存器 片内RAM地址
0 0 第0组 00H~07H
0 1 第1组 08H~0FH
1 0 第2组 10H~17H
1 1 第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的中断标志,与中断请求有关。
  • 格式图:如下图所示。
8FH 8EH 8DH 8CH 8BH 8AH 89H 88H
TF1 TF0 IE1 IT1 IE0 IT0

定时器控制寄存器 SCON

  • 助记符:SCON
  • 地址:98H
  • 位数:8位(用2位)
  • 作用:作为串行口控制寄存器,低2位锁存串行口的接受中断和发送中断标志。
  • 格式图:如下图所示。
9FH 9EH 9DH 9CH 9BH 9AH 99H 98H
TI RI

中断允许寄存器 IE

  • 助记符:IE
  • 地址:A8H
  • 位数:8位
  • 作用:决定对中断源的开发或屏蔽。
  • 格式图:如下图所示。附:第六位和第五位没有实际的意义。
AFH AEH ADH ACH ABH AAH A9H A8H
EA ES ET1 EX1 ET0 EX0

中断优先级寄存器 IP

  • 助记符:IP
  • 地址:B8H
  • 位数:8位
  • 作用:决定那些中断源为高级中断,那些中断源为低级中断。
  • 格式图:如下图所示。附:高三位没有实际的意义。
BFH BEH BDH BCH BBH BAH B9H B8H
PS PT1 PX1 PT0 PX0

定时器

工作模式寄存器 TMOD

  • 助记符:TMOD
  • 地址:89H
  • 位数:8位
  • 格式图:如下图所示。附:TMOD不可以位寻址。
D7 D6 D5 D4 D3 D2 D1 D0
GATE C/~T M1 M0 GATE C/~T M1 M0

定时器控制寄存器 TCON

  • 助记符:TCON
  • 地址:88H
  • 位数:8位
  • 格式图:如下图所示。
8FH 8EH 8DH 8CH 8BH 8AH 89H 88H
TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0

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

寄存器 复位值
SP 07H
P0~P3 FFH
PC 0000H
DPTR 0000H
ACC 00H
B 00H
PSW 00H
TH0 00H
TL0 00H
TH1 00H
TL1 00H
TMOD 00H
SCON 00H

89C51单片机之寄存器相关推荐

  1. 单片机控制秒表C语言程序,89C51单片机秒表的设计(全文完整版)

    <89C51单片机秒表的设计.doc>由会员分享,可免费在线阅读全文,更多与<89C51单片机秒表的设计>相关文档资源请在帮帮文库(www.woc88.com)数亿文档库存里搜 ...

  2. 89c51c语言程序,89C51单片机计算器C语言程序.doc

    89C51单片机计算器C语言程序 89C51单片机[计算器]C语言程序 89C51单片机[计算器]C语言程序2010-12-15 16:54/*89C51单片机[计算器]C语言程序*/ /*P2位选P ...

  3. 89C51单片机中的中断系统

    89C51单片机中的中断系统 对于在单片机中的学习,中断系统是一难点,如果中断系统没有理解透彻,51单片机的学习就算是失败的. 首先,举例说明下什么是中断. eg.当你在家正在吃着爆米花,看着电视,突 ...

  4. 微机基础与89C51单片机部分知识

    1,微机基础知识 微机: 具有完整运算及控制能力的计算机.包括微处理器,储存器,接口适配器,输入输出设备. 微处理器: 控制器:由程序计数器,指令寄存器,指令译码器,时序发生器,操作控制器等组成,是发 ...

  5. 51单片机常用寄存器速查

    51单片机常用寄存器速查表 一 : 定时器 / 计数器方式选择 : TMOD 地址 (89H) 不可位寻址 D7 D6 D5 D4 D3 D2 D1 D0 GATE C/T M1 M0 GATE C/ ...

  6. 如何写单片机的寄存器,这篇文章带你入门。

    单片机在电学里面,属于很简单的一种器件,外表看,就是一个芯片,长着很多的脚.内部,就是一堆寄存器.不同的单片机,外部表现就是形状和引脚数量和引脚名称可能不一样,内部,就是寄存器名称不一样. 我们要做的 ...

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

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

  8. 51单片机 特殊功能寄存器(SFR) SBUF使用方法

    51单片机 特殊功能寄存器(SFR) SBUF使用方法 串行口中有两个缓冲寄存器SBUF,一个是发送寄存器,一个是接收寄存器,在物理结构上是完全独立的.它们都是字节寻址的寄存器,字节地址均为99H.这 ...

  9. 【proteus仿真】89C51单片机实现十字路口的交通灯控制系统代码

    完成以下任务:运用89C51单片机十字路口的交通灯控制系统,四组灯(红黄绿)对应十字路口的四个方向,用两位的数码管显示剩余的时间. 仿真视频: https://www.bilibili.com/vid ...

最新文章

  1. 打印合同_批量打印合同用印申请单
  2. 图标字体iconfont的使用
  3. Leetcode题库 744.寻找比目标字母大的最小字母(C实现)
  4. hihocoder-Week173--A Game
  5. 面试官不讲武德,居然让我讲讲蠕虫和金丝雀!
  6. c++从入门到精通_资料下载:从入门到精通,手把手教你学DSP
  7. B端产品中,Web端表单如何设计
  8. 【AI面试题】为什么必须在神经网络中引入非线性
  9. azure机器学习_使用Azure ML Studio的Azure机器学习简介
  10. ASP.NET状态管理详解,让你明明白白
  11. C++动态数组的创建
  12. 100个最受欢迎的机器学习课程视频
  13. CentOS安装CAS 5.3.4服务端
  14. 云计算机平台 优势,云计算平台有哪些优势
  15. 打印机共享与文件夹win10共享教程
  16. STM32WL开发之LORA产品选型
  17. Linux下C语言编程资料
  18. B站视频下载方法(4K60帧)
  19. 一招教你解决“删除:需要管理员权限才能删除的文件夹”
  20. 巧用CSS,愚人节极客式恶搞

热门文章

  1. linux的mktime函数,关于kernel_mktime 函数详解
  2. 时下国内知名的网络广告公司
  3. Jmeter 采用Jsr223和beanshell将接口获得结果写入到文件
  4. 实用英语:美国人常用的英语口语90句
  5. 圣诞节,来看看程序员的浪漫
  6. HTML5 在线新闻浏览
  7. AI > 语音识别开源项目列举
  8. 一个本科生去面试算法工程师自取其辱的故事
  9. 4.0 内核文件系统-kernel部分
  10. 【转】网页打印格式设置总结