文档库 最新最全的文档下载
当前位置:文档库 › C51单片机的定时计数器(陆周整理)

C51单片机的定时计数器(陆周整理)

80C51单片机定时器/计数器

一、定时器/计数器简介

定时/计数器的实质是加1计数器(16位),由高8位和低8位两个寄存器组成。TMOD是定时/计数器的工作方式寄存器,确定工作方式和功能;TCON是控制寄存器,控制T0、T1的启动和停止及设置溢出标志。

加1计数器输入的计数脉冲有两个来源,一个是由系统的时钟振荡器输出脉冲经12分频后送来;一个是T0或T1引脚输入的外部脉冲源。每来一个脉冲计数器加1,当加到计数器为全1时,再输入一个脉冲就使计数器回零,且计数器的溢出使TCON中TF0或TF1置1,向CPU发出中断请求(定时/计数器中断允许时)。如果定时/计数器工作于定时模式,则表示定时时间已到;如果工作于计数模式,则表示计数值已满。由此可见,由溢出时计数器的值减去计数初值才是加1计数器的计数值。

1、定时器模式:设置为定时器模式时,加1计数器是对内部机器周期计数(1个机器周期等于12个振荡周期,即计数频率为晶振频率的1/12)。计数值N乘以机器周期Tcy就是定时时间t 。

2、计数器模式:设置为计数器模式时,外部事件计数脉冲由T0或T1引脚输入到计数器。在每个机器周期的S5P2期间采样T0、T1引脚电平。当某周期采样到一高电平输入,而下一周期又采样到一低电平时,则计数器加1,更新的计数值在下一个机器周期的S3P1期间装入计数器。由于检测一个从1到0的下降沿需要2个机器周期,因此要求被采样的电平至少要维持一个机器周期。当晶振频率为12MHz时,最高计数频率不超过1/2MHz,即计数脉冲的周期要大于2 μs。

二、定时器/计数器的相关寄存器

控制和管理定时器/计数器T0、T1有2个寄存器,即工作方式寄存器TMOD和控制寄存器TCON。

1、工作方式寄存器(TMOD):用于控制定时器/计数器的工作方式。

(1)工作方式寄存器TMOD各位的格式如下:

TMOD 地址 D7 D6 D5 D4 D3 D2 D1 D0

GATE C/T M1 M0 GATE C/T M1 M0

(89H)

(2)工作方式寄存器TMOD 各位名称及作用如下表:

GATE

C/T M1 M0 GATE C/T M1 M0 D7

D6

D5

D4

D3

D2

D1

D0

定时器T1

定时器T0

名 称 T1门控位 T1功能选择 T1工作方式选择

T0门控位 T0功能选

择 T0工作方式选择

M1 M0

M1 M0 值

1 0 1

00 01 10 11

1 0 1 0 00 01 10 11 方式0

方式1方式2 方式0方式1方式2 方式3 作 用

为1时,TR1置1同时引脚INT1也为1才能启动定时器T1工作

为0时,TR1置1将立即启动定时器T1工作

T1为计数器方式

T1为定时器方式

13位计数器

16位计数器

溢出后自动重装入初值的8位计数器

定时器1停止计数 为1时,TR0置1同时引脚INT0也为1才能启动定时器T0工作

为0时,TR0置1将立即启动定时器T0工作

T0 为 计 数 器 方 式

T0 为 定 时 器 方 式

13位计数器

16位计数器

溢出后自动重装入初值的8位计数器

定时器T0分成2个8位计数器

备 注

1、TMOD 定时器不能进行位寻址,只能用字节传送指令设置定时器工作方式。

2、复位时TMOD 定时器所有位均为0,定时器处于停止工作状态。

2、控制寄存器(TCON):用于控制定时器/计数器的启/停、标志定时器的溢出和中断情况。 (1)控制寄存器TCON 各位的格式如下:

TCON 地址 8FH 8EH 8DH 8CH 8BH 8AH 89H 88H TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0

(88H)

(2)控制寄存器TCON各位名称及作用如下表:

TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 位

TCON.7 TCON.6 TCON.5 TCON.4 TCON.3 TCON.2 TCON.1 TCON.0

T1启停控

制 T0启停控制

外部中断1

触发方式控制

外部中断0

触发方式控制

名称 (值)

T1溢出

中断标志

1 0

T0溢出

中断标志

1 0

外部中断

1标志

1 0

外部中断

0标志

1 0

作 用 T1计数溢出时该位

被置1,CPU响应中

断后自动清零。也

可用软件查询该标

志位,并用软件清

零。

启动

定时

器T1

工作

T1

T0计数溢出时该位

被置1,CPU响应中

断后自动清零。也可

用软件查询该标志

位,并用软件清零

启动

定时

器T0

工作

T0

IE1=1时,表明外

部中断1向CPU申

请中断;IE1=0时,

