Tải bản đầy đủ (.pdf) (11 trang)

CODE MSP4302274 giao tiep AM2301 hiển thị LCD

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (121.71 KB, 11 trang )

#include "msp430f2274.h"
#include "uart.c"
#include "LCD.c"
#define DTH_option (_P3_DIRECT->_BIT.b6)
#define DTH_Start (_P3_OUT->_BIT.b6)
#define DTH_Read (_P3_IN->_BIT.b6)
void main( )
{
// Stop watchdog timer to prevent time out reset
WDTCTL = WDTPW + WDTHOLD;
BCSCTL1 = CALBC1_1MHZ;
DCOCTL = CALDCO_1MHZ;
uart_init();
init_port();
init_NRF24L01();
init_lcd();

_P4_OUT->_BIT.b0=0;
_P4_OUT->_BIT.b1=0;
unsigned int i=0,j=0;
send_cmd("AT");
send_cmd("AT+RST");
while(1)
{lb0: ClearLcmScreen();

// thiet lap IO
// khoi tao nRF24L01


PrintStr("MONITOR SYSTERM");
LCDmove(1,0);


PrintStr("=================================+++++++");goto lb1;
lb01: HUMI_TEMP();
lb1: //lcd_write_cmd(0x18);
// __delay_cycles(400);
j=j+1;
if(j==50) { goto lb01; }
if(j==100){ j=0; goto lb0; }

//=================Cho nhan canh bao======================================
RX_Mode();
lbw: if(!(nRF24L01_RxPacket(RxBuf)))//Neu chua nhan duoc du lieu
{ if(b==10)
{
b=0;
goto lb11;
}
b=b+1;
goto lbw;
}
else
{
if(RxBuf[4]=='3')

//NEU LA DU LIEU CUA MASTER


{
for(j=0;j<10;j++)
{ TxBuf[4]='4';
unsigned char TX_ADDRESS[5]={0x12,0x13,0x14,0x15,0x16};

SpiWriteReg(WRITE_REG+STATUS,0xff);
TX_Mode(TxBuf,TX_ADDRESS);
Delay(600);
SpiWriteReg1(0xE1);
}
for(i=0;i<10;i++)
{
_P1_OUT->_BIT.b6=0;
__delay_cycles(100000);
_P1_OUT->_BIT.b6=1;
__delay_cycles(100000);
}

}
}
lb11:
//====================Quet phim=============================================
if(_P3_IN->_BIT.b3==0)
{ClearLcmScreen();
PrintStr("Sent SLAVE1");
TxBuf[0]='8';


unsigned char TX_ADDRESS1[5]={0x17,0x18,0x19,0x1A,0x1B};
lb2:
SpiWriteReg(WRITE_REG+STATUS,0xff);
TX_Mode(TxBuf,TX_ADDRESS1);
Delay(600);// xem lai600
SpiWriteReg1(0xE1);


RX_Mode();
if(!(nRF24L01_RxPacket(RxBuf)))//Neu nhan duoc du lieu
{ i=i+1;
if(i==10){i=0;goto lb3;}
goto lb2;
}

lb3:
if(RxBuf[0]=='A'){ClearLcmScreen();LCDmove(0,0);PrintStr("SL1 ON");} else
{ClearLcmScreen();LCDmove(0,0);PrintStr("SL1 OFF");}
clear_RXBUF_RF();
__delay_cycles(640000);ClearLcmScreen();
ClearLcmScreen();
PrintStr("Sent SLAVE2");
TxBuf[0]='8';
unsigned char TX_ADDRESS2[5]={0x12,0x13,0x14,0x15,0x16};
lb21:
SpiWriteReg(WRITE_REG+STATUS,0xff);
TX_Mode(TxBuf,TX_ADDRESS2);
Delay(600);// xem lai600


SpiWriteReg1(0xE1);

RX_Mode();
if(!(nRF24L01_RxPacket(RxBuf)))//Neu nhan duoc du lieu
{ i=i+1;
if(i==10){i=0;goto lb31;}
goto lb21;
}


lb31:
if(RxBuf[0]=='A'){ClearLcmScreen();LCDmove(0,0);PrintStr("SL1 ON");} else
{ClearLcmScreen();LCDmove(0,0);PrintStr("SL1 OFF");}
clear_RXBUF_RF();
__delay_cycles(320000);ClearLcmScreen();goto lb0;

}

//------------------------end mode-------------------------------------goto lb1;
}//dong while
}//dong main
//==========================doc
AM2301===================================================
void HUMI_TEMP(void)


{ char HUMI;
char TEMP;
char HUMI_1;
char TEMP_1;
char SUM=0;
int a=0,b=0,c=0,d=0,e=0,f=0;
read: DTH_option=1;
DTH_Start=1;
__delay_cycles(10000);
DTH_Start=0;
__delay_cycles(10000);
DTH_Start=1;
DTH_option=0;


while(DTH_Read)
{ __delay_cycles(1);
a=a+1;if(a>200){ClearLcmScreen();PrintStr("Khong co phan hoi");__delay_cycles(320000);goto read;}
}

while(!(DTH_Read))
{ __delay_cycles(1);}
while(DTH_Read)
{ __delay_cycles(1);}
for(a=0;a<8;a++)
{


while(!(DTH_Read))
{ __delay_cycles(1);}
__delay_cycles(40);
if(DTH_Read)

{
HUMI=HUMI<<1;
HUMI|=0x01;
}
else
{
b=0;
HUMI=HUMI<<1;
}
}
for(a=0;a<8;a++)

{
while(!(DTH_Read))
{ __delay_cycles(1);}
__delay_cycles(40);
if(DTH_Read)
{
HUMI_1=HUMI_1<<1;
HUMI_1|=0x01;
}


else
{
b=0;
HUMI_1=HUMI_1<<1;
}
}
for(a=0;a<8;a++)
{
while(!(DTH_Read))
{ __delay_cycles(1);}
__delay_cycles(40);
if(DTH_Read)

{
TEMP=TEMP<<1;
TEMP|=0x01;
}
else
{

b=0;
TEMP=TEMP<<1;
}
}
for(a=0;a<8;a++)
{


while(!(DTH_Read))
{ __delay_cycles(1);}
__delay_cycles(40);
if(DTH_Read)

{
TEMP_1=TEMP_1<<1;
TEMP_1|=0x01;
}
else
{
b=0;
TEMP_1=TEMP_1<<1;
}
}
for(a=0;a<8;a++)
{
while(!(DTH_Read))
{ __delay_cycles(1);}
__delay_cycles(40);
if(DTH_Read)


{
SUM=SUM<<1;
SUM|=0x01;


}
else
{
b=0;
SUM=SUM<<1;
}
}
e=(HUMI*256 +HUMI_1);
f=(TEMP*256 +TEMP_1);
a=e/1000;
b=(e/100)%10;
c=(e/10)%10;
d=e%10;
ClearLcmScreen();
PrintStr("HUMI: ");
lcd_write_data(b+48);
lcd_write_data(c+48);
PrintStr(".");
lcd_write_data(d+48);
PrintStr("%");
a=f/1000;
b=(f/100)%10;
c=(f/10)%10;
d=f%10;
LCDmove(1,0);



PrintStr("TEMP: ");

lcd_write_data(b+48);
lcd_write_data(c+48);
PrintStr(".");
lcd_write_data(d+48);
PrintStr("'C");
__delay_cycles(100000);
}
//===========================================================================



×