51单片机定时器与计数器教学课件_第1页
51单片机定时器与计数器教学课件_第2页
51单片机定时器与计数器教学课件_第3页
51单片机定时器与计数器教学课件_第4页
51单片机定时器与计数器教学课件_第5页
已阅读5页,还剩27页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、定时/计数器要求(四学时)基本内容:定时计数的概念及作用,51单片机定时/计数器的工作原理,简单应用实例讲解。重点:定时计数的方式1,方式2原理及简单应用。难点:工作原理的理解、初值计算。 基本内容:总结复习定时计数工作原理,讲解定时/计数器的较复杂应用(结合数码管显示、中断、按键)。重点:定时计数的方式1、方式2的应用。难点:应用设计思路及编程方法,编程初始化及 溢出处理。 第1页,共32页。定时计数的概念- 一个定时/计数的形象实例假如有一个水容器1000滴水刚好装满初始时已经装入500滴水问:还需滴入多少滴水才能将其 装满?答:还需滴入500滴水才能将其 装满,501滴溢出。答:还需50

2、0秒时间才能将其装满,501秒溢出。问:如果每秒滴入1滴水,还需多 长时间才能将其装满?这就是“计数”这就是“定时”这就是“计数初值”第2页,共32页。定时与计数的关系定时/计数器:对电脉冲进行计数的单元电路。定时与计数的关系用计数器为周期性脉冲计数,产生定时。定时和计数是同一个概念,本质上定时只是计数的一个特例。定时计数器工作时,关心问题:1、定时/计数器(容器)的位宽度。2、初值(容器初始已有水滴数)的设置。3、水溢出以后的处理。第3页,共32页。定时/计数器的计数方向、初值计算及溢出处理计数方向加计数:每个脉冲计数器加1减计数:每个脉冲计数器减1。计数器的容量:计数器有一定的计数范围(脉

3、冲计数的最大个数),由计数器的位宽度决定。 2n=X初值+要求(计数或定时) X初值= 2n 要求(计数或定时)计数器的溢出:不同CPU计数器的容量不同,若为16位,则计数容量最大可存放数值为65535,65536为刚好溢出时的值。当加到计数器为全1时,再输入一个脉冲就使计数器回零并溢出。计数器溢出会产生溢出位,作为程序处理溢出的标记。第4页,共32页。以上寄存器均为SFR中单元结构2个16位T/C分别由8位计数器TH0、TL0、 TH1、TL1组成加“1”计数器控制寄存器TCON:控制T0、T1的启停、中断等方式寄存器TMOD:控制T0、T1 的工作方式T0T1 定时/计数器结构1个16位T

4、/C分别由8位计数器TH2、TL2 组成加/减/“1”计数器T2CON、 T2MOD :控制T2的启停、中断及工作方式等第5页,共32页。(1)51单片机定时/计数的输入源脉冲作计数器用对T0(P3.4)、T1(P3.5)和T2(P1.0)引脚上输入的外部脉冲进行计数。当外部输入脉冲发生负 跳变时,进行“+1”计数,外部输入脉冲周期应大于2个机器周期。作定时器用对系统的时钟振荡器输出脉冲的12分频信号( fOSC/12 )进行计数定时。即机器内部震荡信号的1/12分频,每一个机器周期做一次“+1”运算。以机器周期为最小定时单位。第6页,共32页。(2)定时计数器的结构框图定时/计数器逻辑结构第

