片机定时器与计数器.ppt
《片机定时器与计数器.ppt》由会员分享,可在线阅读,更多相关《片机定时器与计数器.ppt(47页珍藏版)》请在三一办公上搜索。
1、,第五章 单片机定时器 与计数器,Company Logo,单片机定时器与计数器,Company Logo,一、定时/计数器结构,MCS-51单片机定时器/计数器的逻辑结构如图5-1所示。主要由工作方式寄存器TMOD、控制寄存器TCON和初值寄存器TLX、THX等工作部件组成。,Company Logo,等效逻辑结构图,Company Logo,1工作方式寄存器(TMOD 89H),GATE:门控位。GATE=0 启动不受/INT0或/INT1的控制;GATE=1 启动受/INT0 或/INT1 的控制。C/:外部计数器/定时器方式选择位。C/=0 定时方式;C/=1 计数方式。M1M0:工作
2、模式选择位。,TMOD,Company Logo,M1M0:工作模式选择位。,Company Logo,2、初值寄存器 TH0,TL0,TH1,TL1,51子系列单片机内有两个十六位增一 定时/计数器,TH0,计数值高八位,TL0,计数值低八位,TH1,计数值高八位,TL1,计数值低八位,最大计数器值M65535,Company Logo,3定时/计数器控制寄存器(TCON 88H),TR0:定时/计数器0运行控制位。软件置位/复位。与GATE有关分两种情况:GATE=0 时:若TR0=1,开启T0;若TR0=0,停止T0。GATE=1 时:若TR0=1 且/INT0=1时,开启T0;若TR0
3、=1 但/INT0=0,则不能开启T0。若TR0=0,停止T0计数。TR1:定时/计数器1运行控制位。用法与TR0类似。TF0/TF1:定时/计数溢出标志。1:有溢出,0:无溢出IE0/IE1:外部中断请求标志。1:有请求,0:无请求IT0/IT1:外部中断触发方式。1:下降沿,0:低电平,Company Logo,二、定时器/计数器的工作方式,工作方式 M1M0=00,工作方式0:13位计数。TH的8位和TL的低5位,Company Logo,在工作方式0下,计数器的计数值由下式确定:213-X=8192-X计数值范围是:18192(213)定时器的定时值由下式确定:T=N*Tcy=(819
4、2-X)*Tcy,例:单片机晶振频率fosc=12MHZ定时器0定时1MS,采用方式0时,TCON,TMOD,TH0,TL0的值分别是:,TCON=0 x10,TMOD=0 x00,TH0=(81921000)/32,TL0=(81921000)%32,Company Logo,工作方式的应用:【例】设单片机晶振频率fosc=6MHZ,使用定时器1以方式0产生周期为600s的等宽方波脉冲,并由P1.7输出,以查询方式完成。解:(1)计算计数初值.欲产生周期为600s的等宽方波脉冲,只需在P1.7端以300s为周期交替输出高低电平即可,因此定时时间应为300s。设待求计数初值为N,则:(213-
5、N)210-6=30010-6N=8042=1F6AH01010B用T1实现。将低5位01010B=0A写入TL1,将高8位有效值11111011B=FBH写入TH1中。,Company Logo,(2)TMOD初始化为把定时/计数器1设定为方式0,则M1M0=00。为实现定时功能应使C/T=0,为实现内部定时器启动应使GATE=0,因此设定工作方式控制寄存器TMOD=00H。(3)由TR1启动和停止定时器TR1=1为启动,TR1=0为停止,Company Logo,C语言参考程序,#include/包含特殊功能寄存器库sbit P1_7=P17;/定义P1.7口,程序中用P1_7代替P1.7
6、。void main()/主函数 IE=0 x00;/关中断TMOD=0 x00;/工作方式设定TR0=1;/启动定时for(;)/无限循环体TH1=0 xFB;TL1=0 x0A;/计数初值设定do while(!TF1)/查询是否溢出,当TF0=1时溢出来,则跳出do-while循环。P1_7=!P1_7;TF1=0;/溢出,P1.7取反,中断标志TF1清0。,Company Logo,中断方式完成,#include/包含特殊功能寄存器库sbit P1_7=P17;/定义P1.7口,程序中用P1_7代替P1.7。void main()/主函数 TMOD=0 x00;/工作方式设定TR0=1
7、;TH1=0 xFB;TL1=0 x0A;ET0=1;EA=1;while(1);/启动定时Void T_0()interrupt 1 using 3 P1_7=!P1_7;TH1=0 xFB;TL1=0 x0A;,Company Logo,2.定时/计数器工作方式1 M1M0=01,P3.4,P3.2,Company Logo,在工作方式1下,计数器的计数值由下式确定:216-X=65536-X计数值范围是:165536(216)定时时间长;时器的定时值由下式确定:T=N*Tcy=(65536-X)*Tcy,定时计数器的工作方式1与方式0基本相同,区别只是方式0是13位计数器,而方式1为了1
8、6位计数器。当要求定时时间较长,13位计数器不能满足要求时,可改用方式1,用16位计数器计数。,Company Logo,工作方式1 应用,【例】设单片机晶振频率fosc=6MHZ,使用定时器1以方式1产生周期为600s的等宽方波脉冲,并由P1.7输出,以查询方式完成。该题目就是用方式1实现例5-1的功能。原理与例5-1相似,只需修改工作方式和计数初值设置即可。,Company Logo,(1)计算计数初值欲在P1.7引脚输出周期为600s的等宽方波脉冲,只需在P1.7端交替输出300s的高低电平即可,因此定时时间应为300s。设计数初值为N,则:(65536-N)210-6=30010-6N
9、=65236将计数初值N的低8位6AH写入TL1;将计数初值N的高8位1FH写入TH1。(2)TMOD初始化题目要求定时器/计数器1为工作方式1,所以M1M0=01;为实现定时功能应使C/=0;为实现定时器内启动,应使GATE=0。此题目不涉及定时器/计数器0,为方便起见,设其各控制位均为0。则工作方式控制寄存器TMOD=10H。(3)启动和停止控制因为定时器/计数器1作定时器,故当TR1=1时,启动计数;当TR1=0时,停止计数。(4)中断的开放/禁止题目中要求用查询方式检查T1的计数溢出状态,故设置IE=00H,以关中断。,Company Logo,3、定时/计数器工作方式2 M1M0=1
10、0,初值自动重装,将TH中的数值装入TL中。,Company Logo,工作在方式下,计数器的计数值由下式确定:28-X=256-X 计数范围为:1256 定时准确定时器的定时值由下式确定:T=N*Tcy=(256-X)*Tcy,Company Logo,工作方式的应用【例】使用定时器T0以方式2产生200微秒定时,在P1.0输出周期为400微秒的连续方波。已知晶振频率fosc=6MHz。(1)计算计数初值(256-N)210-6=20010-6 N=156=9CH(2)TMOD初始化工作方式2时,M1M0=10,实现定时功能C/T=0,内部启动GATE=0。定时器1不用,无关位设定为0,可得
11、TMOD=02H。(3)允许中断(4)TR0 启动定时,Company Logo,C语言参考程序:#include/包含特殊功能寄存器库sbit P1_0=P10;/定义P1.0口,程序中用P1_0代替P1.0。void main()/主函数TCON=0 x00/清TCON,定时器中断标志清零及不允许计数TMOD=0 x02;/设定时器T0工作方式2TH0=0 x9c;TL0=0 x9c;/设初值EA=1;ET0=1;/开中断TR0=1;/启动计数while(1);/无限循环,结束主函数void time0_int(void)interrupt 1/中断函数 P1_0=!P1_0;,Compa
12、ny Logo,、定时/计数器工作方式 功能多,当M1,M0=10时,定时/计数器处于工作方式3,此时,定时/及数器的等效电路如图所示,Company Logo,当T0工作于方式3时,T1只能工作在方式0、方式1或方式2,并且由于已没有计数溢出标志位TF1可供使用,只能把计数溢出直接送给串行口,作串行口的波特率发生器使用。等效电路图如下,波特率发生器,Company Logo,在使用定时/计数器时,应做好4件事:设置TMOD以选择工作方式;计算并设置计数初值THX,TLX;设置IE、IP以规定中断的开放/禁止及优先级;设置TCON以启动/停止定时/计数器的工作。,Company Logo,工作
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 定时器 计数器
链接地址:https://www.31ppt.com/p-6426493.html