PIC13定时器TMR2

上传人:夏** 文档编号:588531765 上传时间:2024-09-08 格式:PPT 页数:28 大小:929KB
返回 下载 相关 举报
PIC13定时器TMR2_第1页
第1页 / 共28页
PIC13定时器TMR2_第2页
第2页 / 共28页
PIC13定时器TMR2_第3页
第3页 / 共28页
PIC13定时器TMR2_第4页
第4页 / 共28页
PIC13定时器TMR2_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《PIC13定时器TMR2》由会员分享,可在线阅读,更多相关《PIC13定时器TMR2(28页珍藏版)》请在金锄头文库上搜索。

1、第十章第十章 定时器定时器TMR2 本章将介绍另一款定时器本章将介绍另一款定时器本章将介绍另一款定时器本章将介绍另一款定时器TMR2TMR2模块,模块,模块,模块,TMR2TMR2与与与与前面介绍的前面介绍的前面介绍的前面介绍的TMR0TMR0和和和和TMR1TMR1相比,最大的差别是只能工相比,最大的差别是只能工相比,最大的差别是只能工相比,最大的差别是只能工作于定时模式,因此称它为作于定时模式,因此称它为作于定时模式,因此称它为作于定时模式,因此称它为“ “定时器定时器定时器定时器TMR2”TMR2”。 10.1 TMR210.1 TMR2的特性的特性的特性的特性 TMR2TMR2为为为为

2、8 8位位位位宽宽宽宽,附附附附带带带带二二二二个个个个4 4位位位位宽宽宽宽的的的的分分分分频频频频器器器器:一一一一个个个个“ “预预预预分分分分频频频频器器器器” ”和和和和一一一一个个个个“ “后后后后分分分分频频频频器器器器” ”,一一一一个个个个可可可可编编编编程程程程的的的的8 8位位位位周周周周期寄存器期寄存器期寄存器期寄存器PR2PR2。其主要用途:其主要用途:其主要用途:其主要用途:可以用作时间定时器,但是不能作为计数器;可以用作时间定时器,但是不能作为计数器;可以用作时间定时器,但是不能作为计数器;可以用作时间定时器,但是不能作为计数器;可以为同步串行端口可以为同步串行端

3、口可以为同步串行端口可以为同步串行端口MSSPMSSP模块提供波特率时钟;模块提供波特率时钟;模块提供波特率时钟;模块提供波特率时钟;可以与可以与可以与可以与CCPCCP模块配合使用,实现脉宽调制模块配合使用,实现脉宽调制模块配合使用,实现脉宽调制模块配合使用,实现脉宽调制PWMPWM功能。功能。功能。功能。 TMR2TMR2的核心是一个可以由软件读写的的核心是一个可以由软件读写的的核心是一个可以由软件读写的的核心是一个可以由软件读写的8 8位宽的位宽的位宽的位宽的计数器,它也是按递增计数,从某一初值计数器,它也是按递增计数,从某一初值计数器,它也是按递增计数,从某一初值计数器,它也是按递增计

4、数,从某一初值( (缺省为缺省为缺省为缺省为0)0)开开开开始递增,直到与周期寄存器始递增,直到与周期寄存器始递增,直到与周期寄存器始递增,直到与周期寄存器PR2PR2中内容匹配之后,在下中内容匹配之后,在下中内容匹配之后,在下中内容匹配之后,在下一次递增时则返回到一次递增时则返回到一次递增时则返回到一次递增时则返回到00H00H,并且会产生匹配信号,该并且会产生匹配信号,该并且会产生匹配信号,该并且会产生匹配信号,该匹配信号将作为匹配信号将作为匹配信号将作为匹配信号将作为“ “后分频器后分频器后分频器后分频器” ”的计数脉冲。的计数脉冲。的计数脉冲。的计数脉冲。 只有在后分频器产生溢出时,才

5、会将溢出中断标只有在后分频器产生溢出时,才会将溢出中断标只有在后分频器产生溢出时,才会将溢出中断标只有在后分频器产生溢出时,才会将溢出中断标志位志位志位志位TMR2IF(PIR1TMR2IF(PIR1的的的的bit1)bit1)置置置置1 1。如果此时相关的中断使。如果此时相关的中断使。如果此时相关的中断使。如果此时相关的中断使能位都置位,则会引起能位都置位,则会引起能位都置位,则会引起能位都置位,则会引起CPUCPU的中断响应。通过对中断的中断响应。通过对中断的中断响应。通过对中断的中断响应。通过对中断使能位使能位使能位使能位TMR2IETMR2IE的置位或复位,即可允许或禁止的置位或复位,

6、即可允许或禁止的置位或复位,即可允许或禁止的置位或复位,即可允许或禁止CPUCPU响应响应响应响应TMR2TMR2产生的中断请求。产生的中断请求。产生的中断请求。产生的中断请求。l lTMR2TMR2和和和和RAMRAM空间统一编址,地址为空间统一编址,地址为空间统一编址,地址为空间统一编址,地址为11H11H; l l可用软件方式直接读写可用软件方式直接读写可用软件方式直接读写可用软件方式直接读写TMR2TMR2的内容;的内容;的内容;的内容;l l有一个有一个有一个有一个4 4位的预分频器和一个位的预分频器和一个位的预分频器和一个位的预分频器和一个4 4位的后分频器;位的后分频器;位的后分