5、7页,共32页。 0 0 方式0 13位计数器 0 1 方式1 16位计数器 1 0 方式2 可自动重新装载初值的8位计数器 1 1 方式3 T0分为2个8位计数器,T1停止计数M1M0操作方式功 能GATEC/TM1M0GATEC/TM1M0控制T1控制T0(3)51单片机定时/计数器工作方式定时/计数器(T0、T1)由TMOD中M1M0决定工作方式第8页,共32页。GATE= 二组M1、M0 分别 控制T0、T1的工作方式(二位组合对应方式0、方式1、方式2、方式3。INT1 INT0引脚输入电平的控制。GATE: 门控位。设定T1、T0运行时是否受 0 不受外部中断控制C/T=1 受外部

6、中断控制0 为定时功能1为计数功能GATEC/TM1M0GATEC/TM1M0控制T1控制T07.3 定时/计数器控制T0、T1定时/计数器方式控制寄存器TMOD第9页,共32页。LSBMSBTF1TR1TF0TR0IE1IT1IE0IT0T1、T0 启/停控制位T1、T0 溢出标志位与外部中断INT1、INT0有关在中断系统中已介绍“0” 停止“1” 启动“1” 有溢出“0” 无溢出可编程 可控制当T溢出时,由硬件自动使TF置1,并向CPU申请中断,CPU响应中断后,自动对TF清零;也可查询处理,用软件对TF清零或置位。工作记录有无溢出T0、T1定时/计数器控制寄存器TCON第10页,共32

7、页。(1) 方式0 M1M0=00工作原理 13位的定时计数器,由TH的8位和TL的低5位组成T1(P 3.5)GATETR1INT1震荡器12TL15位TH18位TF1中断KC/T=0C/T=1控制定时/计数器方式0逻辑图111“+1”中断TL40(以T1为例T0原理相同)。13位计数器TF1“+1”“+1”第11页,共32页。【例7-1】利用定时器T0( T0与T1的使用方式相同)产生定时脉冲。每隔2ms从P1.0脚上输出脉宽为2个机器周期的正脉冲(单片机采用频率为6MHZ的晶体)。解:首先求出定时器T0初值。由于时钟频率为6MHZ,所以,定时/计数器的计数脉冲的周期为2s=12/6M。根

8、据上面的公式可以得出:2ms =(213-T0初值) 定时/计数器计数脉冲周期。(213-T0初值) 210-6=210-3 T0初值=7096=1101110111000B,其中将高8位11011101B=DDH赋给TH0,低5位11000B=18H赋给TL0。第12页,共32页。(2) 方式1 M1M0=01工作原理 16位的定时计数器,由TH1的8位和TL1的8位组成T1(P 3.5)GATETR1INT1震荡器12TL18位TH18位TF1中断KC/T=0C/T=1控制 定时/计数器方式1逻辑图16位计数器“+1”1(以T1为例,T0原理相同)中断TF1“+1”“+1”第13页,共32

9、页。【例7-2】选择T1模式1用于定时,在P1.0脚上输出周期为10ms的方波,单片机采用6M晶振。解:题目要求输出周期为10ms的方波,也就是说高电平或低电平持续时间为5ms ,那么只要使P1.0脚上的电平每隔5ms取反一次就可得到周期为10ms方波,因而T1的定时时间为5ms。将T1设为定时方式1:GATE=0,C/T=0,M1M0=01;故TMOD=10H。下面计算5ms定时T1的初值:定时/计数器计数脉冲周期: T=12/fosc=12/6106=2s设初值为X则:(216X)2106 =5103 X=0 xF63C=1111011000111100B 因为在作16位计数器用时, X的

10、低8位装入TL1,所以TL1=0 x3C;X的高8位应装入TH1,所以TH1=0 xF6。第14页,共32页。 方式2 M1M0=10 可自动重装载的8位计数器TH1(TH0)被定义为赋值寄存器TL1(TL0)被定义为计数器定时/计数器方式2逻辑图 T1(P3.5) GATETR1 INT1震荡器12TL18位TF1中断KC/T=0C/T=1控制TH18位重装载重装载1“+1”以T1为例:中断TL1 8位TF1“+1”“+1”第15页,共32页。(4)方式3逻辑图及工作原理(只有T0有) 中 断震荡器121/12f0scTL08位TF0中断KC/T=0C/T=1控制1/12f0sc T0(P3

11、.4)GATETR0INT0KTH08位TF1中断控制1/12f0scTR11TH0借用了T1的TR1和TF1,因此控制了T1的中断此时T1可作串行通信的波特率控制发生器(下周介绍)“+1”“+1”1“+1”“+1”TF0TF1 中 断“+1”第16页,共32页。工作方式3应用小结仅仅T0能工作在方式3,将16位计数器T0分为两个独立的8位计数器TH0、TL0。TL0占用T0的控制位:C/T、GATE、TR0、INT0、TF0,TL0功能和操作与T0在方式0、1、2时相同,可工作在定时方式或计数方式。TH0只能工作在定时方式,占用T1的控制位TR1、TF1,并控制T1的中断。当T0工作在方式3

12、时,T1只能工作在方式02,且不能产生中断请求,此时,T1仅能控制C/T位切换计数或定时工作方式,计数器溢出输出一般送往串行口,充当波特率发生器。第17页,共32页。(5)定时/计数器应用时的初值计算计数器的初值由程序设定设计数器宽度为n,定时时长为T,要求计数脉冲个数为N,计数初值为X,机器周期为TCY 。计数:2nN+X X= 2n -N定时:2nT/ TCY + X X= 2n - T/ TCY = -T/ TCY 计数器的初值由程序设定实际应用时最好用(简单): X=-N 计数方式 X=-T/ TCY 定时方式第18页,共32页。(6)初值装载与GATE影响要产生周期性定时(计数),方

13、式0、1计数溢出后必须软件重新加载THn、TLn ,否则,THn、TLn将从0开始计数。方式2可自动重装。GATE的作用当GATE=0时,软件置TR为1,启动计数器,软件清除TR为0,停止计数器。当GATE=1时,仅在INTn为高时,软件置TR为1才能启动计数器,可由此可实现硬件对启动的直接控制,如测脉冲宽度等。第19页,共32页。(7)定时/计数器T0和T1的控制小结 通过设置TMOD中的C/T位,可控制T0、T1工作在定时方式或计数方式 通过设置TMOD中的M1M0位,可控制T0、T1工作在4种不同的工作模式 通过控制TCON中的TR1、TR0位,启动或停止计数器, GATE位决定启动是否

14、受对应外部中断引脚控制。 根据定时或计数长度计算初值,最好直接写负值。第20页,共32页。定时/计数器应用时的初始化 MCS-51单片机的定时/计数器T0、T1是可编程的,因此在使用之前需要进行初始化。其编程包括以下几个步骤:(1)确定工作方式,即对TMOD寄存器进行赋值(2)计算计数初值,并写入寄存器TH0、TL0或TH1、TL1中,最好直接写负值。(3)如果用中断方式,置位ETx允许T/C中断(4)如果用中断方式,置位EA使CPU开中断(5)置位TRx启动计数第21页,共32页。应用实例(方式1应用实例1)例 要求:从P1.0引脚上输出周期为2ms的方波(fOSC=12MHz),采用T0定

15、时1ms。计数初值计算:(12分频的机器周期=1us)(216-X初值)TCY1ms X=216-(1*10-3 )/(1*10-6 )X初值65536-1000055536=FC18HTH0FCH, TL018H(等效为: TH0high(-1000), TL0low(-1000)中断方式: ORG 0000H ;复位入口地址 AJMP MAIN ORG 000BH ;T0中断服务入口地址 AJMP TIMER0 ORG 0100第22页,共32页。MAIN:MOV TMOD,#01H ;设置工作模式 MOV TH0,#0FCH ;T0送初值high(-1000) MOV TL0,#18H

16、SETB EA ;开放CPU中断 SETB ET0 ;开放T0中断 SETB TR0 ;启动计数器 SIMP $ ;等待计数器溢出中断TIMER0: MOV TH0,#0FCH ;T0送初值 MOV TL0,#18H CPL P1.0 ;P1.0取反产生方波 RETI END第23页,共32页。查询方式 ORG 0000H ;复位入口地址 AJMP MAIN ORG 0100MAIN:MOV TMOD,#01H ;设置工作模式 SETB TR0 ;启动计数器LOOP:MOV TH0,#0FCH ;T0送初值 MOV TL0,#18H JNB TF0,$ ;等待计数器溢出 CPL P1.0 ;P

17、1.0取反产生方波 CLR TF0 ;清除溢出标志 SJMP LOOP END第24页,共32页。工作方式2应用实例要求:从P1.0上输出一个周期性方波,周期10ms,晶振=12M。分析:周期为10ms的方波要求P1.0上的电平每5ms变更一次,但在方式2,T0的最大定时为256us,因此不能直接实现,可用T0产生250us定时,再用软件计数20次,实现5ms定时。计数初值计算:(28-X初值)TCY250us250us:X初值6H 第25页,共32页。实现程序讲解: ORG 0000H AJMP MAINMAIN: MOV TMOD,#02H ;设置T0工作模式 SETB P1.0 ;置P1

18、.0为高 MOV TH0,#06H ;置T0初值,5ms MOV TL0,#06H SETB TR0 ;启动T0LOOP: MOV R2,#20LOOP1:JNB TF0,LOOP1 ;等待T0溢出 CLR TF0 ;清除溢出标志 DJNZ R2,LOOP1 ;等待5ms CPL P1.0 ;置P1.0为低 AJMP LOOP第26页,共32页。门控位GATE的应用(测高电平宽度)设在单片机INT0引脚上接入一个高电平宽度小于65536us的周期性脉冲,试编程测量其正脉冲宽度分析:T0工作在方式1,计数初值为0,GATE=1,置TR0=1,则当INT0=1时,T0开始计数,直到INT0=0,此

19、时,T0中的值为INT0引脚上的脉冲宽度。INT0INT0为高时T1开始计数INT0为低时T1停止计数宽度65ms第27页,共32页。 ORG 0000HMAIN: MOV TMOD,#09H ;置T0方式控制字:方式1,定时方式 MOV TH0,#00H MOV TL0,#00H ;T0从0开始计数LOOP0:JB P3.2,LOOP0 ;等待高电平结束 SETB TR0 ;T0允许计数LOOP1:JNB P3.2,LOOP1 ;等INT0高电平LOOP3:JB P3.2,LOOP3 ;等INT0高电平结束 CLR TR0 MOV R6,TL0 ;存储测量值;低八位存R6 MOV R7,TH

20、0 ; 高八位存31h JMP MAIN ENDINT0INT0为高时T1开始计数INT0为低时T1停止计数宽度65ms“与”第28页,共32页。工作方式1应用实例2例要求:从P1.0引脚上输出周期为2s的方波(fOSC=12MHz,对应12分频机器周期1us)产生2s周期的方波,需要1s的定时对P1.0进行取反,但1s超过T0、T1的最大定时范围。可用T0产生20ms定时,定时到后更改1个软件计数器(初值50),当软件计数器减到0时,1s定时时间到)计数初值计算:(216-X初值)TCY20ms=20000us)(定时20000us)X初值0-20000-20000=0B1E0H TH00E0H,TL00B1H(等效为: TH0high(-20000), TL0low(-20000)中断方式: ORG 0000H ;复位入口地址 AJMP MAIN ORG 000BH ;T0中断服务入口地址 AJMP TIMER0 ORG 0100H第29页,共32页。MAIN:MOV TMOD,#01H ;设置T0工作模式1 MOV TH0,HIGH(-20000) ;T0送初值

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论