智能定时电源开关设计office(2)(5)

2019-08-30 12:59

太原工业学院毕业设计

② GATE门控位

由GATE、软件控制位TR1/TR0和INT1/INT0共同决定定时/计数器的打开或关闭。

—GATE=0,只要用指令置TR1/TR0为1即可启动定时/计数器工作,而不管INT的 状态如何;

—GATE=1,只有INT1/INT0为高电平且用指令置TR1/TR0为1时,才能启动定时/计数器工作。

(2)定时/计数器控制寄存器(TCON)

TCON是一个特殊功能寄存器,TCON的字节地址为88H,其各位地址从88位开始分别为88H~8FH。高4位为定时/计数器的运行控制和溢出标志位,低4位与外部中断有关。其格式如下表列:

TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 TCON的高4位的功能描述如下: ① TF1/TF0 溢出标志位

当T1或T0产生溢出时,由硬件自动置位中断触发器TF1或TF0,并向CPU申请中断。如果用中断方式,则CPU在响应中断进入中断服务程序后,TF1或TF0被硬件自动清0。如果是用软件查询方式对TF1或TF0进行查询,则在定时/计数器回0后,应当用指令将TF1或TF0清0。

② TR1/TR0 运行控制位

用指令(“SETB TR1”)对TR1或TR0进行置位或清零,也可以启动或关闭T1或T0的运行。

3.2.4定时/计数器的MODE0[8]

MODE0为13位定时/计数器工作方式,其内部结构如图3.4所示。由图3.4可知,MODE0实际上是由TL0(5位)和TH0(8位)构成的13位脉冲计数器,并由TCON和TMOD控制和管理。

??设定MODE0的步骤:

(1)设定MODE0的步骤(四选1)

MOV TMOD,#00H TIMER0设定计时工作方式(内部输入)

16

太原工业学院毕业设计

MOV TMOD,#00H TIMER1设定计时工作方式(内部输入) MOV TMOD,#04H TIMER0设定计数工作方式(T0输入) MOV TMOD,#40H TIMER1设定计数工作方式(T1输入) (2)预置计数初值

MOV TLX,#(8192–COUNT) MOD/32; TLX的值为计数值除以32的余数 MOV THX,#(8192–COUNT)/32 ;THX为计数值除以32的商 (3)启动定时器 SETB TRX (4)检查TFX是否溢出

JBC TFX ;查询方式检查TFX是否溢出,溢出转移,否则等待

图3.4 方式0内部结构

3.2.5定时/计数器的MODE1[8]

方式1和方式0的工作原理基本相同,唯一不同是T0和T1工作在方式1时,计数长度M是2的16次方,内部结构参考图3.5。16位的初值直接拆成高低字节,分别送入TH和TL即可,对于实际应用比MODE0更有实际意义。

? 设定MODE1的步骤:

(1) 设定MODE1的步骤(四选1)

MOV TMOD,#01H TIMER0设定计时工作方式(内部输入) MOV TMOD,#10H TIMER1设定计时工作方式(内部输入) MOV TMOD,#05H TIMER0设定计数工作方式(T0输入) MOV TMOD,#50H TIMER1设定计数工作方式(T1输入)

17

太原工业学院毕业设计

(2) 启动定时器 SETB TRX (3) 预置计数初值

MOV TLX,#(65536–COUNT) MOD 256 MOV THX,#(65536–COUNT)/256 (4) 检查TFX是否溢出 JBC TFX

图3.5 方式1内部结构

3.2.6定时/计数器的MODE2[8]

方式1和方式0的工作原理基本相同,计数溢出后计数器清0。在循环计数或循环定时应用时就存在反复设置计数初值的问题。不仅会给程序设计带来不便,同时影响定时的精度。

