单片机应用技术 (C语言版)第7章 定时器-计数器.ppt
《单片机应用技术 (C语言版)第7章 定时器-计数器.ppt》由会员分享,可在线阅读,更多相关《单片机应用技术 (C语言版)第7章 定时器-计数器.ppt(49页珍藏版)》请在麦多课文档分享上搜索。
1、单片机应用技术 (C语言版) 第7章 定时器/计数器,2018/10/6,1,第7章 定时器/计数器,目 录7.1 定时器/计数器的结构及原理 7.2 定时器/计数器的控制 7.3 定时器/计数器的工作方式 7.4 定时器/计数器应用举例,2018/10/6,2,本章主要讨论MCS-51单片机定时器/计数器的逻辑结构和工作原理。内容主要有定时器T0、T1的逻辑结构,工作方式的选择和应用。本章为单片机的主要内容,也是第8章串行口的学习的基础。,2018/10/6,3,7.1 MCS-51 计数/定时器的原理,实质是计数器,脉冲每次下降沿,计数器加1. 计数脉冲来源于内部的晶振,由于周期极为准确,
2、称定时器。 计数脉冲来源于外部引脚,由于周期一般不准确,称为计数器。,89c51 有2个可独立控制的16位定时器/计数器: T0、T1,计数(定时)周期:机器周期,2018/10/6,4,计数周期的计算: 12MHz晶振:每计一个数的时间为1uS。如:计100个数的时间为100uS。计50000个数的时间为50mS。 11.0592MHz晶振:每计一个数的时间为1.085uS。,2018/10/6,5,几个基本概念 1、计数器的容量:容量一般用二进制的位数表示。 2、加1计数器:每来一个脉冲,计数数值加1。 3、计数器溢出:计数器计数达到容量的最大值时,再来一个脉冲,计数值将回到0,重新计数,
3、且相应的标志位置1,称为“溢出”。 4、计数初值:计数器开始计数的值。,2018/10/6,6,7.1.2 MCS-51定时/计数器的结构,2018/10/6,7,MCS-51定时/计数器结构说明: 两个16位的可编程定时器/计数器:定时器/计数器0、1。 每个定时器有两部分构成:THx和TLx 特殊功能寄存器TMOD和TCON ,主要对T0和T1进行控制。 引脚P3.4、P3.5,输入计数脉冲。 特殊功能寄存器之间通过内部总线和控制逻辑电路连接起来。,2018/10/6,8,MCS-51定时/计数器的工作原理,定时器/计数器T0、T1 的内部结构简图如下图所示。,2018/10/6,9,从上
4、图可以看出: 定时器的实质是一个加1计数器。 C/T =0 ,为定时器方式。计数信号由片内振荡电路提供,振荡脉冲12分频送给计数器,每个机器周期计数器值增1。,2018/10/6,10,C/T =1 ,为计数方式。计数信号由Tx引脚(P3.4、P3.5)输入,每输入一有效信号,相应的计数器中的内容进行加1。 控制信号TRx=1时,定时器启动。 当定时器由全1加到全0时计满溢出,从0开始继续计数,TFx=1 ,向CPU申请中断。,2018/10/6,11,7.2.2 T0、T1的控制寄存器TCON,TF1、TF0:T1、T0的溢出标志位计数溢出,TFx=1。中断方式:自动清零;查询方式:软件清零
5、。,7.2 定时器/计数器的控制,2018/10/6,12,TR1、TR0:T1、T0启停控制位。置1,启动定时器;清0,关闭定时器。 IE1、IE0:外部中断1、0请求标志位 IT1、IT0:外部中断1、0触发方式选择位,2018/10/6,13,7.2.1 T0、T1 工作方式寄存器TMOD 功能:确定定时器的工作方式。 其格式如图所示:,GATE外部门控制位。GATE0,不使用外部门控制计数器GATE1,使用外部控制门。 TRx=1, P3.2(P3.3)=1时,启动定时器。,TMOD不能位寻址,2018/10/6,14,C/T定时或计数方式选择位 。C/T0时,为定时器C/T1时,为计
6、数器计数器时采样过程:CPU在每机器周期S5P2期间,输入信号进行采样。若前一机器周期采样值为1,下一机器周期采样值为0,则计数器增1,随后的机器周期S3P1期间,新的计数值装入计数器。,2018/10/6,15,补充(P128 7.4节)由于检测一个从1-0的下降沿需要2个机器周期,因此被检测的外部输入脉冲的频率=1/24振荡频率。例如:单片机晶振12MHz,则被检测的外部输入脉冲最高为500Hz。,P134 3(2),2018/10/6,16,M1、M0工作方式选择位。 如下表所示:,2018/10/6,17,注:方式0是为了与早期的MCS-48系列单片机兼容,现在不必使用,采用方式1替代
7、方式0。,2018/10/6,18,2、 M1M001时,选择模式1。T0的结构:16位定时器/计数器。,2018/10/6,19,7.3 定时器T0、T1的工作方式,TL0:存放计数初值的低8位。TH0: 存放计数初值的高8位; (一次中断)定时时间=(216-定时初值)机器周期(一次中断)最大定时时间:216机器周期注意:每次计满溢出后,计数器都复位为0,要进行新一轮的计数还需重新赋初值。(即方式1的初值不能保存住,每次都要重新赋初值) 举例方式1,2018/10/6,20,C语言程序(方式1) #include sbit LED=P10; unsigned char t; void ma
8、in() LED=0; /定义灯的初始状态为灭TMOD=0x10; /设置定时器1工作在方式1TH1=(65536-50000)/256;TL1=(65536-50000)%256; /设置定时初值TR1=1; /启动定时器1,2018/10/6,21,EA=1; ET1=1;/允许定时器1中断 while(1); void timer1( ) interrupt 3 TH1=(65536-50000)/256;TL1=(65536-50000)%256;t+;if(t=20) LED=LED;t=0; ,重新赋初值,2018/10/6,22,方式1要进行新一轮计数,还需重新设置计数初值,不仅
9、导致编程麻烦,而且影响定时时间精度。,有没有一种方式可以避免方式1的缺陷?,2018/10/6,23,3、 M1M0 10时,选择模式2。(8位自动重装定时器/计数器),2018/10/6,24,T0的结构:TL0:8位的定时器/计数器;TH0:8位预置寄存器,用于保存初值。 工作过程:当TL0计满溢出时,TF0置1,向CPU发出中断请求;同时引起重装操作(TH0的计数初值送到TL0),进行新一轮计数。,2018/10/6,25,注:(1)方式2具有自动重装初值的功能,但是由于是8位计数器,最大计数值为256,所以一次中断的最大定时时间为28机器周期。(一次中断)定时时间:(28-定时初值)机
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 应用技术 语言版 定时器 计数器 PPT