表明外部中断1没

有向CPU申请中断

外部中断

1设置为

边沿触发

方式(下降

沿有效)

外部中断

1设置为

电平触发

方式(低电

平有效)

IE0=1时,表明外

部中断0向CPU申

请中断;IE0=0时,

表明外部中断0没

有向CPU申请中断

外部中断

0设置为

边沿触发

方式(下降

沿有效)

外部中断

0设置为

电平触发

方式(低电

平有效)

备 注 1、AT89S52增加的定时器T2的中断标志详见定时器资料的T2CON寄存器。

2、在边沿触发方式中,为保证CPU在2个机器周期内检测到先高后低的负跳变,则输入高低电平的持续时间起码要保持12个振荡周期。

3、外部中断0或外部中断1在电平触发方式中,CPU响应中断后不能自动清除IE0或IE1标志,也不能由软件清除该标志,故在中断返回前,必须撤销引脚P3.2或P3.3上的低电平,否则将引起再次中断而出错。

三、定时器/计数器的初始化与启动

步 骤 任 务 操 作 方 式

1 确定工作方式对工作方式寄存器TMOD赋值

2 装入定时或计数的初值 直接将初值写入TH1、TL1或TH0、TLO。

3 根据需要开放定时器/计数器中断 直接对IE寄存器的定时器中断位赋值。

1、若设置为软件启动,则将TR1或TR0置1即启动

4 启动定时器/计数器

2、若设置外中断引脚电平启动,则须给外引脚加启动电平。

四、定时器/计数器初值的确定方法

工作方式 计数位数 最大计数值 举例说明 方式0 13位计数器 M= 213 = 8192

方式1 16位计数器 M= 216 = 65536

方式2 8位计数器 M=28 = 256

方式3 T0分为2个8位计数器 M=28 = 256

初值计算方法 初值 = 最大计数值 – 计数值

即: X = M - N

若80C51时钟频率为12MHz,要求产生1ms的定时,初值计算过程如下:时钟频率为12MHz

时,计数器每次加1所需时间为1μs,如果要产生1ms的定时时间,则需要“加1”1000次,1000

即为计数初值,如果在工作方式1下,则初值X=M-N=65536-1000=64536=FC18H。

此过程表示如果初值为64536,再记1000个脉冲就到了65536,此时定时器产生溢出向CPU

申请中断,正好定时1ms。

注 意:一旦产生溢出,计数器种的值就变为0,此时须立即把计数初值64536装入计数器,

否则将从0开始定时,定时时间不再是1ms。具有自动重装功能的方式2不必由用户软件重新装

入初值。

五、定时器T0、T1的工作方式

定时器 工作方式 特性比较 一般用途 方式0 T0、T1结构与操作完全相同,均为13位计数器。 因计算初值麻烦且易出错,一般情况避免使用此工作方式。

方式1 T0、T1均为16位计数器,结构和操作与方式0基本相同,惟一不同的是

方式1中定时器是以全16位二进制数参与操作。

常用作定时器或计数器,还可用以测量外信号的脉冲宽度。

方式2 T0、T1结构与操作完全相同,均为具有自动重装初值的8位计数器。 用作非常精确的定时,特别适用于串行口波特率发生器。 T0、T1

方式3 只有T0可以设置方式3,T1不能设置为此工作方式。此方式下,T0被拆

为2个独立的8位计数器TL0和TH0。

通常在需要用到2个8位定时器时才采用此方式。

六、定时/计数器T2

1、T2的寄存器:控制寄存器T2CON和方式控制寄存器T2MOD。

(1)控制寄存器T2CON的各位格式如下:

T2CON地址 D7 D6 D5 D4 D3 D2 D1 D0

TF2 EXF2 RCLK TCLK EXEN2 TR2 C/T2 CP/RL2

(C8H)

(2) 控制寄存器T2CON各位名称及作用如下表:

TF2 EXF2 RCLK TCLK EXEN2 TR2 C/T2 CP/RL2

D7 D6D5D4D3D2D1D0位

T2CON.7T2CON.6 T2CON.5 T2CON.4 T2CON.3 T2CON.2 T2CON.1 T2CON.0

串行口接收 时钟选择位 串行口发送

时钟选择位

T2外部触发

允许控制位

T2的计数

控制位

定时器/计数器

功能选择位

捕捉或常数重装

入方式选择位

名 称 (值)

T2中断

溢出标志位

T2外部

中断标志位

1 0 1 0 1 0 1 0 1 0 1 0

T2工作于

捕捉方式。

即当

EXEN2=1

时,T2EX端

(P1.1)的

负跳变引发

捕捉动作。

T2工作于

常数自动重

装入方式。

即当

EXEN2=1

时,T2EX端

(P1.1)的

负跳变引发

常数重装入

动作。

作 用 T2溢出时,硬件将

此位置1,须由用

