文章分类

当前位置:首页>技术文章>PIC单片机16F84的内部硬件资料(四)

PIC单片机16F84的内部硬件资料(四)

6. 定时器/计数器 TMRO PIC 单片机 16F84 中有一个定时器,此定时器也可用于计数,因此称为定时器/计数器,符号为 TMRO。TMRO 可用于定时控制、延时、对外部事件计数和检测等场合。TMRO 是一个 8 位增量(加 1)计数器。它在数据存贮器中的地址为 01。定时器所用的时钟源可以是内部系统时钟(OSC/4,即四倍振荡周期),也可以是外部时钟。若 TMRO 对内部系统时钟的标准脉冲系列进行计数时,就成为定时器;对外部脉冲进行计数时 TMRO 就成为计数器。

不管是定时还是计数方式,TMRO 在对内部时钟或对外部事件计数时,都不占用 CPU 时间,除非 TMRO 溢出,才可能中断 CPU 的当前操作。可见,定时器是单片机 16F84 中效率高且工作灵活的部件。 为了扩大定时或计数的范围,配合 TMRO 的使用,还有一个可编程预定标器。此定标器实际上是一个可编程分频器。 TMRO 的内部结构示意图如附图所示。其工作方式由数据存储器中的项选寄存器 OPTION 控制。

OPTION 是一个可读/写的寄存器,如附表所示。它含有配置 TMRO/WDT 预定标器、外部 INT 中断、TMRO 等的各种控制位。 TMRO 的定时、计数方式是由 OPTION 寄存器中的 D5(即 TOCS 位)确定。当 TOCS=0 时,工作于定时器方式;当 TOCS=1 时,工作于计数器方式。作定时器时,每个指令周期加 1(无预分频时);而作计数器时,则在每个 RA4/TOCKI 引脚上电平变化时加 1。OPTION 寄存器的位 4(TOCS 位)决定外部脉冲的触发方式,当 TOSE=1,下降沿触发;TOSE=0,上升沿触发。

当 TMRO 内部计数器发生计数溢出(从 FFh→00h)时,溢出位送入中断控制寄存器 INTCON。 由附图可知,预分频器也是一个 8 位计数器。其分频数是由 OPTION 寄存器中的 PS2~PS0 三位值来改变。分频数可以是以下 8 种之一:1∶1、1∶2、1∶4、1∶8、1∶16、1∶32、1∶64 和 1∶128。 当分频器用于 TMRO 时,所有写入 TMRO 的指令,如 CLRF1、MOVWF1、BSF

1、?等都将对预分频器清零。需要注意的是,预分频器是不能读写的。此分频器可用于 TMRO,也可用于 WDT,其切换由软件控制。为了避免意外的芯片复位,当需要切换时,必须执行相应的一段程序,以下是从 WDT 切换到 TMRO 时所需执行的程序: CLRWDT; 对 WDT 和预定标器清零 BSF STATUS,RP0;选中存储体 1 MOVLW B′xxxx0xxx′;PSA=0,选中 TMRO MOVWF OPTION;送入 OPTION 寄存器 BCF STATUS,RP0;复位存储体 0


© 星光电子技术工作室 2021 All Rights Reserved.
如有任何问题、建议、业务、合作,请联系手机/微信:13713820066