51单片机第23步_定时器1工作在模式0(13位定时器)

重点学习51单片机定时器1工作在模式0的应用

在51单片机中,定时器1工作在模式0,它和定时器0一样,TL1占低5位,TH1占高8位,合计13位,也是向上计数

1、定时器1工作在模式0

1)、定时器1工作在模式0的框图:

2)、定时器1输入时钟:

TMOD寄存器的bit6(C/T)=0,定时器输入时钟为CPU时钟经过12分频后得到的。

TMOD寄存器的bit6(C/T)=1,定时器输入时钟为来自T1引脚(P3.5),我们也可以理解为计数脉冲。

3)、定时器1启动:

、当TMOD寄存器的bit7(GATE)=0时,将TR1=1,则会启动定时器1

、当TMOD寄存器的bit7(GATE)=1时,给INT1引脚(P3.3)施加高电平,同时TR1=1,则会启动定时器1

4)、定时器1溢出标志TF1建立的条件

TH1和TL1从装载的初始值开始计数,直到TH1和TL1从0x1FFF变成0x2000时产生溢出,此时定时器1的溢出标志TF1=1;

5)、定时器1产生中断条件

定时器1的溢出标志TF1=1

定时器1的中断使能位ET1=1

总中断使能位EA=1

只有这3个条件同时满足,定时器1才会进入到中断服务程序。

6)、定时器1工作在模式0的初始化程序

#define T1_Load_Value       (0x2000-3000)  //配置T0为3000us中断一次;

//函数功能: 定时器1工作在模式0的初始化;

void timer1_initializtion(void)

{

TMOD &= 0x0F;//清除高4位

//TMOD寄存器的bit6(C/T)=0,定时器输入时钟为CPU时钟经过12分频后得到的

//配置Timer1为方式0(13位定时器)

//设置GATE1=0,即不允许外部INT1脚控制Timer1;

  TL1=T1_Load_Value&0x1F;     //手动装载最低5位值;

  TH1=T1_Load_Value>>5;       //手动装载剩下的8位值;

  TR1=1;                //当GATE1=0时,TR1=1,表示启动T1开始工作;

  ET1=1;                //允许Timer1中断;

  EA=1;                 //开总中断允许位;

}

//函数功能: Timer1的中断服务函数,每3000us中断一次;

void timer1_interrupt_program() interrupt using 1

{ TL1=T1_Load_Value&0x1F;     //手动装载最低5位值;

  TH1=T1_Load_Value>>5;       //手动装载剩下的8位值;

  ///其它处理程序///

}

void main(void)

{ timer1_initializtion(); //定时器1工作在模式0的初始化;

  while(1);

    {

}

}

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

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

相关文章

查看Oracle是哪个Oracle_home 下启动的

[rootrac1 ~]# ps -ef|grep smon root 413 24903 0 22:30 pts/0 00:00:00 grep --colorauto smon root 27165 1 0 22:11 ? 00:00:09 /u01/app/19.0.0/grid/bin/osysmond.bin grid 27784 1 0 22:12 ? 00:00:00 asm_smon_ASM1 oracl…

基础不牢地动山摇:JS逆向攻防对抗核心的博弈点在于对JS最基础部分的深刻理解和灵活应用——干货语法大全

基础不牢地动山摇:JS逆向攻防对抗核心的博弈点在于对JS最基础部分的深刻理解和灵活应用——语法大全 JS逆向攻防对抗核心的博弈点在于对JS最基础部分的深刻理解和灵活应用,偏门基础用法语法知道的越多,理解的越深刻,运用的越灵活…

前端知识点

HTML、CSS 相关 1、 BFC 1、BFC 是什么? BFC(Block Formatting Context) 格式化上下文; 指一个独立的渲染区域,或者说是一个隔离的独立容器;可以理解为一个独立的封闭空间。无论如何不会影响到它的外面 …

贪心+后缀和,CF 1903C - Theofanis‘ Nightmare

一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 1903C - Theofanis Nightmare 二、解题报告 1、思路分析 我们任意一种分组其实都是若干个后缀和相加 比如我们分成了三组,第一组的数被加了一次,第二组的数被加了两次,第…

JDK动态代理-AOP编程

AOPTest.java,相当于main函数,经过代理工厂出来的Hello类对象就不一样了,这是Proxy.newProxyInstance返回的对象,会hello.addUser会替换为invoke函数,比如这里的hello.addUser("sun", "13434");会…

ceres和eigen的cmake配置

这里的eigen是用下面安装的, sudo apt-get install libeigen3-devceres是编译后,安装到系统目录下的 sudo make install这样cmake会自动到系统下去寻找eigen, ceres相关的cmake文件, 包含ceres和eigen引用的源文件,需要在CMake…

Web3 ETF 的软件开发框架

Web3 ETF 的软件开发框架主要包含以下几个方面,需要说明的是,Web3 ETF 仍处于早期发展阶段,相关技术和标准尚未成熟。在开发 Web3 ETF 时,需要谨慎评估风险,并做好安全防范措施。北京木奇移动技术有限公司,…

