单片机定时器计数器.docx

上传人:b****1 文档编号:13725932 上传时间:2023-06-16 格式:DOCX 页数:14 大小:20.18KB
下载 相关 举报
单片机定时器计数器.docx_第1页
第1页 / 共14页
单片机定时器计数器.docx_第2页
第2页 / 共14页
单片机定时器计数器.docx_第3页
第3页 / 共14页
单片机定时器计数器.docx_第4页
第4页 / 共14页
单片机定时器计数器.docx_第5页
第5页 / 共14页
单片机定时器计数器.docx_第6页
第6页 / 共14页
单片机定时器计数器.docx_第7页
第7页 / 共14页
单片机定时器计数器.docx_第8页
第8页 / 共14页
单片机定时器计数器.docx_第9页
第9页 / 共14页
单片机定时器计数器.docx_第10页
第10页 / 共14页
单片机定时器计数器.docx_第11页
第11页 / 共14页
单片机定时器计数器.docx_第12页
第12页 / 共14页
单片机定时器计数器.docx_第13页
第13页 / 共14页
单片机定时器计数器.docx_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

单片机定时器计数器.docx

《单片机定时器计数器.docx》由会员分享,可在线阅读,更多相关《单片机定时器计数器.docx(14页珍藏版)》请在冰点文库上搜索。

单片机定时器计数器.docx

单片机定时器计数器

第六章定时器/计数器

第一节概述

8051内部提供两个十六位的定时器/计数器T0和T1,它们既可以用作硬件定时,也可以对外部脉冲计数。

1.计数功能:

所谓计数功能是指对外部脉冲进行计数。

外部事件的发生以输入脉冲下降沿有效,从单片机芯片T0(P3.4)和T1(P3.5)两个引脚输入,最高计数脉冲频率为晶振频率的1/24。

2.定时功能:

以定时方式工作时,每个机器周期使计数器加1,由于一个机器周期等于12个振荡脉冲周期,因此如单片机采用12MHz晶振,则计数频率为12MHz/12=1MHz。

即每微秒计数器加1。

这样就可以根据计数器中设置的初值计算出定时时间。

 

第二节定时器/计数器的基本结构、工作方式及应用

一、定时器/计数器基本结构

定时器/计数器的基本结构如图6-1。

T0由TH0和TL0两个八位二进制加法计数器组成十六位二进制加法计数器;T1由TH1和TL1两个八位二进制加法计数器组成十六位二进制加法计数器。

P3.5(T1)P3.4(T0)

 

TH1TL1TH0TL0

CPU

TCONTMOD

图6-1定时器/计数器基本组成

二、定时器/计数器控制寄存器

1.定时器方式控制寄存器TMOD

定时器方式控制寄存器地址89H,不可位寻址。

TMOD寄存器中高4位定义T1,低4位定义T0。

其中M1,M0用来确定所选工作方式如表6—1:

TMOD

位序

B7

B6

B5

B4

B3

B2

B1

B0

位符号

GATE

C/T

M1

M0

GATE

C/T

M1

M0

定时/计数器T1定时/计数器T0

表6—1TMOD控制位功能

符号

功能说明

GATE

门控位。

GATE=0,用运行控制位TR0(TR1)启动定时器。

GATE=1,用外中断请求信号输入端(INT1或INT0)和TR0(TR1)共同启动定时器。

C/T

定时方式或计数方式选择位。

C/T=0,定时工作方式。

C/T=1,计数工作方式。

M1M0

工作方式选择位。

M1M0=00方式0,13位计数器。

M1M0=01方式1,16位计数器。

M1M0=10方式2,具有自动再装入的8位计数器。

M1M0=11方式3,定时器0分成两个8位计数器,定时器1停止计数。

2.定时器控制寄存器TCON

定时器控制寄存器TCON地址88H,可以位寻址,TCON主要用于控制定时器的操作及中断控制。

有关中断内容在第四章已说明。

此处只对定时控制功能加以介绍。

表6—2给出了TCON有关控制位功能:

TCON

位地址

8F

8E

8D

8C

8B

8A

89

88

位符号

TF1

TR1

TF0

TR0

IE1

IT1

IE0

IT0

表6—2TCON有关控制位功能

符号

功能功功能功能说明

TF1

计数/计时1溢出标志位。

计数/计时1溢出(计满)时,该位置1。

在中断方式时,此位作中断标志位,在转向中断服务程序时由硬件自动清0。

在查询方式时,也可以由程序查询和清“0”。

TR1

定时器/计数器1运行控制位。

TR1=0,停止定时器/计数器1工作。

TR1=1,启动定时器/计数器1工作。

该位由软件置位和复位。

TF0

