您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 其它相关文档 > 基于MSP430G2553的DS18B20测温程序
/**main.c*//*********************************************************************************************************includeheaderfile*********************************************************************************************************/#includemsp430g2553.h#includesystem.h#includeuart.h#includeds18b20.hunsignedinttemp;chartx_buf[6]={0,0,0,0,'\n','\0'};/***********************************************************************************************************Functionname:main**Descriptions:mainfunction**inputparameters:none**outputparameters:none**Returnedvalue:none*********************************************************************************************************/voidmain(void){System_Init();UartInit();_EINT();if(DS18B20_Init()){P1OUT|=BIT0;}else{P1OUT|=BIT6;}while(1){__delay_cycles(800000);__delay_cycles(800000);temp=DS18B20_GetTemp();//x_buf[0]=temp%10000/1000+'0';//tx_buf[1]=temp%1000/100+'0';//tx_buf[2]=temp%100/10+'0';//tx_buf[3]=temp%10+'0';tx_buf[0]=temp%100/10+'0';tx_buf[1]=temp%10+'0';Uart_SendStr(tx_buf);}}/*********************************************************************************************************Includeheaderfile*********************************************************************************************************/#includemsp430g2553.h#includesystem.h/*********************************************************************************************************FunctionDeclaration*********************************************************************************************************/voidConfig_WDT(void);voidConfig_Clock(void);voidConfig_IO(void);/***********************************************************************************************************Functionname:Config_WDT**Descriptions:WatchDogTimerConfiguration**inputparameters:none**outputparameters:none**Returnedvalue:none*********************************************************************************************************/voidConfig_WDT(void){WDTCTL=WDTPW+WDTHOLD;//Stopwatchdogtimer}/***********************************************************************************************************Functionname:Config_Clock**Descriptions:SystemClockConfiguration**inputparameters:none**outputparameters:none**Returnedvalue:none*********************************************************************************************************/voidConfig_Clock(void){BCSCTL1=CALBC1_8MHZ;//SetDCO1M8M12M16MDCOCTL=CALDCO_8MHZ;BCSCTL2=SELM_1+DIVM_1+DIVS_3;//MCLK=8M;SMCLK=1MBCSCTL2&=~SELS;if(CALBC1_8MHZ==0xFF||CALDCO_8MHZ==0xFF){while(1);//hang-up}}/***********************************************************************************************************Functionname:Config_IO**Descriptions:IOPortConfiguration**inputparameters:none**outputparameters:none**Returnedvalue:none*********************************************************************************************************/voidConfig_IO(void){//setallIOportoutputsP1DIR=0xFF;//AllP1.xoutputsP1OUT=0x00;//AllP1.xresetP2DIR=0xFF;//AllP2.xoutputsP2OUT=0x00;//AllP2.xreset}/***********************************************************************************************************Functionname:System_Init**Descriptions:WatchDogTimerConfiguration**inputparameters:none**outputparameters:none**Returnedvalue:none*********************************************************************************************************/voidSystem_Init(void){Config_WDT();Config_Clock();Config_IO();__delay_cycles(800000);__delay_cycles(800000);}#ifndefSYSTEM_H_#defineSYSTEM_H_/*********************************************************************************************************ExternFunctionDeclaration*********************************************************************************************************/externvoidSystem_Init(void);#endif/*SYSTEM_H_*/*********************************************************************************************************/#includemsp430g2553.h#includestring.h#includeuart.h/***********************************************************************************************************Functionname:UartInit**Descriptions:Serialportinitialization**inputparameters:none**outputparameters:none**Returnedvalue:none*********************************************************************************************************/voidUartInit(void){P1SEL=BIT1+BIT2;//P1.1=RXD,P1.2=TXDP1SEL2=BIT1+BIT2;//P1.1=RXD,P1.2=TXDUCA0CTL1|=UCSSEL_1;//CLK=ACLKUCA0BR0=0x03;//32kHz/9600=3.41UCA0BR1=0x00;//UCA0MCTL=UCBRS1+UCBRS0;//ModulationUCBRSx=3UCA0CTL1&=~UCSWRST;//**InitializeUSCIstatemachine**IE2|=UCA0RXIE;//EnableUSCI_A0RXinterrupt}/***********************************************************************************************************Functionname:Uart_SendHexInt**Descriptions:Serialportsenddatabyinterrupt**inputparameters:_data:data**outputparameters:none**Returnedvalue:none*********************************************************************************************************/voidUart_SendHexInt(unsignedchar_data
本文标题:基于MSP430G2553的DS18B20测温程序
链接地址:https://www.777doc.com/doc-5422068 .html