户软件清0。

当RCLK或TCLK为

1时,即使溢出也

不会将此位置1。

当T2在捕捉方

式和常数自动装

入方式下,若

EXEN2=1,则在

T2EX端(P1.1)

发生的负跳变使

此位置1,如果

此时允许T2中

断,则将向CPU

申请中断。此位

须由软件清0。

当T2在加1/减1

计数方式

(DECN=1)工作

时,此位不会置

位。

T2工

作于波

特率发

生器方

式,此

时T2

的溢出

脉冲作

串行口

方式1

和方式

3的接

收脉

冲。

T2的

溢出脉

冲作接

收时钟

脉冲。

T2工

作于

波特

率发

生器

方式,

此时

T2的

溢出

脉冲

作串

行口

方式1

和方

式3

的发

送脉

冲。

T2的

溢出

脉冲

作发

送时

钟脉

冲。

若T2EX

引脚

(P1.1)

有1个负

跳变,则

会引发捕

捉或常数

重装入动

作,同时

使EXF2

置1。(注

意此时

T2不能

作为串行

口的时

钟)

T2EX引

脚(P1.1)

的电平变

化对T2

无任何影

响。

T2为外

部事件

计数器

模式,

由引脚

P1.0上

的下降

沿触

发。

T2为内

部定时

器模

式,对

内部振

荡脉冲

12分频

进行计

数。

当TCLK=1或RCLK=1时,

此位无效,T2被强制工作

于自动重装入方式,定时

器溢出时引发常数自动重

装。

(3)方式控制寄存器T2MOD的各位格式如下:

T2MOD地址 D7 D6 D5 D4 D3 D2 D1 D0

—— —— —— —— —— —— T2ΟE DCEN (C9H)

(4)方式控制寄存器T2MOD各位名称及作用如下:

位 名 称 值 作 用

T2ΟE D1 1 允许T2输出。

T2MOD.1 T2的输出允许位

0 禁止T2输出。

DCEN D0 1 当T2工作于自动重装入方式时,允许T2加1/减1计数。具体加1还是减1,又T2EX(P1.1)引脚的电平有关,T2EX(P1.1)=1时,T2执行加1计数;T2EX(P1.1)=0时,T2执行减1计数。

T2MOD.0 T2加1/减1计数允许位

0 复位时此位为0(DCEN=0),则T2为加1计数。

D2—D7 此6位无作用,可以为任意值。

2、T2的工作方式

T2有四种工作方式,分别为16位自动捕捉方式、16位自动重装入方式、波特率发生器方式和时钟输出方式。由T2CON寄存器中的D0、D2、D4、D5几位的组合选择这

定时器T2具有多种工作方式,既可用作定时器,也可用作计数器,且无论是用作定时器还是用作计数器,都有捕捉方式和自动重装入方式。T2用作定时器使用时,还有波特率发生器方式。以下详细介绍各工作方式:

(1) 16位自动重装入方式

16位自动重装入方式是指在满足某规定条件时,RCAP2L和TCAP2H中存放的计数初值可自动重装入TL2和TH2中。当CP/RL2=0时,选择自动重装入方式。根据DCEN位所选择的计数状态,自动重装入操作又可分为以下两种情况:

T2CON的CP/RL2=0时,选择自动重装入方

DCEN=0时,T2为自动加1计数方式 DCEN=1时,T2为加1/减1计数方式

T2CON的EXEN2=0时,T2用作定时/计数器 T2CON的EXEN2=1时

由T2EX(P1.1)引脚的电平状态决定T2是用作加计数还是减计数,即由T2EX (P1.1)引脚状态控制选择T2的两种重装方式。

T2CON的C/T2=0,T2用作定时器 T2CON的C/T2=1,

T2用作计数器

T2CON的

C/T2=0,

T2用作定时器

T2CON的C/T2=1,

T2用作计数器

T2EX(P1.1)引脚=1时,

T2用作加1计数

T2EX(P1.1)引脚=0时,

T2用作减1计数

以振荡频率的12分频计数

以T2外部输入引

脚(P1.0)的输入脉冲

作计数脉冲(下降沿有

效)

以振荡频

率的12分频计

以T2外部输入

引脚(P1.0)的输

入脉冲作计数脉冲

(下降沿有效)

当计数至0FFFFH时产生溢出,将

RCAP2L和TCAP2H中存放的计数初值重

新装入TL2和TH2中,同时把溢出标志

位TF2置1。

当TL2和TH2中的值减至与RCAP2L

和TCAP2H中的值相等时,自动把FFFFH

重新装入TL2和TH2中,同时将溢出标志

TF2置1,

TR2=1时,从初值开始增1计数至0FFFFH溢出时,RCAP2L和TCAP2H中存放的计数初值重新装入TL2和TH2中,T2从该值开始重新计数,同时溢出标志位TF2置1。计数器的初值在初始化时由软件编程设置。

