单片机原理 高职 计算机第6章 MCS.51的定时器

上传人:E**** 文档编号:89108495 上传时间:2019-05-18 格式:PPTX 页数:20 大小:323.55KB
返回 下载 相关 举报
单片机原理 高职 计算机第6章  MCS.51的定时器_第1页
第1页 / 共20页
单片机原理 高职 计算机第6章  MCS.51的定时器_第2页
第2页 / 共20页
单片机原理 高职 计算机第6章  MCS.51的定时器_第3页
第3页 / 共20页
单片机原理 高职 计算机第6章  MCS.51的定时器_第4页
第4页 / 共20页
单片机原理 高职 计算机第6章  MCS.51的定时器_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《单片机原理 高职 计算机第6章 MCS.51的定时器》由会员分享,可在线阅读,更多相关《单片机原理 高职 计算机第6章 MCS.51的定时器(20页珍藏版)》请在金锄头文库上搜索。

1、第6章 MCS-51的定时器/计数器,6.1 定时器与计数器的计数与定时,两个可编程的定时器/计数器T1、T0。 两种工作模式: (1)计数器工作模式 (2)定时器工作模式 4种工作方式(方式0-方式3)。,6.2 定时器/计数器的控制,一、定时方式寄存器TMOD 定时器方式控制寄存器TMOD在特殊功能寄存器中,字节地址为89H,无位地址。TMOD的格式如下: TMOD的高4位用于T1,低4使用于T0,4种符号的含义如下: GATE:门控制位。GATE和软件控制位TR、外部引脚信号INT的状态,共同控制定时器计数器的打开或关闭。 C/ :定时器计数器选择位。C/ 1,为计数器方式;C/ 0,为

2、定时器方式。 M1M0:工作方式选择位,定时器计数器的4种工作方式由M1M0设定。具体见下表。,二、定时控制寄存器TCON TCON在特殊功能寄存器中,字节地址为88H,位地址(由低位到高位)为88H8FH,由于有位地址,十分便于进行位操作。 TCON的作用是控制定时器的启、停,标志定时器溢出和中断情况。其中,TFl,TRl,TF0和TR0位用于定时器计数器;IEl,ITl,IE0和IT0位用于中断系统。 各位定义如下: TF1:定时器T1溢出标志位。当定时器T1计满溢出时,由硬件使TF1置“1”,并且申请中断。进入中断服务程序后,由硬件自动清“0”;在查询方式下用软件清“0”。 TR1:定时

3、器T1运行控制位。由软件清“0”关闭定时器T1。当GATE=1,且 为高电平时,TR1置“1”启动定时器T1;当GATE=0,TR1置“1”启动定时器T1。 TF0:定时器T0溢出标志位。当定时器T0计满溢出时,由硬件使TF0置“1”,并且申请中断。进入中断服务程序后,由硬件自动清“0”;在查询方式下用软件清“0”。,6.2 定时器/计数器的控制,TR0:定时器T0运行控制位。由软件清“0”关闭定时器T0。当GATE=1,且 为高电平时,TR0置“1”启动定时器T0;当GATE=0,TR0置“1”启动定时器T0。 IE1:外部中断1请求标志。 IT1:外部中断1触发方式选择位。 IE0:外部中

4、断0请求标志。 IT0:外部中断0触发方式选择位。,6.2 定时器/计数器的控制,6.3 定时器/计数器的初始化,初始化的步骤一般如下: 1. 确定工作方式(即对TMOD赋值); 2. 预置定时或计数的初值(可直接将初值写入TH0、TL0或TH1、TL1); 3. 根据需要开放定时器/计数器的中断(直接对IE位赋值); 4. 启动定时器/计数器(若已规定用软件启动,则可把TR0或TR1置“1”;若已规定由外中断引脚电平启动,则需给外引脚步加启动电平。当实现了启动要求后,定时器即按规定的工作方式和初值开始计数或定时)。 下面介绍一下确定时时/计数器初值的具体方法。 因为在不同工作方式下计数器位数

