mcs 51 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
第六章  MCS-51 单片机定时器 / 计数器 PowerPoint Presentation
Download Presentation
第六章  MCS-51 单片机定时器 / 计数器

Loading in 2 Seconds...

play fullscreen
1 / 17

第六章  MCS-51 单片机定时器 / 计数器 - PowerPoint PPT Presentation


  • 180 Views
  • Uploaded on

第六章  MCS-51 单片机定时器 / 计数器. 概述 第一节 定时器 / 计数器结构和工作方式 第二节 定时器 / 计数器的编程应用举例. 概 述. 定时器/计数器是 MCS - 51 单片机的重要功能模块之一。在检测、控制及智能仪器等应用中,常用定时器作实时时钟,实现定时检测、定时控制。还可用定时器产生毫秒宽的脉冲,驱动步进电动机一类的电气机械。计数器主要用于外部事件的计数。 MCS - 51 单片机内有 3 个定时器/计 数器 T0 、 T1 和 T2 ;本章主要介绍 MCS - 51 的原理、结构、工作方式及应用。. 脉冲. +1 计数器. 溢出.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about '第六章  MCS-51 单片机定时器 / 计数器' - clinton-fletcher


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
mcs 51
第六章 MCS-51单片机定时器/计数器
  • 概述
  • 第一节 定时器/计数器结构和工作方式
  • 第二节 定时器/计数器的编程应用举例
slide2
概 述
  • 定时器/计数器是MCS-51单片机的重要功能模块之一。在检测、控制及智能仪器等应用中,常用定时器作实时时钟,实现定时检测、定时控制。还可用定时器产生毫秒宽的脉冲,驱动步进电动机一类的电气机械。计数器主要用于外部事件的计数。MCS-51单片机内有3个定时器/计
  • 数器T0、T1和T2;本章主要介绍MCS-
  • 51的原理、结构、工作方式及应用。
slide3

脉冲

+1计数器

溢出

中断

控制

开关

实质是计数器,脉冲每一次下降沿,计数寄存器数值将加1。 计数的脉冲如果来源于单片机内部的晶振,由于其周期极为准确,这时称为定时器。计数的脉冲如果来源于单片机外部的引脚,由于其周期一般不准确,这时称为计数器。

  • MCS-51 计数/定时器的原理
slide4

P3.4

P3.5

第一节 定时器/计数器结构 和工作方式
  • 一、定时器/计数器0,1的结构
slide5

T0

T1

  • 一、定时器方式控制寄存器TMOD

1)功能选择位C/T:

=0,定时功能,计数内部机器周期脉冲;

=1,计数功能,计数引脚T0(T1)输入的负脉冲。

2)方式选择位M1、M0:

3)门控方式选择位GATE

计数器启动方式的选择

确定定时器工作方式指令:

MOV TMOD,#方式字

例:设T0用方式2非门控定时,T1用方式1门控计数。

MOV TMOD,#0D2H ; 1101 0010 B

slide6
三.定时器/计数器控制寄存器TCON

(1)定时器/计数器1运行控制位TR1(TCON.6)

(2)定时器/计数器溢出中断标志TF1(TCON.7),当定时器/计数器1溢出时由硬件自动置TF1=1,在中断允许的条件下,便向CPU发出定时器/计数器1的中断请求信号,CPU响应后TF1由硬件自动清零。在中断屏蔽条件下,TF1可作查询测试用。

TF1也可以用程序置位或清零,例如执行指令SETB TF1后TF=1。这就是说,定时器/计数器1的中断请求还能用程序安排产生,这称为软件中断。

在定时器/计数器1工作时,CPU可以随时查询TF1的状态。

(3)定时器/计数器0运行控制位TR0(TCON.4)

(4)定时器/计数器0溢出中断标志TF0(TCON.5)

slide7
四、工作方式

一、方式0

  • 13位定时/计数器。 THx 8位和TLx低5位组成13位加1计数器,此种方式与MCS-48系列兼容,如果不是为了兼容的目的,一般不用方式0.方式0的全部功能,方式1都可以代替。
