定时器计数器 精.ppt
《定时器计数器 精.ppt》由会员分享,可在线阅读,更多相关《定时器计数器 精.ppt(26页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、定时器计数器 第1页,本讲稿共26页8.1 定时器/计数器模块的基本用途 在单品机芯片内部配置的各种外围设备模块中,定时器/计数器模块是一种应用比较灵活的外设模块。那么,定时器/计数器模块究竟有什么用途呢?经过初步分析和归纳,此类模块大致上可以适用于以下3类不同的应用场合:第2页,本讲稿共26页 (1)在一些单片机的应用项目中,又是要求单片机在其端口引脚上,向外部电路送出一系列符合一定时序规范的方波信号。例如,空调机中的变频控制,VCD,光盘驱动器,照相机,打印机提示音的音调产生,PWM脉冲宽度调制信号的形成,等等。在对这些应用项目的单片机进行编程时,需要在程序的执行过程中,插入一定时长的延时
2、。对此有两种方案可供选择,一直利用芯片内部现成的硬件资源可编程定时器,来精确控制输出实现预定的时间间隔;二是采用软件手段插入一段延时程序。关于软件手段延时,在“PIC汇编语言程序设计基础”章节中已经做过介绍,其缺点,传真机中不仅电动机的驱动,电器设备的是需要占用“机时”,也就是耗费CPU的“精力”。在此仅对第一种方法中用到的硬件资源进行讲解。第3页,本讲稿共26页 (2)在另外一些单片机的应用项目中,经常要求单片机在其引脚上,检测外部电路送来的一系列方波信号的脉宽、周期或频率,以便单片机接收外部电路的输入信号或通信信号。例如,遥控电视机中的红外遥控信号的接收,速度里程表中的转速检测,超声波测距
3、仪中发射波与反射波之间的时间间隔的精确测量,等等。这类应用程序的编写,会用定时器来对“视线未知”的时间间隔进行精确计时。第4页,本讲稿共26页 (3)还有一些单片机应用项目中,需要单片机对其端口引脚上输入的有外部事件产生的触发信号进行精确的计数,依据计数结果来控制完成相应的动作。例如,在饮料的生产和包装车间里,传送带上的易拉罐在移动时,可以借助于红外线透射或者反射方式,获得触发信号并且送入单片机的相应引脚,有单片机内部的可编成计算器来对移过红外探头的易拉罐数量进行计数。每当计数器的累加值达到预设值时,就控制相应装置完成封箱操作。第5页,本讲稿共26页8.2 PIC系列单片机定时器/计数器 TM
4、R0模块的特性 Microchip公司产生的PIC系列单片机也不例外,各款产品内部全部配备有定时器/计数器模块,并且配备的数量也不尽相同。早期研制的PIC单片机产品系列,例如PIC12CXXX/CEXXX系列,PIC16C5X/5XX系列、PIC16C8X/F8X系列中的全部产品、PIC16C62X/CE62X系列中的部分产品,只配置了一个定时器/计数器模块。除了在最早的PIC16C5X系列弹片机中,把该模块叫做RTCC模块之外,在其余所有PIC单片机中都把该模块叫做TMR0模块。近期新研制的PIC单片机产品系列中,大都配置了多个定时器/计数器模块,例如PIC17CXXX系列和PIC18CXX
5、X系列都配置了4个定时器/计数器模块。第6页,本讲稿共26页 在本书中当作样板讲解的PIC16F87X系列单片机都配置了3个定时器/计数器模块,分别记为TMR0、TMR1、TMR2。需要事先声明的是,TMR0、TMR1、TMR2 3个定时器/计数器模块,不仅电路结构上均不相同,而且涉及的初中也各有所异,但是,三者之间也存在着许多的共同之处。具体的分析如下:不同点有:TMR0为8位宽,有一个可选的预分频器,用于通用目的;TMR1为16位宽,附带一个可编程的预分频器,还附带一个可选的低频时基振荡器,适合与CCP(捕捉/比较/脉宽调制)模块配合使用来实现输入捕捉或输出比较功能;TMR2为8位宽,同时
6、附带一个可编程的预分频器和一个可编程的后分频器,还附带一个周期寄存器和比较器,适合与CCP模块配合使用来实现PWM脉冲宽度调制信号的产生。第7页,本讲稿共26页 相同点:它们的核心部分都是一个由时钟信号触发的按递增规律(即累加方式)工作的循环计数器;都是从预先设定的某一初始值(或0)开始记起,在累积到超过最大值(或者预先设定的某一终了值)时产生溢出,并且同时会建立一个相应的溢出标志(即中断标志位):对于它们的编程方法也大同小异。因此,我们打算首先从中选择一款具备通用性、代表性和相对简单的定时器/计数器,也是各种档次、各款PIC单片机型号内部,普遍都配置了的定时器/计数器模块TMR0,作为本章讲
7、解的模型和重点。至于其他2个定时器/计数器模块TMR1和TMR2,将在后面设专门章节另行讲解。这样安排的目的主要是,为了更好的适应初级读者,以循序渐进的方式接收和认识新技术新知识的需要第8页,本讲稿共26页定时器/计数器TMR0具有以下特性:是一个8位宽的由时钟信号上升沿触发的循环累加计数器;TMR0也是一个文件寄存器区域内统一编址的寄存器,核心地址为01H或101H;用户用软件方式可直接读书或写入计数器的内容;具有一个可选用的8位可编程预分频器;用于累加计数的信号源可选择内部或外部时钟信号源,也就是即可工作于定时模式,又可工作于计数器模式;当时用外部触发信号作为时钟信号源时可由程序定义上升沿
8、或下降沿触发有效;据有溢出中断功能。第9页,本讲稿共26页 8.3 与定时器/计数器TMR0模块有关的寄存器现在让我们做一下总结归纳,在PIC16F87X单片机的RAM数据存储器区域,与定时器/计数器TMR0模块有关的特殊功能寄存器共有四个,分别是8位宽的累加计数寄存器TMR0、中断控制寄存器INTCON、选项寄存器OPTION和端口RA方向控制寄存器TRISA,如表8.1所示。第10页,本讲稿共26页表8.1 与TMR0相关的寄存器寄存器名称寄存器符号寄存器地址寄存器内容bit7bit6bit5bit4bit3bit2bit1bit0定时器/计数器TMR001H/101H8位累加计数寄存器选
9、项寄存器OPTION_REG81H/181HRBPU INTEDGT0CST0SE PSAPS2PS1PS0中断控制寄存器INTCON0BH/8BH/10BH/18BHGIEPEIE T0IE INTE RBIET0IF INTF RBIF A口方向寄存器 TRISA85H_TRISA5TRISA4TRISA3TRISA2TRISA1TRISA0第11页,本讲稿共26页1.选项寄存器OPTION_REGbit7bit6bit5bit4bit3bit3bit1bit0RBPU INTEDG T0CS T0SEPSAPS2PS1PS0表8.2 选项寄存器OPTION_REG各位分布PS2PS):分
10、频器分频比选择位。如表8.3所列。PSA:分频器分配位 1=分频器分配给WDT 0=分频器分配给TMR0第12页,本讲稿共26页 PS2PS0 TMR0比率 WDT比率 000 1:2 1:1 001 1:4 1:2 010 1:8 1:4 011 1:16 1:8 100 1:32 1:16 101 1:64 1:32 110 1:128 1:64 111 1:256 1:128表8.3 PS2PS0对应的分频比第13页,本讲稿共26页 T0SE:TMR0的时钟源触发边沿选择位。只有当TMR0工作于计数器模式时,该位才发挥作用。1=外部时钟T0CK1下降沿触发TMR0递增;0=外部时钟T0C
11、K1上升沿触发TMR0递增。T0CS:TMR0的时钟源选择位。1=由T0CK1外部引脚输入的脉冲信号作为计数器TMR0时钟源;0=由内部提供的指令周期信号作为定时器TMR0时钟源。2.中断控制寄存器INTCON(见表8.4)bit7bit6bit5bit4bit3bit2bit1bit0GIEEEIET0IEINTERBIFT0IFINTFRBIF表8.4 中断控制寄存器INTCON各位分布第14页,本讲稿共26页 中断控制寄存器也是一个可读/写的寄存器与TMR0有关的各位的含义如下:T0IF:TMR0溢出标志位(也就是溢出中断标志)。1=TMR0发生溢出;0=TMR0未发生溢出。T0IE:T
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 定时器计数器 定时器 计数器
限制150内