第6章-定时器/计数器TMR0

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第4章定时器/计数器1.定时器/计数器模块是大部分单片机都内置的一项重要功能2.定时器/计数器的正常工作一般表现为计数累计功能,通常是由时钟脉冲来驱动。3.当对内部标准时钟累计计数时,用作定时器。4.当对外部脉冲累计计数时,用作计数器。主要特点:一般适用于以下3种不同的应用场合:1.发出定时信息,或从单片机I/O引脚上向外部电路输出一系列符合一定时规范的方波信号。2.从单片机I/O引脚上,检测外部电路输入的一系列方波信号的脉宽、周期或频率,以便单片机接收外部电路的输入信号或通信信号。3.单片机对其端口引脚上输入的由外部事件产生的触发信号进行准确地计数,依据计数结果来控制完成相应的动作。二进制异步加法计数器由于D端接Q非,所以触发器每次跳变都反向相翻转分频器电路QQT'QQT'QQT'QQT'Clock时钟输入T1CKPS1:T1CKPS0Q3Q1Q21:81:41:21:1输出图9.3可编程预分频器等效电路分频器电路分频器电路CPFQ1=1/2FCPFQ2=1/4FCPFQ3=1/8FCP0101预分频器计数脉冲和内部指令周期同步过程TMR0寄存器T0SE脉冲沿选择指令周期fosc/4T0CS脉冲源选择PS2,PS1,PS0预分频值设置PSA预分频器指定2个指令周期延时8位数据总线溢出时置中断T0IF图6-1TMR0功能原理图分频输出图5-5简化TMR0的功能原理图跳变触发计数TMR0模块简化原理图(掌握)+RA4/T0CK1看门狗用123456累加计数寄存器定时器/计数器TMR0模块的电路结构和工作原理需要对3个开关进行选择设置1.计数的内外时钟选择2.预分频器的选择3.预分频器的预分频参数选择预分频参数选择PS2PS1PS0TMR0比率WDT比率0001:21:10011:41:20101:81:40111:161:81001:321:161011:641:321101:1281:641111:2561:1282与定时器/计数器TMR0模块相关的寄存器定时器/计数器TMR0选项寄存器OPTION_REG中断控制寄存器INTCON端口RA方向控制寄存器TRISA与TMR0模块相关的寄存器寄存器的名称和符号寄存器地址寄存器内容Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0定时器/计数器TMR001H/101H8位累加计数寄存器选项寄存器OPTION_REG81H/181HRBPUINTEDGT0CST0SEPSAPS2PS1PS0中断控制寄存器INTCON0BH/8BH/10B/H/18BHGIEPEIET0IEINTERBIET0IFINTFRBIF端口RA方向寄存器TRISA85H————TRISA5TRISA4TRISA3TRISA2TRISA1TRISA03个开关设置TMR0具有以下硬件结构特点总结(1)TMR0是一个8位宽的由时钟信号上升沿触发的循环累加计数寄存器。(2)有一个专用的外部触发信号输入端(T0CKI)。(3)TMR0也是一个在文件寄存器区域内统一编址的寄存器,地址为01H或101H,用户用软件方式可直接读/写计数器的内容。(4)具有一个软件可编程的8位预分频器。(5)当使用内部触发信号,即指令周期作为时钟信号源时,模块TMR0工作于定时方式,触发方式为固定上升沿触发有效。在计数器溢出时,相应的溢出中断标志T01F自动置位,并可产生溢出中断。(6)当使用外部时钟信号源时,模块TMR0工作于计数方式,触发方式可由程序设置位上升沿触发或下降触发有效。在计数器溢出时,也可产生溢出中断。TMR0模块工作过程8位TMR0累加计数器工作总是在送人初始值(称为时间常数)以后,推迟2个指令周期,在初始值的基础上对脉冲跳变触发产生计数,直到计数寄存器TMR0计满到FFH再加1,TMR0恢复到0,产生溢出和溢出标志T0IF。如果是中断使能T0IE开启的情况下,T0IF就能引发中断。TMR0恢复到0后,将继续自动对跳变触发产生计数加1,TMR0的计数始终不会停,称为循环计数。分析TMR0两种工作模式的特点设置定时模式特点:计数触发信号来源于系统时钟,即为内部的指令周期信号。定时的长短主要取决于3种因素。一是初始时间常数,其数值设置越小,定时越长,最大定时为256个触发脉冲周期。二是系统振荡频率,PIC单片机时钟振荡频率的范围为0~20MHz,频率越高,计数信号为指令周期就越短,相同条件下的定时时间就越短。假定时钟振荡频率为4MHz,指令周期为1µs,那么如果不考虑其他因素,理论上TMR0固有定时时间最短为1µs,而最长为256µs。三是预分频器,是对指令周期信号进行按比例分频,可在一定范围内大幅调整定时的长短。设置计数模式特点:计数模式,计数触发信号来源于I/O端口RA/T0CKI信号。只有处于计数模式下,跳变沿选择TOSE位才有效对T0CKI信号,既可以是标准的脉冲信号(周期脉冲信号),也可以是无规则的时序脉冲信号。因此,计数和定时不同,TMR0计数的长短一般不能确定定时的长短。了解即可:计数脉冲和指令周期的同步:单片机将对TOCKI引脚在1个指令周期内做2次等间隔的判读来判断是否有计数有效沿出现,如果一次为高另一次为低,则表明出现了一个脉冲沿跳变,如果此跳变符合T0SE的设置,TMR0的值就加一。所以,外部输入信号必须保证2次跳变之间的间隔至少维持2个振荡周期的宽度(1个指令周期=4个振荡周期),再另外加多20ns的内部电路延时。当计数寄存器写入初始值时,TMR0将被推迟2个指令周期,便开始或重新启动累加计数。当精度要求高时,可以通过定时参数补偿2个指令周期。精度要求不高时,可以不考虑。若没有使用分频器,TMR0会在每个指令周期信号(时钟周期的4倍)到来时自动加1。若使用分频器,TMR0会在指令周期信号分频某个倍数后产生的信号时自动加1,这时TMR0最长固有定时时间将达到65535us。定时时间计算定时时间计算假设:定时时间为t,标准时钟周期为T,实际累加记录的脉冲数N,有关系式:t=T*N,N=t/T解决问题:控制计数器,当定时时间到时,发出通知;怎样发出通知?通过计数器的什么?怎样把N写入计数器?定时时间计算:(计数初值应保证对剩余空间计数=定时需要记录的脉冲数N)对8位定时器TMR0,不使用分频器时,定时时间的计算公式为:(28–计数初值-2)×指令周期,使用分频器时,定时时间的计算公式为:分频比×(28–计数初值)×指令周期分频比取值为2、4、8…256。初始值计算如设定定时时间为t,指令周期为T,分频比为P,不使用分频器时,计数寄存器写入的初始值X为:X=28—t/T+2使用分频器时,那么计数寄存器写入的初始值X为:X=28—t/(T×P)定时64ms时:X=28—64×1000/(1×10-6×256)=6定时时间计算若晶振频率为4MHz,则机器周期为1µs,定时器TMR0最小定时时间为:[28–(28–1)]×1=1µs定时器TMR0最大定时时间为:[(28–0)×1]×256=65536µs分频值的计算设定时要求为:62.5ms(参看182页)不用分频器只能记录256us如果分频比为256,则定时62.5ms需要计数62500/256=244.14次,计数器能够名字要求TMR0应用注意问题:1、写TMR0的不理想方法:例:其工作条件是4MHz振荡频率,TMR0每隔100us中断,预分频器设为1:1,故理论计数起始值应为256-100+2=158。注意:TMR0作为定时器时的计数过程无法停止,是循环计数分析原因当它一次计数溢出发生中断,在单片机响应中断到真正处理其中断服务时,必定经过了若干指令周期的延时,如现场保护、中断源识别等,此时TMR0寄存器中已经有了一些计数值,说明已经花费了部分时间。而定时时间是确定的,赋值的初值后,其实定时时间不再是158,而是比158要大,具体大多少取决于整个中断服务程序执行到指令①时所花的指令周期数。但当程序中除了TMR0还有其他中断源也将发出中断响应时,那么调查中断3源后,轮到响应TMR0时的时间延时就根本无法确定,这时想用软件补偿也没办法实现了。写TMR0的正确方法不管程序执行到此处时TMR0内的计数值是多少,只要在158的基础上让它少跑这部分计数值,(将这部分计数值一起挖去,少计这部分计数值)无需关心中断程序中赋值的先后,都能保证准确性。尽量避免少写TMR0在改变TMR0寄存器内容的同时会将预分频器清0,预分频器中的计数值会被清除,也会影响计数精度试验五要求清晰理解跑马灯显示控制的流程图和程序;会调整不同时间参数会自己想象,调整出想要的显示效果;在跑马灯程序的基础上,实现队列灯的显示;查询方式:队列灯实验,电路该电路只是参考,和电路板不一样队列灯查表子程序;**********读取显示信息的查表子程序************readaddwfpcl,1;地址偏移量加当前Pc值,执行完该条指令后pcl还会自动加1retlwb‘00000001’;队列灯显示信息码,下同retlwb'00000011'retlwb'00000111'retlwb'00001111'retlwb'00011111'retlwb'00111111'retlwb'01111111'retlwb'11111111'retlwb'11111110'retlwb'11111100'retlwb'11111000'retlwb'11110000'retlwb'11100000'retlwb'11000000'retlwb'10000000'retlwb'00000000'end;通知汇编器源程序结束

1 / 27
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功