C51单片机中断系统与定时器/计时器(理论部分)

这篇具有很好参考价值的文章主要介绍了C51单片机中断系统与定时器/计时器(理论部分)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

文章的开始,有人可能会问,我们在前几节课学了延时函数,为什么不用延时函数来取代定时器,而必须学定时器呢?这里,有如下几个理由:

1.使用delay函数时,单片机的cpu做不了其他事情,只能等待延时结束。

2.用了定时器cpu就可以做其他的事情,只要定时器溢出时,执行一下中断即可。

3.这就相当于原来用delay的时候cpu得自己数数计时,有了定时器就相当于cpu有了一个闹钟,时间一到就响了,提醒你做该做的事情。

一.定时器的工作模式

STC89C52的定时器1和定时器2有如下四种工作模式

C51单片机中断系统与定时器/计时器(理论部分)

 我们通常使用的是工作模式1,即16位定时器/计数器,本文所使用的也是工作模式1,所以其他工作模式便不再过多介绍。有兴趣的小伙伴可以自行了解。

下面的配图即为工作模式1的流程图

C51单片机中断系统与定时器/计时器(理论部分)流程图详解:

定时器分为三大部分: 从左到右的圈圈里分别是时钟、计数系统、中断系统

1.我们先来看时钟部分,首先,我们所使用的单片机在时钟部分接入的是12T mode,往下走,遇到一个C/T开关,C->counter 计数器,当这个开关选1时,则为计数器模式。 T->timer 定时器,当这个开关选0时即为定时器,也就是我们本节课所需要使用到的。当定时器\计数器 模式开启时,时钟系统会在固定的时间间隔内向计数系统发送一次脉冲,当计数系统的寄存器(TH0,TH1)溢出时

便将中断标志位TF0置1,标志着中断信号的传递。

2.我们再来看计数系统部分,这部分包括上下两部分,我们先来讲下面部分。下面部分是一个开关的控制系统,也就是上半部分的那个开关,这个开关决定着定时器0是否开启,时钟的脉冲信号是否能传输到计数系统中。这个开关有两种控制模式。

1.GATE门控端置0,由TR0单独控制,若TR0为1,则开关闭合,反之开关则断开。

2.GATE门控端置1,由外部引脚INT0和TR0共同控制,这种情况下下,INT0和TR0必须都为1才可以实现开关的闭合,否则开关都是断开。

原因:GATE门控端出来的那个三角形是一个“非门”,如果给GATE赋值0,则出来是1,如果给GATE赋值1,则出来是0。三角形出来的又遇到一个图形,这个图形是“或门”。最后一个图形是“与门”,这里的“非门、或门、与门”与C语言中的与或非完全相同。这就解释了上面的两种情况。

3.最后我们再来看看中断系统:

C51单片机中断系统与定时器/计时器(理论部分)

 当计数系统溢出时,中断标志位TF0置1,向中断系统请求中断,我们本次使用的是定时器0,所以配置T0中断即可,ET0为定时器0的中断寄存器,置1开启即可,EA为总使能,相当于总开关,也置1开启即可,最后就是PT0优先级寄存器,系统默认定时器0为低优先级,所以配置0即可。

总结:1.定时器原理:系统时钟每隔一段时间向计数系统发送脉冲,计数系统由TR0直接控制或者TR0和GATE门控端共同控制,当定时器开关被打开后,脉冲发送到计数系统,当计数系统溢出时,中断标志位TF0被置1,向中断系统发送中断请求,中断系统通过配置中断寄存器从而产生中断。

2.定时器0所用的16位定时器是由两个八位寄存器拼接在一起的,每次中断结束后都置0,所以需要赋初值,而后面所讲的串口用的是8位重装定时器,和这个有所差别

3.高优先级的中断可以打断低优先级的中断。

4.单片机通过配置寄存器来控制内部电路的连接

5.TCON是定时器控制寄存器,也就是TR0,TF0,TR1,TF1等寄存器

6.TMOD是定时器模式寄存器,控制单片机位定时器1或者定时器0,其中,高4位配0,低四位中的最后两位M1、M0分别配置为0 1,则为定时器0的工作模式1(常用),若低四位配置为0,高四位中的M1、M0分别配置为0 1则为定时器1的工作模式1。(常用)

C51单片机中断系统与定时器/计时器(理论部分)

 7.可位寻址就是可以单独赋值,如LED,可以单独对每个灯进行配置。

8.不可位寻址只能整体赋值,TMOD就是不可位寻址,只能整体赋值,下节我们会讲到TMOD的具体赋值方法。文章来源地址https://www.toymoban.com/news/detail-414054.html

