1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

CODE MSP4302274 giao tiep AM2301 hiển thị LCD

11 248 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 11
Dung lượng 121,71 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

code MSP4302274 giao tiep AM2301 hiển thị LCD, đọc nhiệt độ và độ ẩm hiển thị LCD 1602. Mạch đo nhiệt độ độ ẩm dùng cảm biến số DHT21. CODE được trích từ ứng dụng tự tạo.Đọc chính xác nhiệt độ và độ ẩm.

Trang 1

#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(); // thiet lap IO

init_NRF24L01(); // khoi tao 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();

Trang 2

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

Trang 3

{

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';

Trang 4

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

Trang 5

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)

Trang 6

{ 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++)

{

Trang 7

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; }

Trang 8

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++)

{

Trang 9

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;

Trang 10

}

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);

Trang 11

PrintStr("TEMP: ");

lcd_write_data(b+48);

lcd_write_data(c+48);

PrintStr(".");

lcd_write_data(d+48);

PrintStr("'C");

delay_cycles(100000);

}

//===========================================================================

Ngày đăng: 20/12/2017, 14:06

TỪ KHÓA LIÊN QUAN

w