项目四定时器与数码管动态显示讲述

上传人:最**** 文档编号:116866448 上传时间:2019-11-17 格式:PPT 页数:57 大小:1.23MB
返回 下载 相关 举报
项目四定时器与数码管动态显示讲述_第1页
第1页 / 共57页
项目四定时器与数码管动态显示讲述_第2页
第2页 / 共57页
项目四定时器与数码管动态显示讲述_第3页
第3页 / 共57页
项目四定时器与数码管动态显示讲述_第4页
第4页 / 共57页
项目四定时器与数码管动态显示讲述_第5页
第5页 / 共57页
点击查看更多>>
资源描述

《项目四定时器与数码管动态显示讲述》由会员分享,可在线阅读,更多相关《项目四定时器与数码管动态显示讲述(57页珍藏版)》请在金锄头文库上搜索。

1、项目四 定时器与数码管 动态显示 项目描述 定时器用来实现精确定时,是单片机系统的 一个重点,应用十分广泛,大家一定要完全理 解并熟练掌握定时器的应用。本项目利用定时 器设计一个实时时钟,利用六位数码管分别显 示时钟的时、分、秒等信息。 定时器 4.1.1 定时器的初步认识 学习定时器之前,我们先来了解单片机时序中的 几个概念:时钟周期、机器周期和指令周期。 时钟周期:时钟周期T是时序中最小的时间单位, 具体计算的方法就是1/时钟源频率,我们KST-51单 片机开发板上用的晶振是11.0592M,那么对于我们 这个单片机系统来说,时钟周期=1/11059200秒。 定时器 机器周期:单片机完成

2、一个操作的最短时间。机 器周期主要针对汇编语言而言,在汇编语言下程序 的每一条语句执行所使用的时间都是机器周期的整 数倍,而且语句占用的时间是可以计算出来的。51 单片机系列,在其标准架构下一个机器周期是12个 时钟周期,也就是12/11059200秒。 定时器 指令周期:执行一条指令(这里指汇编语言指令)所 需要的时间称为指令周期,指令周期是时序中的最 大单位。由于机器执行不同指令所需时间不同,因 此不同指令所包含的机器周期数也不尽相同。51系 列单片机的指令可能包括14个不等的机器周期。 通常,包含一个机器周期的指令称为单周期指令, 包含两个机器周期的指令称为双周期指令,等等。 指令所包含

3、的机器周期数决定了指令的运算速度, 机器周期数越少的指令,其执行速度越快。 定时器 定时器用来进行定时。定时器内部有一个寄存器,开始计 数后,这个寄存器的值每经过一个机器周期就会自动加1, 因此,我们可以把机器周期理解为定时器的计数周期。定时 器每过一个机器周期的时间,也就是12/11059200秒,数字自 动加1。还有一个特别注意的地方,就是钟表是加到60后, 秒就自动变成0了,这种情况在单片机或计算机里我们称之 为溢出。那定时器加到多少才会溢出呢?后面会讲到定时器 有多种工作模式,分别使用不同的位宽(指使用多少个二进 制位),假如是16位的定时器,也就是2个字节,最大值就 是65535,那

4、么加到65535后,再加1就算溢出,对于51单片机 来说,溢出后,这个值会直接变成0。从某一个初始值开始 ,经过确定的时间后溢出,这个过程就是定时的含义。 定时器 4.1.2 定时器的寄存器 标准的51单片机内部有T0和T1这两个定时器。 (1)定时值存储寄存器 下表的寄存器是存储定时器的计数值的。TH0/TL0 用于T0,TH1/TL1用于T1。 先学习如何看寄存器 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0TCON 1、先分清每一位属于哪个模块 2、查看每一位是可读、可写、可读写位的哪一种 3、看每一位的具体功能以及在0或1时分别是什么状态 4、如何通过指令设置寄存器或

5、者寄存器某一位的值 5、寄存器的物理地址 定时器 (2)定时器控制寄存器TCON (地址0x88、可位寻址) TF0/TF1:T0/T1计数溢出标志位。可用于申请中断或供CPU查 询。在进入中断服务程序时会自动清零;但在查询方式时必须 软件清零。 =1 :计数溢出; =0 :计数未满。 TR0/TR1:T0/T1启停控制位。 =1 :启动计数; =0: 停止计数。 低四位IE1、IT1、IE0、IT0用于外部中断,下一章再做介绍。 M1,M0:工作方式选择位 。 =00:13位定时器/计数器; =01:16位定时器/计数器(常用); =10:可自动重装的8位定时器/计数器(常用); =11:T

