足球比分直播

定时器84545.doc

返回
定时器84545.doc_第1页
第1页 / 共4页
定时器84545.doc_第2页
第2页 / 共4页
定时器84545.doc_第3页
第3页 / 共4页
定时器84545.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述:
MCS-51 定时器 MCS-51 内部有两个可编程的 16 位定时器 T0 和 T1。通过编程,可以设定为定时器和外部计数方式。T1 还可以作 MCS-51 串行口的波特率发生器。定时器T0 由特殊功能寄存器 TL0 和 TH0 构成,定时器 T1 由特殊功能寄存器 TL1 和 TH1构成。特殊功能寄存器 TMOD 控制定时器的工作方式,TCON 控制其运行,TCON还包含了定时器 T0 和 T1 的溢出标志。定时器的中断由中断允许寄存器 IE、中断优先级寄存器 IP 中的相应位进行控制。定时器 T0 的中断入口地址为000BH,T1 的中断入口地址为 001BH。 特殊功能寄存器 TMOD 为定时器的方式控制寄存器,其格式如下D7 D0其中高 4 位用来对 T1 进行编程,低 4 位用来对 T0 进行编程。 M1、M0 用来选择工作方式。其含义如表 6-5 所示。 表 6-5 工作方式选择M1 M0 功能说明0 0 方式 0,13 位定时器计数器0 1 方式 1,16 位定时器计数器1 0 方式 2,常数自动装入的 8 位定时器计数器1 1 方式 3,仅用于 T0,分为两个 8 位定时器计数器C/-T 用来选择定时器和外部计数方式。 当 C/-T0 时为定时器方式,它以时钟信号的 12 分频为计数器的计数信号。当 C/-T1 时为外部计数方式,以外部引线(T0 为 P3.4,T1 为 P3.5)的输入脉冲作为计数信号。当输入信号由高到低变化时,计数器加 1。最高输入信号为时钟信号的 24 分频。 GATE 为门控位。 当 GATE0 时,计数不受外部影响。当 GATE1 时,计数受外部引线输入电平的控制(-INT0 控制 T0 运行,-INT1 控制 T1 运行)。 特殊功能寄存器 TCON 为定时器控制寄存器,其格式如下GATE C/-T M1 M0 GATE C/-T M1 M0D7 D0TF1 TR1 TF0 TR0 此控制寄存器中仅高 4 位与定时器有关。 TR0、TR1 为定时器 T0、T1 的运行控制位。当 GATE(TMOD.3)为 0 时,由TR0 控制 T0 的允许计数与否,当 TR0 为 1 时允许 T0 计数,TR0 为 0 时禁止 T0计数。当 GATE(TMOD.3)为 1 时,TR0 为 1,INT0 为 1 允许计数,其中任一个为 0 禁止计数。TR1 用来控制 T1,与 TR0 相似。TR0、TR1 的 0 或 1 在编程时设置。 TF0、TF1 为 T0 与 T1 的溢出标志位。当 T0 允许计数后,T0 从初值开始加 1,最高位溢出时将 TF0 置“1“。如置定时器为允许中断方式,则向 CPU 申请中断, CPU 响应中断时清除 TF0。如不用中断可采用查询方法,通过软件复位TF0。TF1 为 T1 的溢出标志位,与 TF0 相似。 中断允许寄存器 IE 中的 ET0 及 ET1 两位分别为 T0 及 T1 的溢出中断允许位,为 1 时分别允许 T0、T1 中断。为 0 时则禁止中断。 中断优先级寄存器 IP 中的 PT0 及 PT1 两位为 T0 及 T1 的中断优先级控制位,当其为 1 时定义为高优先级中断,为 0 时定义为低优先级中断。 定时器 T0 具有 0、1、2、3 四种工作方式,定时器 T1 只有 0、1、2 三种工作方式。 方式 0 为 13 位的定时器/计数器方式。低位 TLx 为 5 位,高位 THx 为 8 位(x 0,1)。当低位加 1 计数溢出时向高位进位,高位计数溢出则置“1“TFx。 方式 1 与方式 0 相似,但采用了 16 位计数器,即高位,低位各 8 位。 方式 2 为自动恢复初值方式的 8 位定时器/计数器。此时 TLx 为 8 位计数器, THx 为常数缓冲器,当 TLx 溢出时,置“1“ TFx,并将 THx 中的计数初值送入 TLx,使 TLx 再次重新计数。 方式 3 仅适用于 T0,此时将 T0 分为两个独立的 8 位计数器 TL0 及TH0。TL0 使用控制位 C/-T、GATE、TR0、TF0 及控制端-INT0。TH0 为一个固定的 8 位定时器,使用 T1 的 TR1 及 TF1。通常只有在 T1 作为串行接口的波特率发生器时,T0 才定义为方式 3。此时 T1 仍可用定时器或计数器方式,并可定义为方式 0,方式 1 及方式 2。 定时器的编程包括; (l)置工作方式。 (2)置计数初值。 (3)中断设置。 (4)启动定时器。 由于 MCS-51 的定时器采用加 1 计数,因此,计数初值应根据计数器长度及计数值来决定。对于同样的计数值,在采用 13 位计数器、16 位计数器及 8 位计数器时,其计数初值各不相同。此外,方式 0、1、3 均不能自动恢复初值,如果要求重复计数必须在每次计数溢出后重新装入计数初值。 例 6-5 利用 89C51 定时器对输入信号进行两分频,由 P1.0 输出分频信号。现利用定时器 0 实现分频,由于 89C51 的定时器没有信号输出端,现利用P1.0 输出。每当输入信号由 1 到 0 变化时,计数器溢出,TF0 置 1,可采用查询或中断的方法,在 TF0 置 1 时将 P1.0 求反后输出。因此在此例中计数值为1。 如采用方式 0,TH0 为 8 位,TL0 为 5 位,计数初值分别为 FFH 及 1FH。 如采用方式 1,TH0 及 TL0 分别为 8 位,计数初值为 FFH,FFH。 采用方式 0 或 1 时,由于计数初值不能恢复,因此在 TF0 置 1 后,以 P1.0输出信号时必须重新写入计数初值。如采用方式 2,TH1 为常数缓冲器,TL0 为 8 位计数器,计数初值为 FFH。此时在 TF0 置 1 之后 TH0 将自动重新装入 TL0,因此不必再次写入计数初值。 图 6-8 及图 6-9 分别为用方式 0,方式 1 以及方式 2 实现此例的程序流程图。 图 6-8 用方式 0、方式 1 的程序流程图 图 6-9 用方式 2 的程序流程图
展开阅读全文
收藏
下载资源

加入会员免费下载





足球比分直播