计数/计时0溢出标志位。

计数/计时0溢出(计满)时,该位置1。

在中断方式时,此位作中断标志位,在转向中断服务程序时由硬件自动清0。

在查询方式时,也可以由程序查询和清“0”。

TR0

定时器/计数器0运行控制位。

TR0=0,停止定时器/计数器0工作。

TR0=1,启动定时器/计数器0工作。

该位由软件置位和复位。

系统复位时,TMOD和TCON寄存器的每一位都清零。

 

三、工作方式及应用

用户可通过编程对专用寄存器TMOD中的M1,M0位的设置,选择四种操作方式。

(一)方式0(以T0为例)

在此方式中,定时寄存器由TH0的8位和TL0的5位(其余位不用)组成一个13位计数器。

当GATE=0时,只要TCON中的TR0为1,13位计数器就开始计;当GATE=1以及TR0=1时,13位计数器是否计数取决于INT0引脚信号,当INT0由0变1时开始计数,当INT0由1变为0时停止计数。

当13位计数器溢出时,TCON的TF0位就由硬件置1,同时将计数器清"0"。

当方式0为定时工作方式时,定时时间计算公式为:

(213-计数初值X)×晶振周期×12

当方式0为计数工作方式时,计数值的范围是:

1-213(8192)。

方式0内部逻辑框图如图6—2所示:

12分频

T0启动C/T=0F晶振

TF0

TL0

TH0

C/T=1T0(P3.4)

计数脉冲输入

1

TR0

1

GATE

INT0

图6—2方式0内部逻辑结构图

例6—1设单片机晶振频率为6MHz,试用T0在P1.0端线输出周期为1ms的方波脉冲,如图6-3所示。

试用方式0分别以查询方式和中断方式实现。

 

0.5ms

1.

P1.0

8051

1ms

图6—3例6—1示意图

解:

1.采用查询方式。

(1)计数初值计算。

由题意可得,只需从P1.0端线每延时500s后交替输出高低电平即可。

得:

∵(213-X)1(s)×12=500s

6

∴记数初值X=213-250=794210=1111100000110B

即TH0=F8H,TL0=06H

(2)T0初始化

计数器T1计数器T0

 

X

X

X

X

0

0

0

0

M1M0=00,方式0

C/T=0,定时

GATE=0,TR0启动

得(TMOD)=00H

由此可得参考程序如下:

ORG0000H

AJMPMAIN;转向主程序。

ORG0040H

MAIN:

MOVSP,#30H;堆栈设置。

MOVTMOD,#00H;TMOD初始化。

MOVTH0,#0F8H

MOVTL0,#06H;设置计数初值。

MOVIE,#00H;禁止中断。

SETBTR0;启动T0。

LOOP:

JBCTF0,LOOP1;定时到,转LOOP1,并将TF0清零,否则

按原顺序执行。

AJMPLOOP;继续查询。

LOOP1:

MOVTH0,#0F8H;重新设置计数初值。

MOVTL0,#06H

CPLP1.0;输出状态翻转。

AJMPLOOP;返回LOOP。

2.采用中断方式

中断方式中计数初值X和TMOD的设置与查询方式相同。

采用中断方式参考程序如下:

ORG0000H

AJMPMAIN;转向主程序。

ORG000BH;T0中断服务程序固定入口地址。

AJMPZD;转向T0中断服务程序。

ORG0040H

MAIN:

MOVSP,#30H;设置堆栈指针。

MOVTMOD,#00H;TMOD初始化。

MOVTH0,#0F8H;设置计数初值。

MOVTL0,#06H

SETBET0;开放T0中断。

SETBEA;开放总中断。

SETBTR0;启动T0。

HERE:

AJMPHERE;等待中断。

ZD:

CPLP1.0;输出取反。

MOVTH0,#0F8H;重新设置计数初值。

MOVTL0,#06H

RETI;返回。

在实际应用中,由于中断请求及响应过程要占用几个机器周期时间,故实际输出波形的周期略大于1ms,可在调试中适当修改计数初值解决。

(二)方式1

方式1采用16位计数结构的工作方式,其余与方式0相同。

显然方式1的定时时间计算公式为:

(216-计数初值)×晶振周期×12

计数范围是:

1─216(65536)

(三)方式2

方式2是由TL组成8位计数器。

TH作为常数缓冲器,由软件预置初始值。

当TL产生溢出时,一方面使溢出标志位TF置1;同时把TH的8位数据重新装入TL中,即方式2具有自动重新加载功能。

方式2的逻辑结构见图6—4(以定时器/计数器0为例)。

TL0

TF0

8位启动

计数脉冲

TH0

自动加载

TRO

1

