6单片机课件_第1页
6单片机课件_第2页
6单片机课件_第3页
6单片机课件_第4页
6单片机课件_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

,第6章 定时器/计数器 6.1 定时器/计数器概述 6.2 定时器/计数器的四种工作方式 6.3 定时器/计数器的应用举例,6 .1 定时器/计数器概述 6.1.1 定时方法概述 1 软件定时 2硬件定时 3可编程定时器定时可编程定时器/计数器 2个可编程定时器/计数器: T0, T1,6.1.2 定时器/计数器的结构和原理 两个16位的可编程定时器/计数器,T0,T1。 两个特殊功能寄存器:方式寄存器和控制寄存器。,定时器/计数器的原理结构框图,6.1.3 定时器/计数器的定时和计数功能 定时器计数器的功能:定时和计数。 1计数功能 计数:对外部事件进行计数。 外部事件的发生以输入脉冲表示,因此计数功能的实质就是对外来脉冲进行计数。 计数输入端:T0(P3.4)和T1(P3.5)。 外部输入的脉冲在负跳变时有效,进行计数器加1(加法计数)。,2定时功能 实现方法:通过计数器的计数实现。 与计数功能的不同之处:计数脉冲来自单片机的内部,即每个机器周期产生一个计数脉冲,也就是每个机器周期计数器加1。 一个机器周期=12个振荡周期, 故,计数频率为振荡频率的1/12。 若:单片机晶振6MHz,则计数频率为0.5MHz, 2微秒计数器加1.,定时器工作方式的特点: 当定时器设置了某种工作方式之后,定时器就会按设定的工作方式独立运行,不再占用CPU的操作时间,除非定时器计满溢出,才可能中断CPU当前操作。 因此, 定时器/计数器是一种可编程部件。 编程:在定时器/计数器开始工作之前,CPU必须将一些命令(称为控制字)写入定时器/计数器,决定T0、T1的工作方式。,将控制字写入定时器/计数器的过程叫定时器/计数器的初始化。 初始化内容: 规定T0、T1的工作方式; 将工作方式控制字写入方式寄存器 规定T0、T1的工作状态; 将工作状态控制字写入控制寄存器 赋定时/计数初值。,6.1.4 定时器/计数器的控制寄存器和方式寄存器 1定时器控制寄存器(TCON,88H), IE0 (IE1)外中断请求标志位 当CPU采样到 (或) 端出现有效中断请求时,此位由硬件置1。在中断响应完成后转向中断服务时,再由硬件自动清零。, IT0(IT1)外中断请求信号方式控制位 IT0(IT1)=1 脉冲方式(后沿负跳有效) IT0(IT1)=0 电平方式(低电平有效) 此位由软件置1或清0。, TF0(TF1)计数溢出标志位 若有溢出,TF0(TF1)1 无溢出,TF0(TF1)0 有溢出时,当转向中断服务时,再由硬件自动清0。 TF0(TF1)的使用方式: 中断方式时,作中断请求标志位来使用, 查询方式时,作查询状态位来使用。,2. 定时器工作方式寄存器(TMOD,89H) 作用:设置两个定时器/计数器工作方式。 但TMOD寄存器不能位寻址,只能用字节传送指令设置其内容。,M1、M0工作方式选择位。可形成4种编码,对应于四种工作方式。,M1 M0,工作方式,功 能 描 述,0 0 0 1 1 0 1 1,方式 0 方式1 方式2 方式3,13位计数器 16位计数器 自动再装入8位计数器 定时器0:分成两个8位计数器 定时器1:停止计数, 定时方式或计数方式选择位 0 定时工作方式 1 计数工作方式 GATE门控位 GATE0 以运行控制位TR0(TR1)启动定时器 GATE1 以外中断请求信号 启动定时器 复位时,TMOD0。 举例如下:,设 定时器1为定时工作方式,要求由软件启动定时器1,按方式2工作。定时器0为计数方式,要求由软件启动定时器0,按方式1工作。 MOV TMOD,#25H。,6.2 定时器/计数器的四种工作方式 四种工作方式: 即方式0、方式1、方式2和方式3。 其中: 方式0、1和2下,T0和T1的工作方式相同, 方式3下,两个定时器的工作方式不同。 6.2.1 方式0 13位计数结构的工作方式。 图6-2是定时器/计数器0在工作方式0下的逻辑结构。 T1的结构和操作与T0完全相同。,图6-2 T0(或T1)方式0结构,当GATE0时, 若TR0=1,接通计数控制K,启动T0在原计数值上加1计数,直至溢出。 若TR00,则关断控制开关,停止计数。 当GATE1,且TR01时, 或门、与门全部打开,外信号电平 通过引脚 直接开启或关断定时器计数。 输入1电平时,允许计数,否则停止计数。,由于定时器/计数器以加1方式计数, 当定时器/计数器用于计数工作方式时,假定要求的计数长度为N,则应装入定时器/计数器的初值 X213N。 在方式0下,计数的长度范围为18192。,当工作于定时状态时,由于定时器/计数器是计数内部的机器周期,每个机器周期包括12个振荡周期,若晶振频率为6MHz,则: 机器周期Tp12/晶振频率12/(6106)2us 若需要的定时时间: Tc, 则需要的机器周期数NTc/Tp。 则应装入定时器/计数器的初值 X213N。 若晶振频率为6MHz,则当X8191时,具有最小的定时时间为2us; 当X0时,具有最大的定时时间为16384us。,6.3 定时器/计数器的应用举例 主要任务: 编程。 编程时应注意的问题: 1. 能正确写入控制字(即初始化定时器/计数器) 2. 会进行定时/计数初值的计算。 写入控制字的次序: 1. 把工作方式控制字写入TMOD寄存器; 2. 把定时/计数初值装入TL0、TH0(或TL1、TH1) 3. 置位TR0(或TR1)以启动计数 4. 置位ET0(或ET1)允许定时器/计数器中断(如果需要); 5. 置位EA使CPU开放中断。,例1:设单片机晶振频率fosc6MHz,使用定时器1以方式0产生周期为500us的等宽正方波脉冲,并由P1.7输出。以查询方式完成。 (1)计算计数初值 实现正方波脉冲的方法:P1.0端以250us为周期交替输出高低电平。 则:定时时间应为250us。 若晶振为6MHz,则一个机器周期2us。 设待求的计数初值为X,则: (213X)2us250us 得:X806711111100 00011B TH1FCH, TL103H。,(2)TMOD寄存器初始化 T1在方式0下, M1M000; 定时功能,应使 0; 实现T1的运行控制,则GATE0。 所以: TMOD00H。 (3)由定时器控制寄存器TCON中的TR1位控制定时的启动和停止,则TR11,启动;TR10,停止。,(4)程序清单: ORG 1000H MOV TMOD,#00H ;设置T1工作方式0 MOV TH1, #0FCH ;设置计数初值 MOV TL1, #03H MOV IE, #00H ;禁止中断 SETB TR1 ;启动T1运行 SETB P1.7 ;高电平 LOOP: JB TF1, LOOP1 ;查询计数溢出 AJMP LOOP,LOOP1: MOV TH1, #0FCH ;重新设置计数初值 MOV TL1, #03H ; CLR TF1 ;计数溢出标志位清零 CPL P1.7 ;输出取反 AJMP LOOP ;重复循环 END ;程序结束,6.2.2 方式1 计数器由TH 8位和TL8位构成。 当定时器/计数器用于计数工作方式时,假定要求的计数长度为N,则应装入定时器/计数器的初值X216N。 在方式0下,计数的长度范围为165536。 当工作于定时状态时,若需要的定时时间为Tc,则需要的机器周期数NTc/Tp(Tp机器周期),则应装入定时器/计数器的初值X216N。 若晶振频率为6MHz,则当X65535时,具有最小的定时时间为2us; 当N65536时,具有最大的定时时间为131072us131ms。,图6-3 T0(或T1)方式1结构16位计数器,例2:设单片机晶振频率fosc6MHz,使用定时器1以方式1产生周期为500us的等宽正方波脉冲,并由P1.7输出。以中断方式完成。 (1)计算计数初值 设待求的计数初值为X,则: (216X)2us250us 得: X65411FFA1H, 则: TH1FFH,TL1A1H。 (2)TMOD寄存器初始化,M1M010, C/T 0, GATE0 所以: TMOD10H,(3)程序清单: ORG 0000H AJMP MAIN ORG 001BH AJMP TIMER1 ORG 1000H MAIN: MOV TMOD,#10H ;设置T1工作方式1 MOV TH1, #0FFH ;设置计数初值 MOV TL1, #A1H ; SETB EA ;开中断,SETB ET1 ;定时器1允许中断 LOOP: SETB TR1 ;定时开始 HERE: SJMP $ ;等待中断 TIMER1:MOV TH1,#0FFH ;T1中断服务程序 ;重新设置计数初值 MOV TL1, #A1H ; CPL P1.7 RETI END ;程序结束,6.2.3. 方式2 方式2具有自动重新加载功能,即自动加载计数初值。 在该工作方式下,把16位计数器分为两部分,即 以TL作计数器, 以TH作预置寄存器,初始化时把计数初值分别装入TL和TH中。 当计数溢出时,由预置寄存器TH以硬件方法自动给计数器TL重新加载,继续计数,循环重复。,当定时器/计数器用于计数工作方式时,假定要求的计数长度为N,则应装入定时器/计数器的初值X28N。 在方式0下,计数的长度范围为1256。 当工作于定时状态时,若需要的定时时间为Tc,则需要的机器周期数NTc/Tp,(Tp为机器周期),则应装入定时器/计数器的初值X28N。 若晶振频率为6MHz,则当X255时,具有最小的定时时间为2us;当X0时,具有最大的定时时间为512us。,图6-4 T0(或T1)方式2结构8位计数器,例3:有一自动罐装药粒系统,每瓶罐装药粒100片,每满一瓶,累加器A加1操作,若满200瓶,向P1.0输出0,然后停止计数。要求用定时器1以工作方式2计数。 (1)计算计数初值 设待求的计数初值为X,则: (28X)100 得: X15638H, 则: TH138H,TL138H。 (2)TMOD寄存器初始化,M1M010, 1, GATE0 因此:TMOD60H (3)程序清单: ORG 1000H MOV TMOD,#60H ;设置T1工作方式 MOV TH1, #38H ;设置计数初值 MOV TL1, #38H,MOV A, #00H MOV IE, #00H ;禁止中断 SETB TR1 ;启动计数 CHECK:JBC TF1,LOOP ;查询计数溢出 AJMP CHECK LOOP: INC A CJNE A,#200, CHECK CLR P1.0 ;清零P1.0 CLR TR1 ;停止计数器1的运行 END ;程序结束,6.2.4方式3 前三种工作方式下,T0和T1的设置和使用是完全相同的。但是在工作方式3下,二者的设置和使用却是不同的,因此要分开介绍。 (1) 在工作方式3下,T0被拆成两个独立的8位计数器TL0和TH0。其中TL0既可以作计数使用,又可以作定时使用。 T0的各控制位、引脚和中断源,即、GATE、TR0、TF0 和T0(P3.4)引脚、 (P3.2)引脚全归它使用。 功能和操作与方式1完全相同,而且逻辑电路结构也很相似,如图6-5所示。,图6-5 T0工作方式3逻辑结构,而此时TH0只可用作简单的定时器使用。而且由于T0的控制位已被TL0独占,因此只好借用定时器/计数器1的控制位TR1和TF1,即以计数溢出去置位TF1,而定时的启动和停止则受TR1的状态控制。 由于TL0既能作定时器使用也能作计数器使用,而TH0只能作定时器使用,却不能作计数器使用。因此,在工作方式3下,定时器/计数器0可以构成两个定时器或一个定时器和一个计数器。,(2)工作方式3下的定时器/计数器1 如果T0已工作在工作方式3,则T1只能工作在方式0、1或方式2下,因为它的运行控制位TR1及计数溢出标志位TF1已被T0借用,如图6-6所示。,此时,T1通常是作为串行口的波特率发生器使用,以确定串行通信的速率。因为已经没有计数溢出标志位TF1可供使用,因此只能把计数溢出直接送给串行口。若将T1强行设置为模式3,就会使T1立即停止工作。,例4 设定时器/计数器T0工作于方式3,TL0和TH0作为两个独立的8位定时/计数器分别产生250us和500us的定时中断,使P1.1和P1.2产生500us和1000us的方波。设晶振频率为6MHz。 (1)计算计数初值 TL0的计数初值256250us/2us=13183H TH0的计数初值256500us/2us=06H 因此,TL083H,TH006H。 (2)TMOD寄存器初始化,M1M011, 0, GATE0, 同时设 T1工作于方式0 因此: TMOD03H,(3)程序清单: ORG 0000H A

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论