单片机原理及应用(第6章-)-89C51的定时器课件_第1页
单片机原理及应用(第6章-)-89C51的定时器课件_第2页
单片机原理及应用(第6章-)-89C51的定时器课件_第3页
单片机原理及应用(第6章-)-89C51的定时器课件_第4页
单片机原理及应用(第6章-)-89C51的定时器课件_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第6章89C51的定时器/计数器两个可编程的定时器/计数器T1、T0。

2种工作模式:。(1)计数器工作模式(2)定时器工作模式

4种工作方式(方式0-方式3第6章89C51的定时器/计数器两个可编程的定时器/计数15.1定时器/计数器的结构与工作原理加一计数器5.1定时器/计数器的结构与工作原理加一计数器25.2定时计数器的控制与工作方式(寄存器TMOD、TCON)

M1M200方式0(13位)01方式1(16位)10方式2(8位,自动重装)11方式3(T0,2个8位)计数器模式和定时器模式选择位0:定时器模式。1:计数器模式。

门控位

0:仅以TRX(X=0,1)来启动定时器/计数器运行。1:用引脚INT0*(或INT1*)来启动定时器/计数器运行。1、控制5.2定时计数器的控制与工作方式(寄存器TMOD、TCON3

TF1、TF0计数溢出标志位(2)TR1、TR0定时计数运行控制位1:启动0:停止IT0/IT1选择外中断请求IT0=0

为电平触发方式。IT0=1

为跳沿触发方式。可由软件置“1”或清“0”。

IE0=0、IE1=0

无外部中断请求。IE0=1、IE1=1,外部中断0、1有中断请求。当CPU响应该中断,转向中断服务程序时,由硬件清“0”IE0。TF1、TF0(2)TR1、TR0IT0/IT1IE0=4

2、4种工作方式

方式0

M1、M0为00,定时器/计数器的框图:

2、4种工作方式方式05方式1

M1、M0=01,16位的计数器

方式1M1、M0=01,16位的计数器6方式2

M1、M0=10\计数满后自动装入计数初值

,等效框图如下:

方式2

M1、M0=10\计数满后自动装入计数初值,7方式2工作过程图定时器/计数器的方式2工作过程如图6-7(X=0,1)。省去用户软件中重装初值的程序,精确的定时。图6-7方式2工作过程图定时器/计数器的方式2工作过程如图6-7(X8

4方式3

方式3中T0分成两个的8位定时器/计数器:TL0、TH0与T1构成3个定时器/计数器。方式3只适用于T0,不适用于T1,若T1工作于方式3时相当于TR1=0,停止计数。方式3时T1可工作于方式0、方式1和方式2,作波特率发生器(或不需中断的场合)4方式3方式3中T0分成两个的8位定时器/计数器:91)工作方式3下的T0

T0分为两个独立的8位计数器:TL0、TH0

4方式31)工作方式3下的T0

T0分为两个独立的8位计数器:T10T0为方式3时

T1可定为方式0、方式1和方式2

用作串行口的波特率发生器(Baudrategenerator

),即作为串口数据传送时的时钟信号。或不需要中断的场合(因为TF0、TF1 均被T0占用)。(1)T1工作在方式0

2)工作在方式3下的T1

T0为方式3时2)工作在方式3下的T111(2)T1工作在方式1

(3)T1工作在方式2

(2)T1工作在方式112INT0\INT1\T0\T1和中断系统的连接P3.4T0P3.5T1TR0TR1P3.2INT0P3.3INT15.3定时器/计数器的编程和应用1)、编程步骤:(1)设置工作方式(2)装入计数初值(3)开中断(4)启动计数1、初始化INT0\INT1\T0\T1和中断系统的连接P3.4T13(1)计数时的初值计算:X=M(模值)-要计数的值(2)定时时的计数初值计算:X=M(模值)-定时时间(要计数的时间)/定时脉冲周期(每计一次数的时间)*注:定时脉冲周期=12/fosc

定时、计数的初值计算:(1)计数时的初值计算:定时、计数的初值计算:14举例说明计数初值的计算

假设系统时钟频率采用6MHz,要求产生10ms定时,试分别计算定时器在方式0、1、2时的初值。X=213–10ms÷(12÷6Mhz)=213-5000=3192DX=28–10ms÷(12÷6Mhz)=28-5000=-4744

说明不能采用方式2产生10ms定时。

X=216

–10ms÷(12÷6Mhz)=216-5000=60536D=0EC78

(1)方式0的初值X(2)方式1的初值X(3)方式2的初值X

举例说明计数初值的计算

假设系统时钟频率采用6MHz,要求15

2)、最大定时时间的计算假设系统时钟频率采用6MHz,试分别计算定时器在方式0、1、2时的最大定时时间。[分析]X=M(模值)-定时时间/定时脉冲周期,式中X=0.即:定时时间max=M×定时脉冲周期,故:(1)方式0的最大定时时间:T=213×12÷6Mhz=16.384ms(2)方式1的最大定时时间:T=216×12÷6Mhz=131.027ms(3)方式2的最大定时时间:T=28×12÷6Mhz=512us

2)、最大定时时间的计算假设系统时钟频率采用6MHz,试16

