MSP430F5438無線溫度發(fā)送
//===========================================================================//
//北京理工大學(xué)珠海學(xué)院徐方鑫//
//280599580@qq.com//
//2011.3.31//
//===========================================================================//
#include"msp430x54x.h"
#include
#include
#include
#include
#include"LED.H"
#include"DS18B20.H"
#include"PIN_DEF.H"
#defineucharunsignedchar
#defineuintunsignedint
#defineFLL_FACTOR749//FLL_FACTOR:DCO倍頻系數(shù)
unsignedintDo1Convert(void);
voidDelay(unsignedintcnt);
voidInit_CLK(void);
voidInit_Port(void);
voidInit_RSUART(void);
voidSend232(char*tx_buf);
charevent,RXBuffer[2];
intTEMP;
floattemp;
LED_STRUCTLED[8];
charThermometer[5];
charThermometer_send[4];
ucharThermometer_sendData;
unsignedcharSMG[10]=
{
~(SEGA+SEGB+SEGC+SEGD+SEGE+SEGF),
~(SEGB+SEGC),
~(SEGA+SEGB+SEGD+SEGE+SEGG),
~(SEGA+SEGB+SEGC+SEGD+SEGG),
~(SEGB+SEGC+SEGF+SEGG),
~(SEGA+SEGC+SEGD+SEGF+SEGG),
~(SEGA+SEGC+SEGD+SEGE+SEGF+SEGG),
~(SEGA+SEGB+SEGC),
~(SEGA+SEGB+SEGC+SEGD+SEGE+SEGF+SEGG),
~(SEGA+SEGB+SEGC+SEGD+SEGF+SEGG),
};
//***************************************************************************//
////
//主程序模塊//
////
//***************************************************************************//
voidmain(void)
{
WDTCTL=WDTPW+WDTHOLD;//禁止看門狗
Ini_LED(10);
Init_CLK();//時鐘初始化
Init_Port();//IO端口初始化
Init_RSUART();//串口初始化
OW_DIO_PULLUP;
SFRIE1|=WDTIE;//使能WDT中斷
WDTCTL=WDT_ADLY_1000;//設(shè)置WDT為INTERVAL模式,中斷間隔100ms
MAIN_POWER_ON;
TBCTL=TBSSEL_1+MC_1+TBCLR+TBIE;//時鐘源=ACLK
TBCCR0=64;//刷新頻率=32768/64/8=64Hz
_EINT();//開啟總中斷
TEMP=Do1Convert();//讀取溫度轉(zhuǎn)換數(shù)據(jù)
__delay_cycles(10000);
for(;;)//后臺任務(wù)
{
LPM3;
_NOP();
if(event)
{
event=0x00;
Send232(RXBuffer);
}
}
}
//***************************************************************************//
////
//延時程序//
////
//***************************************************************************//
voidDelay(unsignedintcnt)
{
unsignedinti=0;
for(i=0;i { _NOP(); } } //***************************************************************************// //// //初始化主時鐘:MCLK=XT1×(FLL_FACTOR+1)// // //