slide8
可用程序将0-8191(213-1)的某一数送入TH0、TL0作为初值。TH0、TL0从初值开始加法计数,直至溢出,所以设置的初值不同,定时时间或计数值也不同。可用程序将0-8191(213-1)的某一数送入TH0、TL0作为初值。TH0、TL0从初值开始加法计数,直至溢出,所以设置的初值不同,定时时间或计数值也不同。
  • 当对外部事件计数时,外部计数脉冲的频率应小于fosc/24,且高电平与你电平的延续时间均不得小1个机器周期。计数值由式 N=8192-x 计算(x为初值)
  • 对内部机器周期计数即为定时,定时时间由式
  • T=(8192-x)Tcy计算
slide9

二、方式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 计数停止

slide10
三、方式2

用于需要重复定时和计数的场合。

最大计数值:256 (28)

最大定时时间(晶振12MHz时 T=1s): 256s

  • 自动恢复初值8位定时/计数器。TLx为8位加1计数器,
  • THx为8位初值暂存器。
slide11
四、方式3
  • T0分成2个8位定时器:TL0定时/计数器和TH0定时器
  • TL0占用T0控制位:C/T,TR0,GATE;TH0占用T1控制
  • 位:TR1。T1不能使用方式3工作。
slide12
第二节 定时器/计数器的编程应用举例
  • 一、定时器/计数器的初始化
  • 1.初始化的步骤
  • (1) 确定工作方式、操作模式、启动控制方式——写入TMOD寄存器。
  • (2) 设置定时器或计数器的初值——可直接将初值送入TH0、TL0或TH1、TL1中,16位计数初值必须分两次写入对应的计数器。
  • (3)根据要求是否采用中断方式——直接对I E寄存器赋值。开放中断时,将对应的中断允许位置1,采用程序查询方式IE应将对应的中断允许位清0,进行中断屏蔽。
  • (4)启动定时器工作——可使用SETB TR0、SETB TR1和SETB TR2指令启动。对于T0和T2而言,可根据GATE的设置有两种启动。
slide13
2.计数初值的计算
  • 当计数器使用时,初值X的计算式为:
  • X=M-计数值
  • 当定时器使用时,初值的计算式为:
  • X=M-计数值=M-T/TCY
  • 式中:TCY --为机器周期,
  • T --为要求定时的时间。
  • M 由工作方式决定
  • 例如:MCS-51的主频为6MHz,要求产生1ms的定时,试计算计数初值X。若设置定时器工作于操作模式1,定时1ms,则计数初值X等于:
slide14
3. 定时器初始化举例
  • 例6-1 已知振荡器振荡频率fosc=12MHz,要求定时器/计数器0产生10ms定时,试编写初始化程序。
  • 解:由于定时时间大于8192us,应选用工作方式1。
  • (1)TH0、TL0初值的计算由于Tcy=1μs,故有
  • T=(65536-x)Tcy=(65536-x)×1μs=10ms
  • 得x=55536=D8F0 即TH0=D8H,TL0=F0H
  • (2)方式寄存器TMOD的编程
  • (3)初始化程序
  • START:MOV TL0,#0F0H
  • MOV TH0,#0D8H
  • MOV TMOD,#01H
  • SETB TR0
slide15

1ms

二、定时器的应用举例

源程序如下:

ORG 8000H

MOV TL0,#06H

MOV TH0,#0F8H

SETB TR0

LP1:JBC TF0,LP2 ;

AJMP LP1

LP2:MOV TL0,#06H

MOV TH0,#0F8H

CPL P1.2

SJMP LP1

  • 1. 模式0的应用
  • 例6-3 选用T0操作模式0,用于定时,由P1.2输出周期为1ms的方波,设晶振fosc=6MHz。采用查询方式编程。
  • 解:确定用T0定时500μs。设X为时间初值
  • X=213-fosc×t/12=8192-6×500/12=7942=1F06H
  • 由于作13位计数器使用,TL0的高3位未用,应填0,TH0占高8位,所以13位的二进制表示值应为:
  • X0=1111100000110B,
  • TL0=06H,只用到5位,TH0=F8H
  • 设置模式控制字
  • TMOD:00000000 00H

000

p1 7 led 1 1 12mhz r7 n 1
例P1.7驱动LED亮1秒灭1秒地闪烁,设时钟频率为12MHz。 长定时方法:增加一个软件计数器(如R7), 记录中断 次数,计满n个中断为1秒。

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