除了完成T2CON的EXEN2=1时的

功能外(见左侧),还可实现以下功能:

当外部输入引脚T2EX(P1.1)的输入

电平发生负跳变时,可以控制将重装/

捕捉寄存器RCAP2L和TCAP2H中的内

容重新装入TL2和TH2中,使T2重新

从新值开始计数,同时把溢出中断标

志位EXF2置1,向CPU发出中断请求。

无论是加1计数还是减1计数,此方式下EXF2标志的变化都不会引起中断,

此时可以把EXF2看作是结构的第17位。

(2)16位自动捕捉方式

T2CON的CP/RL2=1时,T2除了可以用于定时计数外,还可工作于捕捉方式,T2CON中的EXEN2位选择T2的两种工作方式 T2CON的EXEN2=0时 T2CON的EXEN2=1时 T2CON的C/T2=0 T2CON的C/T2=1

T2用作定时器,对内部振荡脉冲的12分频进行计数。

T2用作计数器,对外部引脚P1.0上的脉冲进行计数(下降沿有效)。

当定时/计数器T2增1计数至益处时,将TF2标志置1,并发出中断请求信号,在这种方式下,TL2和TH2的内容不会送入捕捉寄存器RCAP2L和RCAP2H中。 T2除了实现EXEN2=0时的功能(见左侧),还可实现捕捉功能,即当外部输入端T2EX (P1.1)的输入电平发生负跳变时,就会把TH2和TL2的内容锁入捕捉寄存器RCAP2L 和RCAP2H中,并将T2CON的中断标志位EXF2置1,向CPU发出中断请求信号。

(3)波特率发生器方式

T2CON的RCLK=1和/或TCLK=1,定时器T2以波特率发生器方式工作

T2CON的RCLK=1 T2CON的RCLK=0 T2CON的TCLK=1 T2CON的TCLK=0 T2工作于波特率发生器方式,此时

T2的溢出脉冲作串行口方式1和方式3的接收脉冲。 T2的溢出脉冲作接收时钟脉冲。

T2工作于波特率发生器方式,此时

T2的溢出脉冲作串行口方式1和方式3

的发送脉冲。

T2的溢出脉冲作发送时钟脉冲。

重点内容:

1、波特率发生器方式类似于常数自动重装入方式。此方式下,T2溢出时,寄存器RCAP2L和RCAP2H中存放的计数初值重新装入TL2和TH2中,使T2从该值重新开始计数。

2、在波特率发生器方式下,C/T2可以设置为0或1,多数应用中设为0。T2用作定时器时是对机器周期进行加1计数(1/12振荡频率),作为波特率发生器时是对状态周期进行加1计数(1/2振荡频率)。

3、在方式1或方式3时波特率的计算公式为:波特率 = 定时器T2的溢出率/16 = 振荡器频率/[32 ×(65536 – X)],式中X为一个16位的无符号数,其高低8位分别为RCAP2H和RCAP2L中的值。

4、T2工作在波特率发生器方式时,须特别注意以下两点:

①TH2溢出时不会使TF2置1,不产生中断,但如果EXEN2设为1,T2EX(P1.1)的负跳变将使EXF2置1,并产生中断,所以T2EX(P1.1)引脚可作附加的

外部中断输入用,但中断时不会引起自动重装;

②当T2作为波特率发生器定时运行期间,不应对TH2、TL2进行读/写操作,对于RCAP2寄存器只能读不能写,如果需要对其进行访问,则应先将TR2置0,,停

止其运行。

(4)可编程时钟输出方式

T2CON的C/T2=0且T2MOD的T2OE=1时,T2工作于时钟发生器方式,T2CON的TR2为控制T2的启动与停止

T2CON的TR2=1时启动定时器T2 T2CON的TR2=0时停止定时器T2

重点内容:

1、定时器T2通过编程可以从P1.0引脚输出占空比为50%的时钟信号,此即T2的可编程时钟输出方式。

2、时钟输出频率取决于振荡频率及T2的捕获寄存器(RCAP2H和RCAP2L)的重装载数值,具体计算公式为:时钟输出频率 = 振荡频率/[4×(65536 – X)], 式

中X为一个16位的无符号数,其高低8位分别为RCAP2H和RCAP2L中的值。

3、在时钟输出方式下,T2即使溢出也不会产生中断,T2EX(P1.1)引脚也可作附加的外部中断输入,此与波特率发生器方式类似。

4、T2可以同时工作在波特率发生器方式和时钟输出方式下,但由于这两种方式都要使用重装/捕获寄存器RCAP2,因此当T2同时工作在这两种方式时,输出的时钟

频率值与波特率的设置值有关,波特率计算公式中的“X”与时钟输出频率计算公式中的“X”必须是相同的,使用时须注意

注 意:

在AT89C52/S52中,还增加了定时器T2的中断请求源,入口地址是2BH,T2中断级别最低,其中断请求是由标志位TF2(T2CON.7)和EXF2(T2CON.6)经逻辑“或”后产生的,所以当CPU响应该中断请求后,必须由软件来判别是TF2(T2CON.7)还是EXF2(T2CON.6)产生的中断,也必须由软件将该标志位清0。

七、WDT监视定时器

1、WDT监视定时器简介

WDT监视定时器全称为WATCHDOG TIMER,缩写为WDT,简称“看门狗”,这是一个软、硬件相结合的、重要的常用抗干扰技术。在AT89S51/S52中的定时器T3即WDT。AT89S51中的WDT由一个14位计数器和一个看门狗复位寄存器组成,AT89S52中的WDT的计数器是13位。WDT的主要用途是当程序运行出现死机(即进入死循环)时,能通过复位的方法使CPU推出死循环。

2、W D T的寄存器

(1)看门狗复位寄存器WDTRST

WDTRST简介 WDTRST工作原理

看门狗复位寄存器是特殊功能寄存器,符号是WDTRST,地址为A6H,是一个只写寄存器。单片机复位时WDT是不工作的,启动WDT开始工作的方法是顺序向WDTRST 中写入01EH和0E1H,写完后计数器从0开始计数,且WDT开始工作后,每个机器周期计数增1。AT89S51计数至16383(3FFFH)时产生溢出;AT89S52计数至8191(1FFFH)是产生溢出。计数器产生溢出后单片机复位。

单片机系统正常运行时通过软件编程不断的给WDT监视定时器发清0信号,使WDT不会产生溢出,系统不会复位。如果单片机出现死机(进入死循环),则WDT不能按时收到清0信号,当WDT计时到设定时间时就会产生溢出信号使RST 引脚出现正脉冲,正脉冲宽度为98个时钟周期,此时单片机复位,程序运行恢复正常,WDT停止计数并重新进入监视状态。

注 意:

在掉电方式(power-down)下,振荡器停止工作,这意味着WDT也停止计数,因此在进入电源关断方式之前和执行退出电源关断方式的中断服务程序期间,一般

(2)辅助寄存器AUXR

①辅助寄存器AUXR各位格式如下:

AUXR地址 D7 D6 D5 D4 D3 D2 D1 D0

—— —— —— WDIDLE DISETO—— —— DISALE

(8EH)

②辅助寄存器AUXR各位名称及作用如下表:

—— —— —— WDIDLE DISETO —— —— DISALE 位

AUXR.7 AUXR.6 AUXR.5 AUXR.4AUXR.3AUXR.2 AUXR.1 AUXR.0

WDT方式选择位 复位输出控制位 ALE引脚控制位 名称

(值) 1 0 1 0 1 0

作 用 此3位无用 WDT停止计

数,在设置空

闲方式后才

恢复工作。

空闲方式期

间WDT继续

计数。

复位引脚始

终为输入状

在WDT时间

到后,复位引

脚输出一个

高电平脉冲。

此2位无用

仅在执行MOVX

或MOVC指令时

输出ALE脉冲。

ALE引脚始终输

出一个1/6振

荡频率的脉冲。

备 注

1、当WDIDLE=0(AUXR.4=0)时,为避免在空闲方式下由于WDT的溢出使单片机系统复位,应周期性的退出空闲方式,顺序向WDTRST中写入01EH和0E1H,重新进入空闲方式。

2、当不需要用ALE作为信号源时,一般设置DISALE=1(AUXR.0=1),此做法可以进一步降低单片机的功耗。

3、AT89S51/S52单片机的WDT计时的定时时间所采用的晶振频率有关,一旦晶振频率确定,则AT89S51/S52的WDT的溢出周期就是一个确定的值。

单片机定时器与计数器的工作方式解析

