51单片机相关寄存器
前言
单片机复习的时候对应寄存器的记忆感觉很混乱,这里进行一下整理,后面的单词是我用来辅助记忆的,可能并不是表示原本的含义。
P3口的第二功能
0 | RXD | 串行数据输入口 |
1 | TXD | 串行数据输出口 |
2 | INT0 | 外部中断0输入 |
3 | INT1 | 外部中断1输入 |
4 | T0 | 定时器0外部计数输入 |
5 | T1 | 定时器1外部计数输入 |
6 | WR | 外部数据存储器的写选通控制信号 |
7 | RD | 外部数据存储器的读选通控制信号 |
程序状态字寄存器(PSW)
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | ||
PSW | Cy | Ac | F0 | RS1 | RS0 | OV | P | D0H |
- Cy进位标志位:也可以写成C。有进位/借位,则Cy=1;否则,Cy=0.
- Ac辅助进位标志位:用于在BCD码运算时进行十进位调整,当D3位D4位产生进位或借位,Ac=1;否则,Ac=0。
- F0用户使用的标志位:可用指令来使它置“1”或清零,也可以用指令来测试该标志位,根据测试结果控制程序的流向。
- RS1,RS04组工作寄存器区选择控制位1和位0:用来选择片内RAM区中的4组工作寄存器区中的某一组为当前工作寄存区。
- OV溢出标志位:用来指示运算结果是否产生溢出。如果结果产生溢出,OV=1;否则,OV=0。
- P奇偶标志位,累加器A中“1”的个数是奇数,P=1,否则,P=0.
RS1 | RS0 | 4组寄存器 |
0 | 1 | 0区(片内RAM 00H~07H) |
0 | 1 | 1区(片内RAM 08H~0FH) |
1 | 0 | 2区(片内RAM 10H~17H) |
1 | 1 | 3区(片内RAM 18H~1FH) |
RS1、RS0与4组工作寄存器区的对应关系 |
中断源的中断入口地址
中断源 | 入口地址 |
外部中断0 | 0003H |
定时器T0 | 000BH |
外部中断1 | 0013H |
定时器T1 | 001BH |
串行口 | 0023H |
AUXR寄存器
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | ||
AUXR | WDIDLE | DISRTO | DISALE | 8EH |
- DISRTO:禁止/允许看门狗定时器(WDT)溢出时的复位输出。1:禁止WDT溢出时的复位输出;0:WDT溢出时,允许向RST引脚输出一个高电平脉冲,使单片机复位。
- WDIDLE:WDT在空闲模式下的禁止/允许位。1:禁止WDT在空闲模式下计数;0:允许WDT在空闲模式下计数。
TCON(定时器/计数器控制寄存器)
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | ||
TCON | TF1 | TR1 | TF0 | TR0 | IE1 | IT1 | IE0 | IT0 | 88H |
位地址 | 8FH | 8DH | 8BH | 8AH | 89H | 88H |
- TF:片内定时器/计数器T的溢出中断请求标志位。启动计数后,从初值开始加1计数,当计数溢出时,又硬件自动为TF置“1”,向CPU申请中断。CPU响应TF中断时,标志位由硬件自动清零,同时也可以用软件来清零。(Flag)
- IE:外部中断请求的中断请求标志位(enable)
- IT:选择外部中断请求的中断方式,0为电平触发方式,1为负跳变触发方式。
- TR:计数运行控制位。1:启动定时器/计数器计数的必要条件;0:停止。软件置1或者清零。
SCON(串行口控制寄存器)
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | ||
SCON | SM0 | SM1 | SM2 | REN | TB8 | RB8 | TI | RI | 98H |
位地址 | 9FH | 9EH | 9DH | 9CH | 9BH | 9AH | 99H | 98H |
- SM0、SM1:串行口工作方式选择位。
- SM2:多机通信控制位。
- REN:允许串行口接收位(由软件置“1”或清零),1:允许;0:禁止。
- TB8:发送的第9位数据。
- RB8:接收的第9位数据。
- TI:串行口发送中断请求标志位。当CPU将1字节的数据写入串行口的发送缓冲器SBUF时,就会启动一帧串行数据的发送,每发送完一帧串行数据后,硬件把TI中断请求标志位自动置“1”,发送之后需要在中断服务程序中用指令对其清零。TI必须由软件清零。(transmit)
- RI:串行口接收中断请求标志位。在串行口接收完一个串行数据帧,硬件自动把RI中断请求标志位置“1”,需要在中断服务程序中用指令对其清零。RI必须由软件清零。(receive)
SM0 | SM1 | 功能说明 |
0 | 0 | 方式0,同步移位寄存器方式(用于扩展I/O口) |
0 | 1 | 方式1,8位异步收发,波特率可变(由定时器控制) |
1 | 0 | 方式2,9位异步收发,波特率为fosc/64或fosc/32 |
1 | 1 | 方式3,9位异步收发,波特率可变(由定时器控制) |
IE(中断允许寄存器)
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | ||
IE | EA | ES | ET1 | EX1 | ET0 | EX0 | A8H | ||
位地址 | AFH | ACH | ABH | AAH | A9H | A8H |
- EA:中断允许总开关控制位。1:允许;0:屏蔽。(enable all)
- ES:串行口中断允许控制位。1:允许;0:屏蔽。(enable serial)
- ET:定时器/计数器的溢出中断允许控制位。1:允许;0:屏蔽。(enable timer)
- EX:外部中断中断允许控制位。1:允许;0:屏蔽。(enable external)
IP(中断优先级寄存器)
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | ||
IP | PS | PT1 | PX1 | PT0 | PX0 | B8H | |||
位地址 | BCH | BBH | BAH | B9H | B8H |
- PS:串行口中断优先级控制位,1:高优先级;0:低优先级。(priority serial)
- PT:定时器T中断优先级控制位,1:高优先级;0:低优先级。(priority timer)
- PX:外部中断中断优先级控制位,1:高优先级;0:低优先级。(priority external)
同级中断的查询顺序(中断级别):外部中断0>T0溢出中断>外部中断1>T1溢出中断>串行口中断。
TMOD(定时器/计数器工作方式存储器)
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | ||
TMOD | GATE | C/T | M1 | M0 | GATE | C/T | M1 | M0 | 89H |
T1方式字段 | T0方式字段 |
- GATE:门控位,1:由外中断引脚(或INT1)INT0上的电平与运行控制位TRx两个条件共同控制;0:仅由控制位TRx(x=0,1)来控制。
- M1、M0:工作方式选择位。
- C/T:计数器模式和定时器模式选择位。1:计数器工作模式,对系统时钟12分频后的内部脉冲进行计数;0:计数器工作模式,计数器对外部输入引脚T0或T1的外部买重(负跳变)计数。
M1 | M0 | 工作方式 |
0 | 0 | 方式0,为13位定时器/计数器 |
0 | 1 | 方式1,为16位定时器/计数器 |
1 | 0 | 方式2,为8位的常数自动重新装载的定时器/计数器 |
1 | 1 | 方式3:,仅适用于T0,此时T0分成2个8位计数器,T1停止计数 |
PCON
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | ||
PCON | SMOD | GF1 | GF0 | PD | IDL | 87H |
SMOD=1时要比SMOD=0时的波特率加倍。
总结
本文主要是用来区分不同寄存器的大概功能,所以不是很详细,写这个主要是给自己记忆的,所以有点水。
相关文章:

51单片机相关寄存器
前言 单片机复习的时候对应寄存器的记忆感觉很混乱,这里进行一下整理,后面的单词是我用来辅助记忆的,可能并不是表示原本的含义。 P3口的第二功能 0RXD 串行数据输入口 1TXD串行数据输出口2INT0外部中断0输入3INT1外部中断1输入4T0定时器0外部计数输入…...

二叉树进阶题目(超详解)
文章目录 前言根据二叉树创建字符串题目分析写代码 二叉树的层序遍历题目分析 写代码二叉树的层序遍历II题目分析写代码 二叉树的最近公共祖先题目分析写代码时间复杂度 优化思路优化的代码 二叉搜索树与双向链表题目分析写代码 从前序与中序遍历序列构造二叉树题目分析写代码从…...

W6100-EVB-Pico评估版介绍
文章目录 1 简介2 硬件资源2.1 硬件规格2.2 引脚定义2.3 工作条件 3 参考资料3.1 Datasheet3.2 原理图3.3 尺寸图(尺寸:mm)3.4 参考例程 4 硬件协议栈优势 1 简介 W6100-EVB-Pico是一款基于树莓派RP2040和全硬件TCP/IP协议栈以太网芯片W6100的…...

嵌入式面试准备
题目都摘于网上 嵌入式系统中经常要用到无限循环,如何用C编写死循环 while(1){}或者for(;😉 内存分区 代码区,全局区(全局变量,静态变量,以及常量),栈区,堆区 const关键…...

在Linux Docker中部署RStudio Server,实现高效远程访问
🌈个人主页:聆风吟 🔥系列专栏:网络奇遇记、Cpolar杂谈 🔖少年有梦不应止于心动,更要付诸行动。 文章目录 📋前言一. 安装RStudio Server二. 本地访问三. Linux 安装cpolar四. 配置RStudio serv…...

EternalBlue【永恒之蓝】漏洞详解(复现、演示、远程、后门、入侵、防御)内容丰富-深入剖析漏洞原理-漏洞成因-以及报错解决方法-值得收藏!
漏洞背景: 1.何为永恒之蓝? 永恒之蓝(Eternal Blue)爆发于2017年4月14日晚,是一种利用Windows系统的SMB协议漏洞来获取系统的最高权限,以此来控制被入侵的计算机。甚至于2017年5月12日, 不法分子…...

长链接与在线文件
什么是在线文件 常见的聊天工具,比如。。。微信,你可以发送一个文件给对端,即使对端不在线,这个文件也可以暂存在服务器上面,直到接收端上线消费或者超时,这个叫离线文件。与之对应的,在线文件要…...
Python内置数据类型等入门语(句)法
内置数据类型 数字(Number)关键字: int 、float、complex字符串(String)关键字:单引号,双引号 三引号都可以表示,8 种内置类型都可转为字符串类型列表(List) 关键符号 […...

ElasticSearch之RestClient笔记
1. ElasticSearch 1.1 倒排索引 1.2 ElasticSearch和Mysql对比 1.3 RestClient操作 导入依赖 <dependency><groupId>org.elasticsearch.client</groupId><artifactId>elasticsearch-rest-high-level-client</artifactId><version>7.15.…...

饥荒Mod 开发(二二):显示物品信息
饥荒Mod 开发(二一):超大便携背包,超大物品栏,永久保鲜 饥荒Mod 开发(二三):显示物品栏详细信息 饥荒中的物品没有详细信息,基本上只有一个名字,所以很多物品的功能都不知道,比如浆果吃了也不知…...
Microsoft Edge使用方法和心得
Microsoft Edge使用方法和心得 大家好,我是豪哥,一名来自杭州的Java程序员,今天我想分享一下我对Microsoft Edge的使用方法和心得。作为一名热爱编程的程序员,我发现一个高效的浏览器对于我们的工作和学习至关重要。而Microsoft …...
Kafka操作指令笔记
查堆积用命令查: ./kafka-consumer-groups.sh --bootstrap-server {kafka集群地址} --describe --group {消费组名称}bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --describe --all-groups #查看所有组别的积压情况可以通过grep、awk或其他文…...

WAVE SUMMIT+ 2023倒计时2天,传文心一言将曝最新进展!
传文心一言将曝最新进展! 亮点一:趋势引领,“扛把子”文心一言将曝新进展亮点二:干货十足,硬核低门槛开发秘籍大放送亮点三:蓄势待发,大模型赋能产业正当时亮点四:群星闪耀ÿ…...
Crow:Middlewares 庖丁解牛5 context
Crow:Middlewares 庖丁解牛4 partial_context-CSDN博客 基于partial_context再来解释context namespace detail {template<typename... Middlewares>struct partial_context : public pop_back<Middlewares...>::template rebind<partial_context>, public…...

CentOS 7 设置网络
CentOS 7 设置网络 正常情况 ①登陆进去之后使用下面的命令修改文件 echo ONBOOTyes >> /etc/sysconfig/network-scripts/ifcfg-ens33②如果是虚拟机重启后使用如下命令进行查看IP地址 ip addr注:到这里如果显示有两部分,则代表网络设置成功&a…...
装饰器模式(Decorator)
装饰器模式(Decorator Pattern)是一种结构型设计模式,用于动态地给一个对象添加额外的职责。装饰器提供了一个灵活的替代扩展功能的方案,相比继承更加灵活。 在Java中,装饰器模式通常涉及以下几个部分: 组件(Component):定义一个对象接口,可以给这些对象动态添加职责…...

关于“Python”的核心知识点整理大全34
目录 第13 章 外星人 13.1 回顾项目 game_functions.py 13.2 创建第一个外星人 13.2.1 创建 Alien 类 alien.py 13.2.2 创建 Alien 实例 alien_invasion.py 13.2.3 让外星人出现在屏幕上 game_functions.py 13.3 创建一群外星人 13.3.1 确定一行可容纳…...

设计模式--抽象工厂模式
实验4:抽象工厂模式 本次实验属于模仿型实验,通过本次实验学生将掌握以下内容: 1、理解抽象工厂模式的动机,掌握该模式的结构; 2、能够利用抽象工厂模式解决实际问题。 [实验任务]:人与肤色 使用抽象…...

浅析海博深造
文章目录 深造作用 留学种类 选专业 择校 申请流程 申请方式 深造作用 1、个人能力提升(学术专业、语言、新文化或新生活方式) 2、更好的职业发展(起点更高、结交新朋友或扩大社交圈) 3、北京上海落户优惠 4、海外居留福…...

【Hive_05】企业调优1(资源配置、explain、join优化)
1、 计算资源配置1.1 Yarn资源配置1.2 MapReduce资源配置 2、 Explain查看执行计划(重点)2.1 Explain执行计划概述2.2 基本语法2.3 案例实操 3、分组聚合优化3.1 优化说明(1)map-side 聚合相关的参数 3.2 优化案例 4、join优化4.1…...

IDEA运行Tomcat出现乱码问题解决汇总
最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…...

龙虎榜——20250610
上证指数放量收阴线,个股多数下跌,盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型,指数短线有调整的需求,大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的:御银股份、雄帝科技 驱动…...

《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》
引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...

基于Flask实现的医疗保险欺诈识别监测模型
基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施,由雇主和个人按一定比例缴纳保险费,建立社会医疗保险基金,支付雇员医疗费用的一种医疗保险制度, 它是促进社会文明和进步的…...

全球首个30米分辨率湿地数据集(2000—2022)
数据简介 今天我们分享的数据是全球30米分辨率湿地数据集,包含8种湿地亚类,该数据以0.5X0.5的瓦片存储,我们整理了所有属于中国的瓦片名称与其对应省份,方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...
Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器
第一章 引言:语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域,文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量,支撑着搜索引擎、推荐系统、…...

【JavaWeb】Docker项目部署
引言 之前学习了Linux操作系统的常见命令,在Linux上安装软件,以及如何在Linux上部署一个单体项目,大多数同学都会有相同的感受,那就是麻烦。 核心体现在三点: 命令太多了,记不住 软件安装包名字复杂&…...

Java面试专项一-准备篇
一、企业简历筛选规则 一般企业的简历筛选流程:首先由HR先筛选一部分简历后,在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如:Boss直聘(招聘方平台) 直接按照条件进行筛选 例如:…...

【MATLAB代码】基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),附源代码|订阅专栏后可直接查看
文章所述的代码实现了基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),针对传感器观测数据中存在的脉冲型异常噪声问题,通过非线性加权机制提升滤波器的抗干扰能力。代码通过对比传统KF与MCC-KF在含异常值场景下的表现,验证了后者在状态估计鲁棒性方面的显著优…...
Vite中定义@软链接
在webpack中可以直接通过符号表示src路径,但是vite中默认不可以。 如何实现: vite中提供了resolve.alias:通过别名在指向一个具体的路径 在vite.config.js中 import { join } from pathexport default defineConfig({plugins: [vue()],//…...