5、不同,因而最大计数值也不同。 现假设最大计数值为M,那么各方式下的最大值M值如下: 方式0:M=213=8192 方式1:M=216=65536 方式2:M=28=256 方式3:定时器0分成两个8位计数器,所以两个M均为256。 因为定时器/计数器是作“加1”计数,并在计数满溢出时产生中断,因此初值X可以这样计算: X=M-计数值,6.4 定时器/计数器的工作方式,一、工作方式0 图6-2 定时器T0工作于方式0时的逻辑电路结构图 方式0是13位计数结构的工作方式,其计数器由TH0全部8位和TL0的低5位构成。T0工作于方式0时的逻辑电路结构图如图6-2所示,当TL0的低5位计数溢出时,向T

6、H0进位,而全部13位计数溢出时,则向计数溢出标志位TF0进位。,在方式0下,当为计数工作方式时,计数值的范围是: 18192(213) 当为定时工作方式时,定时时间t的计算公式为: t=(213计数初值)晶振周期12 或 t=(213计数初值)机器周期 其时间单位与晶振周期或机器周期相同(s)。 【例题6-1】 当某单片机系统的外接晶振频率为6MHz,该系统的最小定时时间是多少?最大定时时间是多少? 解:最小定时时间 t=213(2131)1/(6106)12210-6s2(s) 最大定时时间 t=(2130)1/(6106)121638410-6s16384(s),6.4 定时器/计数器的

7、工作方式,【例题6-2】 设某单片机系统的外接晶振频率为6MHz,使用定时器T1以方式0产生周期为500s的等宽正方波连续脉冲,并由P1.0输出。以查询方式完成。 1.计算计数初值 欲产生500s的等宽正方波脉冲,只需在P1.0端以250s为周期交替输出高低电平即可实现,为此定时时间应为250s。使用6MHz晶振,根据上例的计算,可知一个机器周期为2s。方式0为13位计数结构。设待求的计数初值为X,则: (213-X)210-625010-6 求解得: X213-(2502)=8067。 二进制数表示为1111110000011B,转换成十六进制表示,高8位为0FCH,放入TH1,即(TH1)

8、FCH;低5位为03H,放入TL1,即(TL1)03H。,6.4 定时器/计数器的工作方式,2.TMOD寄存器初始化 为把定时器/计数器T1设定为方式0,则M1M000;为实现定时功能,应使C/ 0;为实现定时器/计数器1的运行控制,则GATE0。定时器/计数器T0不用,有关位设定为0。因此TMOD寄存器应初始化为00H。 3.由定时器控制寄存器TCON中的TR1位控制定时的启动和停止:TR11,启动;TR10,停止。 4.程序设计: MOV TMOD,00H ;设置T1为工作方式0 MOV TH1,OFCH ;设置计数初值 MOV TL1,03H MOV IE,00H ;禁止中断 SETB

9、TR1 ;启动定时 LOOP: JBC TF1,LOOP1 ;查询计数溢出 AJMP LOOP LOOP1: MOV TH1,FCH ;重新设置计数初值 MOV TL1,03H CPL P1.0 ;输出取反 AJMP LOOP ;重复循环,6.4 定时器/计数器的工作方式,6.4 定时器/计数器的工作方式,二、工作方式1 方式1是16位计数结构的工作方式,计数器由TH0全部8位和TL0全部8位构成。与工作方式0基本相同,区别仅在于工作方式1的计数器TL1和TH1组成16位计数器,从而比工作方式0有更宽的定时/计数范围。,当为计数工作方式时,计数值的范围是: 165536(216) 当为定时工作

10、方式时,定时时间t计算公式为: t=(216计数初值)晶振周期12 或 t=(216计数初值)机器周期 【例题6-3】 当某单片机系统的外接晶振频率为6MHz,该系统的最小定时时间是多少?最大定时时间是多少? 解:最小定时时间 t=216(2161)1/(6106)12210-6s2(s) 最大定时时间 t=(2160)1/(6106)1213107210-6s131(ms),6.4 定时器/计数器的工作方式,【例题6-4】 某单片机系统外接晶振频率为6MHz,使用定时器T1以工作方式1产生周期为500s的等宽连续正方波脉冲,并在P1.0端输出。但以中断方式完成。 1.计算计数初值 欲产生50