7、频器;位的后分频器;l l有一个有一个有一个有一个8 8位周期寄存器;位周期寄存器;位周期寄存器;位周期寄存器;l l累加计数的触发信号只能选择内部系统时钟;累加计数的触发信号只能选择内部系统时钟;累加计数的触发信号只能选择内部系统时钟;累加计数的触发信号只能选择内部系统时钟;10.2 TMR210.2 TMR2相关的寄存器相关的寄存器相关的寄存器相关的寄存器 与与与与TMR2TMR2有关的寄存器共有有关的寄存器共有有关的寄存器共有有关的寄存器共有6 6个,如下表所示。这个,如下表所示。这个,如下表所示。这个,如下表所示。这6 6个寄存器中的前个寄存器中的前个寄存器中的前个寄存器中的前3 3个

8、寄存器的功能在个寄存器的功能在个寄存器的功能在个寄存器的功能在“ “中断系统中断系统中断系统中断系统” ”中已经中已经中已经中已经介绍过。在此介绍介绍过。在此介绍介绍过。在此介绍介绍过。在此介绍TMR2TMR2控制寄存器控制寄存器控制寄存器控制寄存器T2CONT2CON。 TMR2TMR2控制寄存器控制寄存器控制寄存器控制寄存器T2CONT2CON是一个只用到低是一个只用到低是一个只用到低是一个只用到低7 7位的可位的可位的可位的可读写寄存器,最高位未用,其余各位的含义如下:读写寄存器,最高位未用,其余各位的含义如下:读写寄存器,最高位未用,其余各位的含义如下:读写寄存器,最高位未用,其余各位

9、的含义如下:l lTOUTPS3TOUTPS3TOUTPS0TOUTPS0:TMR2TMR2后分频器分频比选择位,后分频器分频比选择位,后分频器分频比选择位,后分频器分频比选择位,如下表所列。如下表所列。如下表所列。如下表所列。l lTMR2ONTMR2ON:TMR2TMR2使能控制位使能控制位使能控制位使能控制位。n n1=1=启用启用启用启用TMR2TMR2;n n0=0=关闭关闭关闭关闭TMR2TMR2,可以降低功耗。可以降低功耗。可以降低功耗。可以降低功耗。 l lT2CKPS1T2CKPS1T2CKPS0T2CKPS0:预分频器分频比选择位,如下表预分频器分频比选择位,如下表预分频器

10、分频比选择位,如下表预分频器分频比选择位,如下表所列。所列。所列。所列。 10.3 TMR210.3 TMR2的电路结构的电路结构的电路结构的电路结构 TMR2TMR2的的的的内内内内部部部部结结结结构构构构,如如如如下下下下图图图图所所所所示示示示,包包包包含含含含5 5个个个个组组组组成成成成部部部部分。下面分析各个部分的功能和组成关系。分。下面分析各个部分的功能和组成关系。分。下面分析各个部分的功能和组成关系。分。下面分析各个部分的功能和组成关系。 核心部分就是一个核心部分就是一个核心部分就是一个核心部分就是一个8 8位宽的累加计数器位宽的累加计数器位宽的累加计数器位宽的累加计数器TMR

11、2TMR2。其复位其复位其复位其复位值是值是值是值是00H00H,也可以是在也可以是在也可以是在也可以是在00H00HFFHFFH范围内由用户设定的范围内由用户设定的范围内由用户设定的范围内由用户设定的一个起始值。一个起始值。一个起始值。一个起始值。 4 4位宽的预分频器,对于进入位宽的预分频器,对于进入位宽的预分频器,对于进入位宽的预分频器,对于进入TMR2TMR2的时钟信号进行预的时钟信号进行预的时钟信号进行预的时钟信号进行预先分频,允许选择先分频,允许选择先分频,允许选择先分频,允许选择3 3种不同的分频比种不同的分频比种不同的分频比种不同的分频比(1:1(1:1、1:41:4或或或或1

12、:16)1:16)。vv注注注注意意意意:在在在在对对对对TMR2TMR2或或或或控控控控制制制制寄寄寄寄存存存存器器器器进进进进行行行行写写写写操操操操作作作作时时时时,都都都都可可可可以以以以使使使使预预预预分分分分频频频频器器器器清清清清0 0;在在在在用用用用任任任任何何何何方方方方式式式式复复复复位位位位时时时时,都都都都会会会会对对对对预预预预分分分分频频频频器清器清器清器清0 0。 周期寄存器周期寄存器周期寄存器周期寄存器PR2PR2也是一个也是一个也是一个也是一个8 8位可读写寄存器。用来预位可读写寄存器。用来预位可读写寄存器。用来预位可读写寄存器。用来预置一个作为置一个作为置

13、一个作为置一个作为TMR2TMR2一次计数过程结束的周期值。芯片复一次计数过程结束的周期值。芯片复一次计数过程结束的周期值。芯片复一次计数过程结束的周期值。芯片复位后位后位后位后PR2PR2寄存器被自动设置为全寄存器被自动设置为全寄存器被自动设置为全寄存器被自动设置为全1(FFH)1(FFH)。 比较器是一个比较器是一个比较器是一个比较器是一个8 8位宽的按位比较逻辑电路,只有当参加位宽的按位比较逻辑电路,只有当参加位宽的按位比较逻辑电路,只有当参加位宽的按位比较逻辑电路,只有当参加比较的两组数据完全相同之后,下一次递增时,比较的两组数据完全相同之后,下一次递增时,比较的两组数据完全相同之后,

