1 / 11

第 6 章 定时器 / 计数器

第 6 章 定时器 / 计数器. 6.1 定时器控制、状态寄存器. 6.2 定时器工作方式. 6.3 计算时间常数. 6.4 定时器应用. MCS-51 计数 / 定时器的实质. 实质是计数器, 脉冲每一次下降沿,计数寄存器数值将加 1. 计数的脉冲如果来源于单片机内部的 晶振 , 由于其周期极为准确,这时称为 定时器 。 计数的脉冲如果来源于单片机 外部的引脚 ,由于其周期一般不准确,这时称为 计数器 。. 8031 有 2 个可独立控制的 16 位定时器 / 计数器: T0 、 T1. 脉冲. +1 计数器. 溢出. 中断. 控制

olga-curry
Download Presentation

第 6 章 定时器 / 计数器

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第6章 定时器/计数器 6.1 定时器控制、状态寄存器 6.2 定时器工作方式 6.3 计算时间常数 6.4 定时器应用

  2. MCS-51 计数/定时器的实质 实质是计数器,脉冲每一次下降沿,计数寄存器数值将加1. 计数的脉冲如果来源于单片机内部的晶振,由于其周期极为准确,这时称为定时器。 计数的脉冲如果来源于单片机外部的引脚,由于其周期一般不准确,这时称为计数器。 8031 有2个可独立控制的16位定时器/计数器:T0、T1 脉冲 +1计数器 溢出 中断 控制 开关

  3. T0 T1 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

  4. 6.2 定时器工作方式由方式选择位M1、M0设定 1.方式0 13位定时/计数器。 THx 8位和TLx低5位组成13位加1计数器,此种方式与MCS-48系列兼容,如果不是为了兼容的目的,一般不用方式0. 方式0的全部功能,方式1都可以代替。

  5. 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 计数停止

  6. 3. 方式2 用于需要重复定时和计数的场合。 最大计数值:256 (28) 最大定时时间(晶振12MHz时 T=1s): 256s 自动恢复初值8位定时/计数器。TLx为8位加1计数器, THx为8位初值暂存器。

  7. 4.方式3 T0分成2个8位定时器:TL0定时/计数器和TH0定时器 TL0占用T0控制位:C/T,TR0,GATE; TH0占用T1控制位:TR1。 T1不能使用方式3工作

  8. 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 4.4 MCS-51定时器的应用 定时器初始化编程:使用定时器工作之前,先写入控制寄存器,确定好定时器工作方式 初始化编程格式: MOV TMOD,# 方式字 ;选择方式 MOV THx,#XH;装入Tx时间常数 MOV TLx,#XL SETB EA ;开Tx中断 SETB ETx SETB TRx;启动Tx定时器

  9. 2ms 解:每隔1ms改变一次P1.0的输出状态,即形成方波,用T0非门控方式1定时。 计算时间常数:X = 216 - t/T = 216 –(1/1000)/10-6 = 65536-1000 = 64536 = FC18H ORG 0000H AJMP MAIN ORG 000BH ;T0中断硬件入口地址 AJMP PT0INT ;跳到中断服务程序 ORG 0030H MAIN: MOV TMOD,#01H ;中断方式 MOV TL0,#18H ;计数初值 MOV TH0,#0FCH SETB EA ;开放总中断 SETB ET0 ;开放T0中断 SETB TR0 ;启动定时器 HERE: SJMP HERE ;等待中断,相当于执行其它任务 PT0INT: MOV TL0,#18H ;中断服务程序;置初值 MOV TH0,#0FCH CPL P1.0 ;取反,产生方波 RETI ;中断返回 例:由P1.0输出方波信号,周期为2ms,设fosc=12MHz。

  10. P1.7驱动LED亮1秒灭1秒地闪烁,设时钟频率为12MHz。 ORG 0000H AJMP MAIN ORG 001BH AJMP PT1INT ORG 0030H START: MOV R7,#00H MOV TMOD,#10H MOV TL1, #0F0H MOV TH1, #0D8H SETB EA SETB ET1 SETB TR1 HERE: SJMP HERE PT1INT: MOV TL1,#0F0H MOV TH1,#0D8H INC R7 CJNE R7,#10, PEND MOV R7, #00H CPL P1.7 PEND: RETI 长定时方法:增加一个软件计数器(如R7), 记录中断次数,计满n个中断为1秒。

  11. INT1 TR1=1 T1启动 TR1=0 T1停止 例定时器外部引脚T0(T1)用作外部中断信号输入端。 例:门控方式测量正脉冲宽度 解: INT1引脚输入被检测信号,记录在正脉冲的时间内包含机器脉冲个数。 设脉宽小于65.5ms 等待查询INT0,正脉冲过后,读出TH1TL1。 外部负脉冲引起中断请求,选计数方式,时间常数为FFH。 START: MOV TMOD,#90H MOV TL1,#00H MOV TH1,#00H WAIT1: JB P3.3,WAIT1 SETB TR1 WAIT2 :JNB P3.3,WAIT2 WAIT3 : JB P3.3,WAIT3 CLR TR1 MOV R2,TL1 MOV R3,TH1 …

More Related