单片机原理及应用:定时器与计数器中断

news2024/12/25 23:54:06

时间概念

中断结构

引脚 

TCON

TMOD

IE

IP


时间概念

在一般单片机中,有2个16位可编程的硬件计数模块T0和T1,我们称其为计数器或定时器,顾名思义,该模块可以实现定时和计数两种功能,其功能由软件控制和切换。实质这个定时器/计数器就是一个累加计数器,定时器的累加信号是由单片机内部振荡器的12分频信号产生,每过一个机器周期,定时器就加1,直至计满溢出结束;计数器就是对来自单片机外部的事件进行计数,外部计数事件由脉冲引入,单片机的P3.4(T0)和P3.5(T1)为外部计数脉冲输入端了,外部计数脉冲的频率不能高于晶振频率的1/24。

在上文中出现了几个时间概念,如时钟周期、晶振频率等,下面是这些概念的解释:

  • 晶振具有压电效应,即在晶片两极外加电压后晶体会产生变形,反过来如外力使晶片变形,则两极上金属片又会产生电压。如果给晶片加上适当的交变电压,晶片就会产生谐振,利用该特性,晶振可以提供较稳定的脉冲,我们将这个脉冲的频率称为晶振频率。
  • 时钟周期是由晶振电路决定的时钟控制信号的基本时间单位,它和晶振频率互为倒数。在一个时钟周期内,CPU仅完成一个最基本的动作。
  • 每12个时钟周期为1个机器周期,在1个机器周期内,CPU可以完成一个基本操作。每一条代码指令都可以分为几个机器周期,在每个机器周期完成取指令、读或写数据等基本操作。
  • 1个机器周期包括12个时钟周期,分6个状态:S1~S6,每个状态又分两拍:P1和P2。因此,一个机器周期中的12个时钟周期可以表示为S1P1、S1P2、S2P1、S2P2、……S6P2。
  • 以6MHz晶振频率为例,它的时钟周期为166.7ns,机器周期为2μs。

在使用定时器计数器时,通常需要先初始化定时器的各个参数,如预分频系数、计数模式等。然后,通过启动定时器,它会开始计时并不断递增计数器的值。当计数器的值达到设定的目标值时,可以触发相应的中断或执行一些其他操作。作为一类中断源,我们需要理解它的中断请求结构和设置方式。

中断结构

引脚 

由电路图可得,P3.4引脚与定时/计数器0相连,P3.5引脚与定时/计数器1相连,但是定时器依靠单片机内部晶振信号工作,所以这两个引脚实际上只用于计数工作。

TCON

位地址和名称与外部中断的控制寄存器相同,只是从低四位换成了高四位,这里对低四位的外部中断控制就不进行赘述了,感兴趣的朋友可以参照笔者先前的文章单片机原理及应用:中断系统结构与控制寄存器

地址88H8FH8EH8DH8CH8BH8AH89H88H
名称TCONTF1TR1TF0TR0IE1IT1IE0IT0

TF1和TF0位分别表示定时器1和定时器0的溢出标志位。当定时器溢出时,对应的溢出标志位会被置1,之后会向CPU发送执行命令请求,在接收请求后,由硬件或软件清零。

TR1和TR0位用于控制定时器1和定时器0的开始/停止操作。当TR1或TR0位被置1时,对应的定时器开始计数;当TR1或TR0位被清零时,对应的定时器停止计数。

TMOD

全称为工作方式控制寄存器,为定时器/计数器独有的控制方式。

地址D0HD7HD6HD5HD4HD3HD2HD1HD0H
名称TMODGATEC/TM1M0GATEC/TM1M0

高四位控制T1,低四位控制T0。

M1

M0

工作模式

描述

0

0

0

兼容8048单片机的13位定时器,THn8位和TLn5位组成一个13位定时器。

0

1

1

THnTLn组成一个16位的定时器。

1

0

2

8位自动重装模式,定时器溢出后THn重装到TLn中。

1

1

3

禁用定时器1,定时器0变成28位定时器。

下面对四种工作模式进行说明: 

工作方式0称为13位定时/计数器方式。它由16位定时器储存寄存器中的TL(0/1)的低5位和TH(0/1)的8位构成了13位的计数器,此时TL(0/1)的高3位未用。 当门控位GATE=0时,或门输出始终为1,与门被打开,由TR0控制定时/计数器的启动和停止。

工作方式1是一个由TH0中的8位和TL0中的8位组成的16位加1计数器。 方式1与方式0基本相似,最大的区别是方式1的加1计数器位数是16位。 

