复习单片机:定时器/计数器部分(内含:1.51 单片机定时器原理 +2.51 单片机定时/计数器结构+3.定时器配置+4.代码部分+5.实验现象)

news/2024/5/1 16:58:43/文章来源:https://blog.csdn.net/wo12369874/article/details/126921093
1.51 单片机定时器原理
STC89C5X 单片机内有两个可编程的定时/计数器 T0、T1 和一个特殊功能定
时器 T2。定时/计数器的实质是加 1 计数器(16 位),由高 8 位和低 8 位两
2个寄存器 THx 和 TLx 组成。
它随着计数器的输入脉冲进行自加 1,也就是每来一
个脉冲,计数器就自动加 1,当加到计数器为全 1 时,再输入一个脉冲就使计数
器回零,且计数器的溢出使相应的中断标志位置 1,向 CPU 发出中断请求(定时
/计数器中断允许时)。如果定时/计数器工作于定时模式,则表示定时时间已到;
如果工作于计数模式,则表示计数值已满。可见,由溢出时计数器的值减去计数
初值才是加 1 计数器的计数值。
2.51 单片机定时/计数器结构(TMOD+TCON)
上图中的 T0 和 T1 引脚对应的是单片机 P3.4 和 P3.5 管脚。51 单片机定时/ 计数器的工作由两个特殊功能寄存器控制。TMOD 是定时/计数器的工作方式寄存 器,确定工作方式和功能;TCON 是控制寄存器,控制 T0、T1 的启动和停止及 设置溢出标志。
工作方式寄存器 TMOD
工作方式寄存器 TMOD 用于设置定时/计数器的工作方式,低四位用于 T0,高
四位用于 T1。其格式如下:
GATE 是门控位, GATE=0 时,用于控制定时器的启动是否受外部中断源信号
的影响。只要用软件使 TCON 中的 TR0 或 TR1 为 1,就可以启动定时/计数器工作;
GATA=1 时,要用软件使 TR0 或 TR1 为 1,同时外部中断引脚 INT0/1 也为高电平
时,才能启动定时/计数器工作。即此时定时器的启动条件,加上了 INT0/1 引脚
为高电平这一条件。
C/T :定时/计数模式选择位。C/T =0 为定时模式;C/T =1 为计数模式。
M1 M0:工作方式设置位。定时/计数器有四种工作方式。

控制寄存器 TCON 

TF1(TCON.7):T1 溢出中断请求标志位。T1 计数溢出时由硬件自动置 TF1
为 1。CPU 响应中断后 TF1 由硬件自动清 0。T1 工作时,CPU 可随时查询 TF1 的
状态。所以,TF1 可用作查询测试的标志。TF1 也可以用软件置 1 或清 0,同硬
件置 1 或清 0 的效果一样。
TR1(TCON.6):T1 运行控制位。TR1 置 1 时,T1 开始工作;TR1 置 0 时,
T1 停止工作。TR1 由软件置 1 或清 0。所以,用软件可控制定时/计数器的启动
与停止。
TF0(TCON.5):T0 溢出中断请求标志位,其功能与 TF1 类同。
TR0(TCON.4):T0 运行控制位,其功能与 TR1 类同。
51 单片机定时/计数器的工作方式(4种,重要的是方式1和2,此处只介绍1和2)
  方式 1
方式 1 的计数位数是 16 位,由 TL0 作为低 8 位,TH0 作为高 8 位,组成了
16 位加 1 计数器。其结构图如下所示:

计数初值与计数个数的关系为:X=2的16次方-N。

   方式 2
方式 2 为自动重装初值的 8 位计数方式。工作方式 2 特别适合于用作较
精确的脉冲信号发生器。其结构图如下所示:

计数初值与计数个数的关系为:X=2的8次方-N。

3.定时器配置

①对 TMOD 赋值,以确定 T0 和 T1 的工作方式,如果使用定时器 0 即对 T0 配
置,如果使用定时器 1 即对 T1 配置。
②根据所要定时的时间计算初值,并将其写入 TH0、TL0 或 TH1、TL1。
③如果使用中断,则对 EA 赋值,开放定时器中断。
④使 TR0 或 TR1 置位,启动定时/计数器定时或计数。
这里以定时器 0 为例介绍配置定时器工作方式 1、设定 1ms 初值,开启定时
器计数功能以及总中断,如下:
void time0_init(void)
{
TMOD|=0X01;//选择为定时器 0 模式,工作方式 1
TH0=0XFC; //给定时器赋初值,定时 1ms
TL0=0X18;
ET0=1;//打开定时器 0 中断允许
EA=1;//打开总中断
TR0=1;//打开定时器
}
4.代码如下:

#include "reg52.h"

typedef unsigned char u8;
typedef unsigned int u16;

sbit LED1=P2^0;

void delay_10us(u16 ten_us)
{
    while(ten_us--);
}

//定时器0中断配置
void time0_init(void)
{
    //选择为定时器0模式,工作方式1
//0X01表示TMOD的第四位为0001,
    //第一个0表示不需要外部中断,
    //第二个0表示工作在定时模式,
//第三个0,第四个1表示M1==0,M0==1(TMOD表)
    //M1==0,M0==1表示16位定时器
    //或运算表示TMOD=TMOD|0x01
    TMOD|=0x01;
    TH0=0XFC;//给定时器赋初值,定时 1ms
    TL0=0X18;
    ET0=1;//打开定时器 0 中断允许
    EA=1;//打开总中断
    TR0=1;//打开定时器
}

void main()
{
    time0_init();
    while(1)
    {
        ;
    }
}

//定时器 0 中断函数
void time0() interrupt 1
{
    static u16 i;
    TH0=0XFC;
    TL0=0X18;
    i++;
    if(i==1000)
    {
        i=0;
        LED1=!LED1;
    }
}

 5.实验现象:

使用 USB 线将开发板和电脑连接成功后(电脑能识别开发板上 CH340 串口),
把编译后产生的.hex 文件烧入到芯片内,实现现象如下:当 D1 指示灯间隔 1s
闪烁。

注:此章必须掌握原理,否则只背会代码是事倍功半的

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_9839.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

初识kotlin(初用kotlin一时爽、一直用一直爽)

kotlin历程 2011年7月,JetBrains推出Kotlin项目,这是一个面向JVM的新语言2012年2月,JetBrains以Apache 2许可证开源此项目2016年2月15日,Kotlin v1.0发布。这被认为是第一个官方稳定版本,并且JetBrains已准备从该版本…

【云原生】zookeeper + kafka on k8s 环境部署

文章目录一、概述二、Zookeeper on k8s 部署1)添加源2)修改配置3)开始安装4)测试验证5)Prometheus监控6)卸载三、Kafka on k8s 部署1)添加源2)修改配置3)开始安装4&#…

pytorch线性代数的基本操作

线性代数的基本操作 标量由只有一个元素的张量表示 import torch xtorch.tensor([3.0]) ytorch.tensor([2.0]) xy,x*y,x/y,x**y向量视为标量值的组成 通过张量的索引来访问任一元素 xtorch.arange(4) x,x[3] #张量的长度 len(x) #张量的形状 x.shape对称矩阵 AAT Btorch.ten…

一文看懂线性回归(保姆级别 含源码)

来源: AINLPer 微信公众号(每日论文干货分享!!) 编辑: ShuYini 校稿: ShuYini 时间: 2022- 9 -18 引言 最近作者网上看了很多关于线性回归的帖子,个人感觉比较乱,所以打算自己整理一版,希望能把…

(41)STM32——外部SRAM实验笔记

目录 学习目标 成果展示 硬件知识 特点 功能框图 读时序 ​编辑写时序 FSMC驱动 寄存器 闪存片选控制寄存器 硬件 配置 代码 总结 学习目标 今天我们要学习的是有关外部SRAM实验,其实F4内部也是有一个19&#x…

本周大新闻|索尼PS VR2体验首次公开;Meta Quest Pro开箱视频曝光

本周大新闻,AR方面,沃尔玛App加入AR试穿功能;谷歌搜索AR新增60个行星、卫星模型;Niantic宣布与漫威娱乐合作打造新款LBS AR游戏;AR眼镜ActiveLook打通Apple Watch。 VR方面,索尼PS VR2体验首次公开&#x…

2022年笔试知识总结展望

应届生的笔试知识总结,温故而知新,看看知识加深印象,希望学得更好,有个好结果。 目录 1. TCP的拥塞控制 2. position属性 3. [‘1‘, ‘2‘, ‘3‘].map(parseInt) 输出结果 4. 排序算法的稳定性分析 1)稳定的排…

事件研究法与其应用(2)---Excel实操步骤

我们借着学习事件研究法的应用,可以用Excel和Stata等软件进行操作。 今天这主要是利用EXCEL计算累积异常收益率。 在正式开展实操之前,我们先回顾一下事件研究法的步骤(尤其是我们写作论文的时候): 事件研究法计算步骤: 1. 获取数据,定义事件期 2.计算估计期间个股与市…