14、下一次递增时,比较的两组数据完全相同之后,下一次递增时,“ “匹匹匹匹配配配配” ”输出端才会送出高电平,其他情况下该输出端均输出端才会送出高电平,其他情况下该输出端均输出端才会送出高电平,其他情况下该输出端均输出端才会送出高电平,其他情况下该输出端均保持低电平。保持低电平。保持低电平。保持低电平。 4 4位宽的后分频器,对于比较器的输出信号进行后续分位宽的后分频器,对于比较器的输出信号进行后续分位宽的后分频器,对于比较器的输出信号进行后续分位宽的后分频器,对于比较器的输出信号进行后续分频,允许连续选择频,允许连续选择频,允许连续选择频,允许连续选择1616种分频比,其输出信号频率是输种分频比

15、,其输出信号频率是输种分频比,其输出信号频率是输种分频比,其输出信号频率是输入信号频率的入信号频率的入信号频率的入信号频率的1 1N (N=1N (N=116) 16) 。 TMR2TMR2的工作是可控的,所以还包含一个控制门的工作是可控的,所以还包含一个控制门的工作是可控的,所以还包含一个控制门的工作是可控的,所以还包含一个控制门G1G1。只有当只有当只有当只有当TMR2TMR2使能位使能位使能位使能位TMR2ONTMR2ON置置置置1 1,系统时钟才能通过,系统时钟才能通过,系统时钟才能通过,系统时钟才能通过G1G1,TMR2TMR2也才能进入活动状态。也才能进入活动状态。也才能进入活动状

16、态。也才能进入活动状态。 10.4 TMR210.4 TMR2的工作原理的工作原理的工作原理的工作原理 TMR2TMR2只只只只有有有有一一一一种种种种工工工工作作作作方方方方式式式式:定定定定时时时时器器器器方方方方式式式式,其其其其触触触触发发发发钟钟钟钟信号也只能从内部系统时钟信号也只能从内部系统时钟信号也只能从内部系统时钟信号也只能从内部系统时钟4 4分频后得到。分频后得到。分频后得到。分频后得到。10.4.1 10.4.1 禁止禁止禁止禁止TMR2TMR2工作工作工作工作 TMR2TMR2也也也也比比比比TMR0TMR0多多多多了了了了一一一一种种种种选选选选择择择择,即即即即可可可

17、可以以以以被被被被用用用用户户户户程程程程序序序序关关关关闭闭闭闭而而而而节节节节电电电电,此此此此点点点点类类类类似似似似于于于于TMR1TMR1。具具具具体体体体方方方方法法法法是是是是将将将将TMR2TMR2使使使使能能能能控控控控制制制制位位位位TMR2ONTMR2ON清清清清0 0。此此此此时时时时与与与与门门门门G1G1的的的的一一一一只只只只引引引引脚脚脚脚被被被被低低低低电电电电平平平平封封封封锁锁锁锁,其其其其输输输输出出出出端端端端均均均均保保保保持持持持低低低低电电电电平平平平;因因因因此此此此使使使使得得得得累加计数器累加计数器累加计数器累加计数器TMR2TMR2不能活

18、动。不能活动。不能活动。不能活动。10.4.2 10.4.2 定时工作方式定时工作方式定时工作方式定时工作方式 TMR2TMR2只只只只有有有有定定定定时时时时工工工工作作作作模模模模式式式式,该该该该模模模模式式式式可可可可以以以以被被被被用用用用来来来来实实实实现现现现一一一一般般般般的的的的延延延延时时时时或或或或定定定定时时时时。但但但但是是是是,TMR2TMR2的的的的主主主主要要要要目目目目的的的的并并并并不不不不是是是是把把把把它它它它用用用用作作作作普普普普通通通通的的的的定定定定时时时时器器器器,而而而而是是是是为为为为CCPCCP模模模模块块块块或或或或MSSPMSSP模模

19、模模块块块块提供提供提供提供周期可调的周期可调的周期可调的周期可调的时基信号。时基信号。时基信号。时基信号。用作周期可调的时基发生器用作周期可调的时基发生器用作周期可调的时基发生器用作周期可调的时基发生器 当当当当TMR2TMR2被被被被用用用用作作作作周周周周期期期期可可可可调调调调的的的的时时时时基基基基发发发发生生生生器器器器时时时时,可可可可以以以以为为为为CCPCCP模块或模块或模块或模块或MSSPMSSP模块提供周期可调的时基信号。模块提供周期可调的时基信号。模块提供周期可调的时基信号。模块提供周期可调的时基信号。 这这这这时时时时,应应应应该该该该将将将将中中中中断断断断使使使使

20、能能能能位位位位TMR2IETMR2IE清清清清0 0,即即即即屏屏屏屏蔽蔽蔽蔽TMR2TMR2的的的的中中中中断断断断功功功功能能能能,相相相相当当当当于于于于把把把把后后后后分分分分频频频频器器器器的的的的作作作作用用用用也也也也屏屏屏屏蔽蔽蔽蔽了了了了;通通通通过过过过对对对对周周周周期期期期寄寄寄寄存存存存器器器器PR2PR2设设设设置置置置不不不不同同同同的的的的值值值值,以以以以及及及及给给给给预预预预分分分分频频频频器器器器设设设设定定定定不不不不同同同同的的的的分分分分频频频频比比比比,来来来来灵灵灵灵活活活活调调调调整整整整TMR2TMR2输输输输出出出出端端端端的的的的信信