工作方式2是一个能自动装入初值的8位加1计数器,TH0中的8位用于存放定时初值或计数初值,TL0中的8位用于加1计数器。 加1计数器溢出后,硬件使TF0自动置1,同时自动将TH0中存放的定时初值或计数初值再装入TL0,继续计数。 

工作方式3分为两个独立的8位加1计数器TH0和TL0。TL0既可用于定时,也能用于计数;TH0只能用于定时。

需要注意定时器0有四种工作方式,而定时器1只有三种工作方式。这是因为在工作方式3下,T1的控制位TR1、TF1和中断源被T0占用,而T1无法反过来占用T0的资源。

在了解了工作方式后,我们需要对不同的工作方式赋予对应的初值。由于人的反应速度要远小于单片机的运行速度,即使是最大的定时器容量也只有不到0.1s,所以在程序中我们常用for循环多次重置初值来进行定时或计数,下面是一个举例,具体应用会发布在后续文章当中。

比如我们选用了一款晶振频率为12MHz的单片机,它的机器周期为1μs,要求每隔一秒执行一次程序,那我们可以先把1s分为10份或20份,每份就是100ms或50ms。之后我们选择合适的工作方式,在这里选用工作方式1,从零开始计数的话,工作方式1最大定时为65536μs,也就是六十多ms。根据就近原则,我们采取20次for循环,然后让定时器每50ms将溢出标志位置1。定时初值计算公式就是65536-50000=15536,再将15536/256=60……176,60转为二进制计入TH0为0011 1100,十六进制即0x3c;TL0为1011 0000,十六进制即0xb0。

IE

IE的设置与外部中断相同,将相应的使能位赋1即可开启定时器,要注意无论是外部中断还是定时器,都需要先将总开关EA赋1再进行设置。

地址A8HAFHACHABHAAHA8HA9H
名称IEEA/ESET1EX1ET0EX0

IP

IP的用法与IE类似,正确地赋值即可。

地址B8HBCHBBHBAHB9HB8H
名称IP///PSPT1PX1PT0PX0

以上就是51单片机中定时器/计数器的设置方法,如有遗漏之处,欢迎大家讨论纠正。 

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

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

相关文章

2023-12-29 贪心算法 分发饼干和摆动序列以及最大子数组和

贪心算法 什么是贪心算法? 就是每一阶段的最优解,从局部的最优解达到全局的最优解! 最好用的策略就是举反例,如果想不到反例,那么就试一试贪心吧。 贪心算法一般分为如下四步: 将问题分解为若干个子问…

09-责任链模式-C语言实现

