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…...
谷歌浏览器插件
项目中有时候会用到插件 sync-cookie-extension1.0.0:开发环境同步测试 cookie 至 localhost,便于本地请求服务携带 cookie 参考地址:https://juejin.cn/post/7139354571712757767 里面有源码下载下来,加在到扩展即可使用FeHelp…...
业务系统对接大模型的基础方案:架构设计与关键步骤
业务系统对接大模型:架构设计与关键步骤 在当今数字化转型的浪潮中,大语言模型(LLM)已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中,不仅可以优化用户体验,还能为业务决策提供…...
Android Wi-Fi 连接失败日志分析
1. Android wifi 关键日志总结 (1) Wi-Fi 断开 (CTRL-EVENT-DISCONNECTED reason3) 日志相关部分: 06-05 10:48:40.987 943 943 I wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid44:9b:c1:57:a8:90 reason3 locally_generated1解析: CTR…...
从WWDC看苹果产品发展的规律
WWDC 是苹果公司一年一度面向全球开发者的盛会,其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具,对过去十年 WWDC 主题演讲内容进行了系统化分析,形成了这份…...
Debian系统简介
目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版ÿ…...
基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容
基于 UniApp + WebSocket实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...
最新SpringBoot+SpringCloud+Nacos微服务框架分享
文章目录 前言一、服务规划二、架构核心1.cloud的pom2.gateway的异常handler3.gateway的filter4、admin的pom5、admin的登录核心 三、code-helper分享总结 前言 最近有个活蛮赶的,根据Excel列的需求预估的工时直接打骨折,不要问我为什么,主要…...
华为OD机试-食堂供餐-二分法
import java.util.Arrays; import java.util.Scanner;public class DemoTest3 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint a in.nextIn…...
C++ 基础特性深度解析
目录 引言 一、命名空间(namespace) C 中的命名空间 与 C 语言的对比 二、缺省参数 C 中的缺省参数 与 C 语言的对比 三、引用(reference) C 中的引用 与 C 语言的对比 四、inline(内联函数…...
C# 类和继承(抽象类)
抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...
