MOD、SCON、PCON寄存器的配置

article/2025/10/24 21:33:08

                                                  转载


 


TMOD控制寄存器 


TMOD是定时器、计数器模式控制寄存器,它是一个逐位定义的8为寄存器,但只能使用字节寻址。 
其各位是: 
 
由上图我们就可以看出,这个寄存器控制了两个定时器/计数器 
寄存器的高四位控制定时器1,低四位控制定时器0 
GATE:门控制 
GATE=0: 仅由TR0,TR1置位分别启动定时器T0、T1 
GATE=1:由外部中断引脚INT0、INT1来启动定时器T0、T1 
当INT0引脚为高电平时TR0置位,启动定时器T0; 
当INT1引脚为高电平时TR1置位,启动定时器T1 
C/T:功能选择位 
C/T=0:定时功能 
C/T=1:计数功能 
M1、M0:工作方式选择位 


 
如果我们同时使用定时器1和定时器0的时候,一定要注意对他们初始化的时候,不能够相互影响,即当我们配置好TMOD的低四位之后,再去配值TMOD的高四位的时候,一定不能破坏低四位的数据。

 

SCON控制寄存器 


串行口控制寄存器,它用于控制串行通信的方式选择、接收和发送,指示串口的状态。SCON既可以字节寻址,也可以位寻址。 
它的各位为: 


 
SM0、SM1:串行口工作方式控制位 
其中我们在初始化串口通信的时候,最有用的就是SM0、SM1、SM0这三位了,具体配置如下: 


 
一般情况下我们可以选择方式1。 
SM2:多机通信控制位 
多机通信是工作于方式2和方式3,即SM2主要用于方式2和方式3。当串行口工作于方式2或3,以及SM2=1时,只有当接收到第9位数据(RB8)为1时,才把接收到的前8位数据送入SBUF,且置位RI发出中断申请,否则会将接收到的数据放弃。当SM2=0时,就不管第9位数据是0还是1,都会将数据送入SBUF,并发出中断申请。 
REN:允许接受位(一般配置为1) 
REN=1:允许接收 
REN=0:禁止接收 
TB8:发送数据位8(一般配置为0) 
在方式2和方式3中,TB8是要发送的——即第9位数据位。在多机通信中同样亦要传输这一位,并且它代表传输的地址还是数据,TB8=0为数据,TB8=1时为地址。 
RB8:接收数据位8(一般配置为0) 
在方式2和方式3中,RB8存放接收到的第9位数据,用以识别接收到的数据特征。 
TI:发送中断标志位 
可寻址标志位。方式0时,发送完第8位数据后,由硬件置位,其它方式下,在发送或停止位之前由硬件置位,因此,TI=1表示帧发送结束,TI可由软件清“0”。 
RI:接收中断标志位 
可寻址标志位。接收完第8位数据后,该位由硬件置位,在其他工作方式下,该位由硬件置位,RI=1表示帧接收完成。

在配置串口初始化程序的时候,我们一般只用配置高四位,如果我们选择工作方式1,那么就是SCON=0X50;(SM0=0,SM1=1,SM2=0,REN=1)

 

PCON控制寄存器 


PCON全称Power Control Register,即功率控制寄存器,我们在配置51单片机中的波特率的时候会用到它,其各位如下 
 
系统复位默认为SMOD=0。当用51单片机的定时器2产生波特率时,波特率不受SMOD的影响。 
各位的定义: 
SMOD: 
SMOD=0:串口方式1,2,3时,波特率正常 
SMOD=1:串口方式1,2,3时,波特率加倍 
LVDF:低电压检测标志位,同时也是低电压检测中断请求标志位 
GF1、GF0:两个通用工作标志位,用户可以自由使用 
PD:掉电模式设定位 
PD=0:单片机处于正常工作状态 
PD=1:单片机进入掉电模式可由外部中断或硬件复位模式唤醒,进入掉电模式后,外部晶振停振,CPU、定时器、串行口全部停止工作,只有外部中断工作。在该模式下,只有硬件复位和上电能够唤醒单片机。 
IDL:空闲模式设定位 
IDL=0:单片机处于正常工作状态 
IDL=1:单片机进入空闲(Idle)模式,除CPU不工作外,其余仍继续工作,在空闲模式下可由任一个中断或硬件复位唤醒。

一般我们只用到了SMOD这一位,当我们选择波特率加倍的时候,就配置为PCON=0X80;
————————————————
版权声明:本文为CSDN博主「逸凌123」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_36554582/article/details/82695138


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

相关文章

C51串口的SCON寄存器及工作方式