11、0s的等宽正方波脉冲,只需在P1.0端以250s为周期交替输出高低电平即可实现,为此定时时间应为250s。使用6MHz晶振,根据上例的计算,可知一个机器周期为2s。方式1为16位计数结构。设待求的计数初值为X,则: (216-X)210-625010-6 求解得: X216-(2502)=65411D=FF83H 高8位为0FFH,放入TH1,即(TH1)FFH;低8位为83H,放入TL1,即(TL1)83H。,6.4 定时器/计数器的工作方式,2.TMOD寄存器初始化 为把定时器/计数器T1设定为方式1,则M1M001;为实现定时功能,应使C/ 0;为实现定时器/计数器1的运行控制,则GAT

12、E0。定时器/计数器T0不用,有关位设定为0。因此TMOD寄存器应初始化为10H。 3.程序设计: 主程序: MOV TMOD,10H ;定时器T1工作方式 MOV TH1,0FFH ;设置计数初值 MOV TL1,83H SETB EA ;开中断 SETB ET1 ;定时器T1允许中断 LOOP:SETB TR1 ;定时开始 HERE:SJMP $ ;等待中断 中断服务程序: ORG 001BH MOV TH1,0FFH ;重新设置计数初值 MOV TL1,83H CPL P1.0 ;输出取反 RETI ;中断返回,6.4 定时器/计数器的工作方式,6.4 定时器/计数器的工作方式,三、工作

13、方式2 方式2是8位自动装入时间常数方式。由TL0构成8位计数器,TH0仅用来存放时间常数。启动T0前,TL0和TH0装入相同的时间常数,当TL0计满后,除定时器回零标志TF0置位,具有向CPU请求中断的条件外,TH0中的时间常数还会自动地装入TL0,并重新开始定时或计数。所以,工作方式2是一种自动装入时间常数的8位计数器方式。工作方式2的结构见图6-4。,初始化时,8位计数初值同时装入TL0和TH0中。当TL0计数溢出时,置位TF0,同时把保存在预置寄存器TH0中的计数初值自动加载TL0,然后TL0重新计数。如此重复不止。这不但省去了用户程序中的重装指令,而且也有利于提高定时精度。但这种工作

14、方式下是8位计数结构,计数值有限,最大只能到255。 【例题6-5】 使用定时器T0以工作方式2产生100s定时,在P1.0输出周期为200s的连续正方波脉冲。已知晶振频率fosc6MHz。 1.计算计数初值 6MHz晶振下,一个机器周期为2s,以TH0作重装载的预置寄存器,TL0作8位计数器,假设计数初值为X,则: (28-X)210-610010-6 求解得: X206D11001110B0CEH 把0CEH分别装入TH0和TL0中: (TH0)0CEH,(TL0)0CEH,6.4 定时器/计数器的工作方式,2.TMOD寄存器初始化 定时器/计数器T0为工式方式2,M1M010;为实现定时

15、功能 C/ 0;为实现定时器/计数器0的运行 GATE0;定时器/计数器T1不用,有关位设定为0。所以TMOD寄存器的内容为02H。 3.程序如下:(查询方式) MOV IE,00H ;禁止中断 MOV TMOD,02H ;设置定时器T0为方式2 MOV TH0,0CEH ;保存计数初值 MOV TL0,0CEH ;设置计数初值 SETB TR0 ;启动定时 LOOP:JBC TF0,LOOP1 ;查询计数溢出 AJMP LOOP LOOP1:CPL P1.0 ;输出方波 AJMP LOOP ;重复循环 由于方式2具有自动重装载功能,因此计数初值只需设置一次,以后不再需要软件重置。,6.4 定时器/计数器的工作方式,4. 程序如下:(中断方式) 主程序: MOV TMOD,02H ;定时器T0工作方式2 MOV TH0,0CEH ;保存计数初值 MOV TL0,0CEH ;设置计数初值 SETB EA ;开中断 SETB ET0 ;定时器T0允许中断 LOOP:SETB TR0

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号