针对以上问题,最好的解决办法就是使用方式2,它具有自动加载功能,即自动加载计数初值。在这种方式下,把16位计数器分为两部分,即TL作为计数器,以TH作初值预置寄存器,初始化时将计数初值分别装入TL和TH中。计数溢出后由预置寄存器TH以硬件方法自动给TL重新加载,由硬件重新赋值,所以也称为硬件自动重加载工作方式。其内部结构参考图3.6。

图3.6 方式2内部结构

18

太原工业学院毕业设计

? 设定MODE2的步骤

(1) 设定MODE2的步骤(四选1)

MOV TMOD,#02H TIMER0设定计时工作方式(内部输入) MOV TMOD,#20H TIMER1设定计时工作方式(内部输入) MOV TMOD,#06H TIMER0设定计数工作方式(T0输入) MOV TMOD,#60H TIMER1设定计数工作方式(T1输入) (2) 启动定时器 SETB TRX (3) 预置计数初值

MOV TLX,#(256–COUNT) MOV THX,#(256–COUNT) (4) 检查TFX是否溢出 JBC TFX

3.2.7定时/计数器的MODE3[8]

在工作方式3模式下,定时/计数器T0被拆成两个独立的8位计数器TL0和TH0。其结构如图3.7所示。其中TL0既可以作计数器使用,也可以作为定时器使用,定时/计数器T0的各控制位和引脚信号全归它使用。其功能和操作与方式0或方式1完全相同。TH0就没有那么多“资源”可利用了,只能作为简单的定时器使用,而且由于定时/计数器T0的控制位已被TL0占用,因此只能借用定时/计数器1的控制位TR1和TF1,也就是以计数溢出去置位TF1,TR1则负责控制TH0定时的启动和停止。

由于TL0既能作定时器也能作计数器使用,而TH0只能作定时器使用而不能作计数器使用,因此在方式3模式下,定时/计数器0可以构成二个定时器或者一个定时器和一个计数器。

如果定时/计数器0工作于工作方式3,那么定时/计数器1的工作方式就不可避免受到一定的限制,因为自己的一些控制位已被定时/计数器借用,只能工作在方式0、方式1或方式2下,如果设置T1工作在方式3,则T1停止工作,相当于其他方式时令TR1=0。

??设定MODE3的步骤

(1) 设定MODE3的步骤(三选1)

MOV TMOD,#03H TL0设定计时工作方式(内部输入) MOV TMOD,#03H TH0设定计时工作方式(内部输入)

19

太原工业学院毕业设计

MOV TMOD,#07H TL0设定计数工作方式(T0输入) (2) 启动定时器 SETB TRX (3) 预置计数初值

MOV TL0,#(256–COUNT) 或 MOV TH0,#(256–COUNT) (4) 检查TFX是否溢出 JBC TFX

图3.7 方式3内部结构

小结:通过定时器/计时器的结构、工作原理和应用的介绍,知道T0和T1的设置步骤几乎是相同的,分别要定义TMOD、TCON、TH0、TL0、TH1和TL1等寄存器后,定时计数器方能正确操作。在程序刚规划的阶段时,每个定时器的操作和控制模式都必须考虑清楚后才可以开始写程序,具体的操作分解为以下几步。

设置步骤1:确定是定时还是计数操作,定时TMOD中的C/T位为0,计数时C/T=1。 设置步骤2:确定定时/计数时是否受外部的硬件信号控制,若不受外部INT0或INT1引脚控制时,TMOD中的GATE位为0,否则需设成1。有关GATE的使用将在中断章节讨论。

设置步骤3:决定计数器的模式,模式0时最大计数值为8192,模式1时最大计数值为65536,两个计数器均没有自动载入的功能;模式2时最大计数值为256,且可自动载入计数值;模式3时有两个计数器,其最大计数值都是256,各种模式的选择应仔细考虑。

将前3个步骤的结果组合起来,成为一个给TMOD寄存器的设置值。

20


智能定时电源开关设计office(2)(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:五年级数学下册分数的意义和性质练习题精选102

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: