足球比分直播

定时器84516.doc

返回
定时器84516.doc_第1页
第1页 / 共6页
定时器84516.doc_第2页
第2页 / 共6页
定时器84516.doc_第3页
第3页 / 共6页
定时器84516.doc_第4页
第4页 / 共6页
定时器84516.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述:
定时器、计数器 定时器/计数器简称定时器,其作用主要包括产生各种时标间隔、记录外部事件的数量等,是微机中最常用、最基本的部件之一。803l 单片机有 2 个 16 位的定时器/计数器定时器0T0和定时器 1T1。 T0 由 2 个定时寄存器 TH0 和 TL0 构成,T1 则由 TH1 和 TL1 构成,它们都分别映射在特殊功能寄存器中,从而可以通过对特殊功能寄存器中这些寄存器的读写来实现对这两个定时器的操作。作定时器时,每一个机器周期定时寄存器自动加 l,所以定时器也可看作是计量机器周期的计数器。由于每个机器周期为 12 个时钟振荡周期,所以定时的分辨率是时钟振荡频率的 1/12。作计数器时,只要在单片机外部引脚 T0或 T1有从 1 到 0 电平的负跳变,计数器就自动加 1。计数的最高频率一般为振荡频率的 l/24。 工作方式 T0 或 T1 无论用作定时器或计数器都有 4 种工作方式方式 0、方式 1、方式 2 和方式 3。除方式 3 外,T0 和 T1 有完全相同的工作状态。下面以 T1 为例,分述各种工作方式的特点和用法。 1、工作方式 0 13 位方式由 TL1 的低 5 位和 TH1 的 8 位构成 13 位计数器(TL1 的高 3 位无效) 。工作方式 0 的结构见下图 图中,C/T 为定时/计数选择 C/T=0,T1 为定时器,定时信号为振荡周期 12 分频后的脉冲;C/T=l,T1 为计数器,计数信号来自引脚 T1 的外部信号。 定时器 T1 能否启动工作,还受到了 R1、GATE 和引脚信号 INT1 的控制。由图中的逻辑电路可知,当 GATE=0 时,只要 TR1=1 就可打开控制门,使定时器工作;当 GATE=1时,只有 TR1=1 且 INT1=1,才可打开控制门。GATE,TR1,C/T 的状态选择由定时器的控制寄存器 TMOD,TCON 中相应位状态确定,INT1 则是外部引脚上的信号。 在一般的应用中,通常使 GATE=0,从而由 TRl 的状态控制 Tl 的开闭TRl=1,打开T1;TRl=0,关闭 T1。在特殊的应用场合,例如利用定时器测量接于 INT1 引脚上的外部脉冲高电平的宽度时,可使 GATE=1,TRl=1。当外部脉冲出现上升沿,亦即 INT1 由 0变 1 电平时,启动 T1 定时,测量开始;一旦外部脉冲出现下降沿,亦即 INT1 由 l 变 O 时就关闭了 T1。 定时器启动后,定时或计数脉冲加到 TLl 的低 5 位,从预先设置的初值时间常数开始不断增 1。TL1 计满后,向 THl 进位。当 TL1 和 THl 都计满之后,置位 T1 的定时器回零标志 TFl,以此表明定时时间或计数次数已到,以供查询或在打开中断的条件下,可向 CPU请求中断。如需进一步定时/计数,需用指令重置时间常数。 2、工作方式 1 16 位方式。与工作方式 0 基本相同,区别仅在于工作方式 1 的计数器 TL1 和 TH1 组成 16位计数器,从而比工作方式 0 有更宽的定时/计数范围。工作方式 1 的结构见下图。 3、工作方式 2 8 位自动装入时间常数方式。由 TLl 构成 8 位计数器,THl 仅用来存放时间常数。启动 T1前,TLl 和 THl 装入相同的时间常数,当 TL1 计满后,除定时器回零标志 TFl 置位,具有向 CPU 请求中断的条件外,THl 中的时间常数还会自动地装入 TLl,并重新开始定时或计数。所以,工作方式 2 是一种自动装入时间常数的 8 位计数器方式。由于这种方式不需要指令重装时间常数,因而操作方便,在允许的条件下,应尽量使用这种工作方式。当然,这种方式的定时/计数范围要小于方式 0 和方式 1。工作方式 2 的结构见下图. 4、工作方式 3 2 个 8 位方式。工作方式 3 只适用于定时器 0。如果使定时器 1 为工作方式 3,则定时器 1将处于关闭状态。 当 T0 为工作方式 3 时,THo 和 TL0 分成 2 个独立的 8 位计数器。其中,TL0 既可用作定时器,又可用作计数器,并使用原 T0 的所有控制位及其定时器回零标志和中断源。TH0只能用作定时器,并使用 T1 的控制位 TRl、回零标志 TFl 和中断源,见下图。通常情况下,T0 不运行于工作方式 3,只有在 T1 处于工作方式 2,并不要求中断的条件下才可能使用。这时,T1 往往用作串行口波特率发生器见 1.4 ,TH0 用作定时器,TL0 作为定时器或计数器。所以,方式 3 是为了使单片机有 1 个独立的定时器/计数器、1 个定时器以及 1 个串行口波特率发生器的应用场合而特地提供的。这时,可把定时器 l 用于工作方式 2,把定时器 0 用于工作方式 3。 下才可能使用。这时,T1 往往用作串行口波特率发生器,TH0 用作定时器,TL0 作为定时器或计数器。所以,方式 3 是为了使单片机有 1 个独立的定时器/计数器、1 个定时器以及 1 个串行口波特率发生器的应用场合而特地提供的。这时,可把定时器 l 用于工作方式2,把定时器 0 用于工作方式 3。 控制寄存器 定时器/计数器 T0 和 T1 有 2 个控制寄存器-TMOD 和 TCON,它们分别用来设置各个定时器/计数器的工作方式,选择定时或计数功能,控制启动运行,以及作为运行状态的标志等。其中,TCON 寄存器中另有 4 位用于中断系统。 1、定时器方式控制寄存器 TMOD TMOD 在特殊功能寄存器中,字节地址为 89H,无位地址。TMOD 的格式如下图年示。 由图可见,TMOD 的高 4 位用于 T1,低 4 使用于 T0,4 种符号的含义如下 GATE门控制位。其作用见图 1.6。GATE 和软件控制位 TR、外部引脚信号 INT 的状态,共同控制定时器/计数器的打开或关闭。 C/T定时器/计数器选择位。 C/T=1,为计数器方式;C/T=0,为定时器方式。 M1M0工作方式选择位,定时器/计数器的 4 种工作方式由 M1M0 设定。 M1M0=00工作方式 013 位方式。 M1M0=01工作方式 116 位方式。 M1M0=10工作方式 28 位自动装入时间常数方式。 MlM011工作方式 32 个 8 位方式-- 仅对 T0。 2.定时器控制寄存器--TCON TCON 在特殊功能寄存器中,字节地址为 88H,位地址由低位到高位为 88H 一 8FH,由于有位地址,十分便于进行位操作。 TCON 的格式如下图所示。其中, TFl,TRl,TF0 和 TR0 位用于定时器/计数器;IEl,ITl,IEo 和 IT0 位用于中断系统。 TFl,TRl 用于定时器 T1;TF0,TR0 用于定时器 T0。两组符号有相同的含义。 TF定时器/计数器中断请求标志位。当定时器计满回零时,TF =1,并可申请中断;当CPU 响应中断并进入中断服务程序后,TF 自动清零。如对 TF 查询,定时器回零后,要用指令将 TF 清零。 TR定时器/计数器开闭控制位。 IEl,ITl 用于外部中断 11NTl;IE0,IT0 用于外部中断 01NT0。两组符号的含义相同。 IT下跳沿/低电平引起外部中断请求的选择位。IT1,由下跳沿引起;IT=0,由低电平引起。 IE外部中断的中断申请标志。IE=0,表明无外部中断请求;IE=1,表明有外部中断请求。当有外部中断请求时,IE 自动为 1,单片机 CPU 响应此中断后,IE 自动清零。 定时/计数初值的求取方法 8031 单片机的定时器/计数器采用增量式计数。也就是说,当运行于定时器方式时,每隔一个机器周期定时器自动加 1;当运行于计数器方式时,每当引脚出现下跳沿,计数器自动加 1。无论是作定时用还是计数用,当 T0 或 Tl 加满回零后,定时器回零标志置 1。而当允许中断时,TF 可以申请中断进而在中断服务程序中作相应的操作;TF 也可用程序判断定时到或计数满的标志位。 那么,怎样确定定时或计数初值又称为时间常数 ,以便达到要求的定时时间或计数值呢 下面作简要介绍,并举两个例子加以说明。 设 T0或 T1运行于计数器方式,要求计数 X 个外部脉冲后 T0或 T1回零,则计数初值 C的求取方法如下 因为回零的含义是指加满到计数器的模值,即 x 十 C=模 所以 C=模一 x=模十一 x=x 求补 由此可见,计数初值的大小等于需要计数的个数 x 求补运算后的结果。 又若 T0(或 T1)运行于定时器方式,需定时 tvs,则计数脉冲数为。其中,MC 为机器周期(单片为 us)同理可知,定时初值为。 值的指出的是,对于定时器/计数器的 4 种不同工作方式,T0 或 T1 的位数不同,模值也因而不同,求补运算要按相应位数的长度来求。 例 1T0 运行于计数器状态,工作于方式 1(16 位方式) ,要求外部引脚出现 3 个脉冲后,TH0,TL0 全回零(以便申请中断) 。求计数初值 C。 解C(0003H )求补FFFDH 例 2T0 运行于定时器状态,时钟振荡周期为 12MHZ,要求定时 100us。求不同工作方式时的定时初值。 解因为机器周期 MC12/12MHZ1us 所以要计数的贾器周期个数为 64H。 应注意定时器在工作方式 0 时的初值装入方法。由于方式 0 是 13 位定时/计数方式,对于T0 而言,高 8 位初值装入 TH0,低 5 位初值装入 TL0 的低 5 位(TL0 的高 3 位无效) 。所以对于上例,要装入 1F9CH 初值时,可安排成 在具体装入初值时,必须把 11111100B 装入 TH0,而把***11100B 装入 TL0。用指令表示即 MOV TH0,0FCH ;FCHTH0 MOV TL0,1CH ;1CHTL0 通过上面求定时/计数初值的分析可见,不同工作方式的最大计数值或定时机器周期数分 别为; 方式 0--213 方式 l--216 方式 2,3--28 例如,当晶振外部振荡时钟 fosc=6MHz 时,方式 1 的最长定时时间tmax21612÷6MHZ131.072ms。这在操作上,只需把 TH 和 TL 都预置成 00H 初值即可。参考链接http//www.picavr.com/news/2008-03/4543.htm定时器 0 中断是 1 号,定时器 1 中断是 3 号,定时器 2 中断是 5 号Timer0 interrupt 1 1 是中断号
展开阅读全文
收藏
下载资源

加入会员免费下载





足球比分直播