版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1,第六章 MCS-51单片机的定时器/计数器,2,实现定时常用的三种方法: 软件定时:占用CPU时间,效率低。 用555电路:不可编程。 可编程芯片:功能强,需要另外扩展。 单片机内部有2个16位的定时/计数器:使用灵活,编程方便。优先选用,3,6.1 定时器/计数器结构,一.定时器/计数器的结构及工作原理 MCS-51单片机内部有两个16位可编程的定时器/计数器,即定时器T0和定时器T1。每个定时器/计数器的基本部件是两个8位的计数器(其中TH1、TL1是T1的计数器,TH0、TL0是T0的计数器)拼装而成。它们是采用加“1”方式工作的。 两个特殊功能寄存器(TMOD和TCON)用来对定时
2、器/计数器的工作方式进行选择和控制。 8051单片机的定时器/计数器结构如下图所示。,4,8051单片机定时器/计数器结构示意图,加1计数器(高8位、低8位) TMOD,工作方式设置; TCON,启动、停止及设置溢出标志。,5,定时功能-计数输入信号是内部时钟脉冲,其计数脉冲来源于晶振时钟输出信号的12分频,即每个机器周期使寄存器的值加1。定时器可看做是对机器周期的计数器。所以,定时计数频率是振荡频率的1/12。 计数功能-计数脉冲来自相应的外部输入引脚,T0为P3.4,T1为P3.5。只要T0或T1的引脚上有一个1到0的负跳变,相应的计数器就加1. 在TMOD中,各有一个控制位(CT),分别
3、用于控制定时/计数器T0和T1工作在定时器方式还是计数器方式。,6,定时模式,对内部机器周期计数 定时时间 t 计数值N x Tcy 计数模式,对外部事件脉冲计数 计数脉冲周期要大于2 Tcy T0和T1计数器都只能递增计数,当16位计数器的计数值增加到0FFFFH时,再输入1个脉冲就会使计数器的值回零,并发生溢出信号,置相应的标志位(TCON中TF0或TF1置1), 向CPU发出中断请求。 设定计数次数:计数器的计数量程计数初值。,7,二.定时器计数器的控制寄存器,与定时器计数器有关的控制寄存器有: 1. 定时器控制寄存器TCON,8,TF1:定时器/计数器1(T1)的溢出中断标志位。 TF
4、0:定时器/计数器0(T0)的溢出中断标志位。 TR1:定时器/计数器1的运行控制位。通过置1或清0来启动或停止T1的计数。 TR0:定时器/计数器0的运行控制位。 单片机复位后,TCON寄存器的所有位均为0.,9,2. 工作方式控制寄存器TMOD 高4位用于定时器1,低4位用于定时器0, M1,M0:工作模式选择位。 定时器/计数器四种工作模式选择如表6-1所示。,10,11, C/T:定时器方式或计数器方式选择位 C/T=0时,为定时器方式 C/T=1时,为计数器方式 GATE:门控位 当GATE=0时,TCON寄存器中的TR0或TR1为1,则可立即启动定时器/计数器; 当GATE=1时,
5、不但要TR0或TR1为1,且单片机的INT0或INT1引脚的输入要为高电平,才能启动定时器/计数器。,12,三.定时器/计数器0或1的工作方式,1. 方式013位方式。由TL0的低5位和TH0的8位组成。TL0的5位计数溢出后,TH0的计数加1,直到全部的13位计数值为全1后,下一个计数脉冲的到达将使TF0置位为1,向CPU发出中断请求,同时把计数器变为全“0”。,13,其定时时间为: (213-初值)机器周期,14,2. 方式116位方式 16位计数,由TL0作为低8位、TH0作为高8位 ; 16位计数,由TL1作为低8位、TH1作为高8位。,其定时时间为: (216-初值)机器周期,15,
6、3. 方式28位自动装入时间常数方式,TL0作为8位内部计数器,TH0作为重装初值寄存器,在TL0计数溢出置位TF0标志的同时,由硬件控制直接将重装初值装入TL0,开始新一轮的计数,如此不断循环。 方式2和方式0、1最大的差别就是计数器的初值是由硬件控制自动装入的。 方式0、1一旦计数溢出,就表示计数器已回0,如果要按照原先的初值重新计数,就需要通过软件重装计数器初值。,16,方式2适合于用作较精确的脉冲信号发生器。,17,4. 方式32个8位方式,仅T0可以工作在方式3,T1处于方式3时停止计数。此时,T0分成2个独立的计数器TL0和TH0,前者用原来T0的控制信号(TR0、TF0),后者用
7、原来T1的控制信号(TR1、TF1)。 (1)TH0由TR1启动/停止,溢出TF1 (2)TL0由TR0启动/停止,溢出TF0 (3)TH0只能定时,TL0可以定时/计数,且都是8位。,18,1初始化步骤 MCS-51内部定时器/计数器是可编程的,其工作方式和工作过程均可由MCS-51通过程序对它进行设定和控制。因此,MCS-51在定时器/计数器工作前必须先对它进行初始化。初始化步骤为: (1) 根据题目要求先给定时器方式寄存器TMOD送一个方式控制字,以设定定时器/计数器的相应工作方式。 (2) 根据实际需要给定时器/计数器选送定时器初值或计数器初值,以确定需要定时的时间和需要计数的初值。,
8、6.2 定时器/计数器的初始化,19,(3) 根据需要给中断允许寄存器IE选送中断控制字和给中断优先级寄存器IP选送中断优先级字,以开放相应中断和设定中断优先级。(若采用中断方式) (4) 给定时器控制寄存器TCON送命令字,以启动或禁止定时器/计数器的运行。,20,2. 计数器初值的计算 定时器/计数器可用软件随时随地启动和关闭,启动时它就自动加1计数,一直计到满,即全为1,若不停止,计数值从全1变为全0,同时将计数溢出位置1并向CPU发出定时器溢出中断申请。对于各种不同的工作模式,最大的定时时间和计数数值不同。这里在使用中就会出现两个问题: 一是要产生比定时器最长的定时时间还要短的时间和比
9、计数器最多的计数次数还要少的计数次数; 二是要产生比定时器最长的定时时间还要长的时间和比计数器最多的计数次数还要多的计数次数。,21,如果计数初值设定为C,则计数器从初值C开始作加1计数到计满为全1所需要的计数值设定为D,由此便可得到如下的计算通式: C = M -D 式中,M为计数器量程,该值和计数器工作模式有关。在模式0时,M为213;在模式1时,M为216;在模式2和模式3时,M为28。,22,3定时器初值的计算,在定时器方式下,计数器由单片机脉冲经12分频后计数。因此,定时器定时时间T的计算公式为,式中,Tc为定时器的初始常数值;T为计数器从初 值Tc开始作加1计数到计满为全1所需要的
10、时间; M为计数器量程,和定时器的工作模式有关; fosc是单片机晶体振荡器的频率。,23,在上式中,若设Tc = 0,则定时器定时时间为最大(初值为0,计数从全0到全1,溢出后又为全0)。由于M的值和定时器工作模式有关,因此不同工作模式下定时器的最大定时时间也不一样。例如,若设单片机主脉冲晶体振荡器频率fosc为12 MHz,则最大定时时间为 模式0时: Tmax = 213 1s = 8.192 ms 模式1时: Tmax = 216 1s = 65.536 ms 模式2和3时: Tmax = 28 1s = 0.256 ms,24,例6-5.用定时器1,方式2实现1s的延时。,25,26
11、,根据13位定时器/计数器特性,先把低5位0CH送TL0,TL0的高三位置零,高8位F0H送至TH0。可用下列指令实现定时器T0初始化。 MOV TMOD,#00H ;T0工作于模式0,定时方式 MOV TL0,#0CH ;低5位送TL0寄存器 MOV TH0,#0F0H ;高8位送TH0寄存器,27,28,29,30,初始化程序: MOV TMOD,#16H ;T1定时模式1,T0计数模式2 MOV TL0,#0FFH ;T0时间常数送TL0 MOV TH0,#0FFH ;T0时间常数送TH0 MOV TL1,#78H ;T1时间常数(低8位)送TL1 MOV TH1,#0ECH ;T1时间
12、常数(高8位)送TH1 SETB TR0 ;置TR0为1,允许T0启动计数 SETB TR1 ;置TR1为1,允许T1启动计,31,32,33,例6-5.用定时器1,方式2实现1s的延时(12MHZ)。 解:因方式2是8位计数器,其最大定时时间为:256*1s=256s,为实现1s的延时,可选择定时时间为250s,再循环4000次。定时时间选定后,可确定计数值为250,则定时器1的初值为:X=M-计数值=256-250=6=6H。采用定时器1,方式2工作,因此,TMOD=20H。,34,DELAY:MOV R7,#40 ;置25ms计数循环初值 MOV R6,#100 ;置250s计数循环初值
13、 MOV TMOD,#20H ;设定时器1为方式2 MOV TH1,#06H ;置定时器初值 MOV TL1,#06H SETB TR1 ;启动T1 LP1: JBC TF1,LP2 ;查询计数溢出 SJMP LP1 ;无溢出则继续计数 LP2: DJNZ R6,LP1 ;未到25ms继续循环 MOV R6,#100 DJNZ R7,LP1 ;未到1s继续循环 RET ;返回主程序,35,6.3 定时器/计数器的应用,定时器/计数器是单片机的重要组成部分,其工作方式灵活,功能强大,配合中断使用可减轻CPU的负担,减少外围电路。本节通过实例说明定时器/计数器的使用方法。 【例6-6】 试通过定时器实现方波输出。 设时钟频率fosc为12 MHz,从P1.0输出频率周期为1ms的方波,如图所示。,36,37,38,39,40,41,【6-7】.设P1口接有8个LED,编程实现8个LED的跑马灯。系统晶振为12MHZ,跑马灯顺序为依次点亮P1.0-P1.7的LED,并不断循环。要求使用定时器T0的方式1进行定时,每个LED点亮时间为1s.,42,查询方式 : ORG 0000H LJMP MAIN ORG 0050H MAIN: MOV TMOD, #01 ;令T0定时方式1 MOV TH0, #3CH MOV TL0,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 三江学院《编译原理》2025-2026学年期末试卷
- 石家庄农林职业学院《模拟导游》2025-2026学年期末试卷
- 石家庄幼儿师范高等专科学校《环境与自然资源经济学》2025-2026学年期末试卷
- 上海师范大学《领导科学》2025-2026学年期末试卷
- 齐齐哈尔理工职业学院《电机学》2025-2026学年期末试卷
- 石家庄农林职业学院《金匮要略》2025-2026学年期末试卷
- 上海欧华职业技术学院《中西医结合外科学》2025-2026学年期末试卷
- 山西医科大学《涉外礼仪》2025-2026学年期末试卷
- 山西晋中理工学院《大学生劳动教育教程》2025-2026学年期末试卷
- 山西警官职业学院《当代英国概况》2025-2026学年期末试卷
- 2026贵州贵阳经济开发区招聘工作人员20名考试参考题库及答案解析
- 2026年山西运城农业职业技术学院单招综合素质考试题库含答案详细解析
- T-GFIA 006-2026 金毛狗种苗繁育及林下生态种植技术规范
- 第8课 北宋的政治 课件(27张内嵌视频)-七年级 历史下册(统编版)
- 2026年宁波卫生职业技术学院单招职业倾向性测试题库附答案详解(巩固)
- 窦性心律失常护理方案
- 湖北省武汉市2026届高三下学期三月调研考试语文试题(含答案)
- 三级 模块二 项目六 功能促进 任务三 指导或协助老年人使用安全防护性辅助器具
- 2026年上半年新疆维吾尔自治区招聘事业单位人员考试参考试题及答案解析
- 肿瘤姑息治疗2025年CSCO指南
- 门窗销售考核制度
评论
0/150
提交评论