




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第六章第六章 定时器定时器1、16位定时/计数器2、工作:对脉冲计数3、控制:计数启动和允许信号4、状态:计数器溢出信号 定时器的结构定时器的结构定时器是集成在单片机中的功能部件,通过设置后,定时器是集成在单片机中的功能部件,通过设置后,具有一定自管理和独自工作的能力,与具有一定自管理和独自工作的能力,与CPU通过内部通过内部总线连接及交换信息,其逻辑结构如图所示。总线连接及交换信息,其逻辑结构如图所示。 定时器的工作原理定时器的工作原理v定时定时/计数器中的核心部件为可预置初值计数器中的核心部件为可预置初值16位位计数器。预置初值后开始计数,直至计数值归计数器。预置初值后开始计数,直至计数值
2、归0或产生溢出,可申请中断。计数器有加或产生溢出,可申请中断。计数器有加 1 计计数或减数或减1计数两种形式。计数脉冲是频率稳定计数两种形式。计数脉冲是频率稳定的系统时钟的分频信号,则称为定时方式,计的系统时钟的分频信号,则称为定时方式,计数脉冲是外部脉冲信号,则称为计数方式。数脉冲是外部脉冲信号,则称为计数方式。 定时方式定时方式 计数方式计数方式 定时器的控制定时器的控制定时器工作方式定时器工作方式寄存器寄存器TMOD定时器的控制定时器的控制定时器控制寄存定时器控制寄存器器TCON 定时器工作方式寄存器定时器工作方式寄存器TMODTMOD用于控制用于控制T0和和T1的的 工作方式。其定义如
3、下:工作方式。其定义如下: TMODD7D6D5D4D3D2D1D089HGATEC/TM1M0GATEC/TM1M0定时器定时器1定时器定时器0方式选择位方式选择位M1、M0:4种工作方式:种工作方式:M1M1 M0M0方式方式功能描述功能描述0 00 00 01313位位0 10 11 11616位位1 01 02 28 8位自动重装位自动重装1 11 13 3T0T0为两个为两个8位位 定时器控制寄存器定时器控制寄存器TCONCON的作用是控制定时器的启动、停止以及标志定时器的溢出的作用是控制定时器的启动、停止以及标志定时器的溢出和中断情况。定时器控制字和中断情况。定时器控制字TCON的
4、格式如下:的格式如下: TCON8FH8EH8DH8CH8BH8AH89H88H88HTF1TR1TF0TR0IE1IT1IE0IT0(1)启动控制位)启动控制位 TR0、TR1。 TRx =0,停止定时器工作,停止定时器工作 TRx =1,启动定时器工作,启动定时器工作 例:启动例:启动T0:SETBTR0(2)溢出中断标志位)溢出中断标志位 TF0、TF1。 定时器溢出使硬件置定时器溢出使硬件置TFx=1,引起中断请求,引起中断请求,CPU响应中断后,响应中断后,硬件自动清零,也可由软件清零。硬件自动清零,也可由软件清零。TCON是可以位寻址的,因此可用位操作指令清溢出或启动定时器是可以位
5、寻址的,因此可用位操作指令清溢出或启动定时器工作。复位时,工作。复位时,TCON所有位均为所有位均为0。定时器的定时器的工作方式工作方式方式方式3方式方式2方式方式0方式方式1 方式方式0: 13位计数器 定时器工作方式定时器工作方式0为一个为一个13位的定时位的定时/计数器。定时器计数器。定时器T1的结构和操作与定时器的结构和操作与定时器T0相同。该方式下,相同。该方式下,16位寄存器位寄存器只用只用13位,其中位,其中TL0的高的高3位未用,低位未用,低5位也是整个位也是整个13位的位的低低5位,位,TH0占整个占整个13位的高位的高8位。当位。当TL0的低的低5位溢出时,位溢出时,向向T
6、H0进位,而进位,而TH0溢出时,向中断标志溢出时,向中断标志TF0进位(称硬件进位(称硬件置位置位TF0),并申请中断。确认定时器),并申请中断。确认定时器0是否完成操作可通是否完成操作可通过查询过查询TF0是否置位,或是否产生定时器中断。是否置位,或是否产生定时器中断。 方式方式1: 16位计数器 设置设置M1M0为为01,则定时器工作于方式,则定时器工作于方式1,此时,此时为一个为一个16位的定时位的定时/计数器,其逻辑电路结构如图计数器,其逻辑电路结构如图所示。在这种方式下,其电路结构和操作方式与方所示。在这种方式下,其电路结构和操作方式与方式式0基本相同,仅在计数器的位数方面有差别。
7、基本相同,仅在计数器的位数方面有差别。 方式方式2:初始常数自动重装载 设置设置M1M0为为10,则定时器工作于方式,则定时器工作于方式2,此,此时为一个能自动重装初值的时为一个能自动重装初值的8位定时位定时/计数器,其计数器,其逻辑电路结构如图所示。逻辑电路结构如图所示。 方式方式3:两个 8 位独立计数器 设置设置M1M0为为11,则定时器工作于方式,则定时器工作于方式3,其逻辑,其逻辑电路结构如图所示。电路结构如图所示。 在工作方式3模式下,定时/计数器0被拆成两个独立的8位计数器TL0和TH0。其中TL0既可以作计数器使用,也可以作为定时器使用,定时/计数器0的各控制位和引脚信号全归它
8、使用,其功能和操作与方式0或方式1完全相同。TH0就没有那么多“资源”可利用了,只能作为简单的定时器使用,而且由于定时/计数器0的控制位已被TL0占用,因此只能借用定时/计数器1的控制位TR1和TF1,也就是以计数溢出去置位TF1,TR1则负责控制TH0定时的启动和停止。 由于TL0既能作定时器也能作计数器使用,而TH0只能作定时器使用而不能作计数器使用,因此在方式3模式下,定时/计数器0可以构成二个定时器或者一个定时器和一个计数器。 如果定时/计数器0工作于工作方式3,那么定时/计数器1的工作方式就不可避免受到一定的限制,因为自己的一些控制位已被定时/计数器借用,只能工作在方式0、方式1或方
9、式2下,如果设置T1工作在方式3,则T1停止工作,相当于其他方式时令TR10。启停位启停位TRx的设置的设置中断允许位的设置中断允许位的设置计数初值的计算并装入计数初值的计算并装入THx,TLx工作方式寄存器工作方式寄存器TMOD的设置的设置 定时器初始化编程定时器初始化编程v使用定时器工作之前,先写入控制寄存器,确使用定时器工作之前,先写入控制寄存器,确定好定时器工作方式。定好定时器工作方式。v 初始化编程格式:初始化编程格式: MOV TMOD,# 方式字方式字 ;选择方式选择方式 MOV THx,#XH ;装入装入Tx时间常数时间常数 MOV TLx,#XL SETB EA ;开开Tx中
10、断中断 SETB ETx SETB TRx ;启动启动Tx定时器定时器 定时器的编程步骤定时器的编程步骤4TH3RD2ND1ST溢出处理编程格式溢出处理编程格式计算时间常数计算时间常数按时间或计数长度选择方式按时间或计数长度选择方式按实际需要选择定时按实际需要选择定时/计数功能计数功能 定时器定时方式下的应用定时器定时方式下的应用查询方式查询方式定时应用两种方式定时应用两种方式中断方式中断方式 查询方式查询方式v先查询定时器溢出标志,再进行溢出处理。先查询定时器溢出标志,再进行溢出处理。 ;定时器初始化定时器初始化 WAIT: JBC TFx,PT ;检测溢出标志检测溢出标志 SJMP WAI
11、T PT :MOVTHx,#XH ;重装时间常数重装时间常数 MOVTLx,#XL ;溢出处理溢出处理SJMP WAIT 中断方式中断方式初始化后执行其他任务,中断服务程序处初始化后执行其他任务,中断服务程序处理溢出。理溢出。ORG0000HLJMPMAINORG000BH(001BH) ;Tx中断入口中断入口LJMPINT_xMAIN: ;初始化后执行其他程序初始化后执行其他程序 SJMP $INT_x : ;溢出中断服务程序溢出中断服务程序MOVTHx,#XH ;重装时间常数重装时间常数MOVTLx,#XL RETI END 主程序主程序 中断子程序中断子程序 应用举例应用举例1由由P1.
12、0输出方波信号,周期为输出方波信号,周期为2ms,设,设fosc=12MHz。解:每隔解:每隔1ms改变一次改变一次P1.0的输出状态。的输出状态。 选择定时器工作方式,计算时间初值用选择定时器工作方式,计算时间初值用T0非非门控方式门控方式1定时。定时。 计算时间常数:计算时间常数:X = 216 - t/T = 216 -1000/1 = FC18H 溢出处理编程格式溢出处理编程格式 应用举例应用举例1查询方式:查询方式:汇编语言程序如下:汇编语言程序如下:START: MOV TMOD , #01HMOV TL0 , #18HMOV TH0 , #FCHMOV IE , #00HSETB
13、 TR0LOOP: JBC TF0 , PTF0 SJMP LOOPPTF0: CPL P1.0MOV TL0 , #18HMOV TH0 , #FCHSJMP LOOPEND 应用举例应用举例1中断方式:中断方式: 方波周期用定时方波周期用定时器器T0来确定,采用中来确定,采用中断的方法来确定,即断的方法来确定,即在在T0中设置一个时间中设置一个时间常数(计数初值),常数(计数初值),使其每隔使其每隔1ms产生一产生一次中断,次中断,CPU响应中响应中断后,改变一次断后,改变一次P1.0的输出状态。的输出状态。T0中断中断入口地址为入口地址为000BH。 应用举例应用举例1汇编语言程序如下:
14、汇编语言程序如下:ORG0000HAJMPMAINORG000BHAJMPPT0INTORG0100HMAIN: MOV SP, #60HMOVTMOD, #01HMOVTL0, #18HMOVTH0, #FCH SETBEASETBET0SETBTR0 HERE: SJMP HEREPT0INT:CPL P1.0MOV TL0, #18H MOVTH0, #FCH RETIEND 应用举例应用举例2例:门控方式测量正脉冲宽度。例:门控方式测量正脉冲宽度。 下面以下面以T1为例,来介绍门控制位为例,来介绍门控制位GATE1的应用。门控制位的应用。门控制位GATE1可使可使定时器定时器 /计数器
15、计数器T1的启动计数受的启动计数受 的控制,的控制,当当GATE1=1,TR=1时,只有时,只有 引脚输入引脚输入高电平时,高电平时,T1才被允许计数,利用才被允许计数,利用GATE1的这个功能,(对于的这个功能,(对于GATE0也也是一样的),可测量是一样的),可测量 引脚(引脚(P3.3)上)上正脉冲的宽度(机器周期数)。正脉冲的宽度(机器周期数)。引脚输入被检测信号,记录在正脉冲的引脚输入被检测信号,记录在正脉冲的时间内包含机器脉冲个数。设脉宽小于时间内包含机器脉冲个数。设脉宽小于65.5ms,等待查询等待查询 ,正脉冲过后,读出,正脉冲过后,读出TH1 TL1。程序如下:程序如下: O
16、RG 0000HRESET: AJMP MAIN ORG 0400HMAIN: MOV SP,#60HMOV TMOD,#90HMOV TL1,#00HMOV TH1,#00HLOOP0: JB P3.3, LOOP0 SETB TR1LOOP1: JNB P3.3, LOOP1 LOOP2: JB P3.3, LOOP2CLR TR1LOOP3: LCALL DIR AJMP LOOP3 应用举例应用举例3LED亮亮1s灭灭1s闪烁,设时钟频率为闪烁,设时钟频率为6MHz。长定时方法:增加一个软件计数器或一个硬件计长定时方法:增加一个软件计数器或一个硬件计数器。数器。硬件方式:硬件方式: T
17、0定时,定时,T1计数计数T0的定时跳变信号的定时跳变信号P1.0的负跳变次数,计满的负跳变次数,计满5个跳变为个跳变为1s。 应用举例应用举例3汇编语言程序如下:汇编语言程序如下:START: MOV TMOD,#61H MOV TL1,#0FBH MOV TH1,#0FBH CLR P1.0 SETB TR1LOOP1: CPL P1.7LOOP2: MOV TH0,#3CH MOV TL0,#0B0H SETB TR0LOOP3: JBC TF0,LOOP4 SJMP LOOP3LOOP4: CPL P1.0 JBC TF1,LOOP5 SJMP LOOP2LOOP5: MOV TL1,
18、#0FBH MOV TH1,#0FBH SJMP LOOP1 END 应用举例应用举例4使用内部定时器使用内部定时器0,按方式按方式1工作,即作为工作,即作为16位定时器使用每位定时器使用每隔隔0.05s T1溢出中断一次,溢出中断一次,P1口的口的P1.0P1.7分别接八个分别接八个发光二极管,要求编写程序模拟发光二极管,要求编写程序模拟时序控制装置,要求时序控制装置,要求八盏灯依次循环点亮,间隔时间是一秒钟,即第一秒第一八盏灯依次循环点亮,间隔时间是一秒钟,即第一秒第一盏亮,第二秒第二盏亮盏亮,第二秒第二盏亮第八秒第八盏亮第八秒第八盏亮(记为一次循记为一次循环环),第九秒第一盏亮,第九秒第
19、一盏亮并一直循环下去。并使用并一直循环下去。并使用R3记记录循环次数。录循环次数。 应用举例应用举例4 主程序框图:主程序框图: 中断子程序框图:中断子程序框图: 应用举例应用举例4汇编语言程序如下:汇编语言程序如下: ORG 0000HAJMP STARTORG 000BH ;定时器中断入口定时器中断入口AJMP INT_T0 ;定时器子程序定时器子程序ORG 0040HSTART:MOV SP,#60H ;设定堆栈入口设定堆栈入口 MOV TMOD,#10H ;设定定时器工作方式设定定时器工作方式 MOV TL0,#0E0H ;设定定时器初始值设定定时器初始值MOV TH0,#0B1HMO
20、V R0,#00H ;R0记录循环次数,置初值记录循环次数,置初值MOV R1,#50H ;置中断次数置中断次数MOV R3,#00H ;R3记录循环次数,初值记录循环次数,初值0SETB TR0 ;定时器定时器0工作工作SETB ET0 ;定时器中断允许定时器中断允许SETB EA ;CPU中断允许中断允许SJMP $ ;等待中断等待中断INT_T0: PUSH ACC ;堆栈,保存现场堆栈,保存现场PUSH PSWPUSH DPLPUSH DPHCLR TR0 ;关定时器关定时器0MOV TL0,#0E0H ;重新置定时器初值重新置定时器初值MOV TH0,#0B1HSETB TR0 ;开
21、定时器开定时器0 应用举例应用举例4DJNZ R1,EXIT ;条件满足,跳出,恢复现场条件满足,跳出,恢复现场MOV R1,#50 ;置循环次数置循环次数MOV DPTR,#DATA1 ;DPTR指向数据区首地址指向数据区首地址MOV A,R0MOVC A,A+DPTR ;查表,选择要输出的值查表,选择要输出的值MOV P1,A ;向向P1口输出口输出INC R0 ;循环一次循环一次R0自加自加1ANL 00H,#07H ;判断循环是否到判断循环是否到8次次MOV A,R1JNZ EXIT ;判断条件判断条件,跳转跳转INC R3 ;记录循环次数记录循环次数EXIT: POP DPH ;堆栈
22、,恢复现场堆栈,恢复现场POP DPLPOP PSWPOP ACCRETIDATA1: DB 01H,02H,04H,08H,10H,20H,40H,80H ;数据区数据区END 应用举例应用举例5假设某假设某MCS-51应用系统的两个外部中断源已被占用,设应用系统的两个外部中断源已被占用,设置定时器置定时器T1工作在方式工作在方式2,作波特率发生器用。现要求增,作波特率发生器用。现要求增加一个外部中断源,并控制加一个外部中断源,并控制P1.0引脚输出一个引脚输出一个5KHz左右的左右的方波。假设系统时钟为方波。假设系统时钟为6MHz。1ST2ND3RD 应用举例应用举例5方式选择:方式选择:
23、设置设置TL0工作在方式工作在方式3计数模式,把计数模式,把T0引脚(引脚(P3.4)作增加)作增加的外部中断输入端,的外部中断输入端,TL0的初值设置为的初值设置为0FFH,当检测到,当检测到T0引脚电平出现负跳变时,引脚电平出现负跳变时,TL0增增1并溢出,申请中断,这相并溢出,申请中断,这相当于跳沿触发的外部中断源。当于跳沿触发的外部中断源。TH0为为8位方式位方式3定时模式,定时模式,定时控制定时控制P1.0输出输出5KHz的方波信号,如图所示。的方波信号,如图所示。 应用举例应用举例5初值计算:初值计算:TL0的初值设为的初值设为0FFH。由于由于5kHz的方波的周期为的方波的周期为
24、200 ,所以,所以TH0的定时时间为的定时时间为100 。TH0的初值计的初值计算如下:算如下: X = 28 - t/T = 28 -100/2 = CEH程序设计程序设计 源程序如下:源程序如下: ORG 0000H LJMP MAIN ORG 000BH LJMP TL0INT ORG 001BH LJMP TH0INT ORG 0100HMAIN: MOV TMOD,#27H ;T0为方式为方式3计数,计数,T1为方式为方式2定时定时 MOV TL0,#0FFH MOV TH0,#CEH MOV TL1,#datal ;data根据根据波特率常数要求来定根据根据波特率常数要求来定 M
25、OV TH1, #datah ;datal为为data的低的低8位,位, datah为高为高8位位MOV TCON,#55H ;允许允许T0中断中断MOV IE, #9FH ;启动启动T1.TL0INT: MOV TL0,#0FFH ;TL0中断服务程序,中断服务程序,TL0重新重新装入初值装入初值RETITH0INT: MOV TH0,#CEHCPL P1.0 ;P1.0位取反输出位取反输出RETI 应用举例应用举例6利用单片机实现实时时钟的设计(晶振频利用单片机实现实时时钟的设计(晶振频率为率为6MHZ)计数初值的计算计数初值的计算秒、分、时的实现秒、分、时的实现程序设计程序设计1ST2N
26、D3RD 应用举例应用举例6计数初值的计算:计数初值的计算:若使用定时器的方式若使用定时器的方式1,定时间最大为,定时间最大为131ms。我们把定时时间设定为。我们把定时时间设定为100ms,初值计算如下:初值计算如下: X = 216 - t/T = 216 -100000/2 = 3CB0H 秒、分、时的实现:秒、分、时的实现:秒计时采用中断方式进行溢出次数的累秒计时采用中断方式进行溢出次数的累计,计满十次,可得到秒计时。从秒到计,计满十次,可得到秒计时。从秒到分,从分到时是通过软件累加并进行比分,从分到时是通过软件累加并进行比较的方法来实现的。要求每满较的方法来实现的。要求每满1秒则秒则“秒秒”单元单元32H中的内容自动加中的内容自动加1;“秒秒”单元满单元满60,则,则“分分”单元单元31H中的内容中的内容加加1;“分分”单元满单元满60,则,则“时时”单元单元30H中的内容自动加中的内容自动加1;“时时”单元满单元满24,则将则将32H、31H、30H的内容全部清零。的内容全部清零。程序设计程序设计程序如下
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 沥青路面白改黑施工方案
- 日海智能:拟质押日海通服服务有限公司股权涉及其股东全部权益价值项目资产评估报告
- 电动门干挂石材施工方案
- 巴中地下室防潮层施工方案
- 宁乡钢筋套筒施工方案
- 2025年安徽省阜阳市阜阳市重点中学中考一模历史试题(原卷版+解析版)
- 【专精特新】激光雷达企业专精特新“小巨人”成长之路(智研咨询)
- 高中语文学术性论著阅读“四维三层”教学设计体系探究
- 中外美术32讲知到课后答案智慧树章节测试答案2025年春西安工业大学
- 三级人力资源管理师-《企业人力资源管理师(理论知识)》考前强化模拟卷8
- 《空气动力学基础》绪论课件
- 卡通插画幼儿园国防教育主题班会课程PPT实施课件
- 红楼梦人物关系图谱可A4打印版
- 第一届全国中学生地球科学竞赛初赛试题试题含答案
- 石化公司建设项目竣工文件整理归档规范
- A4线缆标签数据模板
- 加油站电器火灾应急预案演练记录
- 冲压件,汽车表面零件缺陷及原因分析
- 电熔旁通鞍型
- 2022八年级下册道德与法治全册知识点梳理
- 工程数学线性代数第一章同济第五版ppt课件
评论
0/150
提交评论