TMOD TCON SCON

article/2025/10/24 21:38:12

TMOD:定时器/计数器T0¦T1的方式寄存器

  方式寄存器TMOD是一个逐位定义的8位寄存器,但只能使用字节寻址的寄存器,字节地址为89H。

  其格式为:

  

TMOD结构图

  =================================================================================

  其中低四位定义定时器/计数器T0,高四位定义定时器/计数器T1,各位的说明:

  Ⅰ,GATE——门控制。

  ●GATE=1时,由外部中断引脚INT0、INT1和控制寄存器的TR0,TR1来启动定时器。

  当INT0引脚为高电平时TR0置位,启动定时器T0;

  当INT1引脚为高电平时TR1置位,启动定时器T1。

  ●GATE=0时,仅由TR0,TR1置位分别启动定时器T0、T1。

  Ⅱ,C/T——功能选择位

  置位时选择计数功能,清零时选择定时功能。

  Ⅲ,M0、M1——方式选择功能

  由于有2位,因此有4种工作方式

  ================================================================

  M1M0 工作方式 计数器模式 TMOD(设置定时器模式)

  0 0 方式0 13位计数器 TMOD=0x00

  0 1 方式1 16位计数器 TMOD=0x01

  1 0 方式2 自动重装8位计数器 TMOD=0x02

  1 1 方式3 T0分为2个8位独立计数器,T1为无中断重装8位计数器 TMOD=0x03

  ================================================================

TCON

 

  TCON(Timer Control Register)定时器/计数器控制寄存器

  TCON在特殊功能寄存器中,字节地址为88H,位地址(由低位到高位)为88H一8FH,由于有位地址,十分便于进行位操作。

  TCON的作用是控制定时器的启、停,标志定时器溢出和中断情况。

  TCON的格式如下图所示。其中,TFl,TRl,TF0和TR0位用于定时器/计数器;IEl,ITl,IE0和IT0位用于中断系统。

  各位定义如下:

  TF1:定时器1溢出标志位。当字时器1计满溢出时,由硬件使TF1置“1”,并且申请中断。进入中断服务程序后,由硬件自动清“0”,在查询方式下用软件清“0”。

  TR1:定时器1运行控制位。由软件清“0”关闭定时器1。当GATE=1,且INT1为高电平时,TR1置“1”启动定时器1;当GATE=0,TR1置“1”启动定时器1。

  TF0:定时器0溢出标志。其功能及操作情况同TF1。

  TR0:定时器0运行控制位。其功能及操作情况同TR1。

  IE1:外部中断1请求标志。

  IT1:外部中断1触发方式选择位。

  IE0:外部中断0请求标志。

  IT0:外部中断0触发方式选择位。

  TCON中低4位与中断有关,我们将在下节课讲中断时再给予讲解。由于TCON是可以位寻址的,因而如果只清溢出或启动定时器工作,可以用位操作命令。例如:执行“CLR TF0”后则清定时器0的溢出;执行“SETB TR1”后可启动定时器1开始工作(当然前面还要设置方式定)。

   定时器/计数器的初始化

  

  由于定时器/计数器的功能是由软件编程确定的,所以一般在使用定时/计数器前都要对其进行初始化,使其按设定的功能工作。初始货的步骤一般如下:

  1、确定工作方式(即对TMOD赋值);

  2、预置定时或计数的初值(可直接将初值写入TH0、TL0或TH1、TL1);

  3、根据需要开放定时器/计数器的中断(直接对IE位赋值);

  4、启动定时器/计数器(若已规定用软件启动,则可把TR0或TR1置“1”;若已规定由外中断引脚电平启动,则需给外引脚步加启动电平。当实现了启动要求后,定时器即按规定的工作方式和初值开始计数或定时)。

  下面介绍一下确定时时/计数器初值的具体方法。

  因为在不同工作方式下计数器位数不同,因而最大计数值也不同。

  现假设最大计数值为M,那么各方式下的

  最大值M值如下:

  方式0:M=213=8 192

  方式1:M=216=65 536

  方式2:M=28=256

  方式3:定时器0分成两个8位计数器,所以两个M均为256。

  因为定时器/计数器是作“加1”计数,并在计数满溢出时产生中断,因此初值X可以这样计算:

  X=M-计数值

 

 