责任链模式:Avoid coupling the sender of a request to its receiver by giving more than one object a chance to handle the request.Chain the receiving objects and pass the request along the chain until an object handles it.(使多个对象都有…

Qt QRadioButton单选按钮控件

文章目录 1 属性和方法1.1 文本1.2 选中状态1.3 自动排他1.4 信号和槽 2 实例2.1 布局2.2 代码实现 Qt中的单选按钮类是QRadioButton它是一个可以切换选中(checked)或未选中(unchecked)状态的单选按钮单选按钮常用在“多选一”的场…

机器学习工程师学习路线图

我的新书《Android App开发入门与实战》已于2020年8月由人民邮电出版社出版,欢迎购买。点击进入详情 机器学习工程(MLE)是一个快速发展的领域,对熟练专业人员的需求很高。如果您对 MLE 职业感兴趣,路线图可以帮助您培养…

大小论文over,坐等毕业。写点ROS上建图与导航的心得,也不知道对错,欢迎讨论~(对,谨慎阅读,不存在误人子弟哈~.~)

大小论文总算是都搞定了,院审过了送外审了,生死有命富贵在天,希望外审专家大佬们高抬贵手o.O~ 我所理解的建图算法的移植,能不能运行起来,大框架上就是把一棵完整的坐标转换关系的TF树给整理“通顺”,TF&am…

一文搞懂Git版本工具常用的操作命令

简述 Git是一个分布式的版本控制工具,其在使用上要比SVN等版本控制工具稍显复杂。为了便于理解,本文通过图文方式详细介绍Git的使用,以便于快速掌握Git。Git涉及的主要概念和命令如图所示。理解上述概念后,基本可以使用Git完成日常开发工作。关于Git的介绍以及常用命令在之前的…

RK3568驱动指南|第十篇 热插拔-第116章netlink监听广播信息实验

瑞芯微RK3568芯片是一款定位中高端的通用型SOC,采用22nm制程工艺,搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码,支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU,可用于轻量级人工…

CES 2024:AI智能大爆发,引领科技新纪元

美国当地时间1月9日,2024年国际消费类电子产品展览会(CES)如期在内华达州拉斯维加斯举行。作为全球最盛大的科技盛会,每年,来自世界各地的顶尖科技企业都会参加CES,展示他们的最新科技产品和创新&#xff0…

Python的安装与卸载【Windows系统】

在 Windows 上安装与卸载 Python Python的安装 下载Python 安装Python 下载完后打开安装包 注意最底下的"Add Python 3.8 to Path"(将Python加入环境变量)一定要勾选!!!这样就可以免去之后环境配置的烦恼…

在本地测试nginx中localhost不行,需要写成127.0.0.1

在Windows 10系统的命令提示符cmd中,执行命令ping localhost,并没有出现我与其的ip地址“127.0.0.1”,而是“[::1]”。 问题原因 在cmd中ping localhost解析出来的是ipv6的::1的原因是windows有个优先解析列表,当ipv6的优先级高于…

【cmu15445c++入门】(4)c++中的模板方法

一、template模板方法 模板方法是c的一个特性,可以让你的代码在不指定数据类型的情况下,运行不同的数据类型。 你可以创建模板方法和模板类,本文讨论模板方法。 二、代码 // Includes std::cout (printing) for demo purposes. #include &…

4S店汽车行业万能通用小程序源码系统:功能强大,集合汽车在线展示+在线预约+贷款计算器......附带完整的搭建教程

在移动互联网高速发展的今天,越来越多的消费者选择通过手机端了解汽车信息、预约试驾、计算贷款等。4S店需要紧跟时代步伐,提供更加便捷、高效的服务。因此,开发一款集合汽车在线展示、在线预约、贷款计算器等多项功能的通用小程序成为市场趋…

数据结构02附录02:哈希表[C++]

图源:文心一言 上机题目练习整理~🥝🥝 本篇作为线性表的代码补充,每道题提供了优解和暴力解算法,供小伙伴们参考~🥝🥝 第1版:在力扣新手村刷题的记录,优解是Bard老师提…

语义补全任务2023年论文总结

一、3D Semantic Scene Completion: a Survey 语义场景补全SSC旨在联合估计出一个场景完整的几何和语义信息,假设只需要部分稀疏输入数据。 1、数据集 2、场景表示 Point Cloud,点云是一种方便的、记忆高效的表示方法,它将三维连续世界中的…

网站怎么做google搜索引擎优化?

网站想做google搜索引擎优化,作为大前提,您必须确保网站本身符合google规范,我们不少客户实际上就连这点都无法做到 有不少客户公司自己本身有技术,就自己弄一个网站出来,做网站本身不是难事,但前提是您需要…

OpenShift 4 - 在 OpenShift 上运行物体检测 AI 应用

《OpenShift / RHEL / DevSecOps 汇总目录》 说明:本文已经在 OpenShift 4.14 RHODS 2.5.0 的环境中验证 说明:请先根据《OpenShift 4 - 部署 OpenShift AI 环境,运行 AI/ML 应用(视频)》一文完成 OpenShift AI 环境…

基于k8s Deployment的弹性扩缩容及滚动发布机制详解

k8s第一个重要设计思想:控制器模式。k8s里第一个控制器模式的完整实现:Deployment。它实现了k8s一大重要功能:Pod的“水平扩展/收缩”(horizontal scaling out/in)。该功能从PaaS时代开始就是一个平台级项目必备编排能…

Kali改变为中文

更新kali源之后【如果没有更新,可以参考我的Kakli更新源】。 执行下面的命令: # apt-get update && apt-get upgrade && apt-get clean # dpkg-reconfigure locales 如果没有权限?可以通过sudo命令进行授权 1、先取消英文&…

KT6368A双模蓝牙芯片批量生产使用主机芯片KT6358M测试很方便

一、简介 KT6368A双模蓝牙芯片批量生产使用主机芯片测试很方便 KT6368A批量生产怎么办?不可能用手机一个一个的去连吧,太慢了 别慌,这个问题,我们早就考虑清楚了,答案如下,分为两个方法: 详细…

2024数字安全十大技术趋势预测,不容忽视!

2023年是技术爆发的一年,ChatGPT、量子计算、常温超导体争相刷新眼球;2023年是风云变幻的一年,局部战争、网络战、全球经济震荡交替冲击……无数个值得记忆的瞬间,都对网络安全行业产生着深远影响。 通过观察2023年的国际国内环境…