npm yarn 报错

目录npm yarn报错yarn: 无法加载文件 npm yarn报错 yarn: 无法加载文件 win10系统,yarn : 无法加载文件 C:\Users\丽丽小可爱\AppData\Roaming\npm\yarn.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 ... 导致此错误的原因是,PowerShell 执行策略,默认设置为Rest…

JSON 数据类型转换工具

简介 本文介绍一款数据类型转换工具,可以将JSON格式数据转换成YAML、MYSQL、XML、TOML、JavaScript等数据类型。 背景 在日常的开发工程中,我们经常使用JSON表达数据,但有些时候我们需要使用YAML、JavaScript等语言表达数据。因此&#xf…

HTML + HTTP请求 +CSS知识点

文章目录HTML1.HTML元素2.HTML页面3.常见元素1)文本2)多媒体3)表单作用与语法常见表单项案例体验4.HTTP请求1)请求组成2) 请求方式与数据格式get 请求示例post 请求(默认格式)示例json 请求&…

Python必知必会 os 模块详解

文章目录Python os 模块os模块的常用操作os.path模块os.open()模块Python os 模块 os是“operating system”的缩写,os模块提供各种 Python 程序与操作系统进行交互的接口,使用os模块,一方面可以方便地与操作系统进行交互,另一方…

【SLAM】4李群李代数

文章目录4.1.基础群李代数的引出李代数李代数so(3)\mathfrak{so}(3)so(3)李代数se(3)\mathfrak{se}(3)se(3)4.2.指数与对数映射4.2.1.SO(3)SO(3)SO(3)指数映射4.2.2.SE(3)SE(3)SE(3)的指数映射4.3.李代数求导与扰动模型4.3.1.BCH公式&近似形式4.3.2.李代数求导4.3.4.扰动模…

redis下载与安装(Linux环境下)

用的是阿里云的深度os Linux系统 一,下载 键入命令: wget http://download.redis.io/releases/redis-6.2.1.tar.gz 检查时候有gcc环境 gcc --version 若有gcc环境会有类似于下图的提示 没有则执行: yum install gcc 下载完毕之后&…

JavaEE基础知识

文章目录前言计算机的基本组成CPUCPU运行程序的过程CPU的构造操作系统操作系统功能常见的操作系统操作系统的具体组成操作系统的进程管理(重点)操作系统安排程序进程PCB(进程管理块)进程调度关于进程的几个属性虚拟地址空间线程(thread [θred] )前言 之前已经学过很多的知识,…

企业薪资系统

开发工具(eclipse/idea/vscode等): 数据库(sqlite/mysql/sqlserver等): 功能模块(请用文字描述,至少200字):

PostgreSQL - 基于pg_basebackup实现主从流复制

PostgreSQL - 基于pg_basebackup实现主从流复制1 数据库节点2 安装PostgreSQL2.1 创建postgres用户2.2 安装PostgreSQL3 配置主节点4 配置从节点5 验证主从同步1 数据库节点 节点ip节点角色192.168.163.133主节点192.168.163.134从节点 2 安装PostgreSQL 2.1 创建postgres用户…

计算机网络——数据链路层(滑动窗口协议: 选择重传)(点对点协议 PPP)

目录 滑动窗口协议: 选择重传 选择重传协议 选择重传协议 点对点协议 PPP PPP 的主要特点 PPP 协议有三个组成部分 PPP 协议的帧格式 PPP 有一个 2 个字节的协议字段 透明传输问题 PPP 的字符填充 PPP 的工作状态 滑动窗口协议: 选择重传 选择重传协议 GBN相对简单&a…

【周末闲谈】谈谈数学转码这一年来的体会与反思

——我们走了太远,以至于忘了为何出发 前言 笔者本科读的是数学专业,就是每天和数学分析、高等代数、概率论、随机过程等等这些理论打交道的专业,这个专业出来工作好像一般有两个方向就是金融和计算机,我选择了计算机方向。主要…

2022 第五届 浙江省大学生网络与信息安全竞赛技能赛 预赛 Writeup,5题

文章目录1、Web:nisc_easyweb2、Web:nisc_学校门户网站3、Web:吃豆人吃豆魂4、MISC:好怪哦5、RE:ManyCheck1、Web:nisc_easyweb 题目描述: 打开网站,是一个php的初始页面。 思路…