单片机定时器与计数器的工作方式解析 1 工作方式0 定时器/计数器的工作方式0称之为13位定时/计数方式。它由TL(1/0)的低5位和TH (0/1)的8位组成13位的计数器,此时TL(1/0)的高3位未用。 我们用这个图来讨论几个问题: M1M0:定时/计数器一共有四种工作方式,就是用M1M0来控制的,2位正好是四种组合。C/T:前面我们说过,定时/计数器即可作定时用也可用计数用,到底作什么用,由我们根据需要自行决定,也说是决定权在我们??编程者。如果C/T为0就是用作定时器(开关往上打),如果C/T为1就是用作计数器(开关往下打)。顺便提一下:一个定时/计数器同一时刻要么作定时用,要么作计数用,不能同时用的,这是个极普通的常识,几乎没有教材会提这一点,但很多开始学习者却会有此困惑。 GATE:看图,当我们选择了定时或计数工作方式后,定时/计数脉冲却不一定能到达计数器端,中间还有一个开关,显然这个开关不合上,计数脉冲就没法过去,那么开关什么时候过去呢?有两种情况 GATE=0,分析一下逻辑,GATE非后是1,进入或门,或门总是输出1,和或门的另一个输入端INT1无关,在这种情况下,开关的打开、合上只取决于TR1,只要TR1是1,开关就合上,计数脉冲得以畅通无阻,而如果TR1等于0则开关打开,计数脉冲无法通过,因此定时/计数是否工作,只取决于TR1。 GATE=1,在此种情况下,计数脉冲通路上的开关不仅要由TR1来控制,而且还要受到INT1管脚的控制,只有TR1为1,且INT1管脚也是高电平,开关才合上,计数脉冲才得以通过。这个特性能用来测量一个信号的高电平的宽度,想想看,怎么测? 为什么在这种模式下只用13位呢?干吗不用16位,这是为了和51机的前辈48系列兼容而设的一种工作式,如果你觉得用得不顺手,那就干脆用第二种工作方式。 2 工作方式1

实验三单片机定时计数器实验

实验三单片机定时/计数器实验 1、实验目的 1、学习计数器的使用方法。 2、学习计数器程序的编写。 3、学习定时器的使用方法。 4、学习定时器程序的编写。 5、熟悉汇编语言 2、实验说明 1、8051内部定时计数器T0,按计数器模式和方式1工作,对P3.4(T0)引脚进行计数。将其数值按二进制数在P1口驱动LED灯上显示出来。 2、用CPU内部定时器中断方式计时,实现每一秒钟输出状态发生一次反转 3、实验仪器和条件 计算机 伟福实验箱(lab2000P) 4、实验内容 1、8051内部定时计数器T0,按计数器模式和方式1工作,对P3.4(T0)引脚进行计数。将其数值按二进制数在P1口驱动LED灯上显示出来。 2、外部事件计数脉冲由P3.4引入定时器T0。单片机在每个机器周期采样一次输入波形,因此单片机至少需要两个机器周期才能检测到一次跳变。这就要求被采样电平至少维持一个完整的机器周期,以保证电平在变化之前即被采样。同时这就决定了输入波形的频率不能超过机器周期频率。 3、用CPU内部定时器中断方式计时,实现每一秒钟输出状态发生一次反转 4、定时器有关的寄存器有工作方式寄存器TMOD和控制寄存器TCON。TMOD

用于设置定时器/计数器的工作方式0-3,并确定用于定时还是用于计数。TCON 主要功能是为定时器在溢出时设定标志位,并控制定时器的运行或停止等。 5、在例程的中断服务程序中,因为中断定时常数的设置对中断程序的运行起到关键作用,所以在置数前要先关对应的中断,置数完之后再打开相应的中断。 五、思考题 1、使用其他方式实现本实验功能; 2、改为门控方式外部启动计数; 3、如果改为定时间隔为200us,如何改动程序; 4、使用其他方式实现本实验功能,例如使用方式1,定时间隔为10ms,如何改动程序。 六、源程序修改原理及其仿真结果 思考题一:使用其他方式实现本实验功能 方法一: movTMOD, #00000100b;方式0,记数器 movTH0, #0 movTL0, #0 setbTR0;开始记数;由于方式0的特点是计数时使用TL0的低五位和八位 TH0,故用加法器a用“与”(ANL)取TL0的低五位,再用yiwei子程序实现TH0的低三位变为高三位与TL0相加,这样赋给P1时就是八位计数的结果。 Loop: mova,TL0 anla,#1fh

单片机实验之定时器计数器应用实验二

一、实验目的 1、掌握定时器/计数器计数功能的使用方法。 2、掌握定时器/计数器的中断、查询使用方法。 3、掌握Proteus软件与Keil软件的使用方法。 4、掌握单片机系统的硬件和软件设计方法。 二、设计要求 1、用Proteus软件画出电路原理图,单片机的定时器/计数器以查询方式工作,设定计数功能,对外部连续周期性脉冲信号进行计数,每计满100个脉冲,则取反P1.0口线状态,在P 1.0口线上接示波器观察波形。 2、用Proteus软件画出电路原理图,单片机的定时器/计数器以中断方式工作,设定计数功能,对外部连续周期性脉冲信号进行计数,每计满200个脉冲,则取反P1.0口线状态,在P 1.0口线上接示波器观察波形。 三、电路原理图 六、实验总结 通过本实验弄清楚了定时/计数器计数功能的初始化设定(TMOD,初值的计算,被计数信号的输入点等等),掌握了查询和中断工作方式的应用。 七、思考题 1、利用定时器0,在P1.0口线上产生周期为200微秒的连续方波,利用定时器1,对 P1.0口线上波形进行计数,满50个,则取反P1.1口线状态,在P 1.1口线上接示波器观察波形。 答:程序见程序清单。

