51单片机精确定时

51单片机精确定时

ID:34218963

大小:93.50 KB

页数:5页

时间:2019-03-04

51单片机精确定时_第1页
51单片机精确定时_第2页
51单片机精确定时_第3页
51单片机精确定时_第4页
51单片机精确定时_第5页
资源描述:

《51单片机精确定时》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、精确定时与计数一、定时器相关寄存器TCON的高4位 TF1  TR1  TF0  TR0          TF1(TCON.7):定时器1的溢出中断标志位TR1(TCON.6):定时器1的运行控制位TF0(TCON.5):定时器0的溢出中断标志位TR0(TCON.4):定时器0的运行控制位TMODGATE1  C/T1  M1  M0  GATE0  C/T0  M1  M0        定时器1   

2、      定时器0 TH0、TL0、TH1、TL1中断允许控制寄存器IE中的三位。ET0(IE.1)、ET1(IE.4)、EA(IE.7)定时

3、器的结构(以T0为例),把定时器分为六个部分来研究:脉冲源控制端 计数器 中断请求位 中断允许控制 中断服务程序晶振T0 TH0、TL0  TF0   ET0 EA voidTm0()interrup1using1 脉冲源:用作定时器时,取晶振作为脉冲源。每12个振荡周期(即一个机器周期)计数器(即TH0、TL0)加一。用作计数器时T0脚出现下降沿(管脚从1到0)跳变时,计数器加一。定时器和计数器的区别就是脉冲源不同,除此之外其他的工作过程完全相同。配置TMOD的C/T0可以选择脉冲源。置0是定时器,置1是计数器。控制端:相当于一个开关,开关打开时,

4、脉冲源的信号才能传到计数器(TH0,TL0)中,计数器会不断增一。关闭这个开关,脉冲源的信号不能使计数器(TH0,TL0)增一。控制端的开启和关闭状态由TR0、GATE0和INT0脚电平决定。控制端的开启条件是TR0&(~GATE0

5、INT0)如下图。图片:11.jpg一般情况下令TR0=1,GATE0=0开启控制端。TR0=0关闭控制端。当需要INT0引脚控制计数器时,令TR0=1,GATE0=1,这样INT0脚为高电平时计数,低电平时停止计数,这样可以很方便的测量脉冲宽度。计数器,中断请求位:这里说的计数器是指TH0、TL0这两个寄存器。每收到一

6、个脉冲源输出的脉冲,这个计数器就会增一。计数器计满溢出时,会置位TF0,产生中断请求。注意,这里只是产生中断请求,是否能够进入中断程序,还要由中断允许位决定。直接对TF0置位,也可以产生中断请求。计数器TH0、TL0一共有四种计数方式:方式0(M1=0M0=0)13位计数器。它由TH0的8位和TL0的低5位构成。TL0大于0x1F时就向TH0进位。TH0计满溢出就向TF0置位请求中断。方式1(M1=0M0=1)16位计数器。与方式1差不多。由TH0的8位和TL0的8位构成。TH0计满溢出就向TF0置位请求中断方式2(M1=1M0=0)8位定时器。TL

7、0计满溢出时,置位TF0请求中断,并且将TH0中的数值重新装入TL0中。方式3(M1=1M0=1)这个方式只有定时器0有,把定时器0当成两个8位定时器来用。定时器1没有方式3,如果设成方式3就相当于停掉了定时器1。中断允许控制:上一步产生中断请求(TF0被置1),并不代表会响应中断。还要看中断允许控制位,这是一个开关,只有开关在开启状态,中断才会响应。每个中断源都有自己的分开关,比如T0的中断允许位是ET0,T1的中断允许位是ET1.还有一个总开总EA,它关闭时所有的中断都被禁止。必须是分开关和总开关都打开时,才能进入中断服务程序。#include<

8、reg51.h>//11.0592Mvoidtimer0()interrupt1using1//5ms中断一次定时器中断处理函数{TH0=0xEE;  //重置定时初始值。。。其他程序}voidmain(void){TMOD

9、=0x01; //选择定时器0,工作模式1,16位定时器TH0=0xEE;  //置定时初始值TL0=0x00;ET0=1; //开启定时器0中断允许,允许定时器0中断。EA=1;  //开启全局中断允许。允许所有中断TR0=1; //开启控制端 while(1){。。。主程序}}其他中断源的向量表:中断源C语言        

10、中断序号         例子  外部中断0(INT0)  0    void_INT0()interrupt0using1  定时器T0中断  1    void_T0()interrupt1using1  外部中断1(INT1)    2   void_INT1()interrupt2using1  定时器T1中断   3     void_T1()interrupt3using1  串行口中断  4    void_UART()interrupt4using1  定时器T2中断 5     void_T2()interrupt5using1  

11、定时器例程之一:精确定时1秒钟。晶振频率11.0592M。用定时器0的工作方式1实验。因为工作方式1,最大的

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。