资源描述:
《MSP430 pwm方波占空比频率可调.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、//***************************************************************************************//MSP430BlinktheLEDDemo-SoftwareToggleP1.0////Description;ToggleP1.0byxor'ingP1.0insideofasoftwareloop.//ACLK=n/a,MCLK=SMCLK=defaultDCO////MSP430x5xx//-----------------///
2、
3、XIN
4、-//
5、
6、
7、//--
8、RSTXOUT
9、-//
10、
11、
12、//
13、P1.0
14、-->LED////J.Stevenson//TexasInstruments,Inc//July2011//BuiltwithCodeComposerStudiov5//***************************************************************************************#include#include"tm1638.h"unsignedcharLED_CODE[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7
15、F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71};floati=1000,j=500;intmain(void){floata,b;WDTCTL=WDTPW+WDTHOLD;//Stopwatchdogtimerif(CALBC1_1MHZ==0xFF
16、
17、CALDCO_1MHZ==0xFF){while(1);//Ifcalibrationconstantserased,trapCPU!!}BCSCTL1=CALBC1_1MHZ;//SetrangeDCOCTL=CALDCO_1MHZ;//SetDCOstep+modulationBCSCTL2=
18、SELM_1+DIVS_3;//setMCLK=DOC/8P1DIR
19、=0x01;//SetP1.0tooutputdirection//引脚设置(暂时使用P1.2输出一路PWM)P1SEL
20、=BIT6;//TA1从P1.6输出P1DIR
21、=BIT6;//TA1从P1.6输出P2DIR
22、=0xff;P2OUT
23、=0XFF;TACTL
24、=MC_1+TASSEL_2+ID_0;//时钟源选择SMCLK,增计数模式TA设置TACCTL1=OUTMOD_7;//模式7高电平PWM输出PWM设置init_TM1638();for(;;){TACCR0=i;TACCR1=j;if(Re
25、ad_key()==0){while(Read_key()==0);i=i+10;//调频率j=b*i/100;}if(Read_key()==1){while(Read_key()==1);i=i-10;//调频率j=b*i/100;}if(Read_key()==2){while(Read_key()==2);j=j+10;//调占空比}if(Read_key()==3){while(Read_key()==3);j=j-10;//调占空比}b=j*100/i;//占空比Write_DATA(0x00,LED_CODE[(int)b/10]);Write_DATA(0x
26、02,LED_CODE[(int)b%10]
27、0x80);Write_DATA(0x04,LED_CODE[(int)(b*10)%10]);a=1000000/(8.0*i);//频率Write_DATA(0x08,LED_CODE[(int)a/100]);Write_DATA(0x0a,LED_CODE[(int)a/10%10]);Write_DATA(0x0c,LED_CODE[(int)a%10]
28、0x80);Write_DATA(0x0e,LED_CODE[(int)(a*10)%10]);}}