MSP430F5438无线温度发送
扫描二维码
随时随地手机看文章
//===========================================================================//
//北京理工大学珠海学院徐方鑫//
//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倍频系数
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;//设置WDT为INTERVAL模式,中断间隔100ms
MAIN_POWER_ON;
TBCTL=TBSSEL_1+MC_1+TBCLR+TBIE;//时钟源=ACLK
TBCCR0=64;//刷新频率=32768/64/8=64Hz
_EINT();//开启总中断
TEMP=Do1Convert();//读取温度转换数据
__delay_cycles(10000);
for(;;)//后台任务
{
LPM3;
_NOP();
if(event)
{
event=0x00;
Send232(RXBuffer);
}
}
}
//***************************************************************************//
////
//延时程序//
////
//***************************************************************************//
voidDelay(unsignedintcnt)
{
unsignedinti=0;
for(i=0;i { _NOP(); } } //***************************************************************************// //// //初始化主时钟:MCLK=XT1×(FLL_FACTOR+1)// // //