微机原理

您所在的位置:网站首页 数据库的制作方法有哪几种 微机原理

微机原理

2024-07-11 18:07| 来源: 网络整理| 查看: 265

定时器 概述

检测与控制中,许多场合都要用到计数功能和定时功能。实现定时/计数这些功能,有3种主要方法:软件定时、数字电路的硬件定时、可编程定时/计数器。

软件定时 软件定时就是一个循环程序,执行这一程序段所需的时间就是延时时间。

数字电路硬件定时 这种硬件定时采常用小规模集成电路器件,如用555定时芯片构成定时电路,它不占用CPU的时间,但是这种电路的定时时间要靠电路中的元件参数来确定。在硬件电路连接好以后,要改变定时时间,就要改变电路中的电子元件,使用起来很不方便。

可编程定时/计数器 可编程定时/计数器是为了方便微型计算机系统的设计和应用而研制的,它既是硬件定时,又可以很容易地通过软件来确定和改变定时时间,通过软件编程就能够满足不同的定时和计数要求。

###结构

定时器/计数器T0由特殊功能寄存器TH0、TL0构成,

定时器/计数器T1由特殊功能寄存器TH1、TL1构成。

具有定时器和计数器2种工作模式,4种工作方式(方式0、方式1、方式2和方式3)。

计数器模式是对加在T0(P3.4)和T1(P3.5)两个引脚上的外部脉冲进行计数\定时器工作模式是对单片机的时钟振荡器信号经片内12分频后的内部脉冲信号计数。

###4种工作方式

M1M0方式特点0 0013位定时器/计数器0 1116位定时器/计数器1 02自动装入时间常数的8位定时器/计数器1 13对T0分为两个8位独立计数器;对T1置方式3时停止工作

###对外部输入的计数信号的要求

当定时器/计数器工作在计数器模式时,计数脉冲来自外部输入引脚T0或T1。

当输入信号产生负跳变时,计数器的值增1。

每个机器周期的S5P2期间,都对外部输入引脚T0或T1进行采样。

###定时器/计数器的编程和应用

步骤

(1)确定工作方式,即给方式控制寄存器TMO D写入控制字。 (2)计算定时器/计数器初值,并将初值写入寄存器TL和TH。 (3)根据需要,对中断控制寄存器IE置初值,确定是否开放定时器中断。 (4)使运行控制寄存器TCON中的TRx置1,启动定时器/计时器。

练习

\2. AT89S51单片机内设有几个可编程的定时器/计数器?它们可以有哪几种工作模式?哪几种工作方式?如何选择和设定?各有什么特点? 在这里插入图片描述

定时器/计数器四种工作方式由TMOD中的M1 M0两位确定,如下表所示。

M1M0方式特点0 0013位定时器/计数器0 1116位定时器/计数器1 02自动装入时间常数的8位定时器/计数器1 13对T0分为两个8位独立计数器;对T1置方式3时停止工作

7.AT89S51单片机的晶振频率为6MHz,若要求定时值分别为0.1ms和10ms,定时器0工作在方式0、方式1和方式2,其定时器初值各应是多少?

****答:****(1) 0.1ms

方式0:

0.1×10-3=(213-X)×12/(6×106)

所以:X=8142=1111111001110B

T0低5位01110B=0EH

T0高8位:11111110B=FEH

方式1: 0.1×10-3= (216-X) ×12/(6×106)

所以:X=65486=FFCEH

方式2: 0.1×10-3= (28-X) ×12/(6×106)

所以:X=206=CEH

(2) 10ms

方式0: 10×10-3=(213-X) ×12/(6×106)

所以:X=3192=110001111000B

T0低5位11000B=18H

T0高8位:01100011B=63H

方式1: 10×10-3=(216-X) ×12/(6×106)

所以:X=60536=EC78H

方式2:在此情况下最长定时为512μs,无法一次实现定时10ms,可用0.1ms定时循环100次

11.定时器/计数器作为外部中断源使用时,需要如何初始化?以T0为例通过程序说明。

*答:* 初始化程序:

```

MOV TMOD, #06H

MOV TL0, #0FFH MOV TH0, #0FEH SETB TR0 SETB EA

SETB ET0

```

14.已知单片机时钟振荡频率为6MHz,利用T0定时器,在P1.1引脚上输出连续方波,波形如图9-23所示。

img

图9-23 题15波形图

****解:****首先计算定时常数:

100us 方式0 Tc=FE0EH; 方式1 Tc=FFCEH; 方式2 Tc=CEH 150us 方式0 Tc=FD15H; 方式1 Tc=FFB5H; 方式2 Tc=B5H

****方法一****:采用方式一,定时器中断。

流程图:

img

ORG 0000H LJMP START ORG 000BH LJMP TINT0 ORG 0100H START: MOV TMOD, #01H MOV TL0, #0CEH MOV TH0, #0FFH SETB TR0 SETB EA SETB ET0 SETB 20H.0 SETB P1.1 SJMP $ TINT0: JNB 20H.0, NEXT MOV TL0, #0B5H MOV TH0, #0FFH CLR P1.1 CPL 20H.0 SJMP LAST NEXT: MOV TL0, #0CEH MOV TH0, #0FFH SETB P1.1 CPL 20H.0 LAST:RETI

****方法二****: 采用方式2 定时器中断 加延时程序

流程图:

img

ORG 0000H LJMP START ORG 000BH LJMP TINT0 ORG 0100H START: MOV TMOD, #02H MOV TL0, #0CEH MOV TH0, #0CEH SETB TR0 SETB EA SETB ET0 SETB 20H.0 SETB P1.1 SJMP $ TINT0: JNB 20H.0, NEXT CLR TR0 CLR P1.1 LCALL DELAY CPL 20H.0 SETB TR0 SJMP LAST NEXT: SETB P1.1 CPL 20H.0 LAST: RETI DELAY: MOV R7, #8 DELAY1: DJNZ R7, DELAY1 RET


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3