Tải bản đầy đủ - 0 (trang)
1 Đánh giá hệ thống

1 Đánh giá hệ thống

Tải bản đầy đủ - 0trang

ĐỒ ÁN 2



TÀI LIỆU THAM KHẢO

Tiếng Việt:

[1]



http://www.codientu.org



[2]



http://banlinhkien.vn



[3]



http://hshop.vn



[4]



Tài liệu vi điều khiển của Nguyễn Đình Phú



Tiếng Anh:

[5]



http://www.elecfreaks.com



[6]



http://www.microchip.com



[7]



http://www.alldatasheet.com



Hệ Thống Báo Cháy



Trang 17/35



ĐỒ ÁN 2



Trang 18/35



PHỤ LỤC A



A. CHƯƠNG TRÌNH CHO MASTER

///////////////

//////////////

//////////////-----UART-LCD-LM35------//////////////

////////////// Sua lai chan lcd /////

//



B0 => B3



//!



#define LCD_ENABLE_PIN PIN_B0



//!



#define LCD_RS_PIN



//!



#define LCD_RW_PIN



//!



#define LCD_DATA4



PIN_B4



////



//!



#define LCD_DATA5



PIN_B5



////



//!



#define LCD_DATA6



PIN_B6



////



//!



#define LCD_DATA7



PIN_B7



PIN_B1



////

////



PIN_B2



////



////////////// Sua lai port B3 master1 => D2 master1

#include <16f877A.h>

#device ADC=10

#define LCD_ENABLE_PIN PIN_B3

#define LCD_RS_PIN



PIN_B1



#define LCD_RW_PIN



PIN_B2



////

////

////



#define LCD_DATA4



PIN_B4



////



#define LCD_DATA5



PIN_B5



////



#define LCD_DATA6



PIN_B6



////



#define LCD_DATA7



PIN_B7



#fuses HS, NOWDT, NOPUT

#use delay(clock=20M)

Hệ Thống Báo Cháy



ĐỒ ÁN 2



Trang 19/35



#use rs232(uart,baud=9600,parity=n,BITS=8,STOP=1,timeout=10,stream=rf)

#use

rs232(xmit=pin_d0,rcv=pin_d1,baud=9600,parity=n,BITS=8,STOP=1,timeout=10,s

tream=pc)

#include

#include

unsigned int16 nhietdo,tong,giatriadc;

float tmp;

unsigned int8 id[6], data[6], inf[6];

unsigned int8 t=0,dem=0;

unsigned int16 idx=0 , datax=0 , infx=0;

int1 done=0;

unsigned int16 t1=0,t2=0,f1=0,f2=0;

//--------new-------//

unsigned int8 button=0;

#int_RDA

void nhan_data()

{

unsigned int8 temp,n; // int 8

for(n=0;n<6;n++)//get id

{

temp=getc();

if(temp==",")break;//done

id[n]=temp;

}

for(n=0;n<6;n++)//get data



Hệ Thống Báo Cháy



ĐỒ ÁN 2



{

temp=getc();

if(temp=="\n")break;//done

data[n]=temp;

}

for(n=0;n<6;n++)//get information

{

temp=getc();

if(temp=="\n")break;//done

inf[n]=temp;

}

done=1;

}

#INT_TIMER0

void timer_0(void)

{

dem=dem+1;

switch (dem)

{

case 18:

{

output_toggle(PIN_C1);

output_toggle(PIN_C0);

dem=0;

break;

}

}

}



Hệ Thống Báo Cháy



Trang 20/35



ĐỒ ÁN 2



Trang 21/35



#INT_EXT

void ignore_alert(void)

{

button=button+1;

//! if(button==0)

//!



{



//!



output_bit(PIN_D3, 0);



//!



}



////////---------button==1 vao che do huy canh bao nguy hiem-------///

if(button==1)

{

disable_interrupts(INT_TIMER0); // tat canh bao

output_high(PIN_D3);



// bat chan pin d3 sang led canh bao vao che do



huy canh bao

output_high(PIN_C0);

output_low(PIN_C1);

output_low(PIN_C2); // allert fire - connect to c2 of master2

output_low(PIN_C3); // allert smoke - connect to c3 of master2

output_low(PIN_C4); // allert temperature - connect to c4 of master2

output_low(PIN_C5); // connect to c1 of master2 in room 002

output_low(PIN_D2); // connect to c0 of master2 in room 001

}

//////////////////////////////////////////////////////////////////////

if(button==2)

{

button=0;

output_low(PIN_D3);



Hệ Thống Báo Cháy



ĐỒ ÁN 2



}



}



void clear_all()

{

unsigned int8 n;

for(n=0;n<6;n++)

{

id[n]=0;

data[n]=0;

inf[n]=0;

delay_ms(100);

}

}

void main()