1

GATE

INT0

图6—4方式2逻辑结构图

例6—2用8051对外部脉冲进行计数,每计满100个脉冲后使内部40H单元内容加1,用T0以方式2中断实现,TR0启动。

 

T0

8051

计数脉冲

例6—2示意图

解:

1.计数初值计算(方式2)

∵(28-X)=100

∴X=28-100=156D=9CH

2.TMOD设置

用T0以方式2实现,TR0启动,可得:

(TMOD)=00000110B=06H

3.中断系统设置

EA=1,ET0=1

4.参考程序:

ORG0000H

AJMPMAIN

ORG000BH

AJMPZD

MAIN:

ORG0040H

MOVSP,#30H;初始化。

MOVTMOD,#06H

MOVTH0,#9CH

MOVTL0,#9CH

MOV40H,#00H

SETBEA;中断设置。

SETBET0

SETBTR0

AJMP$

ORG0080H

ZD:

INC40H

RETI

(四)方式3

在方式3中,TL0和TH0成为两个相互独立的8位计数器。

TL0占用了全部T0的控制位和信号引脚,即GATE、C/T、TR0、TF0等。

而TH0只用作定时器使用。

而且由于定时器/计数器0的控制位已被TL0独占,因此TH0只好借用定时器/计数器1的控制位TR1和TF1进行工作。

同时,由于TR1,TF1已“出借”给TH0,TH1和TL1的溢出就送给串行口,作为串行口时钟信号发生器(即波特率信号发生器,详见第九章),并且只要设置好工作方式(方式0,方式1,方式2)以及计数初值,T1无须启动使可自动运行。

如要停止T1工作,只要将其设置工作方式3即可。

例6—3试用T0在P1.0输出周期为400s,占空比为10:

1的矩形脉冲,以定时工作方式2编程实现(查询方式)。

设F晶振=6MHz,如图6—5所示:

 

T1T2

 

P1.0

8051

T

400s

T=T1+T2

T:

T2=101

图6—5例6—3示意图

解:

由题意可知,P1.0输出高电平持续360s,输出低电平持续40s。

1.计数初值计算:

定时工作方式2中TL0为8位计数器,TH0为预置寄存器。

延时360s计数初值X1计算公式为:

∵(28-X1)×12(s)÷6=360s

X1=4CH

短延时40s计数初值X2计算公式为:

(28-X2)×12(s)÷6=40s

X2=ECH

2.TMOD设置

(TMOD)=00000010H=02H

3.采用查询方式(禁止中断)

4.程序流程图(算法)如图6—6所示:

开始

P1.01

初始化

TL04CH

TH0ECH

启动T0

定时到?

N

Y

P1.0状态取反

P1.0=1?

N

Y

TH04CH

TH0ECH

图6—6例6—3程序流程图(算法)

(5)参考程序如下:

ORG0000H

AJMPMAIN

ORG0040H

MAIN:

MOVSP,#30H

SETBP1.0;P1.0←1。

MOVTMOD,#02H;TMOD初始化。

MOVIE,#00H;禁止中断。

MOVTL0,#4CH;装入计数初值。

MOVTH0,#0ECH

AGAIN:

SETBTR0;启动T0。

LOOP:

JBCTF0,LOOP1;定时到?

AJMPLOOP;未到,继续等待。

LOOP1:

CPLP1.0;定时到,P1.0状态取反。

JNBP1.0,LOOP2;P1.0为零转移。

MOVTH0,#0ECH;P1.0为1,装短延时计数初值。

AJMPAGAIN;循环。

LOOP2:

MOVTH0,#4CH;P1.0为零,装长延时计数初值。

AJMPAGAIN;循环。

 

思考题和习题

6—1请叙述8051单片机四种定时工作方式的特点。

6—2设晶振频率为12MHz,试编写一个用软件延时10ms的子程序。

6—3试用软、硬件相结合的方法编写一个延时10s的子程序。

6—4试编写程序,使T0以方式1每隔20ms向CPU发出中断申请,设晶振频率为6MHz,TR0启动,查询实现。

6—5试编写程序,使8051对外部事件(脉冲)进行计数,每计满1000个脉冲后使内部RAM60H单元内容加一,用T0以方式1中断实现,TR0启动。

6—6试编程用T0以方式1从P.0端线输出频率为50KHz的等宽矩形波。

已知晶振频率为12MHz,TR0启动,查询方式实现。

6—7有晶振频率为6MHz的MCS—51单片机,使用定时器T1以定时工作方式2从P1.2端线输出周期为200s,占空比为5:

1的矩形脉冲,TR1启动。

 

T1T2

 

P1.0

8051

 

200s

题6—7

 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2