项目四 定时器与数码管动态显示
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
定时器
4.1.2 定时器的寄存器 标准的51单片机内部有T0和T1这两个定时器。 (1)定时值存储寄存器 下表的寄存器是存储定时器的计数值的。TH0/TL0 用于T0,TH1/TL1用于T1。
先学习如何看寄存器 TCON TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
1、先分清每一位属于哪个模块 2、查看每一位是可读、可写、可读写位的哪一种
定时器
4.1.3 定时器初始化 由于定时器/计数器的功能是由软件编程确定的,所以一般 在使用前都要对其进行初始化,初始化的步骤一般如下: (1)确定工作方式(即对TMOD赋值); (2)预置定时或计数的初值(可直接将初值写入TH0、TL0 或TH1、TL1); (3)根据需要开放定时器/计数器中断(直接对IE位赋值) (4)启动定时器/计数器(若已规定用软件启动,则可把 TR0或TR1置“1”;若已规定由外中断引脚电平启动,则需 给外引脚步加启动电平。当实现了启动要求后,定时器即按 规定的工作方式和初值开始计数或定时)。
定时器
例:设定定时器1为定时工作方式,要求软件启动定时器1按 方式2工作。定时器0为计数方式,要求由软件启动定时器0 ,按方式1工作。怎么来实现这个要求呢? ①控制定时器1工作在定时方式或计数方式是哪个位?C/T位 (D6)是定时或计数功能选择位,当C/T=0时定时/计数器 就为定时工作方式。 ②设定定时器1按方式2工作。要使定时/计数器1工作在方式2 ,M0(D4) M1(D5)的值必须是1 0。 ③设定定时器0为计数方式。当C/T=1时,就工作在计数器方 式。 ④由软件启动定时器0,当门控位GATE=0时,定时/计数器 的启停就由软件控制。
3、看每一位的具体功能以及在0或1时分别是什么状态
4、如何通过指令设置寄存器或者寄存器某一位的值 5、寄存器的物理地址
定时器
(2)定时器控制寄存器TCON (地址0x88、可位寻址)
TF0/TF1:T0/T1计数溢出标志位。可用于申请中断或供CPU查 询。在进入中断服务程序时会自动清零;但在查询方式时必须 软件清零。 =1 :计数溢出; =0 :计数未满。 TR0/TR1:T0/T1启停控制位。 =1 :启动计数; =0: 停止计数。 低四位IE1、IT1、IE0、IT0用于外部中断,下一章再做介绍。
定时器
(3)定时器模式寄存器TMOD(地址0x89、不可位寻址)
T1
GATEΒιβλιοθήκη BaiduC / T M1 M0 GATE C / T
T0
M1 M0
M1,M0:工作方式选择位 。 =00:13位定时器/计数器; =01:16位定时器/计数器(常用); =10:可自动重装的8位定时器/计数器(常用); =11:T0 分为2个8位定时器/计数器;仅适用于T0。 C/ T :定时方式/计数方式选择位。 = 1:选择计数器工作方式,对T0/T1引脚输入 外部事件的负脉冲计数; = 0 :选择定时器工作方式,对机器周期脉冲 计数定时。
项目四 定时器与数码管 动态显示
项目描述
定时器用来实现精确定时,是单片机系统的
一个重点,应用十分广泛,大家一定要完全理
解并熟练掌握定时器的应用。本项目利用定时
器设计一个实时时钟,利用六位数码管分别显
示时钟的时、分、秒等信息。
定时器
4.1.1 定时器的初步认识 学习定时器之前,我们先来了解单片机时序中的 几个概念:时钟周期、机器周期和指令周期。 时钟周期:时钟周期T是时序中最小的时间单位, 具体计算的方法就是1/时钟源频率,我们KST-51单
定时器
初始化程序如下: TMOD=0x10; //定时器1方式0 TH1=0XFF; TL1=0X06; //装入时间常数 TR1=1; //启动定时器
定时器
4.1.4 定时器中断 1、中断的基本概念 中断的定义:所谓“中断”,是指CPU执行正常程序时, 系统中出现特殊请求,CPU暂时中止当前的程序,转去处理 更紧急的事件(执行中断服务程序),处理完毕(中断服务 完成)后,CPU自动返回原程序的过程。 中断后转向执行的程序叫中断服务程序或中断处理程序。 原程序被断开的位置(地址)叫作断点。 发出中断信号的设备称为中断源。中断源要求中断服务所 发出的标志信号称为中断请示或中断申请。 中断源向CPU发出中断申请,CPU经过判断认为满足条件 ,则对中断源作出答复,这叫中断响应。中断响应后就去处 理中断源的有关请求,即转去执行中断服务程序。
定时器/计数器的4种工作方式
M1 M 0 0 0 工作方式 工作方式0 功能描述 13位计数器
0 1
1 0 1 1
工作方式1
工作方式2 工作方式3
16位计数器
自动再装入8位计数器 定时器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位计数满时直接向TH0进位,并当全 部13位计数满溢出时,溢出标志位TF0置“1”。 2.工作方式1 ( M1M0=01 ,16位定时器/计数器) 由TH0和TL0构成16位加1计数器,其他特性与工作方式0相同 。
定时器
例:选择T1方式0用于定时,在P1.1输出周期为1ms方波,晶 振fosc=6MHz。 解:根据题意,只要使P1.1每隔500us取反一次即可得到1ms 的方波,因而T1的定时时间为500us,因定时时间不长,取方 式1即可。则M1 M0=1;因是定时器方式,所以C/T=0;在此 用软件启动T1,所以GATE=0。T0不用,方式字可任意设置, 只要不使其进入方式3即可,一般取0,故TMOD=10H。 计算500us定时T1初始值: 机器周期:T=12/fosc=12/(6×106)Hz=2μs 设初值为X,则: (216-X)×2×10-6s=500×10-6s X=216-250=65286=FF06H=1111 1111 0000 0110B 因此TH1=FFH,TL1=06H。
5、定时器初值的计算
定时时间的计算公式为: T=(MTC)×T0 (或TC=MT/T0 ) 其中:T——定时器的定时时间,即设计任务要求的定时时间; T0—— 计数器计数脉冲的周期,即单片机系统主频周期 的12倍; M——计数器的模值; TC——定时器需要预置的初值。 若设初值TC=0 ,则定时器定时时间为最大。若设单片机 系统主频为12MHz,则各种工作方式定时器的最大定时时间为???
定时器
下面介绍一下确定时时/计数器初值的具体方法。 在不同工作方式下计数器位数不同,最大计数值也不同。 现假设最大计数值为M,那么各方式下的最大值M值如下: 方式0:M=213=8192 方式1:M=216=65536 方式2:M=28=256 方式3:定时器0分成两个8位计数器,所以两个M均为256。 因为定时器/计数器是作“加1”计数,并在计数满溢出时 产生中断,因此初值X可以这样计算: X=M-计数值
定时器
3.工作方式2(M1M0=10,自动重装计数初值的8位
定时器/计数器) 16位定时器/计数器被拆成两个8位寄存器TH0和 TL0,CPU在对它们初始化时必须装入相同的定时器/ 计数器初值。以TL0作计数器,而TH0作为预置寄存
器。当计数满溢出时,TF0置“1”,同时TH0将计数
初值以硬件方法自动装入TL0。这种工作方式很适合 于那些重复计数的应用场合(如串行数据通信的波
特率发生器)。
定时器
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,使定时/计数器0 工作在方式1,M0(D0) M1(D1)的值必须是0 1。 从上面的分析我们可以知道,只要将TMOD的各位 ,按规定的要求设置好后,定时器/计数器就会按我 们预定的要求工作。我们分析的这个例子最后各位的 情况如下: D7 D6 D5 D4 D3 D2 D1 D0 0 0 1 0 0 1 0 1 二进制数00100101b=十六进制数25H。所以执行 TMOD = 0x25(或者用汇编语言MOV TMOD,#25H)这 条指令就可以实现上述要求。
,即低电平触发和下降沿触发。外部中断请求的这两种信号
方式,可通过设置寄存器TCON中的IT0和IT1位状态的值来 设定。定时器控制寄存器TCON各位定义如下表所示。
片机开发板上用的晶振是11.0592M,那么对于我们
这个单片机系统来说,时钟周期=1/11059200秒。
定时器
机器周期:单片机完成一个操作的最短时间。机 器周期主要针对汇编语言而言,在汇编语言下程序 的每一条语句执行所使用的时间都是机器周期的整 数倍,而且语句占用的时间是可以计算出来的。51 单片机系列,在其标准架构下一个机器周期是12个
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
定时器
GATE:门控位,定时器/计数器的启/停可由软件与硬件两者控制
=0:软件控制,只由TCON中的启/停控制位TR0/TR1控制 定时器/计数器的启/停。
=1:硬件控制,由外部中断请求信号 INT 0/ INT1 和TCON中 的启/停控制位TR0/TR1组合状态控制定时器/计数器 的启/停。
定时器
定时器
定时器用来进行定时。定时器内部有一个寄存器,开始计 数后,这个寄存器的值每经过一个机器周期就会自动加1, 因此,我们可以把机器周期理解为定时器的计数周期。定时 器每过一个机器周期的时间,也就是12/11059200秒,数字自 动加1。还有一个特别注意的地方,就是钟表是加到60后, 秒就自动变成0了,这种情况在单片机或计算机里我们称之 为溢出。那定时器加到多少才会溢出呢?后面会讲到定时器 有多种工作模式,分别使用不同的位宽(指使用多少个二进 制位),假如是16位的定时器,也就是2个字节,最大值就 是65535,那么加到65535后,再加1就算溢出,对于51单片机 来说,溢出后,这个值会直接变成0。从某一个初始值开始 ,经过确定的时间后溢出,这个过程就是定时的含义。
定时器
2. 引入中断的主要优点 (1)提高CPU工作效率 (2)实现实时处理功能 (3)实现分时操作
定时器
3. STC89C52中断源 STC89C52单片机共有6个中断源。它们分别是:2个外部中
断,即 4个片内中断,即定时器T0的溢出中断、定时器T1的
溢出中断、定时器T2的溢出中断和串行口中断;这6个中断 源,可以根据需要随时向CPU发出中断申请。 (1)外部中断源 外部中断是由外部信号引起的,请求有两种信号触发方式
时钟周期,也就是12/11059200秒。
定时器
指令周期:执行一条指令(这里指汇编语言指令)所 需要的时间称为指令周期,指令周期是时序中的最 大单位。由于机器执行不同指令所需时间不同,因 此不同指令所包含的机器周期数也不尽相同。51系 列单片机的指令可能包括1~4个不等的机器周期。 通常,包含一个机器周期的指令称为单周期指令, 包含两个机器周期的指令称为双周期指令,等等。 指令所包含的机器周期数决定了指令的运算速度, 机器周期数越少的指令,其执行速度越快。