130 likes | 225 Views
第七章 定时器 / 计数器 7 . 1 概述 实现定时一般有三种方法: l 利用软件实现(延时程序) ; 优点: 简单,控制方便; 缺点 : CPU 效率低。 l 硬件实现,专门设计一个单稳态定时器: 优点: CPU 效率高; 缺点: 修改参数麻烦。 l 利用计数器实现. 计数器. 输入脉冲. 预置数. 1us. 8 位. 256us. 溢出. 计算机一般利用第三种方法实现. 机器周期. T0. 片内计数器. 外来脉冲. 单片机. 8051 内部设有两个 16 位的定时器 / 计数器,可用软件控制。. 定时器 : 对机器周期计数,
E N D
第七章 定时器/计数器 7.1概述 实现定时一般有三种方法: l利用软件实现(延时程序); 优点:简单,控制方便;缺点:CPU效率低。 l硬件实现,专门设计一个单稳态定时器: 优点:CPU效率高;缺点:修改参数麻烦。 l利用计数器实现 计数器 输入脉冲 预置数 1us 8位 256us 溢出 计算机一般利用第三种方法实现
机器周期 T0 片内计数器 外来脉冲 单片机 8051内部设有两个16位的定时器/计数器,可用软件控制。 定时器:对机器周期计数, 每过一个机器周期,计数器内容加1 ; 计数器:对外来脉冲进行计数, T0、T1引脚上从高电平到低电平跳变时,计数器内容加1。
7.2组成和工作方式 一、组成 1、定时器0由TH0(84H)和TL0(8AH)计数器构成; 2、定时器1由TH1(8DH)和TL1(8BH)计数器构成; 3、TMOD定时器方式控制字(89H); 4、TCON定时器控制字。
二、控制定时器的特殊功能寄存器 1、TMOD: M1 M0工作方式选择: 0 0:方式0,13位定时器/计数器 0 1:方式1,16定时器/计数器 1 0:方式2,8位自动重装定时器/计数器 1 1:方式3,定时器0的TL0是一个8位的定时器/计数器,TH0是一个8位的定时器,定时器1停止工作方式3(T1可工作于方式0、1)
C/T:定时器/计数器选择: “1”:计数器 “0”:定时器 GATE:选通门控制信号: “1”:由TRx和引脚INTx共同控制启动 “0”:仅由控制位TRx启动
2.TCON定时器/计数器控制寄存器 TFx:定时器/计数器溢出标志 当定时器溢出时,硬件电路置TFx为 “1”,响应中断时硬件自动复位TFx。 TRx:定时器/计数器控制位 “1”:启动; “0”:停止。
三、定时器方式 1、方式0M1 M0 = 00时为方式0,13位计数器。
2、方式1 M1M0=01,16位定时器/计数器,其它的同方式0。
3、方式2 M1M0=10,自动重装常数的8位定时器/计数器。TLx作为8位计数器,THx作为8位重装初值的寄存器。
例1:从P1.0引脚上输出周期为2ms的方波(时钟为6M) 用T0的方式1实现,16位,初值,程序: ORG 000BH AJMP INTT0 ORG 1000H MAIN: MOV TMOD, #01H MOV TL0, #0CH MOV TH0, #0FEH SETB TR0 SETB ET0 SETB EA SELF: AJMP SELF ORG 2000H INTT0: MOV TL0, #0CH MOV TH0, #0FEH CPL P1.0 RETI
外部中断源0 INT0 INT1 外部中断源1 外部中断源2 8051 例2:将T0作为外部中断用。 复习1 复习2 T0工作于方式2。初始化程序: MOV TMOD, #H MOV TL0 , #H MOV TH0, #H SETB ET0 SETB EA SETB TR0 T0 P3.4
例3:测试P3.3(INT1)上正脉冲宽度。 当GATE=1时计数器受TRx和INTx同时控制。
ORG 1000H MAIN:MOV TMOD, #90H MOV TL1, #00H MOV TH1, #00H LOOP0:JB P3.3, LOOP0 SETB TR1 LOOP1:JNB P3.3, LOOP1 LOOP2:JB P3.3, LOOP2 CLR TR1 MOV R0, #BUF MOV A, TL1 MOV @R0, A INC R0 MOV A, TH1 MOV @R0, A SELF: AJMP SELF 问:1、用P1.0口能否测试? 2、如何测矩形波脉宽和周期?