![MSP430F249的定时器计数器_第1页](http://file3.renrendoc.com/fileroot_temp3/2022-4/2/d6a36259-2b3d-449d-8b60-fe9a50781dfd/d6a36259-2b3d-449d-8b60-fe9a50781dfd1.gif)
![MSP430F249的定时器计数器_第2页](http://file3.renrendoc.com/fileroot_temp3/2022-4/2/d6a36259-2b3d-449d-8b60-fe9a50781dfd/d6a36259-2b3d-449d-8b60-fe9a50781dfd2.gif)
![MSP430F249的定时器计数器_第3页](http://file3.renrendoc.com/fileroot_temp3/2022-4/2/d6a36259-2b3d-449d-8b60-fe9a50781dfd/d6a36259-2b3d-449d-8b60-fe9a50781dfd3.gif)
![MSP430F249的定时器计数器_第4页](http://file3.renrendoc.com/fileroot_temp3/2022-4/2/d6a36259-2b3d-449d-8b60-fe9a50781dfd/d6a36259-2b3d-449d-8b60-fe9a50781dfd4.gif)
![MSP430F249的定时器计数器_第5页](http://file3.renrendoc.com/fileroot_temp3/2022-4/2/d6a36259-2b3d-449d-8b60-fe9a50781dfd/d6a36259-2b3d-449d-8b60-fe9a50781dfd5.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第5章MSP430单片机的定时器/计数器在学习MSP430F249勺定时器之前,我们先回顾一下MSP430F249勺时钟系统。MSP430F249勺基础时钟模块具有3个振荡器,这3个振荡器分别是LFXT低频振荡器(32768H0、XT2W频振荡器(400k16MHz)和DCOft部数字控制振荡器(约)。这3个振荡器都可以通过软件设定进行1/2/4/8分频,产生单片机工作需要的3个时钟信号:主时钟MCLK子系统时钟SMCL屋口辅助时钟ACLKMCLK可以通过编程选择3个振荡器(LFXT1XT2、DCQ之一,或它们1/2/4/8分频后作为其信号源;SMCLKT以选择2个振荡器(XT2DCQ,或它们
2、1/2/4/8分频后作为其信号源;ACLKR能由LFXT时钟信号或1/2/4/8分频后作为其信号源。在MSP430F24和片机的大部分内部设备中,都能选择上述3种时钟信号MCLKSMCLKOACLK乍为时钟源并对上述时钟信号再进行1/2/4/8分频,应用极其灵活。低频振荡器主要用来降低能量消耗(如使用电池供电的系统),高频振荡器用来对事件做出快速反应或者供CPU!行大量运算。我们可以根据需要选择合适的振荡器,也可以在不需要时关闭一些振荡器,节省功耗。看门狗定时器看门狗定时器WDT实际上是一个特殊的定时器,其主要功能是当单片机软件出现故障(例如外部干扰引起单片机程序跑飞或陷入死循环)时,能使系统
3、重新启动。看门狗定时器的工作原理就是发生故障的时间满足规定的定时时间后,产生一个非屏蔽中断,使系统复位。当不使用看门狗功能时,看门狗定时器可以作为内部定时器使用。1)看门狗模式单片机系统上电后,WDT模块默认作为看门狗模式,默认使用内部时钟源DCOCLK经过32768个时钟周期后(若DCOCL劭1MHz,则看门狗时间间隔约为32ms左右)系统复位。因此,用户使用时,一般在程序中先停止看门狗功能,然后根据要求配置好,再作为看门狗模式或者定时器模式使用。作为看门狗模式使用时,通过编写程序使WDT的定时时间略大于程序循环执行一次的时间,并且程序执行过程中有对看门狗计数器清零的指令,使计数器重新计数,
4、因此程序正常运行时,就会在WDT定时时间到之前对WDT清零(俗称定时喂狗),不会产生WDT溢出。如果由于干扰等原因使得程序跑飞,就不会在WDT定时时间到之前执行WDT清零指令,则WDT就会产生溢出,从而产生系统复位,CPU重新从头开始执行用户程序,这样程序就可以回到正常运行状态。为了说明看门狗模式的工作原理,我们来分析下列程序片段:voidmain(void)WDTCTL=WDTPW+WDTHOLD;-"-8-9二-为MM-WU158P1.0/TACLK/CAOUTP4.0/IB0P1.1/TA0P4.1/TB1P1.2/TA1P4.2/TB2P1.3/TA2P4.3/TB3P1.4
5、/SMCLKP4.4/TB4P1.5/TA0P4.5/TB5P1.6/TA1P4.6/TB6P1.7/TA2P4.7/TBCLKP2.0/ACLK/CA2P5.0/UCB1STE/UCA1CLKP2.1/TAINCLK/CA3P5.1/UCB1SIMO/UCB1SDAP2.2/CAOUT/TA0/CA4P5.2/UCB1SOMI/UCB1SCLP2.3/CA0/TA1P5.3/UCB1CLK/UCA1STEP2.4/CA1/TA2P5.4/MCLKP2.5/ROSC/CA5P5.5/SMCLKP2.6/ADC12CLK/CA6P5.6/ACLKP2.7/TA0/CA7P5.7/TBOUTH/S
6、VSOUTP3.0/UCB0STE/UCA0CLKP6.0/A0P3.1/UCB0SIMO/UCB0SDAP6.1/A1P3.2/UCB0SOMI/UCB0SCLP6.2/A2P3.3/UCB0CLK/UCA0STEP6.3/A3P3.4/UCA0TXD/UCA0SIMOP6.4/A4P3.5/UCA0RXD/UCA0SOMIP6.5/A5P3.6/UCA1TXD/UCA1SIMOP6.6/A6P3.7/UCA1RXD/UCA1SOMIP6.7/A7/SVSINXT2OUTVEREF+XT2INVREF+RST/NMIVREF-/VEREF-TCKXINTDI/TCLKXOUTTDO/TDIA
7、VCCTMSAVSSXT2OUT52XT2IN535456646236fff二工二Ff二二F-TFNHH.1°7FF32768HzACLKTAO"SX1CLK-10K1Sioc<CC3ACC2BGNDvecDVIOGF-7J;RrMsrCaDtureMizdeEQUQ>fl-tilTin©TAARC£QUCCcuTt>SetTAFGCCHUCCR1CCR2总3TmerClow-|>S/nc|1OUTuTimrClockTASC-2CompaFalQir2EQUSSmtTACCR2COllFGcS*tO-1_OUT2Signa:::
8、DOUTh/ODsn.eaet定时器A寄存器表5-1定时器A的相关寄存器在舁厅P地址简写寄存器名称1160HTACTL定时器A控制寄存器2162HTACCTL0捕获/比较控制寄存器03164HTACCTL1捕获/比较控制寄存器14166HTACCTL2捕获/比较控制寄存器25170HTAR定时器A计数器6172HTACCR0捕获/比较寄存器07174HTACCR1捕获/比较寄存器18176HTACCR2捕获/比较寄存器2912EHTAIV中断向量寄存器定时器A控制寄存器TACTL15109876543210未用TASSELxIDxMCx未用TACLRTAIETAIFGTASSEL1TASSEL
9、0时钟源说明宏定义00TACLK外部引脚输入时钟TASSEL_001ACLK辅助时钟TASSEL_110SMCLK子系统时钟TASSEL_211INCLKTACLK勺反相暗号TASSEL_3分频系数(x=0、1)ID1、ID0分频系数出义00直通ID_0012分频ID_1104分频ID2118分频ID3MCx定时器模式选择(x=0、1)MC1、MC0模式选择说明宏定义00停止MC001增计数模式计数值上限为TACCR0MC_110连续计数模式计数值上限为FFFFHMC_211增减计数模式计数值上限为TACCR0MC_3IDxTACLR定时器A清除位,该位置位将计数器TAR清零、分频系数清零、计
10、数模式置为增计数模式。TACLR由硬件自动复位,具读出始终为00定时器在下一个有效输入沿开始工作。TAIE定时器A中断允许位,0中断禁止;1中断允许TAIFG定时器A中断标志位,0没有中断;1中断标志建立。增计数模式:当定时器由CCR0计数到到0时,TAIFG置位。连续计数模式:当定时器由0FFFFH#数到0时,TAIFG置位。增/减计数模式:当定时器由CCR0减计数到0时,TAIFG置位。定时器A的16位计数器TAR150TARx这是计数器的主体,内部可读写。如果要写入TAR计数值或用TACLK控制寄存器中的控制位来改变定时器工作(特别是修改输入选择位、输入分频器和定时器清除位时),修改时应
11、先停止定时器,否则输入时钟和软件所用的系统时钟异步可能引起时间竞争,使定时器响应出错。定时器A有3个捕获/比较模块,每个模块都有自己的控制寄存器TACCTL02CMx捕获/比较控制寄存器TACCTLx(x=R1、2)1514131211109876543210CMxCCISxSCSSCCICAPOUTMODxCCIECCIOUTCOVCCIFG捕获模式(x=0、1)CM1、CM0捕获模式宏定义00禁止捕获CM_001上升沿捕获CM_110下降沿捕获CM_211上升沿与下降沿都捕获CM_3CCIS捕获/比较输入信号选择CCIS1CCIS0输入信号选择义00CCIxA(x=0、1、2)CCIS_0
12、01CCIxB(x=0、1、2)CCIS_110GNDCCIS_211VCCCCIS_3SCS同步捕获源选择,0异步捕获;1同步捕获。异步捕获模式允许在请求时立即将CCIFG置位和捕获定时器值,适用于捕获信号的周期远大于定时器时钟周期的情况。但是,如果定时器时钟和捕获信号发生时间竞争,则捕获寄存器的值可能出错。在实际中经常使用同步捕获模式,捕获事件发生时,CCIFG置位和捕获定时器值将与定时器时钟信号同步。SCCI同步捕获/比较输入位,仅用于比较模式。比较相等信号EQUx将选择中的捕获、比较输入信号CCIx(CCIxA,CCIxB,VCCGND)进行锁存,这样当计数器的值继续变化时,锁存器中的
13、值仍然保持不变,然后可以通过SCC位读出。CAP模式选择位,0比较模式;1捕获模式。OUTMODx输出模式(x=0、1、2)表5-2输出模式OUTMOD2OUTMOD1OUTMOD0模式名称说明宏定义000输出输出彳百号由TACCTLx勺OUT决定OUTMOD_0001置位当计数值达到TACCRx寄存器中的值时,输出信号为高电平并保持,直到定时器复位OUTMOD_1010翻转/复位当计数值达到TACCRx寄存器中的值时,输出信号翻转;当计数值达到TACCR0寄存器中的值时,输出/号复位。OUTMOD_2011置位/复位当计数值达到TACCRx寄存器中的值时,输出信号置位;当计数值达到TACCR
14、0寄存器中的值时,输出/号复位。OUTMOD_3100翻转当计数值达到TACCRx寄存器中的值时,输出信号翻转。OUTMOD_4101复位当计数值达到TACCRx寄存器中的值时,输出信号复位。OUTMOD_5110翻转/置位当计数值达到TACCRx寄存器中的值时,输出信号翻转;当计数值达到TACCR0寄存器中的值时,输出/OUTMOD_6号置位。111复位/置位当计数值达到TACCRx寄存器中的值时,输出信号复位;当计数值达到TACCR0寄存器中的值时,输出/号置位。OUTMOD_7CCIE捕获/比较中断使能位,0中断禁止;1中断允许CCI捕获/比较输入位,用来读取选择的输入信号。OUT输出位
15、,如果OUTMODx设为000时,那么由该位决定输出到OUTx的信号。0输出低电平;1输出高电平。COV捕获溢出标志。当CAP=1时,选择捕获模式,如果捕获寄存器的值被读出前再次发生捕获事件,则COV置位。读捕获寄存器时不会使溢出标志复位,须用软件复位。CCIFG捕获/比较中断标志位。捕获模式:寄存器CCR0捕获了定时器TAR值时置位。比较模式:定时器TAR值等于寄存器CCR0值时置位。定时器A中断矢量寄存器TAIV1543100TAIVx。中断矢量值确定申请TAIV中断的中断源,具体含义见表5-5TAIVxTAIV的值中断源中断标志中断优先级0000没有中断高0012捕获/比较器1TACCR
16、1_CCIFG0104捕获/比较器2TACCR2_CCIFG0116保留1008保留10110定时器溢出TAIFG低11012保留11114保留2.定时器工作原理定时器的4种工作模式:(1)停止模式:定时器停止工作。(2)增计数模式:如果定时器原来处于停止模式,设置增计数模式会同时启动计数器TAR开始计数。当计数值达到TACCR0寄存器的值时,中断标志TACCR0_CCIFG位。当下一个计数时钟到来时,计数器TAR的值变为0,重新开始新一轮计数。因此定时器的计数周期由TACCR0勺值决定。由于必须用TACCR0寄存器存放计数的最大值,所以增计数模式比连续模式多占用了TACCR0J存器。在增计数
17、期间还可以设置CCR12来产生中断标记,产生PWM等信号。(3)连续计数模式:连续计数模式与增计数模式的区别是连续模式不占用TACCR0U存器。当CCRx(x=0、1、2)寄存器的值与TAR的值相等时,若此时CCRx®处于中断允许的话,则产生相应的中断标志CCIFGx而TAR的中断标志TAIFGB则在TAR计数值从FFFFH?专为0时产生中断标志TAIFG定时器A连续模式计数启动后,TAR的值开始从0-FFFFH0FFFFW断计重复计数,直至软件控制其停止计数为止。(4)增减计数模式:增减计数模式也要用到TACCR0?存器,定时器启动后,计数值先从0增加到TACCR0J存器中的值,然
18、后计数器又开始减少,减少到0后,计数器又递增,如此周而复始。在增减计数模式一个周期中,中断标志位TAIF倒口TACCR0_CCIFG置位一次。当计数值达到最大值TACCR0勺值时,中断标志TACCR0_C&F置位;当计数值递减到0时,中断标志TAIFG置位。增减模式在定时器周而不是0FFFFH且需要产生对称的脉冲时使用。例如,两个输出驱动一个H桥时不能同时为高,增减模式支持在输出信号之间有死区时间的应用。定时器工作原理说明:(1)比较模式:这是定时器的默认模式。如果事先设置好定时器比较值TACCRXx=R1、2),并开启定时器中断,当TAR的值增到TACCRX勺时候,中断标志位CCIF
19、Gx(x=0、1、2)置1,进入相应的中断服务程序。比较模式常用于产生PWM信号或设置给定时间间隔中断。(2)捕获模式:当TACCTLXx=0、1、2)控制寄存器中的CAP置位时,则相应的TACCR处于捕获模式。捕获源可以由CCIS破择CCIxA,CCIxB,GND,VCC可以利用外部信号的上升沿、下降沿或上升下降沿触发,完成捕获后相应的捕获标志位CCIFGx®1。当捕获事件发生时,硬件自动将计数器TAR的值拷贝到TACCR悬存器中,同时中断标志CCIFGxS位。捕获模式主要用于测量脉冲周期、频率、速度等。(3)输出模式:输出模式由OUTMODx位来确定,如表5-2所示。模式0用于电
20、平输出,由OUT位来控制TAx(x=0、1、2)管脚的高低电平输出;模式1和模式5为单脉冲输出,可以用来代替单稳态电路产生单脉冲波形;模式3和模式7用来产生脉宽调制信号(PWM信号);模式4为可变频率或移相输出;模式2和模式6为带死区的PWM模式,广泛用于逆变器、开关电源、变频调速和斩波器等高效率的功率变换应用场合。图定时器A处于增计数模式BOW EWf ECHJlEOU1 EOUOTAT©Wnwl E-htIh定时器工作模式说明:(1)定时器A工作在增计数模式下,TACCR作为周期寄存器,TACC”乍为比较寄存器,不同的输出模式产生的输出波形如图所示图定时器A处于连续模式(2)定时
21、器A工作在连续模式下,TACCR0TACCR作为比较寄存器,不同的输出模式产生的输出波形如图所示。图定时器A处于增减计数模式(3)定时器A工作在增/减计数模式下,TACCR昨为周期寄存器,TACC1BTACC2作为比较寄存器,不同的输出模式产生的输出波形如图所示。定时器A的中断说明:定时器A有2个中断向量,一个单独分配给捕获比较寄存器CCR0另一个作为共用的中断向量用于定时器溢出和其他的捕获比较寄存器(CCR1和CCR2。CCR0中断向量具有最高的优先级,CCR08于定义增计数和增减计数模式的周期。CCR0I勺中断标志TACCR0_CCIFGE执行中断服务程序时能自动复位。CCR1CCR2和定
22、时器溢出共用另一个中断向量,属于多源中断,对应的中断标志为TACCR1_CCIFGTACCR2_CCIFGTAIFG1在读中断向量字TAIV后,自动复位。如果不访问TAIV寄存器,则不能自动复位,须用软件清除;如果相应的中断允许位为零(不允许中断),则将不会产生中断请求,但中断标志仍存在,这时须用软件清除实例定时器A定时1秒任务要求:利用定时器A产生设定的时间间隔中断,在中断服务程序中切换LED灯的亮灭,亮1s灭1s。分析说明:定时器A的时钟源可以选择为SMCLKACLK和外部引脚输入(TACLKINCLK,一般选择为SMCLKf口ACLKACLK为低频晶振32768Hz及1/2/4/8分频,
23、定时器A可以再对ACLK1彳T1/24/8分频,定时器A的时基最小为1/32768秒(约30us),最大为64分频后即,因此定时器A的定时范围为2s(对应时基30us)和128s(对应时基)。SMCLKM选择XT2和内部DCO作为时钟源,若SMCLK选才?XT2(例如8MHz),则定时器A的时基最小为,最大为64分频后即8us,因此定时器A的定时范围为(对应时基)和524ms(对应时基8ms)。总而言之,要求定时器时间间隔小于几百毫秒时,定时器A的时钟源采用SMCLKSMCLK-般选取XT2作为时钟源;定时时间问隔几百毫秒至几十秒应采用ACLK(或者适当分频)作为定时器A的时钟源。1)硬件电路
24、设计引脚接LED发光二极管,同时用虚拟示波器观察引脚电平变化。低频晶振采用32768Hz的晶振,获得稳定的ACLK时钟源。硬件电路图如图5-7所示,XT2接8MHz晶振(XT2频率范围为400k16MHz),两个22pF匹配电容,供MCLKSMCLK®用。一般LED发光二极管管压降,电流510mA,因此限流电阻取300欧。R1300C1T22pFXT2OUTX2C28MHzTF22pFXT2INP2.6/ADC12CLK/CA6P2.7/TA0/CA7P5.6/ACLKP5.7/TBOUTH/SVSOUT12XT2OUT525456XT2IN 53 58 57 '55-142
25、L1,1s220lL-kLk27一28kkk 一32LLL 一P1.0/TACLK/CAOUTP1.1/TA0P1.2/TA1P1.3/TA2P1.4/SMCLKP1.5/TA0P1.6/TA1P1.7/TA2P2.0/ACLK/CA2P2.1/TAINCLK/CA3P2.2/CAOUT/TA0/CA4P2.3/CA0/TA1P2.4/CA1/TA2P2.5/ROSC/CA5P4.0/TB0P4.1/TB1P4.2/TB2P4.3/TB3P4.4/TB4P4.5/TB5P4.6/TB6P4.7/TBCLKP5.0/UCB1STE/UCA1CLKP5.1/UCB1SIMO/UCB1SDAP5.2
26、/UCB1SOMI/UCB1SCLP5.3/UCB1CLK/UCA1STEP5.4/MCLKP5.5/SMCLKP3.0/UCB0STE/UCA0CLKP3.1/UCB0SIMO/UCB0SDAP3.2/UCB0SOMI/UCB0SCLP3.3/UCB0CLK/UCA0STEP3.4/UCA0TXD/UCA0SIMOP3.5/UCA0RXD/UCA0SOMIP3.6/UCA1TXD/UCA1SIMOP3.7/UCA1RXD/UCA1SOMIP6.0/A0P6.1/A1P6.2/A2P6.3/A3P6.4/A4P6.5/A5P6.6/A6P6.7/A7/SVSINXT2OUT XT2IN RST
27、/NMI TCK TDI/TCLK TDO/TDI TMSVEREF+ VREF+ VREF-/VEREF- XINXOUT AVCC AVSS图实例电路图2)程序设计MSP430F24狎片机的程序运行主时钟MCLK=DCO=定时器A采用增计数模式,定时器A的时钟源为ACLK=32768Hz时基单位为1/32768秒,设置CCR0=32768,则定时时间间隔1s。#include<>voidmain(void)WDTCTL=WDTPW+WDTHOLDjW看门狗P1DIR|=0x01;/输出CCTL0=CCIE;/CCR0中断允许CCR0=32768;定时时间问隔1sTACTL=TA
28、SSEL_1+MC_1;/定时器A时钟源为ACLK,曾计数模式_BIS_SR(LPM0_bits+GIE);/LPM0模式,总中断允许#pragmavector=TIMERA0_VECTOR_interruptvoidTimer_A(void)/定时器A0中断服务程序1一P1OUTA=0x01;/取反3)仿真与结果分析程序虽然很短,但是它包含了定时器的基本使用方法。使用定时器前,先设置好控制寄存器TACTL时钟源选择、计数模式选择、中断允许和定时时间问隔CCR0勺值。增计数模式,定时器A的计数值达到CCR0TACCR0_CCIFG断标志建立,CCR0+断为单源中断,CPU响应中断,进入定时器A
29、0中所服务程序后自动清除中断标志TACCR0_CCIFGS中断服务程序中,对取反,得到周期2s的信号,其中高电平1s,低电%1s,如图所示。仿真时设置参数MCLK=(Default)ACLK=32768Hz图实例仿真结果图实例定时器A产生4路周期信号任务要求:利用定时器A产生4路周期信号,周期分别为4s、2s、1s和,四路周期信号分别从和的A0A3输出。分析说明:定时器A有3个捕获比较寄存器CCR0CCR1和CCR2若设置定时器A工作在连续模式,利用3个比较器可以获得3路不同的周期信号,再利用定时器溢出中断可以再输出1路周期信号。因此,定时器A可以很方便的产生4路时间间隔不同的周期信号。1)硬
30、件电路设计硬件电路如图所示,用虚拟示波器观察四路引脚电平变化R1300XT2OUTU112 1315.,.5 1 c-1P1.1/TA0P1.2/TA1P1.3/TA2P1.4/SMCLKP1.5/TA0P1.6/TA1P1.7/TA2P2.0/ACLK/CA2P2.1/TAINCLK/CA3P2.2/CAOUT/TA0/CA4P2.3/CA0/TA1P2.4/CA1/TA2P2.5/ROSC/CA5 P2.6/ADC12CLK/CA6P2.7/TA0/CA720pfC2X2 8MHzXT2INXT2OUT52XT2IN 5357 55 5456P4.1/TB1P4.2/TB2P4.3/TB3
31、P4.4/TB4P4.5/TB5P4.6/TB6P4.7/TBCLKP5.0/UCB1STE/UCA1CLKP5.1/UCB1SIMO/UCB1SDAP5.2/UCB1SOMI/UCB1SCLP5.3/UCB1CLK/UCA1STEP5.4/MCLKP5.5/SMCLKP5.6/ACLKP5.7/TBOUTH/SVSOUTP3.0/UCB0STE/UCA0CLKP3.1/UCB0SIMO/UCB0SDAP3.2/UCB0SOMI/UCB0SCLP3.3/UCB0CLK/UCA0STEP3.4/UCA0TXD/UCA0SIMOP3.5/UCA0RXD/UCA0SOMIP3.6/UCA1TXD/U
32、CA1SIMOP3.7/UCA1RXD/UCA1SOMIP6.0/A0P6.1/A1P6.2/A2P6.3/A3P6.4/A4P6.5/A5P6.6/A6P6.7/A7/SVSINXT2OUT XT2IN RST/NMI TCK TDI/TCLKTDO/TDI TMSVEREF+ VREF+ VREF-/VEREF-XIN XOUTAVCC AVSSx1/ 功能选择/ 输出/ CCR0翻转,中断允许/ CCR1翻转,中断允许/ CCR2翻转,中断允许定时器A时钟源为ACLK连续模式,中断允许/ LPM0模式,总中断允许/定时器A0中断服务程序/周期2s/ TAIV中断矢量图实例电路图2)程序设
33、计MSP430F24狎片机的程序运行主时钟MCLK=DCO=定时器A采用连续模式,定时器A的时钟源为ACLK=32768Hz时基单位为1/32768秒,设置CCR0=32768,则定时时间间隔1s(周期2s);CCR1=3276/2,则定时时间问隔(周期1s);CCR2=327688,则定时时间问隔(周期);定时器A溢出中断,定时时间间隔2s(周期4s)。#include<>voidmain(void)WDTCTL=WDTPW+WDTHOLD;/停止看门狗P1SEL|=0x0E;P1DIR|=0x0F;CCTL0=OUTMOD_4+CCIE;CCTL1=OUTMOD_4+CCIE;
34、CCTL2=OUTMOD_4+CCIE;TACTL=TASSEL_1+MC_2+TAIE;_BIS_SR(LPM0_bits+GIE);#pragmavector=TIMERA0_VECTOR_interruptvoidTimer_A0(void)CCR0+=32768;#pragmavector=TIMERA1_VECTOR_interruptvoidTimer_A1(void)定时器A1中断服务程序switch(TAIV)case2:CCR1+=327682;/周期1sbreak;case4:CCR2+=327688;/周期break;case 10: P1OUT A= 0x01;brea
35、k;溢出中断,周期4s3)仿真与结果分析仿真结果见图所示,第1路信号周期为4s,定时器A溢出时间间隔为2s,在中断程序中对取反;第2路信号周期为2s,比较寄存器CCRCK置值为32768,1秒钟对TA0()取反一次;第3路信号周期为1s,比较寄存器CCR1设置值为327682,秒钟对TA1()取反一次;第4路信号周期为,比较寄存器CCR被置值为327688,秒钟对TA2 ()取反一次U h KI I id ULrkll«LE«p M0图实例仿真结果图实例定时器A产生两路PWM信号任务要求:利用定时器A产生占空比75%15%的两路PWM信号,周期均为20ms。分析说明:定时器
36、A有多种信号输出模式,其中输出模式3和模式7用来产生脉宽调制信号(PWM信号),在定时器A的增计数模式,用CCR0空制PWM信号的周期,CCR1CCR2空制占空比,可以得到两路不同占空比的PWM信号。1)硬件电路设计硬件电路如图所示。R1U1121314"16"TT-78T9-4-2520pFC2HI20pFX28MHzXT2OUTXT2IN126-27-3 -52-1S3-34SS-XT2OUT 52XT2IN 53585T57476-P1.0/TACLK/CAOUTP4.0/TB0P1.1/TA0P4.1/TB1P1.2/TA1P4.2/TB2P1.3/TA2P4.3/
37、TB3P1.4/SMCLKP4.4/TB4P1.5/TA0P4.5/TB5P1.6/TA1P4.6/TB6P1.7/TA2P4.7/TBCLKP2.0/ACLK/CA2P5.0/UCB1STE/UCA1CLKP2.1/TAINCLK/CA3P5.1/UCB1SIMO/UCB1SDAP2.2/CAOUT/TA0/CA4P5.2/UCB1SOMI/UCB1SCLP2.3/CA0/TA1P5.3/UCB1CLK/UCA1STEP2.4/CA1/TA2P5.4/MCLKP2.5/ROSC/CA5P5.5/SMCLKP2.6/ADC12CLK/CA6P5.6/ACLKP2.7/TA0/CA7P5.7/T
38、BOUTH/SVSOUTP3.0/UCB0STE/UCA0CLKP6.0/A0P3.1/UCB0SIMO/UCB0SDAP6.1/A1P3.2/UCB0SOMI/UCB0SCLP6.2/A2P3.3/UCB0CLK/UCA0STEP6.3/A3P3.4/UCA0TXD/UCA0SIMOP6.4/A4P3.5/UCA0RXD/UCA0SOMIP6.5/A5P3.6/UCA1TXD/UCA1SIMOP6.6/A6P3.7/UCA1RXD/UCA1SOMIP6.7/A7/SVSINXT2OUTVEREF+XT2INVREF+RST/NMIVREF-/VEREF-TCKXINTDI/TCLKXOUTT
39、DO/TDIAVCCTMSAVSSMSP430F249f-60r-4 r一6W78F-62X132768Hz图实例电路图2)程序设计MSP430F24卯片机的程序运行主时钟MCLK=DCO=SMCLK=XT2=8MHz定时器A时钟源为SMCLK勺8分频(即1MHz),增计数模式。时基单位1us,CCR0=20000则定时时间间隔20ms(即PWM周期=20ms)。两路PWM信号从(TA1和(TA2)t出,设置CCR1=20000*75%=15000则TA1的PWM信号占空比为75%,设置CCR2=20000*15%=3000贝UTA2的PWM信号占空比为15%。#include<>
40、voidmain(void)WDTCTL=WDTPW+WDTHOLD寻吐看门狗BCSCTL2 |= SELS;BCSCTL2=DIVS0+DIVS1;P1DIR |= 0x0C;P1SEL |= 0x0C;CCR0 = 20000;CCTL1 = OUTMOD_7;CCR1 = 15000;CCTL2 = OUTMOD_7;CCR2 = 3000;TACTL = TASSEL_2 + MC_1;_BIS_SR(LPM0_bits);/SMCLK=XT2/SMCLK8分频/和输出/(TA1)和(TA2)输出/PWM周期/CCR1复位/置位/CCR1PWM占空比75%/CCR2复位/置位/CCR2
41、PWM占空比15%/定时器A时钟源为SMCLK,曾计数模式进入低功耗LPM03)仿真与结果分析仿真结果如图所示,第3路信号为TA1输出的PWM信号,周期为20ms,占空比75%;第4路信号为TA2输出的PWM信号,周期为20ms,占空比15%;图实例仿真结果图实例定时器A精确测量输入信号的周期任务要求:利用定时器A精确测量某输入信号的周期,周期范围0999999us。分析说明:利用定时器A的脉冲捕获功能可以精确地测量外部输入信号的脉宽和周期。捕获模式测量输入信号的周期时,一般设置定时器A为连续模式,如果选定的引脚上出现设定的跳变沿(上升沿或者下降沿),那么定时器A的计数值被复制到TACCRXK
42、并且中断标志TACCIFGfiBo在捕获中断程序中读取捕获值,相邻两次捕获值之差就是信号周期。由于事件(上升沿或者下降沿)发生的随机性,注意在需要时使能溢出中断,在溢出中断中记录溢出发生次数,周期=65536x溢出次数+两次捕获值之差。1)硬件电路设计低频晶振采用32768Hz的晶振,XT2接8MHz晶振(XT2频率范围为400k16MHz),两个22pF匹配电容,供SMCL砒用。显示使用6位LED共阳极模块,单片机P4口输出每位数码管的段码,P5口的输出位码。输入信号源采用虚拟仪器中的信号发生器。硬件电路图如图所示。4 p7SEG-MPX6-CA-BLUE5 pU11213P1.0/TACL
43、K/CAOUTP1.1/TA0P1.2/TA1P1.3/TA2P1.4/SMCLKP1.5/TA0P1.6/TA1P1.7/TA2P4MB0P4.1/TB1P4.2/TB2P4.3/TB3P4.4/TB4P4.5/TB5P4.6/TB6P4.7/TBCLK36SIGNAL GENERATORP2.0/ACLK/CA2P5.0/UCB1STE/UCA1CLKP2.1/TAINCLK/CA3P5.1/UCB1SIMO/UCB1SDAP2.2/CAOUT/TA0/CA4 P5.2/UCB1SOMI/UCB1SCLP2.3/CA0/TA1P5.3/UCB1CLK/UCA1STEP2.4/CA1/TA2
44、P5.4/MCLKP2.5/ROSC/CA5P5.5/SMCLKP2.6/ADC12CLK/CA6P5.6/ACLKP2.7/TA0/CA7P5.7/TBOUTH/SVSOUT。,二 c 5U -U po r o 4U u: 4 " r:P3.0/UCB0STE/UCA0CLKP3.1/UCB0SIMO/UCB0SDAP3.2/UCB0SOMI/UCB0SCLP3.3/UCB0CLK/UCA0STEP3.4/UCA0TXD/UCA0SIMOP3.5/UCA0RXD/UCA0SOMIP3.6/UCA1TXD/UCA1SIMOP3.7/UCA1RXD/UCA1SOMIP6.0/A0P6.
45、1/A1P6.2/A2P6.3/A3P6.4/A4P6.5/A5P6.6/A6P6.7/A7/SVSINXT2OUT XT2IN RST/NMI TCK TDI/TCLKTDO/TDITMSVEREF+ VREF+ VREF-/VEREF-XIN XOUT AVCC AVSSSHZ X1276 X 1 3图实例的硬件电路图2)程序设计MSP430F24卯片机的程序运行主时钟MCLK=DCO=SMCLK=XT2=8MHz定时器A时钟源为SMCLK勺8分频(即1MHz),连续计数模式。定时器A使用捕获模式测量信号周期时,可以让主计数器TAR工作在连续计数模式。捕获模块设置TAx(x=02)管脚上升
46、沿触发,每次捕获事件发生后,在捕获中断程序中读取捕获值,相邻两次捕获值之差就是信号周期。对于计数值溢出的情况,可以在溢出中断程序中记录溢出次数,扩展周期信号的测量范围。#include <>#define NUM 16 unsigned int new_cap=0; unsigned int old_cap=0;char N1;long diffNUM;char index=0;long data;/测量次数/溢出次数/周期测量值计算测量周期的平均值charled=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83
47、,0xC6,0xA1,0x86,0x8E,0xff;滋阳极数码管charposition=0x20,0x10,0x08,0x04,0x02,0x01;/a码/值送显示缓冲区函数charled_buf=0,0,0,0,0,0;/显示缓冲区voiddata_to_buf(longdata1)一一chari;for(i=0;i<6;i+)led_bufi=data1%10;低位在前data1=dataV10;voiddisp(void)/动态扫描显示函数chari;unsignedintk;for(i=0;i<6;i+)P4OUT=ledled_bufi;P5OUT=positioni;
48、/if(i=3)/P4OUT&=0X7F;/小数点for(k=0;k<600;k+);/延时P5OUT=0X00;/关显示voidmain(void)chark1;WDTCTL=WDTPW+WDTHOLD;停止看门狗/BCSCTL2 |= SELS;BCSCTL2=DIVS0+DIVS1;P4DIR=0xFF;P5DIR=0xFF;P1SEL = 0x02;/SMCLK=XT2/SMCLK8分频/设置P4口为输出/设置P5口为输出设置(TA0)为输入信号管脚CCTL0=CM_1+SCS+CCIS_0+CAP+CCIE;/上升沿捕获+CCI0A输入+捕获模式+中断允许TACTL=T
49、ASSEL_2+MC_2+TAIE;/懈源为SMCLK连续模式+中断允许_EINT();/总中断允许while(1)if(index=0)/多次测量周期值后,取平均值并更新数据data=0;for(k1=0;k1<NUM;k1+)data+=diffk1;data=data/NUM;data_to_buf(data);/数据送显示缓冲区disp();/动态扫描显示程序/TA0 捕获中断服务程序#pragmavector=TIMERA0_VECTOR_interruptvoidTimerA0(void)new_cap=TACCR0;diffindex=65536*N1+new_cap-ol
50、d_cap;/计算周期值index+;if(index=NUM)index=0;old_cap=new_cap;/保存捕获值N1=0;溢出次数清零#pragmavector=TIMERA1_VECTOR_interruptvoidTimer_A1(void)/TA中断服务程序1一switch(TAIV)case2:break;case4:break;case10:N1+;break;/溢出次数加13)仿真结果与分析图实例仿真结果图输入彳S号50Hz,测量的周期信号显示为20000us;调整输入信号为5Hz,显示为200000us;多调整几次输入信号周期,可以看出测试结果正确。定时器BMSP43
51、0F249I片机的定时器B是具有7个捕获/比较寄存器的16位定时器/计数器。TB可以支持捕获/比较功能、PWM输出和定时器功能,TB的捕获比较寄存器是双缓冲结构,定时器B比定时器A使用更为灵活。定时器B与定时器A的大多数功能相同,它们的主要区别如下:定时器B的长度是可编程的,可编程为8,10,12,16位;定时器B的TBCCRx(x=06)寄存器是双缓冲的,并可以成组工作;所有定时器B的输出可以为高阻抗状态;SCC位功能在定时器B中不存在。定时器B的结构示意图如图所示。定时器B可以通过CNTL0CNTL1位将它配置为8,10,12或16位定时器,相应的最大计数数值分别为0FFh,03FFh,0FFF9口OFFFFh在8,10和12位模式下,对TBR写入数据时,数据的高4位必须为0。时钟源的选择和分频:定时器的时钟源可以是内部时钟源ACLK,SMCLK或外部源TBCLK和INCLK时钟源由TBSSEL0TBSSEL位来选择,所选择的时
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 企业财务战略与市场策略的协调计划
- 提高学生美术表达能力的策略计划
- 消费者关系管理的工作计划
- 2025年中国休闲食品行业市场运行态势、市场规模及发展趋势研究报告
- 七年级下册《一元一次不等式的解法》课件与练习
- 2025年真空采血管项目发展计划
- 构建稳定异步消息传递框架
- 2025年印铁油墨项目建议书
- 白雪公主的童话世界解读
- 2025年氯氟氰菊酯项目建议书
- 中山医院网上查询报告
- 二年级下册数学计算题400道及答案
- 第6课《飞向蓝天的恐龙》两课时学习任务单部编版四年级语文下册
- 生产清场管理制度课件
- 小学科学质量分析报告
- 口腔医院客服培训课件
- 04G325吊车轨道联结及车挡
- 2024年金城出版社有限公司招聘笔试参考题库含答案解析
- 皮下注射的并发症及预防
- 罗沙司他治疗肾性贫血的疗效与安全性评价演示稿件
- 混凝土搅拌站有限空间作业管理制度模版
评论
0/150
提交评论