基于python的随机森林回归预测+贝叶斯优化超参数前后训练效果对比

目录 1.导入必要的库 2.导入数据与数据预处理 3.查看数据分布 4.特征选择 5.模型建立与训练 6.训练集预测结果 7.模型评估 8.预测新数据 9.贝叶斯优化超参数 1.导入必要的库 # 导入所需的库 from sklearn.model_selection import cross_val_score import pandas as …

【vocabulary in use (elementary)】6 Health and Illness

very well / fine 很好 ill sick 生病 I feel terrible 感觉很差 headache 头疼 toothache 牙疼 dentist medicine 药 pills 片药 caps 胶囊 aspirin 阿司匹林 antibiotic 抗生素 vitamin 维生素 painkiller 止痛药 dentist 牙医 got a cold 感冒 for many years 很多年 all th…

Channel Messaging API 的使用

Channel Messaging API 是HTML5中引入的一种高级通信机制,它允许在Web Workers之间,以及Web Workers与主线程之间建立高效、安全的双向通信通道。这一API特别适用于需要频繁交换数据或维持长期通信的场景,提高了Web应用的性能和灵活性。 基础…

中英双语介绍美国的州:印第安纳州(Indiana)

中文版 印第安纳州简介 印第安纳州位于美国中西部地区,是一个以其农业、制造业和体育文化而著称的州。以下是对印第安纳州的详细介绍,包括其地理位置、人口、经济、教育、文化和主要城市。 地理位置 印第安纳州东临俄亥俄州,北接密歇根州…

白骑士的Python教学高级篇 3.1 多线程与多进程

系列目录 上一篇:白骑士的Python教学进阶篇 2.4 高级数据结构 在现代编程中,提升程序性能和处理能力的常见方法之一是并发编程,通过同时执行多个任务来提高效率。Python中主要有两种并发方式:多线程和多进程。理解它们的概念、差…

数据集成面试题

Flume 一、flume组成 --Agent Flume的部署单元,本质上是一个JVM进程,Agent主要由Source、Channel、Sink三个部分组成 --Source 收集数据,以event为单元进行封装发送给channel 参数配置:当采集速度比较慢,调整batchSize参数&…

IOS Swift 从入门到精通:写入 Firestore数据库

文章目录 FirestoreManager 类创建文档更新文档更新 Firestore 权限规则现在,我们想要在 Firestore 中添加或更新文档。如果您还没有,我建议您阅读有关设置 Firebase Auth 和从 Firestore 读取的部分。您必须在应用程序中启用 Firebase,并在项目中启用 Firestore 数据库,才…

【IT专业入门,高考假期预习指南】高考后的IT征途:启航前的准备与策略

IT专业入门,高考假期预习指南 七月来临,各省高考分数已揭榜完成。而高考的完结并不意味着学习的结束,而是新旅程的开始。对于有志于踏入IT领域的高考少年们,这个假期是开启探索IT世界的绝佳时机。作为该领域的前行者和经验前辈&a…

Java中的分布式事务管理

Java中的分布式事务管理 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们将深入探讨Java中的分布式事务管理,这是在现代大规模应用中必须解决…

【SkiaSharp绘图14】SKCanvas方法详解(三)URL注释、按顶点绘制、 是否裁切区域之外、旋转、缩放、倾斜、平移、保存/恢复画布

文章目录 SKCanvas方法DrawUrlAnnotation 绘制URL注释DrawVertices 按顶点绘制Flush 立即绘制QuickReject 判断区域是否在裁切区域之外ResetMatrix重置矩阵Restore、RestoreToCountRotateDegrees按角度旋转画布RotateRadians按弧度旋转画布SaveLayer保存并新建图层Scale 缩放画…

Python协作运动机器人刚体力学解耦模型

🎯要点 🎯腿式或固定式机器人模型 | 🎯网格、点云和体素网格碰撞检测 | 🎯正反向运动学和动力学 | 🎯机器人刚体力学计算 | 🎯编辑参考系姿势和路径 | 🎯软件接口实体机器人模拟 | &#x1f3a…

使用shell脚本进行clang-tidy静态代码分析

文章目录 0. 引言1. 完整检测脚本代码 clang-tidy-check.sh1.1 流程图1.2 脚本功能概述 2. 该脚本优缺点 0. 引言 clang-tidy 是基于 Clang 的工具,提供了丰富的代码检查功能,可以根据用户配置文件进行定制化的检查和规则定义。 之前的文章《使用 Clang…

分子AI预测赛Task2笔记

下面所述比较官方的内容都来自官方文档 ‍‌⁠‌‍​​​‌​​⁠​​​​​​​​‍‬​​‍⁠‍‍​​‬​‌​​​‌‍‬​​​​​​‍‌Task2:赛题深入解析 - 飞书云文档 (feishu.cn) 赛题背景 强调了人工智能在科研领域&…