MCS的定时器计数器(学时).ppt
文本预览下载声明
第6章 定时器/计数器 MCS-51 计数/定时器的实质 8031 有2个可独立控制的16位定时器/计数器:T0、T1 6.2 定时器工作方式 由方式选择位M1、M0设定 1.方式0 13位定时/计数器。 THx 8位和TLx低5位组成13位加1计数器,此种方式与MCS-48系列兼容,如果不是为了兼容的目的,一般不用方式0. 方式0的全部功能,方式1都可以代替。 下面讲解方式1 3. 方式2 自动恢复初值8位定时/计数器。TLx为8位加1计数器, THx为8位初值暂存器。 4.方式3 T0分成2个8位定时器:TL0定时/计数器和TH0定时器 TL0占用T0控制位:C/T,TR0,GATE; TH0占用T1控制位:TR1。 T1不能使用方式3工作 6.3 计算时间常数X(计算初值) 计数功能:X= 2n -计数值 n:8/13/16 定时功能:X= 2n - t/T t:定时时间(s) T:机器周期 =12/晶振频率 如:晶振为12MHz时,T=12/12 MHz=12÷(12×10-6)(秒)=1×10-6=1us 例:由P1.0输出方波信号,周期为2ms,设fosc=12MHz。 例P1.7驱动LED亮1秒灭1秒地闪烁,设时钟频率为6MHz。 长定时方法:增加一个软件计数器或一个硬件计数器。 例定时器外部引脚T0(T1)用作外部中断信号输入端。 外部负脉冲引起中断请求,选计数方式,时间常数为FFH。 设脉宽大于65.5ms,中断方式记录TH1TL1溢出中断次数。 SETB TR1 SETB ET1 ;开T1中断 SETB EA WAIT2: JNB P3.3,WAIT2;等待正脉冲到来 WAIT3: JB P3.3,WAIT3;等待正脉冲结束 CLR TR1 ;关闭T1 MOV IE,#00 ;关闭中断 MOV R2,TL1 ;读出T1 MOV R3,TH1 LCALL PPS ;计算脉宽 HERE: SJMP HERE ;其他任务 PRIC: INC R4 ;记录溢出次数 RETI PPS: … ;计算脉宽子程序 * 6.1 定时器控制、状态寄存器 6.2 定时器工作方式 6.3 计算时间常数 6.4 定时器应用 实质是计数器,脉冲每一次下降沿,计数寄存器数值将加1. 计数的脉冲如果来源于单片机内部的晶振由于其周期极为准确,这时称为定时器。 计数的脉冲如果来源于单片机外部的引脚,由于其周期一般不大准确,这时称为计数器。 +1计数器 溢出 中断 脉冲 控制 开关 6.1定时器控制、状态寄存器 1)TMOD定时器方式寄存器(89H) 1)功能选择位C/T: =0,定时功能,计数内部机器周期脉冲; =1,计数功能,计数引脚T0(T1)输入的负脉冲。 2)方式选择位M1、M0: 4种工作方式: 3)门控方式选择位GATE 计数器启动方式的选择 确定定时器工作方式指令: MOV TMOD,#方式字 例:设T0用方式2非门控定时,T1用方式1门控计数。 MOV TMOD,#0D2H ; 1101 0010 B T1 T0 2. 方式1 16位定时/计数器。 THx8位和TLx8位组成16位加1计数器 最大计数脉冲个数:1~65536(216) 最长定时时间(晶振12MHz T=1?s):1?s ~ 65536×T= 65.54ms 非门控方式:当GATE=0, 控制权由 TRx 决定 TRx=1 计数开始 TRx =0 计数停止 门控方式:当GATE=1、TRx=1 控制权由 INTx 决定 INTx=1 计数开始 INTx =0 计数停止 启动计数方式: 用于需要重复定时和计数的场合。 最大计数值:256 (28) 最大定时时间(晶振12MHz时 T=1?s): 256?s 4.4 MCS-51定时器的应用 定时器初始化编程:使用定时器工作之前,先写入控制寄存器,确定好定时器工作方式 初始化编程格式: MOV TMOD,# 方式字 ;选择方式 MOV THx,#XH ;装入Tx时间常数 MOV TLx,#XL SETB EA ;
显示全部