PIC08定时器计数器TMR0课件.ppt
文本预览下载声明
第七章 定时器/计数器TMR0 PIC 系列单片机内部配备有数量不等的定时器/计数器模块:例如PIC17CX系列和PIC18CX系列都都配置了4个定时器/计数器模块;而PIC16F87X系列都配置了3个定时器/计数器模块,分别记为TMR0、TMR1和TMR2。 TMR0、TMR1和TMR2在电路上均不相同,而且用途也各有所异,但是三者也存在许多共同之处。本章讲解的是TMR0,TMRl和TMR2将在后面章节中讲解。 其实定时器都是一个由时钟信号触发的递增的计数器;都是从预先设定的初始值开始累计,在累计数超过最大值,或者超过预先设定的值时便产生溢出,并同时会建立一个相应的溢出标志(即中断标志位)。 TMR0的特性: ①核心部分是一个8位宽,在时钟信号上升沿触发的循环累加计数寄存器TMR0; ②TMR0是一个特殊功能寄存器,地址为01H或101H; ③有一个可选用的8位可编程分频器; ④有一个可选用的8位可编程分频器; ⑤信号源可以是内部时钟信号源(定时器模式),也可以是外部时钟信号源(计数器模式)。 ⑥当使用外部触发信号作为时钟信号源时,可定义触发方式,即上升沿触发或下降沿触发; ⑦具有溢出中断功能。 §7.1 与TMR0模块相关的寄存器 与TMR0模块有关的特殊功能寄存器有四个:8位的累加寄存器TMR0、中断控制寄存器INTCON、选项寄存器OPTION_REG和端口RA方向控制寄存器TRISA,如下表所列。 以上4个寄存器都是特殊功能寄存器,可以把它们当做普通RAM单元来进行读写访问。下面对几个起控制作用的寄存器进行介绍: ⒈选项寄存器OPTION_REG 0=外部时钟T0CKI上升沿触发TMR0递增。 ⑷T0CS:TMR0的时钟源选择位。 1=由T0CKI外部引脚输入的脉冲作为TMR0时钟源; 0=由内部提供的指令周期信号作为TMR0时钟源。 ⒉中断控制寄存器INTCON 中断控制寄存器也是一个可读/写的寄存器,与TMR0有关的各位的含义如下: ⑴T0IF:TMR0溢出标志位(也就是溢出中断标志)。 l=TMR0发生溢出; 0=TMR0未发生溢出。 ⑵T0IE:TMR0溢出中断使能位。 l=允许TMR0溢出后产生中断; 0=屏蔽TMR0溢出后产生中断。 ⑶GIE:全局中断总使能位。 1=允许CPU响应所有外围设备产生的中断请求; 0=禁止CPU响应所有外围设备产生的中断请求。 ⒊端口RA方向控制寄存器TRISA 1=引脚RA4设为输入,以便从该脚送进T0CK1信号。 §7.2 TMR0的电路结构和工作原理 定时器/计数器TMR0的结构方框图如图8.2所示。 在图8.2中,可以将整个电路按功能简化为三个相对独立的主要组成部分:计数寄存器TMR0、分频器和看门狗定时器WDT。 因为看门狗在电路上与TMR0之间共同分享同一个分频器,于是两者就有了同时出现在同一张图上。 7.2.1 分频器 看门狗定时器WDT与TMR0共同分享一个分频器,但两者不能同时使用。即在同一时刻,分频器只能分配给两者中之一。 分频器也是一个8位累加计数器,不过它不能像TMR0那样直接进行读、写操作,它只能配合TMR0或WDT起分频作用。 当PSA=0时,分频器归TMR0所有,进入累加器TMR0的时钟信号,都要先经过分频器;而当PSA=1时,分频器与TMR0隔离,进入TMR0的时钟信号,不再经过分频器。 当分频器分配给TMR0时,任何以TMR0为目标的写操作指令(如CLRF TMR0 , MOVWF TMR0 )都会将分频器清0;当分频器分配给WDT时,执行CLRWDT的指令将会同时将其分频器清零。 注意分频器清零时,而分频比和分配对象并不会改变。 7.2.2 TMR0 累加计数寄存器 定时器/计数器TMR0 既可以作为定时器使用,也可以作为计数器使用,即TMR0具有定时和计数两种工作模式。 两种模式的差异就是进入TMR0的时钟信号源不同,TMR0的工作模式由T0CS位,即选项寄存器OPTION_REG位5决定。 在定时器模式下,一旦往TMR0中写入初始值,TMR0便
显示全部