第六章定时器_计数器_第1页
第六章定时器_计数器_第2页
第六章定时器_计数器_第3页
第六章定时器_计数器_第4页
第六章定时器_计数器_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

1、第六章第六章 AT89S51AT89S51单片机定时单片机定时/ /计数器计数器 实质是计数器,脉冲每一次下降沿,计数寄存器数值将加1。 计数的脉冲如果来源于单片机内部的晶振,由于其周期极为准确,这时称为定时器。计数的脉冲如果来源于单片机外部的引脚,由于其周期一般不准确,这时称为计数器。+1计数器溢出中断脉冲控制开关一、一、 定时器方式控制寄存器定时器方式控制寄存器TMOD1)功能选择位C/T: =0,定时功能,计数内部机器周期脉冲; =1,计数功能,计数引脚T0(T1)输入的负脉冲。2)方式选择位M1、M0:3)门控方式选择位GATE 计数器启动方式的选择 确定定时器工作方式指令: MOV

2、TMOD,#方式字 例:设T0用方式2非门控定时,T1用方式1门控计数。 MOV TMOD,#0D2H ; 1101 0010 B T1T0二、定时器计数器控制寄存器二、定时器计数器控制寄存器TCON (1)定时器计数器1运行控制位TR1(TCON.6)(2)定时器计数器溢出中断标志TF1(TCON.7),当定时器计数器1溢出时由硬件自动置TF11,在中断允许的条件下,便向CPU发出定时器计数器1的中断请求信号,CPU响应后TF1由硬件自动清零。在中断屏蔽条件下,TF1可作查询测试用。 在定时器计数器1工作时,CPU可以随时查询TF1的状态。(3)定时器计数器0运行控制位TR0(TCON.4)

3、(4)定时器计数器0溢出中断标志TF0(TCON.5)三、工作方式三、工作方式1.方式0 13位定时/计数器。 THx 8位和TLx低5位组成13位加1计数器,此种方式与MCS48系列兼容,如果不是为了兼容的目的,一般不用方式0.方式0的全部功能,方式1都可以代替。 可用程序将08191(2131)的某一数送入TH0、TL0作为初值。TH0、TL0从初值开始加法计数,直至溢出,所以设置的初值不同,定时时间或计数值也不同。计数值由式 N8192x 计算 (x为初值) 对内部机器周期计数即为定时,定时时间由式 T(8192x)Tcy 计算16位定时/计数器。 THx8位和TLx8位组成16位加1计

4、数器最大计数脉冲个数:165536(216),最长定时时间(晶振12MHz T=1s):1s 65536T= 65.54ms72.方式1非门控方式:当GATE0, 控制权由 TRx 决定 TRx1 计数开始 TRx 0 计数停止门控方式:当GATE1、TRx1 控制权由 INTx 决定 INTx1 计数开始 INTx 0 计数停止3.方式方式2 2 用于需要重复定时和计数的场合。 最大计数值:256 (28) 最大定时时间(晶振12MHz时 T=1s): 256s 自动恢复初值8位定时/计数器。TLx为8位加1计数器,THx为8位初值暂存器。4.4.方式方式3 3T0分成2个8位定时器:TL0

5、定时/计数器和TH0定时器TL0占用T0控制位:C/T,TR0,GATE;TH0占用T1控制位:TR1。T1不能使用方式3工作。四、定时器四、定时器/ /计数器的编程应用举例计数器的编程应用举例 一、一、 定时器计数器的初始化定时器计数器的初始化1.1.初始化的步骤初始化的步骤(1) 确定工作方式、操作模式、启动控制方式确定工作方式、操作模式、启动控制方式写入写入TMOD寄存器。寄存器。(2) 设置定时器或计数器的初值设置定时器或计数器的初值可直接将初值送入可直接将初值送入TH0、TL0或或TH1、TL1中,中,16位计数初值必须分两次写入对应的位计数初值必须分两次写入对应的计数器。计数器。(

6、3) 根据要求是否采用中断方式根据要求是否采用中断方式直接对直接对IE寄存器赋值。寄存器赋值。开放中断时,将对应的中断允许位置开放中断时,将对应的中断允许位置1,采用程序查询方式,采用程序查询方式IE应将对应的中断允许位清应将对应的中断允许位清0,进行中断屏蔽。,进行中断屏蔽。(4)启动定时器工作)启动定时器工作可使用可使用SETB TR0、SETB TR1和和SETB TR2指令启动。对于指令启动。对于T0和和T2而言,可根据而言,可根据GATE的的设置有两种启动设置有两种启动。2.计数初值的计算计数初值的计算当计数器使用时,初值X的计算式为: XM计数值 当定时器使用时,初值的计算式为:

7、XM计数值MTTCY 式中:TCY 为机器周期, T 为要求定时的时间。 M 由工作方式决定例如:AT89S51的主频为6MHz,要求产生1ms的定时,试计算计数初值X。若设置定时器工作于操作模式1,定时1ms,则计数初值X等于:3. 定时器初始化举例定时器初始化举例 例61 已知振荡器振荡频率fosc=12MHz,要求定时器计数器0产生10ms定时,试编写初始化程序。解:由于定时时间大于8192us,应选用工作方式1。(1)TH0、TL0初值的计算 由于Tcy1s,故有 T(65536x)Tcy(65536x)1s10ms 得 x=55536=D8F0 即 TH0D8H,TL0F0H(2)方

8、式寄存器TMOD的编程 (3)初始化程序 START:MOV TL0,0F0H MOV TH0,0D8H MOV TMOD,01H SETB TR0五、五、 定时器的应用举例定时器的应用举例1 模式模式1的应用的应用例例1 1 选用选用T0T0操作模式操作模式1 1,用于定时,由,用于定时,由P1.2P1.2输出周期为输出周期为1ms1ms的方波,设晶振的方波,设晶振f foscosc6MHz6MHz。采用查询方式编程。采用查询方式编程。解:确定用解:确定用T0T0定时定时500500s s。设。设X X为时间初为时间初值值X X2 21616f foscosct t1212655366553

9、66 650050012126528666528660FF060FF06H H设置模式控制字设置模式控制字TMODTMOD:00000001 01H 00000001 01H TH0TH0: 0FFH0FFHTL0TL0: 06H06H源程序如下: ORG 0000H MOV TMOD,#01H MOV TL0,06H MOV TH0,0FFH SETB TR0LP1:JBC TF0,LP2 ; AJMP LP1 LP2: MOV TL0,06H MOV TH0,0FFH CPL P1.2 SJMP LP11ms五、五、 定时器的应用举例定时器的应用举例例例2 2 选用选用T0T0操作模式操作

10、模式1 1,用于定时,由,用于定时,由P1.2P1.2输出周期为输出周期为1ms1ms的方波,设晶振的方波,设晶振f foscosc6MHz6MHz。采用中断方式编程。采用中断方式编程。解:确定用解:确定用T0T0定时定时500500s s。设。设X X为时间初为时间初值值X X2 21616f foscosct t121265536655366 650050012126528666528660FF060FF06H H设置模式控制字设置模式控制字TMODTMOD:00000001 01H 00000001 01H TH0TH0: 0FFH0FFHTL0TL0: 06H06H源程序如下: ORG

11、 0000H LJMP MAIN ORG 000BH LJMP T_0 MAIN: MOV TMOD,#01H MOV TL0,06H MOV TH0,0FFH SETB EA SETB ET0 SETB TR0 SJMP $ T_0: MOV TL0,06H MOV TH0,0FFH CPL P1.2 RETI例3 P1.7驱动LED亮1秒灭1秒地闪烁,设时钟频率为12MHz。 长定时方法:增加一个软件计数器(如R7), 记录中断次数,计满20个中断为1秒。 ORG 0000H AJMPMAIN ORG 001BH AJMP PT1INT ORG 0030HSTART:MOV R7,#00H

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

13、0030HSTART:MOV R7,#20 MOV TMOD,#10H MOV TL1, #3CH MOV TH1, #0B0H SETB EA SETB ET1 SETB TR1HERE: SJMP HEREPT1INT: MOV TL1,#3CH MOV TH1,#0B0H DJNZ R7, PEND MOV R7, #20 CPL P1.7PEND: RETI例5 P1.7驱动LED亮1秒灭1秒地闪烁,设时钟频率为12MHz。 长定时方法:增加一个软件计数器(如R7), 查询次数,计满n个中断为1秒。 ORG 0000H AJMP MAIN ORG001BH AJMP PT1INT ORG 0030HSTART:MOV R7,#20 MOV TMOD,#10H MOV TL1, #3CH MOV TH1, #0B0H SETB TR1PT1INT: MOV TL1,#3CH MOV TH1,#0B0H JNB TF1,$ CLR TF1 DJNZ R7, PT1INT MOV R7, #20 CPL P1.7PEND: SJMP PT1INT例6 P1.7驱动LED亮1秒灭1秒地闪烁,设时钟频率为12MHz。 长定时方法:增加一个软件计数器(如R7), 查询次数,计满n个中断为1秒。 ORG 0000H AJMP MAI

温馨提示

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

评论

0/150

提交评论