到了这里,关于C51单片机中断系统与定时器/计时器(理论部分)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C51单片机——通过使用定时器控制LED闪灭

    目录 0 引言 1 定时的原理 1.1 生活中的定时 1.2单片机中的定时器 2 C语言程序设计 2.1 定时器的内部功能 2.2 设置寄存器 2.3 实验程序 3 有两个小问题(算是延伸吧) 3.1 只能0.05s闪一次吗? 3.2 每次都要在草稿纸手算初始值好麻烦

    2024年02月06日
    浏览(36)
  • 51单片机 | 定时器中断实验

      这一节介绍51单片机的定时器中断。 STC89C5X 含有 3 个定时器:定时器 0、定时器 1、定时器 2(注意: 51 系列单片机一定有基本的 2 个定时器(定时器 0 和定时器 1),但不全有 3 个中断,需要查看芯片手册,通常我们使用的是基本的 2 个定时器:定时器 0/1)。本节要实现

    2024年02月06日
    浏览(67)
  • 51 单片机【外部中断、定时器中断、回调函数】

    ​这里的外部中断类似监听器,时时刻刻监视某引脚的电平变化;这里的定时器中断类似于定时任务,可以定时执行某函数;这里将回调函数和中断结合起来,案例里有点设计模式的味道(忘了哪个了,也可能就是感觉,关于高层不能调用低层的解决),也有点函数式编程的

    2024年02月04日
    浏览(17)
  • 【51单片机】:定时器的详解(包括对单片机定时解释、各类定时方式,以及中断方式)

              51定时/计数器的详解。                   码字不易,如有帮助请收藏,点赞哦。         前提:首先我们知道51单片机内部有21~26个特殊功能寄存器: P.x口寄存器:P0、P1、P2、P3 数据指针寄存器:DP0H、DP0L、DP1H、DP1L 定时器: TH1、TL1、TH0、TL0、TMOD、TCON 串口:

    2024年02月07日
    浏览(52)
  • C51单片机定时器2实现SG90舵机控制

    谈起舵机最初的了解应用于航模,偶然的机会在网上看到有牛人使用多个舵机做人形机器人的关节,感觉这小东西很有趣,蒙发了买来学习学习的想法,这已经是多年前的事了,后来由于某些原因,这个想法直到今年才落地。小东西到手后,把玩了解后,本人把学习过程记录

    2023年04月24日
    浏览(28)
  • 51单片机定时器中断TMOD

    最近在学定时器中断TMOD,写程序时,要对定时器进行配置 对TMOD进行赋值时,拌了好久。。。。 如何根据所用的      定时器0/1 ,  工作方式0/1/2/3      对TMOD赋值呢? 我们知道: 1.TMOD长这样 :  由八位组成,前四位是T1的参数;后四位是T0的参数;GATE 和 C/T\\\' 不用多讲,

    2024年02月12日
    浏览(10)
  • 51单片机中断定时器1用法

    中断为使单片机具有对内部或外部随机发生的事件实时处理而设置的。 中断技术不仅解决了快速主机与I/O设备的数据传送问题,而且还有具有如下的优点: 1. 分时操作:CPU可以分时为多个I/O设备服务,提高了计算机的利用率。 2. 实时操作:CPU能够及时处理应用系统的随机事

    2024年02月06日
    浏览(32)
  • 51单片机定时器/计数器(定时器中断)

    实现功能 通过定时器终端控制LED灯 D1 间隔一秒闪烁 单片机型号:STC89C52 定时器介绍 1、51单片机定时器原理 定时器实质上就是一个加1计数器。它随着计数器的输入脉冲进行自加1,也就是每来一个脉冲,计数器就自动加1,,当加到定数器满时,再输入一个脉冲就使定时器回零

    2024年02月06日
    浏览(21)
  • C51单片机按键控制流水灯模式(定时器版本)以及定时器时钟

      上篇文章我们学了关于定时器的三大组成部分及许多寄存器的概念问题,这篇文章我们就要开始讲解实操部分。 首先,我们先来看看本文最后写成的代码:      以上三张是代码的主函数,此外,代码中还需用到的独立按键检测代码在下面:  注意:头文件中#ifndef和#def

    2023年04月17日
    浏览(16)
  • 51单片机定时器中断按键消抖(无延时)

    单片机入门学习记录(二) 在机械按键的触点闭合和断开时,都会产生抖动,为了保证系统能正确识别按键的开关,就必须对按键的抖动进行处理。按键的抖动对于人类来说是感觉不到的,但对单片机来说,则是完全可以感应到的,而且还是一个很“漫长”的过程,因为单片

    2024年02月14日
    浏览(22)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包