21、信信号号号号周周周周期期期期T TTMR2TMR2 。该周期的计算式为:该周期的计算式为:该周期的计算式为:该周期的计算式为: T TTMR2TMR2=(4=(4foscfosc)*N1*(PR2+1)*N1*(PR2+1) 其其其其中中中中:foscfosc为为为为系系系系统统统统时时时时钟钟钟钟频频频频率率率率;N1N1为为为为预预预预分分分分频频频频器器器器的的的的分分分分频频频频比比比比( (取取取取1 1、4 4或或或或16)16);PR2PR2为为为为周周周周期期期期寄寄寄寄存存存存器器器器预预预预赋赋赋赋值值值值;PR2+1PR2+1是是是是因因因因为为为为在在在在TMR2TMR

22、2与与与与PR2PR2匹匹匹匹配配配配后后后后的的的的下下下下一一一一次次次次增增增增量量量量时时时时TMR2TMR2才才才才回回回回00H00H。见。见。见。见下图。下图。下图。下图。 用作延迟时间可调周期性定时器用作延迟时间可调周期性定时器用作延迟时间可调周期性定时器用作延迟时间可调周期性定时器 把把把把TMR2TMR2作为延迟时间可调的周期性定时器,会比作为延迟时间可调的周期性定时器,会比作为延迟时间可调的周期性定时器,会比作为延迟时间可调的周期性定时器,会比TMR0TMR0的定时方式更加节省软件开销。的定时方式更加节省软件开销。的定时方式更加节省软件开销。的定时方式更加节省软件开销。

23、TMR2TMR2不必像不必像不必像不必像TMR0TMR0那样,每次溢出后,都要给寄那样,每次溢出后,都要给寄那样,每次溢出后,都要给寄那样,每次溢出后,都要给寄存器存器存器存器TMR2TMR2赋初值。只要一次性设定溢出周期赋初值。只要一次性设定溢出周期赋初值。只要一次性设定溢出周期赋初值。只要一次性设定溢出周期( (通过设通过设通过设通过设定预分频器、后分频器以及定预分频器、后分频器以及定预分频器、后分频器以及定预分频器、后分频器以及PR2PR2来实现来实现来实现来实现) ),TMR2TMR2就将就将就将就将会周期性地按预先设定的溢出周期产生超时中断。该会周期性地按预先设定的溢出周期产生超时中

24、断。该会周期性地按预先设定的溢出周期产生超时中断。该会周期性地按预先设定的溢出周期产生超时中断。该超时溢出周期的计算式为超时溢出周期的计算式为超时溢出周期的计算式为超时溢出周期的计算式为 : T TTMR2IFTMR2IF=(4=(4foscfosc)*N1*(PR2+1)*N2)*N1*(PR2+1)*N2 其中,其中,其中,其中,N2N2为后分频器的分频比为后分频器的分频比为后分频器的分频比为后分频器的分频比( (连续可取连续可取连续可取连续可取116)116)。这时的简化电路如下图所示。这时的简化电路如下图所示。这时的简化电路如下图所示。这时的简化电路如下图所示。 用作普通定时器用作普通

25、定时器用作普通定时器用作普通定时器 TMR2也也可可以以像像TMR0那那样样用用作作普普通通的的定定时时器器,这这样样使使用用时时,可可以以将将后后分分频频器器的的分分频频比比设设定定为为1:1,PR2的的值值设设定定为为最最大大值值FFH,就就相相当当于于把把后后分分频频器器、周周期期寄寄存存器器以及比较器的功能禁止掉了,使得它们不发挥作用。以及比较器的功能禁止掉了,使得它们不发挥作用。 从从从从而而而而使使使使TMR2TMR2简简简简化化化化为为为为类类类类似似似似于于于于TMR0TMR0一一一一样样样样,带带带带有有有有一一一一个个个个分分分分频频频频比比比比可可可可设设设设定定定定为为

26、为为1:11:1、1:41:4或或或或1:161:16的的的的4 4位位位位预预预预分分分分频频频频器器器器。这这这这时时时时超超超超时时时时溢溢溢溢出周期的计算式为:出周期的计算式为:出周期的计算式为:出周期的计算式为: T TTMR2IFTMR2IF=(4=(4foscfosc)*N1*(256-M)*N1*(256-M) 其中,其中,其中,其中,MM为为为为TMR2TMR2的初始值。简化电路如下图所示。的初始值。简化电路如下图所示。的初始值。简化电路如下图所示。的初始值。简化电路如下图所示。 采采用用这这种种用用法法时时,需需要要在在TMR2每每次次超超时时溢溢出出时时,都都要要给给TM

27、R2赋赋一一次次初初始始值值。累累加加计计数数寄寄存存器器TMR2,就就会会以以该该初初始始值值为为起起点点开开始始增增量量,直直到到递递增增到到FFH,之之后后再再出出现现一一个个计计数数脉脉冲冲,就就会会将将TMR2复复位位清清0,并并且发出中断请求且发出中断请求(TMR2IF被置被置1)。 如果想把预分频器的功能禁止掉,可以把它的分如果想把预分频器的功能禁止掉,可以把它的分如果想把预分频器的功能禁止掉,可以把它的分如果想把预分频器的功能禁止掉,可以把它的分频比也设置为频比也设置为频比也设置为频比也设置为1 1:1 1,这样就相当于把预分频器给短路,这样就相当于把预分频器给短路,这样就相当

28、于把预分频器给短路,这样就相当于把预分频器给短路掉了。掉了。掉了。掉了。 10.4.3 10.4.3 寄存器寄存器寄存器寄存器TMR2TMR2和和和和PR2PR2以及分频器的复位以及分频器的复位以及分频器的复位以及分频器的复位 对对对对于于于于单单单单片片片片机机机机的的的的任任任任何何何何一一一一种种种种方方方方式式式式的的的的复复复复位位位位操操操操作作作作,寄寄寄寄存存存存器器器器TMR2TMR2都都都都会会会会自自自自动动动动复复复复位位位位清清清清0 0。另另另另外外外外,在在在在TMR2TMR2的的的的累累累累计计计计值值值值与与与与PR2PR2的值匹配时,也会使的值匹配时,也会使

29、的值匹配时,也会使的值匹配时,也会使TMR2TMR2复位清复位清复位清复位清0 0。 PR2PR2周周周周期期期期寄寄寄寄存存存存器器器器对对对对于于于于单单单单片片片片机机机机的的的的任任任任何何何何一一一一种种种种方方方方式式式式的的的的复复复复位位位位操操操操作作作作,也也也也都都都都会会会会自自自自动动动动复复复复位位位位,但但但但不不不不是是是是清清清清0 0,而而而而是是是是置置置置为为为为全全全全1(FFH)1(FFH)。 当发生下列几种情况中的任何一种时,将会对预当发生下列几种情况中的任何一种时,将会对预当发生下列几种情况中的任何一种时,将会对预当发生下列几种情况中的任何一种时

30、,将会对预分频器和后分频器同时复位清分频器和后分频器同时复位清分频器和后分频器同时复位清分频器和后分频器同时复位清0 0:对于寄存器对于寄存器对于寄存器对于寄存器TMR2TMR2进行写操作;进行写操作;进行写操作;进行写操作; 对控制寄存器对控制寄存器对控制寄存器对控制寄存器T2CONT2CON进行写操作;进行写操作;进行写操作;进行写操作;任任任任何何何何方方方方式式式式对对对对于于于于单单单单片片片片机机机机的的的的复复复复位位位位,例例例例如如如如上上上上电电电电复复复复位位位位、MCLRMCLR人人人人工复位、工复位、工复位、工复位、WDTWDT溢出复位、掉电复位等。溢出复位、掉电复位

31、等。溢出复位、掉电复位等。溢出复位、掉电复位等。 但但但但是是是是,对对对对于于于于控控控控制制制制寄寄寄寄存存存存器器器器T2CONT2CON进进进进行行行行写写写写操操操操作作作作时时时时,不不不不会使会使会使会使TMR2TMR2清清清清0 0,而是使,而是使,而是使,而是使TMR2TMR2维持原状。维持原状。维持原状。维持原状。10.4.4 TMR210.4.4 TMR2的初始化的初始化的初始化的初始化 关于关于关于关于TMR2TMR2的初始化编程方法,应该根据的初始化编程方法,应该根据的初始化编程方法,应该根据的初始化编程方法,应该根据TMR2TMR2具具具具体的应用背景而定。下面推荐

32、一个程序片段供参考:体的应用背景而定。下面推荐一个程序片段供参考:体的应用背景而定。下面推荐一个程序片段供参考:体的应用背景而定。下面推荐一个程序片段供参考: CLRF T2CON ;CLRF T2CON ;关闭关闭关闭关闭TMR2,TMR2,预分频比预分频比预分频比预分频比=1:1,=1:1,后分频比后分频比后分频比后分频比=1:1=1:1 CLRF TMR2 ; CLRF TMR2 ;清除清除清除清除TMR2TMR2计数寄存器计数寄存器计数寄存器计数寄存器 CLRF INTCON ;CLRF INTCON ;禁止所有中断禁止所有中断禁止所有中断禁止所有中断 BSF STATUS,RP0 ;

33、BSF STATUS,RP0 ;选定体选定体选定体选定体1 1为当前体为当前体为当前体为当前体 CLRF PIE1 ;CLRF PIE1 ;禁止所有外设模块中断禁止所有外设模块中断禁止所有外设模块中断禁止所有外设模块中断 CLRF PIE2 CLRF PIE2 BCF STATUS,RP0 ; BCF STATUS,RP0 ;选定体选定体选定体选定体0 0为当前体为当前体为当前体为当前体 CLRF PIR1 ;CLRF PIR1 ;清除所有外设模块中断标志位清除所有外设模块中断标志位清除所有外设模块中断标志位清除所有外设模块中断标志位 CLRF PIR2 CLRF PIR2 MOVLW 72H

34、MOVLW 72H ; ;设置后分频比设置后分频比设置后分频比设置后分频比=1:15=1:15, ,预分频比预分频比预分频比预分频比=1:16=1:16 MOVWF T2CON ; MOVWF T2CON ;并且暂时不打开并且暂时不打开并且暂时不打开并且暂时不打开TMR2TMR2 BSF T2CON,TMR2ON ;BSF T2CON,TMR2ON ;打开打开打开打开TMR2TMR2,并且开始递增并且开始递增并且开始递增并且开始递增;TMR2;TMR2的中断被禁止掉,通过查询溢出标志位来利用的中断被禁止掉,通过查询溢出标志位来利用的中断被禁止掉,通过查询溢出标志位来利用的中断被禁止掉,通过查询

35、溢出标志位来利用TMR2TMR2模块模块模块模块T2_OVFL_WAITT2_OVFL_WAIT BTFSS PIR1,TMR2IF ; BTFSS PIR1,TMR2IF ;检测检测检测检测TMR2TMR2是否发生溢出中断是否发生溢出中断是否发生溢出中断是否发生溢出中断 GOTO T2_OVFL_WAIT ;GOTO T2_OVFL_WAIT ;否否否否! !继续查询继续查询继续查询继续查询 BCF PIR1,TMR2IF ;BCF PIR1,TMR2IF ;清除标志位,继续下面的程序清除标志位,继续下面的程序清除标志位,继续下面的程序清除标志位,继续下面的程序 .10.5 10.5 定时器

36、定时器定时器定时器TMR2TMR2的应用举例的应用举例的应用举例的应用举例 TMR2TMR2的应用方法比较灵活,有多种不同的变化的应用方法比较灵活,有多种不同的变化的应用方法比较灵活,有多种不同的变化的应用方法比较灵活,有多种不同的变化可以选择。可以选择。可以选择。可以选择。 例如,使用或不使用预分频器;使用或不使用后例如,使用或不使用预分频器;使用或不使用后例如,使用或不使用预分频器;使用或不使用后例如,使用或不使用预分频器;使用或不使用后分频器;同时使用或不使用预分频器和后分频器,使分频器;同时使用或不使用预分频器和后分频器,使分频器;同时使用或不使用预分频器和后分频器,使分频器;同时使用

37、或不使用预分频器和后分频器,使用或不使用周期寄存器;使用或不使用用或不使用周期寄存器;使用或不使用用或不使用周期寄存器;使用或不使用用或不使用周期寄存器;使用或不使用TMR2TMR2寄存器赋寄存器赋寄存器赋寄存器赋值方式;使用或不使用中断功能等等。值方式;使用或不使用中断功能等等。值方式;使用或不使用中断功能等等。值方式;使用或不使用中断功能等等。 例例例例11.111.1路标导向灯路标导向灯路标导向灯路标导向灯 实验项目实现的功能实验项目实现的功能 把演示板上的把演示板上的8只只LED设计设计为依次发光。也就是在图为依次发光。也就是在图4.9所示所示的的15个显示状态之间轮流切换,个显示状态

38、之间轮流切换,并且在各个状态之间切换时,插并且在各个状态之间切换时,插入一个入一个256 ms的延时。的延时。 例如,在例如,在“此路通向邮电学此路通向邮电学校校”8个字后面安置个字后面安置8只背光灯。只背光灯。 在在在在电电电电路路路路工工工工作作作作时时时时,按按按按照照照照“ “此此此此路路路路通通通通向向向向邮邮邮邮电电电电学学学学校校校校” ”的的的的顺顺顺顺序序序序,它它它它们们们们依依依依次次次次被被被被点点点点亮亮亮亮,从从从从而而而而起起起起到到到到为为为为行行行行人人人人引引引引导导导导指指指指路路路路的的的的作作作作用用用用。在在在在8 8只只只只灯灯灯灯全全全全部部部部

39、被被被被点点点点亮亮亮亮后后后后,再再再再同同同同熄熄熄熄同同同同亮亮亮亮闪闪闪闪烁烁烁烁3 3次。然后开始下一个轮回,并且周而复始。次。然后开始下一个轮回,并且周而复始。次。然后开始下一个轮回,并且周而复始。次。然后开始下一个轮回,并且周而复始。 硬件电路规划硬件电路规划硬件电路规划硬件电路规划 路路路路标标标标导导导导向向向向灯灯灯灯电电电电路路路路如如如如图图图图所所所所示示示示。RCRC振振振振荡荡荡荡器器器器为为为为电电电电路路路路提提提提供供供供系统时钟信号,其频率按系统时钟信号,其频率按系统时钟信号,其频率按系统时钟信号,其频率按4MHz4MHz计算。计算。计算。计算。 软件设计

40、思路软件设计思路软件设计思路软件设计思路 TMR2TMR2的设置:的设置:的设置:的设置: 本本本本例例例例同同同同时时时时利利利利用用用用预预预预分分分分频频频频器器器器和和和和后后后后分分分分频频频频器器器器,并并并并且且且且将将将将两两两两个个个个分分分分频频频频器器器器的的的的分分分分频频频频比比比比都都都都设设设设置置置置为为为为1:161:16;TMR2TMR2的的的的初初初初值值值值为为为为00H00H,那么那么那么那么PR2PR2的的值可以按以下公式计算:的的值可以按以下公式计算:的的值可以按以下公式计算:的的值可以按以下公式计算: 16*(PR2+1)* 16=T16*(PR

41、2+1)* 16=T 因为因为因为因为TMR2TMR2的能产生的最大延时为:的能产生的最大延时为:的能产生的最大延时为:的能产生的最大延时为: 16*16*1616*25665ms*25665ms。 所所所所以以以以不不不不能能能能直直直直接接接接实实实实现现现现256ms256ms的的的的延延延延时时时时,在在在在此此此此采采采采用用用用循循循循环环环环的的的的方方方方式式式式实实实实现现现现256ms256ms的的的的延延延延时时时时。即即即即先先先先用用用用TMR2TMR2产产产产生生生生64ms64ms的的的的延延延延时时时时,然后连续调用然后连续调用然后连续调用然后连续调用4 4次,

42、产生一个次,产生一个次,产生一个次,产生一个256ms256ms的延时。从的延时。从的延时。从的延时。从 16*(PR2+1)*16=6400016*(PR2+1)*16=64000 得到:得到:得到:得到: PR2=249=F9HPR2=249=F9HT2CONT2CON的的的的设置设置设置设置 两两两两个个个个分分分分频频频频器器器器的的的的分分分分频频频频比比比比都都都都设设设设置置置置为为为为1:161:16,并并并并且且且且暂暂暂暂时时时时不不不不开开开开启启启启TMR2TMR2。 1 1 1 1 1 1 1 0 1 1 0 1 =0111 1011=7BH=0111 1011=7B

43、HLEDLED显示驱动码的获取采用查表法。显示驱动码的获取采用查表法。显示驱动码的获取采用查表法。显示驱动码的获取采用查表法。 本本本本例例例例不不不不开开开开放放放放CPUCPU对对对对TMR2TMR2的的的的中中中中断断断断响响响响应应应应,而而而而是是是是利利利利用用用用了查询方式。了查询方式。了查询方式。了查询方式。 程序流程图程序流程图程序流程图程序流程图 如图所示,包含主程序和子程序的流程图如图所示,包含主程序和子程序的流程图如图所示,包含主程序和子程序的流程图如图所示,包含主程序和子程序的流程图。PCL EQU 02H ;PCL EQU 02H ;定义程序计数器低字节寄存器地址定

44、义程序计数器低字节寄存器地址定义程序计数器低字节寄存器地址定义程序计数器低字节寄存器地址STATUS EQU 3H ;STATUS EQU 3H ;状态寄存器地址状态寄存器地址状态寄存器地址状态寄存器地址INTCON EQU 0BH ;INTCON EQU 0BH ;中断控制寄存器地址中断控制寄存器地址中断控制寄存器地址中断控制寄存器地址TMR2 EQU 11H ; TMR2TMR2 EQU 11H ; TMR2寄存器地址寄存器地址寄存器地址寄存器地址PIR1 EQU 0CH ;PIR1 EQU 0CH ;第一中断标志寄存器第一中断标志寄存器第一中断标志寄存器第一中断标志寄存器PIE1 EQU

45、 8CH ;PIE1 EQU 8CH ;第一中断使能寄存器第一中断使能寄存器第一中断使能寄存器第一中断使能寄存器T2CON EQU 12H ;TMR2T2CON EQU 12H ;TMR2控制寄存器控制寄存器控制寄存器控制寄存器PR2 EQU 92H ;PR2 EQU 92H ;周期寄存器周期寄存器周期寄存器周期寄存器PORTC EQU 7H ;PORTC EQU 7H ;端口端口端口端口C C地址地址地址地址TRISC EQU 87H ;TRISC EQU 87H ;端口端口端口端口C C的方向控制地址的方向控制地址的方向控制地址的方向控制地址RP0 EQU 5H ;RP0 EQU 5H ;

46、体选位的位地址体选位的位地址体选位的位地址体选位的位地址Z EQU 2H ;Z EQU 2H ;定义定义定义定义0 0标志位的位地址标志位的位地址标志位的位地址标志位的位地址PR2B EQU PR2B EQU D249D249 ; ;定义为定义为定义为定义为PR2PR2寄存器准备的赋值常寄存器准备的赋值常寄存器准备的赋值常寄存器准备的赋值常COUNT EQU 20H ;COUNT EQU 20H ;定义一个计数器变量寄存器定义一个计数器变量寄存器定义一个计数器变量寄存器定义一个计数器变量寄存器W_BACK EQU 22H ;W_BACK EQU 22H ;定义一个中断保护备份寄存器定义一个中断

47、保护备份寄存器定义一个中断保护备份寄存器定义一个中断保护备份寄存器;-;-主程序主程序主程序主程序- ORG 000H ; ORG 000H ;定义程序存放的起始地址,即复位矢量定义程序存放的起始地址,即复位矢量定义程序存放的起始地址,即复位矢量定义程序存放的起始地址,即复位矢量MAIN NOP ;LCDMAIN NOP ;LCD必需的空操作指令必需的空操作指令必需的空操作指令必需的空操作指令 BSF STATUS,RP0 ;BSF STATUS,RP0 ;设置体设置体设置体设置体1 1为当前体为当前体为当前体为当前体 MOVLW 00H ;MOVLW 00H ;将端口将端口将端口将端口C C

48、设为输出设为输出设为输出设为输出 MOVWF TRISCMOVWF TRISC MOVLW PR2B ; MOVLW PR2B ;将常数将常数将常数将常数PR2BPR2B送周期寄存器送周期寄存器送周期寄存器送周期寄存器PR2PR2 MOVWF PR2 MOVWF PR2 BCF STATUS,RP0 ; BCF STATUS,RP0 ;恢复到文件寄存器的体恢复到文件寄存器的体恢复到文件寄存器的体恢复到文件寄存器的体0 0 MOVLW 7BH ; MOVLW 7BH ;设置设置设置设置T2CONT2CON控制寄存器内容控制寄存器内容控制寄存器内容控制寄存器内容 MOVWF T2CONMOVWF

49、T2CON CLRF COUNT ; CLRF COUNT ;清清清清0 0计数器计数器计数器计数器LOOP MOVF COUNT,0 ;COUNTLOOP MOVF COUNT,0 ;COUNT作为查表地址偏移量作为查表地址偏移量作为查表地址偏移量作为查表地址偏移量 CALL READCALL READ ; ;调用读取显示信息查表子程序调用读取显示信息查表子程序调用读取显示信息查表子程序调用读取显示信息查表子程序 MOVWF PORTC ;MOVWF PORTC ;将查表得到的驱动码送端口将查表得到的驱动码送端口将查表得到的驱动码送端口将查表得到的驱动码送端口RCRC显示显示显示显示 INC

50、F COUNT,1 INCF COUNT,1 MOVLW .15 ; MOVLW .15 ;检查检查检查检查COUNT=15?COUNT=15? SUBWF COUNT,0 SUBWF COUNT,0 BTFSC STATUS,Z ; BTFSC STATUS,Z ;否否否否! !跳一步跳一步跳一步跳一步 CLRF COUNT ;CLRF COUNT ;是是是是! !应该回到应该回到应该回到应该回到0 0 CALL DELAY ; CALL DELAY ;调用调用调用调用4 4次延时子程序次延时子程序次延时子程序次延时子程序 CALL DELAYCALL DELAY CALL DELAY CA

51、LL DELAY CALL DELAY CALL DELAY GOTO LOOP ; GOTO LOOP ;主循环主循环主循环主循环;-TMR2;-TMR2硬件延时子程序硬件延时子程序硬件延时子程序硬件延时子程序(64 MS)-(64 MS)-DELAY BCF PIR1,1 ;DELAY BCF PIR1,1 ;清除清除清除清除TMR2TMR2溢出标志位溢出标志位溢出标志位溢出标志位 BSF T2CON,2 ;BSF T2CON,2 ;启动启动启动启动TMR2TMR2开始计数开始计数开始计数开始计数LOOP1 BTFSS PIR1,1 ;LOOP1 BTFSS PIR1,1 ;检测检测检测检

52、测TMR0TMR0溢出标志位溢出标志位溢出标志位溢出标志位=1=1否否否否 GOTO LOOP1 ;GOTO LOOP1 ;否否否否! !再循环回去检测再循环回去检测再循环回去检测再循环回去检测 RETURN ;RETURN ;是是是是! !子程序返回子程序返回子程序返回子程序返回;-;-读取显示信息的查表子程序读取显示信息的查表子程序读取显示信息的查表子程序读取显示信息的查表子程序- -READ ADDWF PCL,1 ;READ ADDWF PCL,1 ;地址偏移量加当前地址偏移量加当前地址偏移量加当前地址偏移量加当前PCPC值值值值 RETLW B00000001 ;RETLW B000

53、00001 ;显示信息码,下同显示信息码,下同显示信息码,下同显示信息码,下同 RETLW B00000011 ;RETLW B00000011 ; RETLW B00000111 ; RETLW B00000111 ; RETLW B00001111 ; RETLW B00001111 ; RETLW B00011111 ; RETLW B00011111 ; RETLW B00111111 RETLW B00111111 RETLW B01111111 RETLW B01111111 RETLW B11111111 RETLW B11111111 RETLW B00000000 ; RET

54、LW B00000000 ; RETLW B11111111 ; RETLW B11111111 ; RETLW B00000000 RETLW B00000000 RETLW B11111111 ; RETLW B11111111 ; RETLW B00000000 ; RETLW B00000000 ; RETLW B11111111 ; RETLW B11111111 ; RETLW B00000000 ; RETLW B00000000 ; END ; END ;通知汇编器源程序结束通知汇编器源程序结束通知汇编器源程序结束通知汇编器源程序结束用用C C语言编写语言编写#include#

55、include char pr2_b,count;char pr2_b,count;static volatile char static volatile char table15=0x01,0X03,0X07,0x0f,0X1f,0x3f,table15=0x01,0X03,0X07,0x0f,0X1f,0x3f,0x7f, 0xff,0x00,0xff,0x00,0xff,0x00,0xff;0x7f, 0xff,0x00,0xff,0x00,0xff,0x00,0xff;void tmr2_delay()void tmr2_delay() TMR2IF=0; TMR2IF=0; TMR

56、2ON=1; TMR2ON=1;loop2:loop2: if(TMR2IF=0) if(TMR2IF=0) gotogoto loop2; loop2; return; return; void main()void main() pr2_b=250; pr2_b=250; TRISC=0; TRISC=0; PR2=pr2_b; PR2=pr2_b; T2CON=0x7B; T2CON=0x7B; count=0; count=0;loop:loop: PORTC= PORTC=tablecounttablecount; ; count+=1; count+=1; if(countif(count15)goto 15)goto loop1;loop1; count=0; count=0;loop1:loop1: tmr2_delay(); tmr2_delay(); tmr2_delay(); tmr2_delay(); tmr2_delay(); tmr2_delay(); tmr2_delay(); tmr2_delay(); gotogoto loop; loop;

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号