搜索

51单片机定时器的原理与使用

gecimao 发表于 2019-08-25 09:44 | 查看: | 回复:

  定时器是单片机的重要功能模块之一,在检测、控制领域有广泛应用。定时器常用作定时时钟,以实现定时检测,定时响应、定时控制,并且可以产生ms宽的脉冲信号,驱动步进电机。定时和计数的最终功能都是通过计数实现,若计数的事件源是周期固定的脉冲则可实现定时功能,否则只能实现计数功能。因此可以将定时和计数功能全由一个部件实现。通过下图可以简单分析定时器的结构与工作原理。

  2、定时器有两种工作模式,分别为计数模式和定时模式。对Px,y的输入脉冲进行计数为计数模式。定时模式,则是对MCU的主时钟经过12分频后计数。因为主时钟是相对稳定的,所以可以通过计数值推算出计数所经过的时间。

  1)、TLx与THx之间32进制。即当TLx计到32个脉冲时,TLx归0同时THx进1。这也称为方式0。

  2)、TLx与THx之间256进制。即当TLx计到256个脉冲时,TLx归0同时THx进1。这也称为方式1。在方式1时,最多计65536个脉冲产生溢出。在主频为11.0592M时,每计一个脉冲为1.085us,所以溢出一次的时间为1.085usx65536=71.1ms。

  3)、THx用于存放TLx溢出后,TLx下次计数的起点。这也称为方式2。

  (1)和(2)可以由工作方式寄存器TMOD来设定,TMOD用于设置定时/计数器的工作方式,低四位用于T0,高四位用于T1。其格式如下:

  GATE:门控位,用于设置计数器计数与否,是否受P3.2或P3.3电压状态的影响。GATE=0时,表示计数器计数与否与两端口电压状态无关;GATA=1时,计数器是否计数要参考引脚的状态,即P3.2为高时T0才计数,P3.3为高时T1才计数。

  C/T:定时/计数模式选择位。      =0为定时模式;    =1为计数模式。

  M1M0:工作方式设置位。定时/计数器有四种工作方式,由M1M0进行设置。

  计数器溢出后,THx与TLx都归0。并将特殊功能区中对应的溢出标志位TFx写为1。

  首先如果在定时器初始化函数中采用TMOD = 0x01和TMOD =0x10,那么将造成LD1闪烁比LD8闪烁快8倍。分析一下,从main函数开始执行,先是初始化timer0,这时候定时器1设置为工作方式1。接着程序执行到Timer1_Init(),这时候TMOD=00010000,即选定了timer1在工作方式1,但同时timer0重新配置为工作方式0, 也就是32进制,所以产生快8倍现象。

  那为什么用这个符号就可以做到互不影响呢?是或运算符,即有1出1,全0出0。什么意思呢?举个例子,a是11110000,b是10101010,那么ab就是11111010。通过引入这个符号,可以实现tmod对两个定时器的独立操作。

  首先解释下^这个符号。^称为异或运算符,相同出0,不同出1。举个例子,a是11110000,b是10101010,那么a^b就是01011010。

  因此P1 ^= (10)实际是在翻转P0口第一位的值,因此也就是在闪烁LD1灯。

  上面三个例子实际都是采用了软件查询法。即main函数会每次进入到溢出事件函数里去判断TF0或1是否等于1,这样就浪费了大量CPU时间。同时,实时性差,假如在执行Timer0_Overflow()的时候timer1也溢出了,这时候timer1的溢出事件就没有及时处理。因此下面我们要引入中断系统。

  中断系统是一套硬件电路,它可以在每个机器周期对所有的外设的标志位作查询。相比于前面的软件查询(if(xx==1)),中断系统也可以叫做硬件查询。51的中断系统可查询以下6个标志位。

  RI(SCON.0)或TI(SCON.1),串行口中断请求标志。当串行口接收完一帧串行数据时置位RI或当串行口发送完一帧串行数据时置位TI,向CPU申请中断。

  当中断系统查询到外设的标志位变为1时,中断系统可暂停当前的主循环,并且将程序跳转到用户预先指定的函数中执行。要启动中断系统,必须先进行中断初始化,其流程如下:

  a、是否要查询外设标志(EA=0或EA=1,EA 也叫 CPU中断允许(总允许)位)

  实验六、实现按钮控制数码管上的数值加1或减1,并且当按住按钮不放时,能实现快速的增减。

  这里的关键点在于如何实现快速增减,具体请详细分析代码。代码链接点击打开链接

  一.外部中断相关寄存器1.定时器/计数器控制寄存器控制寄存器(TCON)IT0:外部中断0触发方式控制位当IT0=0时,为电平触发方式(低电平有效)当IT0=1时,为边沿触发方式(下降沿有效)IT1:...博文来自:weixin_41445387的博客

  51单片机是我自学的第一款单片机,那时正好是过春节,想起那个寒假,外面下着大雪,有时还会传来一两声爆竹的炸响,而我一个人在房间里摆弄单片机开发板,反复调试程序的时光,真是难忘!我自认为单片机所有的资源...博文来自:Hero-Rambo的专栏

  本文主要介绍了定时器中断的三个应用,重点在于掌握定时器中断,pwm脉冲原理。...博文来自:a514371309的专栏

  一、定时器介绍    定时/计数器T0和T1分别是由两个8位的专用寄存器组成,即定时/计数器T0由TH0和TL0组成,T1由TH1和TL1组成。此外,其内部还有2个8位的特殊功能寄存器TMOD和TCO...博文来自:chenwenjie666的博客

  一、工作方式0定时器/计数器的工作方式0称之为13位定时/计数方式。它由TL(1/0)的低5位和TH(0/1)的8位构成13位的计数器,此时TL(1/0)的高3位未用。(图片)2.C/T:前面我们说过...博文来自:y26183225的博客

  一、中断中断是指计算机运行过程中,出现某些意外情况需主机干预时,机器能自动停止正在运行的程序并转入处理新情况的程序,处理完毕后又返回原被暂停的程序继续运行。(*以上解释来自于百度百科-中断) 二、51...博文来自:伪ICT学奴

  一、中断系统1.1.中断的概念什么是中断:CPU在处理某一事件A时,发生的另外某一事件B请求CPU去处理(产生了中断),随后CPU暂时中断当前正在执行的任务,去对事件B进行处理,CPU处理完事件B后再...博文来自:leikun153的博客

  89c51单片机内部有两个16位的定时/计数器,即定时器T0和定时器T1,单片机的定时功能其实就是通过计数来实现的,当单片机每一个机器周期产生一个脉冲时,计数器就加一。定时器的应用涉及到中断方面的知识...博文来自:飞翔的卡布达的博客

  硬件:STC89C52RC 开发工具:KeiluVision4对于刚接触单片机的同学来说可能会对定时器/计数器的应用很蒙圈,特别是初值的计算和各种定时方式的选择。下面希望能给你带来一个清晰的思路。定时...博文来自:嵌入式

  一、中断 1、中断的概念  CPU在处理某一事件A时,发生了另一事件B请求CPU迅速去处理(中断产生); CPU暂时中断当前的工作,转去处理事件B(中断响应和中断服务); 待CPU将事件B处理完毕后,...博文来自:iotflh的博客

  51单片机定时器使用举例    举例:定时50毫秒,使用定时器0,工作方式1;50毫秒一到,点亮指示灯D1。    按如下步骤进行:   一.定时器0初始化程序,按如下进行设置:    1.对TMOD...博文来自:zhengleiqing的专栏

  51单片机定时器设置入门(STC89C52RC)STC单片机定时器设置STC单片机定时器的使用可以说非常简单,只要掌握原理,有一点的C语言基础就行了。要点有以下几个:1.一定要知道英文缩写的原形,这样...博文来自:小磊s blog

  程序运行开始,A灯先亮5秒,然后灭了到B灯亮5秒,B再灭再到C灯亮5秒,C灭,程序结束,不再运行。这程序该怎么写?用定时器精确定时……晶振11.092MHZ。#includeREG52.H/***...博文来自:phenixyf的专栏

  单片机单片机的最小系统?内部的主要结构?答:最小系统:电源、晶振(为系统提供基本的时钟信号)、复位电路;内部结构:ROM/RAM、计时器、中断、I/O串并行口、总线扩展控制。RAM和ROM的区别...博文来自:牧羊人007的博客

  一、定时器介绍51单片机有2个16位的定时/计数器T0、T1,52单片机有3个16位定时/计数器T0、T1、T2。定时/计数器顾名思义就是有定时和计数的功能,下面主要介绍定时器,对计数器不进行论述单片...博文来自:虚拟旅行者的专栏

  51单片机定时器/计数器定时(定时控制、测量、延时。。。)和计数(对外部事件统计数目)。CreatedwithRaphaël2.1.2张三张三李四李四嘿,四哥,定时器和计数器有哪几种实现哦?想了想主要...博文来自:Alvin_hcf的博客

  以晶振12MHZ为例:可以得到:TMOD=0x01;TL0=0xb0;TH0=0x3c;至于怎么来的请看:12M晶振每秒可产生1M个机器周期,1M个机器周期就是1000000个机器周期。一个机器周期为...博文来自:的博客

  1、单片机的定时器其实是个计数装置,用于对单片机的机器周期或者外部输入的时钟信号进行计数。2、当对单片机的机器周期进行计数叫定时器,对外部输入的时钟信号进行计数叫计数器。3、每计一个机器周期,定时器+...博文来自:gengyiping18的专栏

  1.基本原理:补充:1.TMOD定时器/计数器工作方式寄存器GATE=1时,定时器由INT和TR共同控制,用于测量脉...博文来自:长路漫漫

  什么是时钟周期?什么是机器周期?什么是指令周期?时钟周期时钟周期也称为振荡周期,定义为时钟脉冲的倒数(可以这样来理解,时钟周期就是单片机外接晶振的倒数,例如12M的晶振,它的时间周...博文来自:逸凌123

  前段时间,做一个项目,有串口收发指令判断,按键类型判断,长短按之类,power的定时关电,事件的轮询扫描更新和display的定时扫描。这些要求就对定时器提出了要求,但是我的51单片机只有两个定时器,...博文来自:peitianmeng的专栏

  CPU时序:v振荡周期:为单片机提供定时信号的振荡源的周期(晶振周期或外加振荡周期)v状态周期:2个振荡周期为1个状态周期,用S表示。振荡周期又称S周期或时钟周期。v机器周期:1个机器周期含6个状态周...博文来自:mmciel

  若工作在定时器0:(不采用外部中断,且不采用计时,而采用定时,定时器模式选择:00:模式0,01:模式1)TMOD&=0xf0;TMOD=0x01;定时时间计算:若定时1ms,晶振FOSC为11.0...博文来自:魏军的博客

  有时候带手机不方便,可以又想知道时间,这时候可以用蜂鸣器做一个音频的时间提醒器,每60秒发一声提醒提醒器计时可以使用单片机的定时器T0、T1来做,计时的定时器用T1来做,工作在方式2(8位自动装载),...博文来自:狂奔的兔子

  文章1:如果你选的单片机的晶振一定,比如12MHZ来说吧,机器周期是1us,就是说每1us产生一次计数,就拿50ms来说,这是你想要的计时,意思是,对机器周期进行50000计数就可以得到我想要的,可T...博文来自:zyn919的专栏

  51单片机共有两个16位可编程的定时器/计数器,即定时器T0和定时器T1。它们既有定时功能又有计数功能,通过设置一些相关的特殊功能寄存器就可以选择启用哪一个功能。定时器系统是单片机内部一个独立硬件部分...博文来自:return9的博客

  51单片机内部一般有两个计数/定时器,T0T1,其框图如下:其中TH1TL1用来设定T1的计数初值,TH0TL0则用来设定T0的。一、工作模式设置寄存器TMOD,地址为89H,格式如下图:1、GATE...博文来自:的专栏

  单片机定时器的使用可以说非常简单,只要掌握原理,有一点的C语言基础就行了。要点有以下几个: 1. 一定要知道英文缩写的原形,这样寄存器的名字就不用记了。理解是最好的记忆方法。好的教材一定会给出所有英文...博文来自:perfect-顾(coder)的博客

  1.什么是中断2.中断有什么用3.双重功能的P3引脚4.8051的中断体系5.中断特殊寄存器6.中断的优先级7.中断服务程序的编写8.外部中断实现代码1.什么是中断中断就是指CPU正在执行一项任务A,...博文来自:ZJE

  /*名称:C51之定时器说明:对于C51单片机来说,其内部有2个定时器,分别是T0和T1。它输入的时钟源是固定的,就是晶振输送的。当然它还可以作为计数器,统计外部输入的脉冲信号。这个实验是定时器中断实...博文来自:BLSpan的博客

  CPU时序部分知识:振荡周期:为单片机提供定时信号的振荡源的周期(晶振周期或外加振荡周期)。状态周期:2个振荡周期为1个状态周期,用S表示。振荡周期又称S周期或时钟周期。机器周期:1个机器周期含6个状...博文来自:的博客

  关于定时器和计数器本身用的是相同的物理器件,因其工作模式的不同而进行转化。...博文来自:我有颗小粒的痣

  四个并行口均可作为输入输出接口使用,但又有各自的特点。因PO口是数据线和低八位的地址线,因此不用它作输入/输出接口,而是用它传输数据和低八位的地址信息...博文来自:Hi

  转载自--简书点击打开链接定时器/计数器简介首先,“定时器/计数器”说的是一个东西,因为它既能计时也能计数。其次,它与数码管不一样,不是独立出来的配件,而是存在于单片机内部的一个独立的硬件部分,依赖晶...博文来自:qingfeng_博客

  一.定时器1. 简介C51中的定时器和计数器是同一个硬件电路支持的,通过寄存器配置不同,就可以将他当做定时器或者计数器使用。确切的说,定时器和计数器区别是致使他们背后的计数存储器加1的信号不同。当配置...博文来自:Clearfix_Xia

  我们首先需要了解什么是中断?中断是指CPU在执行某一过程中由于外界原因必须暂停现在的事情,处理别的事情,处理完了再回去执行暂停的事情。中断的优点?1.分时操作。2.实时响应3.可靠性高中断中用到的寄存...博文来自:weixin_41445387的博客

  用KeilC51开发定时器/计数器基本的MCS-51单片机内部有两个16位可编程的定时器/计数器T0和T1。它们各自具有4种工作状态,其控制字和状态均在相应的特殊功能寄存器中,可以通过软件对控制寄存器...博文来自:云海唯C的专栏

  从调试数据分析USB通信协议——USB键盘鼠标【HID类设备】(四)平时我们在使用USB设备的时候,除了U盘使用的比较多以外,USB人体输入学设备,更是必不可少的存在,如鼠标,键盘。这里小编我也来简述...博文来自:小棋学编程的博客

  时钟周期时钟周期T是时序中最小的时间单位,具体计算的方法就是1/时钟源频率,假如单片的晶振是11.0592M,那么对于我们这个单片机系统来说,时钟周期=1/11059200秒。2:状态周期在8051单...博文来自:imxlw00的专栏

  集成式数字温度传感器DS1820利用单总线的特点可以方便地实现多点温度的测量,它的出现开辟了温度传感器技术的新领域。而可组网数字式温度传感器DS18B20则是DS1820的更新产品,它在电压、特性及封...博文来自:代码就是生产力!

  经常看些东西,有时在书上,有时在网上,还有的是突然醒悟,也该做一些总结,最近想总结一下单片机的定时以及延时问题。单片机主要是两种延时方式:1.硬件延时:要用到定时器/计数器,这种方法可以提高CPU的工...博文来自:m0_37286282的博客

本文链接:http://kingstonflowers.net/dingshifenxi/1095.html
随机为您推荐歌词

联系我们 | 关于我们 | 网友投稿 | 版权声明 | 广告服务 | 站点统计 | 网站地图

版权声明:本站资源均来自互联网,如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

Copyright @ 2012-2013 织梦猫 版权所有  Powered by Dedecms 5.7
渝ICP备10013703号  

回顶部