当前位置: 首页 > news >正文

(定时器/计数器)中断系统(详解与使用)

讲解

简介

定时器/计数器

定时器实际上也是计数器,只是计数的是固定周期的脉冲

定时和计数只是触发来源不同(时钟信号和外部脉冲)其他方面是一样的。

 定时器在单片机内部就像一个小闹钟一样,根据时钟的输出信号,每隔“一秒”,计数单元的数值就增加一,当计数单元数值增加到“设定的闹钟提醒时间”时,计数单元就会向中断系统发出中断申请,产生“响铃提醒”,使程序跳转到中断服务函数中执行。

中断

中断是指计算机运行过程中,出现某些意外情况需主机干预时,机器能自动停止正在运行的程序并转入处理新情况的程序,处理完毕后又返回原被暂停的程序继续运行。

假设一个人在家看电视,这时候突然门铃响了,这个人此时就要停止看电视去开门,然后关上门后继续回来看电视,这个例子当中看电视这个动作就是常规的计算机运行过程,门铃响就相当于一个中断信号(中断请求),用户这时停止看电视(中断当前程序)起来开门(中断响应),关上门后(中断处理结束)继续看电视(继续执行当前程序)。这一整个过程就是中断发生时,CPU的处理方式。

  还是上面的例子,现在假设门铃响的时候水烧开了,此时用户可以选择先开门后关水,也可以选择先关水后开门,这个先后关系就是中断优先级,假设门铃的中断优先级比烧水的优先级高,那就会先开门,后关水,反之,则会先关水,后开门,这就是针对两个及两个以上中断同时发生的时候CPU根据中断优先级执行中断的过程。

51单片机

定时器/计数器

16位寄存器T0、T1分别由TH0、TL0和TH1、TL1四个8位计数器组成

定时器的区别

        T0可分为2个独立的8位定时器,而定时器1不能;

        T1可作为串口的波特率发生器,而定时器0不能。

工作原理

        用途:定时器和计数器

        核心:加1计数器

        原理:每来一个脉冲则加1计数器加1,当加到寄存器要溢出时再来一个脉冲使加1计数器归零(溢出)同时使TCON寄存器中的TF0(或TF1)置1,向CPU发出中断请求。

脉冲来源

        定时器:由系统的时钟晶振输出脉冲源提供

        计数器:脉冲来源是由T0或T1引脚输入的外部脉冲源提供

注意: T0或T1都不能同时既做定时器也做计数器  

TCON控制寄存器

启动和停止定时/计数器的计数,并控制定时器的工作状态,支持按位寻址。单片机复位后清0。

注意:TCON寄存器中的低四位和定时计数器无关,和外部中断相关

位序D7D6D5D4D3D2D1D0
名称TF1TR1TF0

相关文章:

  • 安全防御(第六次作业)
  • 2023 re:Invent 用 Amazon Q 打造你的知识库
  • 如何使用Lychee+cpolar搭建本地私人图床并实现远程访问存储图片
  • Android T 远程动画显示流程其三——桌面侧动画启动到系统侧结束流程
  • 多人音视频实时通讯架构
  • HarmonyOS Full SDK的安装
  • 设计模式:结构型模式
  • 初学Vue总结
  • NLP - 神经网络与反向传播
  • 【c++】stack和queue模拟实现
  • 深度神经网络联结主义的本质
  • 【Django】执行查询—跨关系查询中的跨多值关联问题
  • 位运算第二弹
  • 单词倒排——c语言解法
  • proteus8.15图文安装教程
  • 【刷算法】求1+2+3+...+n
  • 2017-08-04 前端日报
  • const let
  • HTML5新特性总结
  • Java深入 - 深入理解Java集合
  • Leetcode 27 Remove Element
  • leetcode98. Validate Binary Search Tree
  • OpenStack安装流程(juno版)- 添加网络服务(neutron)- controller节点
  • Python - 闭包Closure
  • SpiderData 2019年2月25日 DApp数据排行榜
  • webpack+react项目初体验——记录我的webpack环境配置
  • 关于使用markdown的方法(引自CSDN教程)
  • 猴子数据域名防封接口降低小说被封的风险
  • 基于 Babel 的 npm 包最小化设置
  • 前端每日实战:70# 视频演示如何用纯 CSS 创作一只徘徊的果冻怪兽
  • 实习面试笔记
  • 我与Jetbrains的这些年
  • 在 Chrome DevTools 中调试 JavaScript 入门
  • 在GitHub多个账号上使用不同的SSH的配置方法
  • 智能合约Solidity教程-事件和日志(一)
  • 主流的CSS水平和垂直居中技术大全
  • 继 XDL 之后,阿里妈妈开源大规模分布式图表征学习框架 Euler ...
  • 你学不懂C语言,是因为不懂编写C程序的7个步骤 ...
  • #鸿蒙生态创新中心#揭幕仪式在深圳湾科技生态园举行
  • (9)目标检测_SSD的原理
  • (JS基础)String 类型
  • (Matlab)遗传算法优化的BP神经网络实现回归预测
  • (附源码)springboot课程在线考试系统 毕业设计 655127
  • (附源码)springboot助农电商系统 毕业设计 081919
  • (附源码)计算机毕业设计SSM疫情社区管理系统
  • (个人笔记质量不佳)SQL 左连接、右连接、内连接的区别
  • (全注解开发)学习Spring-MVC的第三天
  • (最完美)小米手机6X的Usb调试模式在哪里打开的流程
  • **PHP二维数组遍历时同时赋值
  • .NET Core 2.1路线图
  • .NET Core 中插件式开发实现
  • .NET 同步与异步 之 原子操作和自旋锁(Interlocked、SpinLock)(九)
  • .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary)
  • .Net6 Api Swagger配置
  • .NET版Word处理控件Aspose.words功能演示:在ASP.NET MVC中创建MS Word编辑器