单片机的定时系统.pptx
文本预览下载声明
在控制系统中,常常要求有有一些定时控制,如定时输出、定时检测等;也往往要求有计数功能,能对外部事件进行计数。
实行定时功能,可用以下方法:
1.软件定时:让CPU循环执行一段程序。
2.硬件定时:采用时基电路,外接必要的元器件。
3.可编程的定时器;定时器/计数器的结构 ; TLO和THO组成16位的定时/计数器T0,TL1和TH1组成16位的定时/计数器T1。
TMOD是T0和T1的工作方式控制寄存器,TCON是T0和T1的运行状态控制寄存器。
TMOD和TCON由所编程序控制。;.. 定时器/计数器的控制寄存器 ;2.工作方式控制寄存器 TMOD ; M1、M0:决定定时器的4种工作方式方式0:(M1=0、M0=0):13位定时/计数器方式1:(M1=0、M0=1):16位定时/计数器方式2:(M1=1、M0=0):8位定时/计数器方式3:(M1=1、M0=1):把T0分为两个8位计数器
C/T:定时/计数方式选择位C/T=0为定时工作方式。此方式下,计数脉冲来自单片机内部。
C/T=1为计数工作方式。此方式下,计数脉冲来自外部引脚。
GATE:计数器工作方式控制位
GATE=0时,不受外部控制。
GATE=1时,T0和T1分别受P3.2和P3.3脚上电平控制。; 定时器/计数器启动工作前,CPU先要为它设定其工作方式,然后再为它装入定时器/计数器初值,并通过指令启动其工作。;1. 方式0 —13位方式 ; 方式0下,
当为计数工作方式时,计数值的范围是:
1~8192(213)
当为定时工作方式时,定时时间的计算公式为:
(213-计数初值)× 机器周期
其时间单位与机器周期相同(μs);2. 方式1 —16位方式 ;方式1下,
当为计数工作方式时,计数值的范围是
1~65536(216)
当为定时工作方式时,定时时间的计算公式为
(216-计数初值)× 机器周期
其时间单位与机器周期相同(μs);3. 方式2--自动重新加载方式
;4. 方式3 —2个8位方式 ;. 定时器/计数器的应用 ;1.定时时间常数的计算
定时时间t =(M-X)×Tosc
其中M可取值为213、216、28,Tosc为机器周期。
例如:单片机采用12M晶振,定时器工作在方式0,定时时间为5ms,那么TH0及TL0的设置如下:
X=8192-5000/1=3192=C78H=110001111000
TL0取低5位,其余??为TH0,则TH0 =63H; TL0 =18H。;2.TMOD寄存器初始化
例如:
为把定时器/计数器0设定为方式0,M1M0=00;
为实现定时功能,则C/T =0;
定时器/计数器1不用. ,有关位设定为0
3.由控制寄存器TCON中的TR0/TR1位控制定时的启动和停止,=1启动,=0停止。;【习题1】 单片机时钟频率为12MHz,计算定时5ms所需的定时器初值。
分析:定时器工作在方式2和方式3下时的最大定时时间只有0.256ms,要获得5ms的定时时间,必须在方式0或方式1。
(1)方式0;【例1】利用单片机的定时器实现5ms的定时,软件延时1s,使发光二极管实现闪烁。 ; ORG 0000H
AJMP MAIN
ORG 000BH ;中断服务程序入口
AJMP IT0
ORG 0030H
MAIN: MOV SP,#70H
MOV TMOD,#00H ;令T0为方式0
MOV IE,#82H ;打开T0中断
MOV R2,#0C8H
SETB P1.0
MOV TH0,#63H ;装入定时初值
MOV TL0,#18H
SETB TR0
MOV R0,#14H
LOOP:AJMP LOOP ;等待中断;IT0: CLR TR0
DJNZ R2,YAS1 ;若R2-1之后不为0,则转移
CPL P1.0 ;1s
显示全部