串行口控制寄存器SCON 它用于定义串行口的工作方式及实施接收和发送控制。字节地址为98H,其各位定义如下表: 其中fosc为晶振频率 SM2:多机通讯控制位。在方式0时,SM2一定要等于0。在方式1中,当(SM2&…

TMOD、TCON、SCON、PCON、SBUF寄存器说明

TMOD:定时器/计数器工作方式寄存器 TCON:定时器/计数器控制寄存器 SCON:串行口控制寄存器 串行口控制寄存器SCON决定串行口通信工作方式,控制数据的接收和发送,并标示串行口的工作状态等,其位格式为&#…

51单片机定时器TMOD与TCON、SCON

51单片机中断级别 中断源 默认中断级别 序号(C语言用) INT0---外部中断0 最高 0 T0 ---定时器/计数器0中断 第2 1 INT1---外部中断1 第3 …

2021-912--51单片机串口通信--SCON方式1

计算机的通信分为:串行通信和并行通信 串行通信分为:异步通信和同步通信 异步通信:发送设备与接受设备有各自的时钟,通信时双方的时钟尽量保持一致, 以字符为单位进行传输, 字符与字符间的时间间隔是任意…

串行口控制寄存器(SCON)(转载自百度文库)

SCON是MCS-51单片机的一个可位寻址的专用寄存器,用于串行数据通信的控制。单元地址为98H,位地址为98H~9FH。寄存器的内容及位地址表示如下: 位地址 9FH 9EH 9DH 9CH 9BH 9AH 99H 98H 位符号 SM0 SM1 SM2 …

51/STC12单片机SCON,PCON,TMOD寄存器定义及功能

串口工作方式寄存器SCON 串口工作方式寄存器SCON,SCON(Serial Control Register)串行口控制寄存器,用于控制串行通信的方式选择、接收和发送,指示串口的状态。SCON既可以字节寻址,也可以位寻址,其字节地址…

TMOD、SCON、PCON寄存器的配置

TMOD控制寄存器 TMOD是定时器、计数器模式控制寄存器,它是一个逐位定义的8为寄存器,但只能使用字节寻址。 其各位是: 由上图我们就可以看出,这个寄存器控制了两个定时器/计数器 寄存器的高四位控制定时器1,低四位…

JDK 高版本没有VisualVM

VisualVM 是一款免费的,集成了多个 JDK 命令行工具的可视化工具,提供强大的分析能力,对 Java 应用程序做性能分析和调优。 在高版本JDK(大于1.8或后期更新的1.8版本)中已经不会再自动集成 VisualVM 1、下载&#xff…

visualvm下载和安装

visualvm下载和安装 官网下载地址: https://visualvm.github.io/index.html 电脑登录不上,可以使用手机打开, 附带我下载好的visualvm2.0.3版本的网盘地址:(适用于Jdk1.8) 链接:https://pan…

VisualVM的配置和使用

下载VisualVM:官网下载页面 解压缩后进入到etc目录 修改visualvm.conf配置文件 需要注意: 我当时使用的visualVM是2.0.3这个版本的只支持jdk8以前的,我本地配置的环境变量是jdk14,但是又不想配置jdk8作为环境变量,需…

Mac 系统下VisualVM的安装

1、preferences----plugins搜索插件visualvm 插件,点击下载。 2、下载完成后,在idea上配置visualvm参数:preferences----other settings----visualvm launcher其中第一个参数是在jdk中visualvm.exe;第二个参数是jdk的位置 3、按理说配置成功后重启idea,…

VisualVM 使用心得

JDK中有个好用的工具“VisualVM”可以实时可视化的查看到java程序内存变化情况,对于理解GC和java内存管理还是有很大帮助的,以前看论坛看帖子讲到java内存管理真是各说纷纭啊!有人说“JVM的内存分为两块堆和栈”,还有人说"JV…

Mac上安装VisualVM

首先去下载 官网: https://visualvm.github.io/index.html然后访达找到应用程序,右键VisualVM显示包内容,找到: /Applications/VisualVM.app/Contents/Resources/visualvm/etc 下面的visualvm.conf文件 修改它 在文件最下面加…

Mac版VisualVM启动提示You are running VisualVM using Java Runtime Environment ( JRE ) . Please use

今天更新了VisualVM 2.0.5,启动的时候提示找不到jdk引用,于是到包内部的visualvm.conf中修改jdk引用地址。 visualvm.conf的路径 /Applications/VisualVM.app/Contents/Resources/visualvm/etc/visualvm.conf 将visualvm_jdkhome修改为类似以下的路径就…

VisualVM工具的下载及插件安装

文章目录 一.前言二.下载安装三.插件安装 一.前言 VisualVM作为GitHub的独立工具分发,并作为GraalVM的可选组件分发。两者都是具有相同功能的相同位。独立工具在任何兼容的JDK上运行,捆绑工具配置为使用主机GraalVM运行。 VisualVM也作为Java VisualVM…

IDEA-集成VisualVM插件,启动Java VisualVM

起因: 我忘了我之前起程序去关联Java VisualVM是咋配的了今天百度搜的时候意外发现idea可以直接起,只需要安装VisualVM插件然后启动Java VisualVM 安装VisualVM插件 路径: File->Setting->Plugins 操作:在marketplace里搜关键词VisualVM,然后点…

VisualVM【实践 01】工具VisualVM下载使用及插件Visual GC示例说明HashMap初始化容量initialCapacity的影响(源码及visualvm_215.zip分享)

VisualVM【官网】很难下载,懂得都懂 😢,简单叙述一下下载的过程: 使用PC各种浏览器失败【❌】使用Android手机多个浏览器失败【❌】使用IOS手机多个浏览器,仅有Safari浏览器成功【🆗】 大家可以体会一下&…

深入理解Java虚拟机——VisualVM工具的下载及安装

目录 一、VisualVM工具的概述二、VisualVM工具的下载地址如下:三、VisualVM工具的安装步骤: 一、VisualVM工具的概述 VisualVM(All-in-One Java Troubleshooting Tool)是到目前为止随JDK发布的功能最强大的运行监视和故障处理程序…

vs = VirtualService

VirtualService 您是正确的。我混淆了Kubernetes中的资源类型。"vs"是Istio服务网格中的资源类型,代表Virtual Service(虚拟服务)。 Virtual Service是Istio中的一种路由规则,它定义了如何将请求路由到服务的不同版本…

深入理解java虚拟机(十一)VisualVM:多合-故障处理工具

文章目录 前言一、VisualVM兼容范围与插件安装二、生成、浏览堆转储快照三、分析程序性能四、BTrace动态日志跟踪结尾 前言 VisualVM在JDK 6 Update 7中首次发布,直到JRockit Mission Control与OracleJDK的融合工作完成之前,它都曾是Oracle主力推动的多…