SCON (Serial Port Control Register) 在51单片机中代表这是串口控制寄存器

  scon控制寄存器

  scon控制寄存器,它是一个可寻址的专用寄存器,用于串行数据的通信控制,单元地址是98h,其结构格式如下:

  表1 scon寄存器结构

  scon d7 d6 d5 d4 d3 d2 d1 d0

  sm0 sm1 sm2 ren tb8 rb8 ti ri

  位地址 9fh 9eh 8dh 9ch 9bh 9ah 99h 98h

  各控制位功能介绍如下:

  (1).sm0、sm1:串行口工作方式控制位。

  sm0,sm1 工作方式

  00 方式0

  01 方式1

  10 方式2

  11 方式3

  (2).sm2:多机通信控制位。

  多机通信是工作于方式2和方式3,sm2位主要用于方式2和方式3。接收状态,当串行口工作于方式2或3,以及sm2=1时,只有当接收到第9位数据(rb8)为1时,才把接收到的前8位数据送入sbuf,且置位ri发出中断申请,否则会将接受到的数据放弃。当sm2=0时,就不管第位数据是0还是1,都得将数据送入sbuf,并发出中断申请。即此时ri是否置位由sm2和rb8共同决定。

  工作于方式0时,sm2必须为0。

  (3).ren:允许接收位。

  ren用于控制数据接收的允许和禁止,ren=1时,允许接收,ren=0时,禁止接收。

  (4).tb8:发送接收数据位8。

  在方式2和方式3中,tb8是要发送的——即第9位数据位。在多机通信中同样亦要传输这一位,并且它代表传输的地址还是数据,tb8=0为数据,tb8=1时为地址。

  (5).rb8:接收数据位8。

  在方式2和方式3中,rb8存放接收到的第9位数据,用以识别接收到的数据特征。

  (6).ti:发送中断标志位。

  可寻址标志位。方式0时,发送完第8位数据后,由硬件置位,其它方式下,在发送或停止位之前由硬件置位,因此,ti=1表示帧发送结束,ti可由软件清“0”。

  (7).ri:接收中断标志位。

  可寻址标志位。接收完第8位数据后,该位由硬件置位,在其他工作方式下,该位由硬件置位,ri=1表示帧接收完成。

  在串口中断处理时,ti,ri都需要软件清"0",硬件置位后不可能自动清0,此外,在进行缓冲区操作时,需要es=0,以防止中断出现。

 

 


http://chatgpt.dhexx.cn/article/43IpP794.shtml

相关文章

单片机波特率不加倍c语言,51单片机串口通讯为什么给T1附值以后芯片就默认该值为波特率,而不需要其他设置?是跟PCON或者SCON有关吗...

51单片机串口通讯为什么给T1附值以后芯片就默认该值为波特率,而不需要其他设置?是跟PCON或者SCON有关吗以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 51单片机串口…

51学习第七天(二)--80c51串行口内部结构介绍--串行口控制寄存器SCON--特殊功能寄存器PCON///80c51的串行口工作方式--波特率计算-串口使用之前的初始化

学习串行口时,感觉挺复杂得 ,但是进入代码之后感觉还行,所以说还是得多练习实践。 2.80c51的串行口结构 2.1、内部结构介绍 AT89S51单片机串行口的内部结构如下图所示。它有两个物理上独立的接收、发送缓冲器SBUF(属于特殊功能…

MOD、SCON、PCON寄存器的配置

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

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浏览器成功【🆗】 大家可以体会一下&…