四、实验程序流程框图和程序清单。 1、定时器/计数器以查询方式工作,对外部连续周期性脉冲信号进行计数,每计满100个脉冲,则取反P1.0口线状态。 汇编程序: ORG 0000H START: LJMP MAIN ORG 0100H MAIN: MOV IE, #00H MOV TMOD, #60H MOV TH1, #9CH MOV TL1, #9CH SETB TR1 LOOP: JNB TF1, LOOP CLR TF1 CPL P1.0 AJMP LOOP END C语言程序: #include sbit Y=P1^0; void main() { EA=0; ET1=0; TMOD=0x60; TH1=0x9C; TL1=0x9C; while(1) { TR1=1; while(!TF1); TF1=0; Y=!Y; } } 开始 TMOD初始化 计数初值初始化 中断初始化 启动定时器 计数溢出 清计数溢出标志 Y N P1.0口线取反

实验三单片机定时计数器实验

实验三单片机定时/ 计数器实验 1、实验目的 1、学习计数器的使用方法。 2、学习计数器程序的编写。 3、学习定时器的使用方法。 4、学习定时器程序的编写。 5、熟悉汇编语言 2、实验说明 1、8051内部定时计数器T0,按计数器模式和方式1工作,对P3.4 (T0) 引脚进行计数。将其数值按二进制数在P1 口驱动LED丁上显示出来。 2、用CPU内部定时器中断方式计时,实现每一秒钟输出状态发生一次反转 3、实验仪器和条件 计算机 伟福实验箱( lab2000P) 4、实验内容 1、8051内部定时计数器T0,按计数器模式和方式1工作,对P3.4(T0) 引脚进行计数。将其数值按二进制数在P1 口驱动LED丁上显示出来。 2、外部事件计数脉冲由P3.4引入定时器T0。单片机在每个机器周期采样一次输入波形,因此单片机至少需要两个机器周期才能检测到一次跳变。这就要求被采样电平至少维持一个完整的机器周期,以保证电平在变化之前即被采样。同时这就决定了输入波形的频率不能超过机器周期频率。 3、用CPU内部定时器中断方式计时,实现每一秒钟输出状态发生一次反转 4、定时器有关的寄存器有工作方式寄存器TMOD和控制寄存器TCON TMOD 用于设置定时器/ 计数器的工作方式0-3,并确定用于定时还是用于计数。TCON 主要

功能是为定时器在溢出时设定标志位,并控制定时器的运行或停止等。 5、在例程的中断服务程序中,因为中断定时常数的设置对中断程序的运行起到关键作用,所以在置数前要先关对应的中断,置数完之后再打开相应的中断。 五、思考题 1、使用其他方式实现本实验功能; 2、改为门控方式外部启动计数; 3、如果改为定时间隔为200us,如何改动程序; 4、使用其他方式实现本实验功能,例如使用方式1定时间隔为10ms,如何改动程序。 六、源程序修改原理及其仿真结果 思考题一:使用其他方式实现本实验功能 方法一: movTMOD, #00000100b方式0,记数器 movTH0, #0 movTL0, #0 setbTR0开始记数;由于方式0的特点是计数时使用TL0的低五位和八位 TH0,故用加法器a用与”(ANL)取TL0的低五位,再用yiwei子程序实现TH0 的低三位变为高三位与TL0相加,这样赋给P1时就是八位计数的结果。 Loop: mova,TL0 anla,#1fh movr1,a mova,TH0

单片机定时计数器实验

实验三单片机定时/计数器实验 一、实验目的 1、学习计数器的使用方法。 2、学习计数器程序的编写。 3、学习定时器的使用方法。 4、学习定时器程序的编写。 5、熟悉汇编语言 二、实验说明 1、8051内部定时计数器T0,按计数器模式和方式1工作,对P3.4(T0)引脚进行计数。将其数值按二进制数在P1口驱动LED灯上显示出来。 2、用CPU内部定时器中断方式计时,实现每一秒钟输出状态发生一次反转 三、实验仪器和条件 计算机 伟福实验箱(lab2000P ) 四、实验内容与软件流程图 实验3-1⑴、8051内部定时计数器T0,按计数器模式和方式1工作,对P3.4(T0)引脚进行计数。将其数值按二进制数在P1口驱动LED灯上显示出来。 ⑵、外部事件计数脉冲由P3.4引入定时器T0。单片机在每个机器周期采样一次输入波形,因此单片机至少需要两个机器周期才能检测到一次跳变。这就要求被采样电平至少维持一个完整的机器周期,以保证电平在变化之前即被采样。同时这就决定了输入波形的频率不能超过机器周期频率。 ⑶、流程图 ⑷、实验电路及连线 实验3-2①、用CPU内部定时器中断方式计时,实现每一秒钟输出状态发生一次反转 ②、定时器有关的寄存器有工作方式寄存器TMOD和控制寄存器TCON。TMOD 用于设置定时器/计数器的工作方式0-3,并确定用于定时还是用于计数。TCON主要功能是为定时器在溢出时设定标志位,并控制定时器的运行或停止等。 ③、在例程的中断服务程序中,因为中断定时常数的设置对中断程序的运行起到关键作用,所以在置数前要先关对应的中断,置数完之后再打开相应的中断。 ④、软件流程图

