89C51单片机之寄存器

article/2025/9/18 1:50:18

文章目录

  • 片内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组工作寄存器

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

http://chatgpt.dhexx.cn/article/Q6htxu2B.shtml

相关文章

【89c51汇编语言】51单片机结构及其原理

单片机结构及其原理 51单片机的内部结构单片机CPU控制器控制器:程序计数器:PC 控制器:数据指针寄存器:DPTR运算器累加器APSW程序状态字CY(PSW.7)进位标志AC(PSW.6)辅助进位标志RS1和…

89c51单片机

89c51是一款很大众化的入门级单片机,ATMEL、NXP、STC、和SST等公司生产的与80c51兼容低功耗、高性能8位89c51/s51单片机具有比80c31更丰富的外设资源。 89c51/s51单片机芯片内包括: ①一个8位的80c51微处理器(CPU) ②片内256字…

关于会话(session),你应该了解这些

一、什么是会话 会话Session代表的是客户端与服务器的一次交互过程,这个过程可以是连续也可以是时断时续的。在Servlet中(jsp),一旦用户与服务端交互,服务器tomcat就会为用户创建一个session,同时前端会有…

ZooKeeper客户端源码(一)——向服务端建立连接+会话建立+心跳保持长连接

首发CSDN:徐同学呀,原创不易,转载请注明源链接。我是徐同学,用心输出高质量文章,希望对你有所帮助。 一、从ZooKeeper实例初始化开始 ZooKeeper 提供了原生的客户端库,虽然不好用,但是能够更好…

会话劫持安全攻击

什么是会话劫持? TCP 会话劫持是对受保护网络上的用户会话的安全攻击。会话劫持最常见的方法称为 IP 欺骗,攻击者使用源路由 IP 数据包将命令插入网络上两个节点之间的活动通信中,并将自己伪装成经过身份验证的用户之一。这种类型的攻击是可能…

HTML sessionStorage会话存储

sessionStorage会话存储 sessionStorage 是HTML5新增的一个会话存储对象,用于临时保存同一窗口(或标签页)的数据,在关闭窗口或标签页之后将会删除这些数据。本篇主要介绍 sessionStorage(会话存储)的使用方式。包括添加、修改、删除等操作。 目录 1. 介…

【windows】会话(Session)、窗口站(WindowsStation)、桌面、窗口

序 一个系统可以同时登录多个用户(包括远程用户登录)(多用户系统)。 一个用户拥有一个会话(远程用户被称为远程会话)。 一个会话拥有多个工作站和窗口。只能拥有一个交互式工作站(Winsta0)。(Window Station 0…

WindTerm导出会话

WindTerm的session配置并无法被适用于其他软件中,所有的session保存在WindTerm安装路径下的profiles文件夹内,如果需要更新版本或回退,将所安装的版本覆盖即可,或是将profiles复制于新路径下。 图标闪烁设置、会话保存-导入导出 …

Spring Security中的会话【Session】管理与防御以及会话的并发控制

众所周知,HTTP本身是没有任何关于当前用户状态的内容,也就是两个HTTP请求之间是没有任何的关联可言,用户在和服务器交互的过程中,站点无法确定是哪个用户访问,也因此不能对其提供相应的个性化服务。Session的诞生就是为…

web基础:会话

一、会话概述 HttpSession对象可以保存跨同一个客户多个请求的会话状态。即与一个特定客户的整个会话期间,HttpSession会持久存储。对于会话期间客户做的所有请求,从中得到的所有信息,都可以使用HttpSession对象保存。 会话的工作方式&#…

会话固定攻击(session fixation attack)及解决办法

1 Cookie 的工作过程 Cookie的传递用到了两个字段: 请求头字段Cookie和响应头字段Set-Cookie。 当用户浏览器第一次访问服务器的时候,服务器肯定是不知道他的身份的。所以,就要创建一个独特的身份识别数据,格式是"keyvalue"&…

2022年会话推荐综述

title: 2022年会话推荐综述 最近对于会话推荐有了新的兴趣 文章题目: A Survey on Session-based Recommender Systems 0. 前言 提供了一个统一的框架来对SBRSs研究进行分类 SBRS的统一问题陈述,其中SBRS建立在正式概念之上:用户、项目、…

会话保持原理

1. 什么是会话保持? 会话保持是负载均衡最常见的问题之一,也是一个相对比较复杂的问题。会话保持有时候又叫做粘滞会话(Sticky Sessions)。会话保持是指在负载均衡器上的一种机制,可以识别客户端与服务器之间交互过程的关连性,在…

linux会话session

linux会话 什么是linux session 我们常见的 Linux session 一般是指 shell session。Shell session 是终端中当前的状态,在终端中只能有一个 session。 当我们打开一个新的终端时,总会创建一个新的 shell session。这表明会话是我们和shell交互的一个过…

会话令牌写入URL

目录 一. 漏洞描述 二. 漏洞修复 一. 漏洞描述 会话令牌即Token,关于Token,传送门-》如何理解Session、Cookie与Token 。 用户在进行get请求将用户的令牌写入url,导致中间人攻击获取令牌进行登陆。如下 二. 漏洞修复 禁止将令牌写入url

PDU会话流程

1.PDU会话的概念 1.1概述 5G系统的一个关键功能:为UE提供一个到达DN的连接会话管理功能(SMF)职责: 设置UE到DN的连接对该连接的用户面进行管理 5G系统的设计目标是支持大量的5G案例: 支持不同的PDU类型多个可选的…

会话固定漏洞

目录 漏洞原理 漏洞检测 漏洞利用 漏洞修复 漏洞原理 Session 是应用系统对浏览器客户端身份认证的属性标识,在用户退出应用系统时,应将客户端 Session 认证属性标识清空。如果未能清空客户端 Session 标识,在下次登录系统时&#xff0c…

《Oracle Java EE编程自学和面试指南》09-02:HttpSession接口

深入了解IT/互联网行业及岗位,请参阅通用IT/互联网岗位招聘计划(最新全岗版)。 深入了解职业晋升及学习路线,请参阅最优职业晋升路线和课程学习指南(最新全栈版)。 内容导航: 前言1、HttpSessi…

【LWIP的mDNS】

一.mdns 1.什么是mdns? mDNS协议适用于局域网内没有DNS服务器时的域名解析,设备通过组播的方式交互DNS记录来完成域名解析,约定的组播地址是:224.0.0.251,端口号是5353 主要用于在同一局域网内,…

DNS DDNS NBNS mDNS LLMNR LLDPDU SSDP协议

DNS DNS只是提供了域名和IP地址之间的静态对应关系,当IP地址发生变化时,DNS无法动态的更新域名和IP地址之间的对应关系,从而导致访问失败。但是DDNS系统是将用户的动态IP地址映射到一个固定的域名解析服务上 DDNS DDNS用来动态更新DNS服务…