4)、初始化编程举例例5-1T1、方式1、定时50ms,软件启动、允许中断(设fosc=12MHZ),编写初始化程序段P3.4T0P3.5T1TR0TR1P3.2INT0P3.3INT11、编程步骤:(1)设置工作方式(2)装入计数初值(3)开中断(位编程或字节编程)(4)启动计数4)、初始化编程举例例5-1T1、方式1、定时50ms,17例5-2

计数器T0对T0引脚(P3.4)出现的脉冲计数,每计数100个脉冲向CPU中断一次、设用软件启动,编写初始化程序段。P3.4T0P3.5T1TR0TR1P3.2INT0P3.3INT11、编程步骤:(1)设置工作方式(2)装入计数初值(3)开中断(位编程或字节编程)(4)启动计数计数时的初值计算:X=M(模值)-要计数的数值例5-2计数器T0对T0引脚(P3.4)出现的脉冲计数,每18分配存储空间主程序中断服务程序X=216–10ms÷(12÷12Mhz)=216-10000=55536=0D8F0H所以:T0的初值为:

TH0=D8HTL0=F0H例5-3(定时):

T0定时,在P1.7输出50HZ(20ms)方波,设晶振频率12MHZ(分别

①采用中断、②查询方式编程)主程序:①设置工作方式②装入计数初值③开中断

④启动计数等待中断请求

2、定时/计数应用举例(定时/计数举例)(1)计算初值X(2)程序设计(观察下页图)

ORG0000H

①AJMPMAIN

ORG000BH

AJMPIT0P

ORG0100HMAIN:MOVSP,#60H

MOVTMOD,#01H MOVTL0,#0F0H

MOVTH0,#0D8H

SETBTR0

SETBET0

SETBEAHERE:AJMPHERE

ITOP:MOVTL0,#0F0H

MOVTH0,#0D8HCPLP1.7

RETI

END分配存储空间X=216–10ms÷(12÷12Mhz19P3.4T0P3.5T1TR0TR1P3.2INT0P3.3INT1TL0TH0TF0设置T0工作方式装入计数初值开中断启动计数000BPCP3.4T0P3.5T1TR0TR1P3.2IN20跳转到主程序0000

0001

跳转到INT00003跳转到T1

…001B跳转到T0000B

…跳转到INT10013

…串口中断0023跳转到主程序00000001跳转到INT00003跳转到21例5-4(计数):计数/定时器T1对T1引脚计数,每计数100个脉冲,在P1.0输出一个正脉冲。X=28–100=156=9CH主程序:①设置工作方式②装入计数初值③开中断使P1.0输出0电平

④启动计数等待中断请求

分配存储空间主程序中断服务程序(1)计算初值X(2)程序设计

ORG0000H

①AJMPMAIN

ORG001BH

AJMPIT1P

ORG0100HMAIN:MOVSP,#60H

MOVTMOD,#01H MOVTL0,#9CH

MOVTH0,#9CHSETBET1

SETBEA

CLRP1.0

SETBTR1

HERE:AJMPHERE

IT1P:SETBP1.0

NOPNOP

CLRP1.0

RETI END

例5-4(计数):计数/定时器T1对T1引脚计数,每计数22(2)程序设计

(1)计算初值X分配存储空间主程序中断服务程序例5.5(定时扩展):利用软件扩展方法实现1s定时,使得P1口控制8各发光二极管轮流点亮(低电平点亮),设fosc=6MHZ. ORG0000H

LJMP MAIN

ORG000BH

LJMP DVT0ORG0030H

主程序:①设置工作方式②装入计数初值③开中断设置中断次数使P1口D0灯亮

④启动计数等待中断请求

MAIN: MOVSP,#60H

MOVTMOD,#01H

MOVTH0,#9EH

MOVTL0,#58H SETBET0 SETBEA

R2,#20H MOVA,#0FEH MOVP1,A

SETBTR0

SJMP$

DVT0: DJNZR2,RTN

RLA MOVP1,A

MOVR2,#20 RTN: MOVTH0,#9EH

MOVTL0,#58H RETI

END

(2)程序设计(1)计算初值X分配存储空间例5.5(定时23例5.6(扩展外部(引脚)中断源):利用T0扩展一个外部中断源。将T0设置为计数方式,按方式2工作,TH0\TL0的值均为0FFH,T0允许中断,CPU开放中断,只写初始化程序。①设置工作方式②装入计数初值③开中断

④启动计数

例5.6(扩展外部(引脚)中断源):利用T0扩展一个外部中24(2)程序设计

(1)计算初值X=0000H分配存储空间主程序例5.7(GATE位应用):利用T0的GATE位。测量INT0引脚上出现的脉冲宽度,并将结果存于片内30H\31H处。试编程实现上述功能。

T0P3.4INT0TF1主程序:①设置工作方式②装入计数初值③开中断×(无需开中断)设置存储脉冲宽度的地址指针等待INT0变低

④开启TR0(并未启动计数)INT0一旦变高,则启动计数INT0一旦变低,则停止计数INTO=0则将计数器TL0\TH0存于指定存储单元查询INT0=0(2)程序设计(1)计算初值X=0000H分配存储空间例25实例设89C51单片机的工作频率为6Mhz,利用T0中断扩展方式产生1s定时,当1s定时到,从P1.0输出低电平点亮发光二极管,每产生一次中断,P1.7取反一次。实例设89C51单片机的工作频率为6Mhz,利用T0中断扩26电路图电路图27程序ORG0000H;复位入口

LJMP MAIN;转到主程序

ORG000BH;T0中断入口

LJMP TT0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论