单片机定时器计数器实验报告

单片机定时器计数器实验报告 篇一:单片机计数器实验报告 计数器实验报告 ㈠实验目的 1. 学习单片机内部定时/计数器的使用和编程方法; 2. 进一步掌握中断处理程序的编程方法。 ㈡实验器材 1. 2. 3. 4. 5. G6W仿真器一台 MCS—51实验板一台 PC机一台电源一台信号发生器一台 ㈢实验内容及要求 8051内部定时计数器,按计数器模式和方式1工作,对 P3.4(T0)引脚进行计数,使用8051的T1作定时器,50ms 中断一次,看T0内每50ms来了多少脉冲,将计数值送显(通过LED发光二极管8421码来表示),1秒后再次测试。 ㈣实验说明 1. 本实验中内部计数器其计数器的作用,外部事件计数器脉冲由P3.4引入 定时器T0。单片机在每个机器周期采样一次输入波形,因此单片机至少需要两个机器周期才能检测到一次跳变,这就要求被采样电平至少维持一个完整的机器周期,以保证电

平在变化之前即被采样,同时这就决定了输入波形的频率不能超过机器周期频率。 2. 计数脉冲由信号发生器输入(从T0端接入)。 3. 计数值通过发光二极管显示,要求:显示两位,十位用L4~L1的8421 码表示,个位用L8~L5的8421码表示 4. 将脉搏检查模块接入电路中,对脉搏进行计数,计算出每分钟脉搏跳动 次数并显示 ㈤实验框图(见下页) 程序源代码 ORG 00000H LJMP MAIN ORG 001BH AJMP MAIN1 MAIN: MOV SP,#60H MOV TMOD,#15H MOV 20H,#14H MOV TL1,#0B0H MOV TH1,#3CHMOV TL0,#00H ;T0的中断入口地址 ;设置T1做定时器,T0做计数器,都于方式1工作 ;装入中断次数 ;装入计数值低8位 ;装入计数值高8位 MOV TH0,#00H SETB TR1 ;启动定时器T1 SETB TR0 ;启动计数器T0 SETB ET1 ;允许T1中断 SETB EA ;允许CPU中断 SJMP $;

第六章 定时计数计数单元测验2018

第六章定时计数计数单元测验 题量:20 满分:分显示答案 一.单选题(共5题,分) 1、12MHz晶振的单片机在定时工作方式下,定时器可能实现的最大定时时间是。 A、65536 u s B、8192 u S C、32768 u s D、1638 u s ` 正确答案: A 2、设MCS-51单片机晶振频率为12MHz,定时器作计数器使用时,其最高的输入计数频率应为 A、2MHz B、1MHz C、500KHz D、250KHz 正确答案: C 计数频率不能超过晶振频率的1/24 3、定时器若工作在循环定时或循环计数场合,应选用哪种工作方式( )。 | A、方式0 B、方式1 C、方式2 D、方式3 正确答案: C 4、51单片机的定时器T0用作计数方式时是()。 A、由内部时钟频率定时,一个时钟周期加1 B、由内部时钟频率定时,一个机器周期加1 C、由外部计数脉冲计数,下降沿加1 * D、由外部计数脉冲计数,一个机器周期加1 正确答案: C 5、下列SFR中,与定时计数器控制无关的是() A、TCON B、SCON C、TMOD D、IE

正确答案: B 。 二.判断题(共10题,分) 1、特殊功能寄存器TCON,与定时器/计数器的控制无关 正确答案:错误 2、AT89S51单片机的定时/计数器用作计数时,计数脉冲来自晶振,最高频率为系统振荡器频率的1/24 正确答案:错误 3、51单片机定时/计数器用作定时时,其计数脉冲来自单片机的外部,其频率为振荡频率的1/12。 正确答案:错误 ! 4、当晶振频率为6MHz时,AT89C51单片机定时/计数器最大定时间为 正确答案:错误 5、MCS-51单片机定时工作方式0与定时工作方式l除了计数结构位数不同,别无差别。( ) 正确答案:错误 6、T0和T1都是减法定时器/计时器。( ) 正确答案:错误 7、MCS-51单片机的定时和计数都使用同一计数机构,所不同的只是计数脉冲的来源。来自于单片机内部的是定时,而来自于外部的则是计数。( ) ~ 正确答案:正确 8、定时计数器T0无论是定时还是计数本质上

相关文档
相关文档 最新文档