6、0 分为2个8位定时器/计数器;仅适用于T0。 C/ :定时方式/计数方式选择位。 = 1:选择计数器工作方式,对T0/T1引脚输入 外部事件的负脉冲计数; = 0 :选择定时器工作方式,对机器周期脉冲 计数定时。 GATE C / T M1 M0 GATE C / T M1 M0 T1T0 定时器 (3)定时器模式寄存器TMOD(地址0x89、不可位寻址) GATE:门控位,定时器/计数器的启/停可由软件与硬件两者控制 =0:软件控制,只由TCON中的启/停控制位TR0/TR1控制 定时器/计数器的启/停。 =1:硬件控制,由外部中断请求信号 / 和TCON中 的启/停控制位TR0/TR1组

7、合状态控制定时器/计数器 的启/停。 定时器 定时器 定时器计数器的4种工作方式 M1 M 0 工作方式功能描述 0 0工作方式 0 13位计数器 0 1工作方式 1 16位计数器 1 0工作方式 2 自动再装入8位计数器 1 1工作方式 3 定时器0:分成两个8位计数器 , 定时器1:停止计数 MCS-51单片机的定时器/计数器共有4种工作模式,现以 T0为例加以介绍,T1与T0的工作原理相同,但在方式3下, T1停止计数。 1工作方式0( M1M0=00 ,13位定时器/计数器) 由TH0的全部8位和TL0的低5位(TL0的高3位未用)构成13 位加1计数器,当TL0低5位计数满时直接向T

8、H0进位,并当全 部13位计数满溢出时,溢出标志位TF0置“1”。 2工作方式1 ( M1M0=01 ,16位定时器/计数器) 由TH0和TL0构成16位加1计数器,其他特性与工作方式0相同 。 定时器 3工作方式2(M1M0=10,自动重装计数初值的8位 定时器/计数器) 16位定时器/计数器被拆成两个8位寄存器TH0和 TL0,CPU在对它们初始化时必须装入相同的定时器/ 计数器初值。以TL0作计数器,而TH0作为预置寄存 器。当计数满溢出时,TF0置“1”,同时TH0将计数 初值以硬件方法自动装入TL0。这种工作方式很适合 于那些重复计数的应用场合(如串行数据通信的波 特率发生器)。 定

9、时器 4、工作方式3(M1M0=11,2个8位定时器/计数器,仅适用于 T0) TL0:8位定时器/计数器,使用T0原有控制资源TR0和 TF0,其功能和操作与方式0或方式1完全相同。 TH0:只能作为8位定时器,借用T1的控制位TR1和TF1, 只能对片内机器周期脉冲计数。 在方式3模式下,定时器/计数器0可以构成两个定时器或 者一个定时器和一个计数器。 一般,只有在T1以方式2运行(当波特率发生器用)时, 才让T0工作于方式3下。 定时器 定时器 例:设定定时器1为定时工作方式,要求软件启动定时器1按 方式2工作。定时器0为计数方式,要求由软件启动定时器0 ,按方式1工作。怎么来实现这个要

10、求呢? 控制定时器1工作在定时方式或计数方式是哪个位?C/T位 (D6)是定时或计数功能选择位,当C/T=0时定时/计数器 就为定时工作方式。 设定定时器1按方式2工作。要使定时/计数器1工作在方式2 ,M0(D4) M1(D5)的值必须是1 0。 设定定时器0为计数方式。当C/T=1时,就工作在计数器方 式。 由软件启动定时器0,当门控位GATE=0时,定时/计数器 的启停就由软件控制。 定时器 设定定时/计数器工作在方式1,使定时/计数器0 工作在方式1,M0(D0) M1(D1)的值必须是0 1。 从上面的分析我们可以知道,只要将TMOD的各位 ,按规定的要求设置好后,定时器/计数器就会

