单片机第8章-定时器-计数器..

上传人:n**** 文档编号:93086256 上传时间:2019-07-16 格式:PPT 页数:63 大小:600KB
返回 下载 相关 举报
单片机第8章-定时器-计数器.._第1页
第1页 / 共63页
单片机第8章-定时器-计数器.._第2页
第2页 / 共63页
单片机第8章-定时器-计数器.._第3页
第3页 / 共63页
单片机第8章-定时器-计数器.._第4页
第4页 / 共63页
单片机第8章-定时器-计数器.._第5页
第5页 / 共63页
点击查看更多>>
资源描述

《单片机第8章-定时器-计数器..》由会员分享,可在线阅读,更多相关《单片机第8章-定时器-计数器..(63页珍藏版)》请在金锄头文库上搜索。

1、第8章 定时器计数器,8.1 概述,8.2 定时/计数器的结构和工作原理,8.3 定时/计数器的控制,8.4 定时/计数器的功能扩展,第8章 定时器计数器,8.1 概述 8.2 定时/计数器的结构和工作原理 8.3 定时/计数器的控制 8.4 定时/计数器的功能扩展,实现定时常用的三种方法:,软件定时 不可编程的硬件定时 可编程芯片定时,8.1 概述,1. 软件定时,执行指令序列所花费的时间来构成一定的时间间隔,从而达到定时的目的。 例如: mov r0,50H delay:nop djnz r0, delay 优点:不需要专门的硬件设备。 缺点:浪费了宝贵的CPU资源,效率低。,2.不可编程

2、的硬件定时,如555电路,外接必要的元器件,即可构成硬件定时电路。但硬件连接好后,定时值与定时范围不能由软件进行控制和修改,即不可编程。,通过对系统时钟脉冲的计数实现的,易用软件来确定和修改,使用灵活。在单片机的定时/计数器不够用时,需另外扩展。,3.可编程芯片定时,单片机内部有2个16位的定时/计数器:使用灵活,编程方便。优先选用,第8章 定时器计数器,8.1 概述,8.2 定时/计数器的结构和工作原理,8.3 定时/计数器的控制,8.4 定时/计数器的功能扩展,8.2 定时/计数器的结构和工作原理,定时/计数器的结构,加1计数器(高8位、低8位) TMOD,工作方式设置;TCON,启动、停

3、止及设置溢出标志。,定时/计数器的工作原理,计数器脉冲来源: 来自外部脉冲源或系统时钟振荡器 T0或T1引脚引入外部事件脉冲信号,当检测到电平由高跳变到低时,计数器加1.,计数值:溢出时计数器值计数初值。,计数器全1时,再输入1个脉冲就回零,并发生溢出(TCON中TF0或TF1置1), 发中断请求。,计数模式,对外部事件脉冲计数。,定时器脉冲来源 : 来自内部时钟脉冲,定时模式,对内部机器周期计数。 定时时间 t 计数值N x Tcy,定时方式 : MCS-51主频为12MHz,机器周期为1s,即12MHz晶振时,每1s定时寄存器完成加1操作。,第8章 定时器计数器,8.1 概述,8.2 定时

4、/计数器的结构和工作原理,8.3 定时/计数器的控制,8.4 定时/计数器的功能扩展,8.3.1 控制寄存器TCON,TCON (88H),TFx: 定时器的溢出标志位 = 0, 计数未满 = 1 ,计数溢出 在进入中断服务程序时会自动清零;但在查询方式时必须软件清零。,8.3 定时/计数器的控制,TMOD:工作方式;TCON控制启动和中断申请。,TCON (88H),TRx: 定时器运行控制位 =0 ,停止计数 =1 ,启动计数;,低4位与外部中断有关。,各标志位的功能: (1)IT0选择外部中断请求0为跳沿触发方式还是电平触发方式: IT0=0,为电平触发方式。 IT0=1,为跳沿触发方式

5、。可由软件置“1”或清“0”。 (2)IE0外部中断请求0的中断请求标志位。 IE0=0,无中断请求。 IE0=1,外部中断0有中断请求。当CPU响应该中断,转向中断服务程序时,由硬件自动清“0”。 (3)IT1外部中断请求1为跳沿触发方式还是电平触发方式,意义与IT0类似。 (4)IE1外部中断请求1的中断请求标志位,意义与IE0类似。,复习,(5)TF0T0溢出中断请求标志位。 T0计数后,溢出时,由硬件置“1”TF0,向CPU申请中断,CPU响应TF0中断,此标志一直保持到CPU响应中断后,硬件才自动清“0”TF0,TF0也可由软件清0。 (6)TF1T1的溢出中断请求标志位,功能和TF

6、0类似。 TR1、TR0 2个位与中断无关。 当MCS-51复位后,TCON被清0,则CPU关中断,所有中断请求被禁止。,复习,中断允许寄存器IE CPU对中断源的开放或屏蔽(中断的允许和禁止),由片内的中断允许寄存器IE控制。字节地址为A8H,可位寻址。格式如下:,复习,(1)EA:中断允许总控制位(总开关) 0:CPU屏蔽所有的中断请求(CPU关中断); 1:CPU开放所有中断(CPU开中断),但五个中断源的中断请求是否允许,还要由IE中的5个中断请求允许控制位决定。 (2)ES:串行口中断允许位 0:禁止串行口中断; 1:允许串行口中断。,复习,(3)ET1:定时器/计数器T1的溢出中断

7、允许位 0:禁止T1溢出中断;1:允许T1溢出中断。 (4)EX1:外部中断1中断允许位 0:禁止外部中断1中断;1:允许外部中断1中断。 (5)ET0:定时器/计数器T0的溢出中断允许位 0:禁止T0溢出中断;1:允许T0溢出中断。 (6)EX0:外部中断0中断允许位。 0:禁止外部中断0中断;1:允许外部中断0中断。,复习,8.3.2 工作方式寄存器TMOD,M1、M0:工作方式设置位,0 0:13位计数器 0 1:16位计数器 1 0:可自动重装的8位计数器 1 1:T0分为2个8位计数器;T1此时停止工作,8.3.2 工作方式寄存器TMOD,TMOD (89H),T0,T1,C/T :

8、计数器/定时器选择位 = 0, 片内时钟定时器(内部时钟信号) = 1, 外部事件计数器(外部计数脉冲),GATE:门控位 = 0,启动/停止仅由软件对TRx位写“1”/“0”控制,= 1,启动/停止由软件对TRx位写“1”/“0” 和在外中断INTx引脚出现信号的高/低共同控制,计数脉冲输入,8.3.3 定时器计数器的工作方式,定时器,计数器,方式0 13位计数。由TL0的低5位和TH0的8位组成。TH0溢出时,置位TF0标志,向CPU发出中断请求。,计数个数:Nt / Tcy 初值:a213N=8192-N,GATE=0时,仅由TR0控制与门的开启; GATE=1时,与门开启,由INTx引

9、脚信号和TR0共同控制。TR0=1时, INTx引脚的高电平启动计数,低电平停止计数。,注意门控位GATE的作用:,方式1 16位计数,由TL0作为低8位、TH0作为高8位 。,初值:a216N=65536-N,初值:a28N=256-N,方式2 自动重装初值的8位计数方式 ,适合于用作较精确的脉冲信号发生器。,方式3 T0分成为两个独立的8位计数器TL0和TH0 ,T1处于方式3时停止计数。,初始化程序应完成如下工作: 确定工作方式(对TMOD赋值) 计算初值(写入TH0、TL0或TH1、TL1) 开中断(对IE赋值) 启动定时/计数器(TR0或TR1置位),8.3.4 定时/计数器应用举例

10、,定时应用有查询、中断两种方式。,计数初值的确定 在方式0下,当为计数方式时,计数值范围1-8192; 在方式1下,当为计数方式时,计数值范围1-65536; 在方式2下,当为计数方式时,计数值范围1-256;,当为定时方式时, 定时时间:(2n-计数初值)*机器周期 计数初值: 2n- 定时时间/机器周期,例1:若晶振频率为6MHz,试计算MCS-51单片机定时/计数器的最小定时时间和最大定时时间。 解:先确定机器周期: 计算最小定时时间: 对于定时器的几种工作方式来说,最小定时时间都是一样的,Tmin=2s 。,计算最大定时时间: 当T/C工作在方式1下的定时时间最长,则最大定时时间为 T

11、max=TcTp=2162s=131072s=131ms。,例2: 用T0的方式0产生10ms的定时,并使P1.0引脚上输出周期为20ms的方波。采用中断方式,设系统时钟频率为6 MHz。,20ms,解:1、计算计数初值X: 晶振为6MHz,所以Tcy为2s。 Nt/ Tcy 1010-3/210-6= 5000 a213500031920C78H 即应将63H(高8位)送入TH0中,18H(低5位)送入TL0中,2、求T0的方式控制字TMOD: M1M0=00,GATE=0,C/T=0,可取方式控制字为00H;,ORG 0000H LJMP MAIN ORG 000BH LJMP DVT0

12、ORG 0100H MAIN:MOV TMOD,#00H MOV TH0,#63H MOV TL0,#18H SETB ET0 SETB EA SETB TR0 SJMP $,DVT0:CPL P1.0 MOV TH0,#63H MOV TL0,#18H RETI END,采用中断方式:,ORG 0000H LJMP MAIN ORG 0100H MAIN:MOV TMOD,#00H ;设置T0 LOOP:MOV TH0,#63H ;计数初值 MOV TL0,#18H MOV IE,#00H ;禁止中断 SETB TR0 ;启动定时 JNB TF0,$ ;查询计数溢出 CLR TF0 ;清溢出

13、标志 CPL P1.0 ;取反输出 SJMP LOOP ;重复循环 END,采用查询方式:,ORG 0000H AJMP MAIN ORG 001BH CPL P1.7 ORG 0030H MAIN:MOV TMOD,#20H MOV TH0,#06H MOV TL0,#06H,例3 利用定时/计数器T1,采用工作方式2,使P1.7引脚输出1ms的方波.设时钟频率为6MHz.,SETB ET1 SETB EA SETB TR1 SJMP $ ;等待计数溢出中断 END,例4 利用T0门控位测试INT0引脚上出现的正脉冲宽度,已知晶振频率为12MHz,将所测得值高位存入片内21H单元,低位存入片

14、内20H单元中.,原理:门控位GATE为1时,TRx=1,INTx=1才启动定时器.可测定外部的正脉冲的宽度.,ORG 0000H AJMP MAIN ORG 0200H MAIN:MOV TMOD,#09H MOV TH0,#00H MOV TL0,#00H MOV R0,#20H L1: JB P3.2,L1 SETB TR0 L2: JNB P3.2,L2,L3: JB P3.2,L3 CLR TR0 MOV R0,TL0 INC R0 MOV R0,TH0 SJMP $ END,例:用T0扩展外部中断源 MOV TMOD,#06H MOV TL0,#0FFH MOV TH0,#0FFH

15、 SETB TR0 SETB EA SETB ET0,例5 用于外部中断扩展 在计数方式下,初值设为满程,外部中断源接计数引脚。输入一下降沿信号,计数器加1后便产溢出中断。,;置T0为计数器方式2 ;置计数初值 ; ;启动T0工作 ;CPU开中断 ;允许T0中断,思考,使用T1,以工作方式1,定时5s(晶振频率为6MHz)。,如何实现?,第8章 定时器计数器,8.1 概述,8.2 定时/计数器的结构和工作原理,8.3 定时/计数器的控制,8.4 定时/计数器的功能扩展,8.4 定时/计数器的功能扩展,一、8253的主要功能,(1)具有3个独立的16位计数器; (2)每个计数器都可按二进制或BC

16、D码进行计数; (3)每个计数器有6种工作方式;,图:8253的内部结构,(1)数据总线缓冲器。这是8253与CPU数据总线连接的8位双向三态缓冲器。CPU用输入输出指令对8253进行读写的所有信息,都是通过这8条总线传送的。,(2)读/写逻辑。这是8253内部操作的控制部分。读数据由8253传向CPU,写数据由CPU传向8253。,(3)控制字寄存器。在8253初始化编程时,由CPU写入控制字以决定计数器的工作方式。此寄存器只能写入而不能读出。,(4)计数器0、计数器1、计数器2。这是三个计数器/定时器,每一个都是由一个16位的可预置值的减法计数器构成。这三个计数器的操作是完全独立的。,二. 8253的引脚,三.8253的控制字,(1)计数器选择(D7D6)。控制字的最高两位决定这个 控制字是哪一个计数器的控

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

当前位置:首页 > 大杂烩/其它

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