{

//setup_timer_0(T0_INTERNAL|T0_DIV_256);

//ENABLE_INTERRUPTS(int_TIMER0);

ENABLE_INTERRUPTS(GLOBAL);

ENABLE_INTERRUPTS(int_RDA);

setup_adc(ADC_CLOCK_INTERNAL);

SETUP_ADC_PORTS(AN0_AN1_AN2_AN3_AN4);

SETUP_TIMER_0(T0_INTERNAL|T0_DIV_256);

//ENABLE_INTERRUPTS(INT_TIMER0);

CLEAR_INTERRUPT(INT_EXT);



Hệ Thống Báo Cháy



Trang 22/35



ĐỒ ÁN 2



ENABLE_INTERRUPTS(INT_EXT);

ext_int_edge(H_to_L);

set_timer0(0);

set_tris_b(0b00000001); // new

lcd_init();

lcd_putc('\f');

/////////////////////////////////------ Tat het canh bao ------//////////////////////

output_high(PIN_C0);

output_low(PIN_C1);

output_low(PIN_C2); // allert fire - connect to c2 of master2

output_low(PIN_C3); // allert smoke - connect to c3 of master2

output_low(PIN_C4); // allert temperature - connect to c4 of master2

output_low(PIN_C5); // connect to c1 of master2 in room 002

output_low(PIN_D2); // connect to c0 of master2 in room 001

output_low(PIN_D3);

////////////////////////////////////////////////////////////////////////////////////

//------------------------------BANNER-------------------//

lcd_gotoxy(1,1);

printf(lcd_putc,"



DO AN 2 ");



lcd_gotoxy(1,2);

printf(lcd_putc,"H.THONG BAO CHAY ");

delay_ms(3000);

lcd_gotoxy(1,1);

printf(lcd_putc,"Giang Vien HD ");

lcd_gotoxy(1,2);

printf(lcd_putc,"TS.DANG N.M DUC ");

delay_ms(2000);

lcd_gotoxy(1,1);



Hệ Thống Báo Cháy



Trang 23/35



ĐỒ ÁN 2



Trang 24/35



printf(lcd_putc,"SVTH: Dao C Phu ");

lcd_gotoxy(1,2);

printf(lcd_putc,"MSSV 41402137 ");

delay_ms(2000);

lcd_gotoxy(1,1);

printf(lcd_putc," TON DUC THANG ");

lcd_gotoxy(1,2);

printf(lcd_putc," UNIVERSITY ");

delay_ms(2000);

lcd_putc('\f');

/////////////////////////////////////////////////////////////////////////////////

while(true)

{

//////////////////////////////////////-------DOC



NHIET



DO



LM35-------//////////////////////////////////////////

int8 i;

tong=0;

SET_ADC_CHANNEL(0);

for(i=0;i<10;i++)



//--------LAP LAI 10 LAN DE LAY GIA TRI TRUNG



BINH-------//

{

giatriadc=READ_ADC();

delay_ms(2);

tong=tong+giatriadc;

}

giatriadc=(tong/10);



Hệ Thống Báo Cháy



ĐỒ ÁN 2



Trang 25/35



tmp = (500f*(float)giatriadc)/1023f;

nhietdo = (int16) tmp;

delay_ms(10);

//////////////////////////////////////////////////--------Gui ma~ tin hieu--------///////////////////

switch (t)

{

case 10:

{

fprintf(rf,"001,\n");delay_ms(10);break;

}

case 20:

{

fprintf(rf,"002,\n");delay_ms(10);break;

}

case 30:

{

t=0;break;

}

}

///////////////////////////////////////////////--------Xu li du lieu nhan----------///////////////////

if(done==1)

{

//DISABLE_INTERRUPTS(int_TIMER0);

idx=atoi32(id);datax=atoi32(data);infx=atoi32(inf);

delay_ms(50); // 100ms

if(idx==1)

{

t1=datax;



Hệ Thống Báo Cháy



ĐỒ ÁN 2



Trang 26/35



f1=infx;

}

if(idx==2)

{

t2=datax;

f2=infx;

//break;

}

fprintf(pc,"ID=%lu,Data=%lu,Information=%lu\n",idx,datax,infx);

clear_all();done=0;

}

//////////////////////////////////////////////////--------LCD1602



Hien



thi



cac



so---------///////////////////////////

//---------------------Hien Thi Nhiet Do----------------------//

lcd_gotoxy(1,1);

//printf(lcd_putc,"TMP1=%02u TMP2=%02u",tmp1,tmp2);

printf(lcd_putc,"TMP1=%02lu TMP2=%02lu",t1,t2);

lcd_gotoxy(1,2);

printf(lcd_putc,"TMP0=%02lu SMK1=%02lu",nhietdo,f1);

////////////////////////////////////////////////////////////////



///////////////////////////////////////////////////--------Warnning----------////////////////////////



Hệ Thống Báo Cháy



thong



ĐỒ ÁN 2



if(button==0)



Trang 27/35



// Nut nhan phat lo canh bao



{

if((t1>45) | (t2>45) | (nhietdo>60))

{

lcd_putc("\f");

lcd_gotoxy(1,1);

printf(lcd_putc,"Warnning TMP");

delay_ms(30);

if (t1>45)

{

lcd_gotoxy(1,2);

printf(lcd_putc,"In 001



");



delay_ms(30);

//ENABLE_INTERRUPTS(GLOBAL);

ENABLE_INTERRUPTS(INT_TIMER0);

output_high(PIN_C4);

output_high(PIN_D2); // on 001

output_low(PIN_C5); // off 002

output_low(PIN_C2); // allert fire - connect to c2 of master2

output_low(PIN_C3); // allert smoke - connect to c3 of master2

}

if (t2>45)

{

lcd_gotoxy(1,2);

printf(lcd_putc,"



In 002");



delay_ms(30);

ENABLE_INTERRUPTS(INT_TIMER0);



Hệ Thống Báo Cháy



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

1 Đánh giá hệ thống

Tải bản đầy đủ ngay(0 tr)

×