11、按我 们预定的要求工作。我们分析的这个例子最后各位的 情况如下: D7 D6 D5 D4 D3 D2 D1 D0 0 0 1 0 0 1 0 1 二进制数00100101b=十六进制数25H。所以执行 TMOD = 0x25(或者用汇编语言MOV TMOD,#25H)这 条指令就可以实现上述要求。 定时器 4.1.3 定时器初始化 由于定时器/计数器的功能是由软件编程确定的,所以一般 在使用前都要对其进行初始化,初始化的步骤一般如下: (1)确定工作方式(即对TMOD赋值); (2)预置定时或计数的初值(可直接将初值写入TH0、TL0 或TH1、TL1); (3)根据需要开放定时器/计数器中断

12、(直接对IE位赋值) (4)启动定时器/计数器(若已规定用软件启动,则可把 TR0或TR1置“1”;若已规定由外中断引脚电平启动,则需 给外引脚步加启动电平。当实现了启动要求后,定时器即按 规定的工作方式和初值开始计数或定时)。 定时器 下面介绍一下确定时时/计数器初值的具体方法。 在不同工作方式下计数器位数不同,最大计数值也不同。 现假设最大计数值为M,那么各方式下的最大值M值如下: 方式0:M=213=8192 方式1:M=216=65536 方式2:M=28=256 方式3:定时器0分成两个8位计数器,所以两个M均为256。 因为定时器/计数器是作“加1”计数,并在计数满溢出时 产生中断

13、,因此初值X可以这样计算: X=M-计数值 4、计数器初值的计算 方法:用最大计数量减去需要的计数次数。即: TC=MC 其中:TC计数器需要预置的初值; M计数器的模值(最大计数值); 方式0时,M=213;方式1时,M=216;方式2, 3时,M=28; C计数器计满回0所需的计数值,即设计任务要 求的计数值。 例如:流水线上一个包装是12盒,要求每到12盒就产生一个 动作,用单片机的工作方式0来控制,则应当预置的初值为: TC = M C =8192 12=8180 5、定时器初值的计算 定时时间的计算公式为: T=(MTC)T0 (或TC=MT/T0 ) 其中:T定时器的定时时间,即设

14、计任务要求的定时时间; T0计数器计数脉冲的周期,即单片机系统主频周期 的12倍; M计数器的模值; TC定时器需要预置的初值。 若设初值TC=0,则定时器定时时间为最大。若设单片机 系统主频为12MHz,则各种工作方式定时器的最大定时时间为 ? 定时器 例:选择T1方式0用于定时,在P1.1输出周期为1ms方波,晶 振fosc=6MHz。 解:根据题意,只要使P1.1每隔500us取反一次即可得到1ms 的方波,因而T1的定时时间为500us,因定时时间不长,取方 式1即可。则M1 M0=1;因是定时器方式,所以C/T=0;在此 用软件启动T1,所以GATE=0。T0不用,方式字可任意设置,

15、 只要不使其进入方式3即可,一般取0,故TMOD=10H。 计算500us定时T1初始值: 机器周期:T=12/fosc=12/(6106)Hz=2s 设初值为X,则: (216X)210-6s=50010-6s X=216-250=65286=FF06H=1111 1111 0000 0110B 因此TH1=FFH,TL1=06H。 定时器 初始化程序如下: TMOD=0x10; /定时器1方式0 TH1=0XFF; TL1=0X06; /装入时间常数 TR1=1; /启动定时器 定时器 4.1.4 定时器中断 1、中断的基本概念 中断的定义:所谓“中断”,是指CPU执行正常程序时, 系统中

16、出现特殊请求,CPU暂时中止当前的程序,转去处理 更紧急的事件(执行中断服务程序),处理完毕(中断服务 完成)后,CPU自动返回原程序的过程。 中断后转向执行的程序叫中断服务程序或中断处理程序。 原程序被断开的位置(地址)叫作断点。 发出中断信号的设备称为中断源。中断源要求中断服务所 发出的标志信号称为中断请示或中断申请。 中断源向CPU发出中断申请,CPU经过判断认为满足条件 ,则对中断源作出答复,这叫中断响应。中断响应后就去处 理中断源的有关请求,即转去执行中断服务程序。 定时器 2. 引入中断的主要优点 (1)提高CPU工作效率 (2)实现实时处理功能 (3)实现分时操作 定时器 3. STC89C52中断源 STC89C52单片机共有6个中断源。它们分别是:2个外部中 断,即 4个片内中断,即定时器T0的溢出中断、定时器T1的 溢出中断、定时器T2的溢出中断和串行口中断

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号