A programação do PIC foi realizada na linguagem C, abaixo você pode conferir o programa completo.
C:\Users\Tiago\Desktop\trabalho_final\14112014_com_analogica.c
//***************************************************************************//
//** Alarme Casa inteligente **//
//** **//
//** Autor: Danilo / David / Juliano / Murilo / Tiago **//
//***************************************************************************//
#include <16f877.h>
#device adc=10
#use delay (clock=4000000)
#fuses HS,NOWDT,PUT
#include <LCD_tiago.c>
// **************************** ENTRADA ***************************************
#define foto_ext pin_A1
#define foto_casa pin_A0
#define btn_emergencia pin_D1
#define btn_liga_luz pin_D0
#define sisterna_minimo pin_D5
#define cx_agua_minimo pin_D6
#define cx_agua_maximo pin_D7
//*****************************************************************************
//***************************** SAIDA *****************************************
#define led_1 pin_D4
#define led_2 pin_D5
#define led_3 pin_D6
#define led_4 pin_D7
#define janela pin_C0
#define cx_sisterna pin_C1
#define cx_rua pin_c2
#define buzzer pin_C3
//*****************************************************************************
int t;
//int16 leitura;
//int16 leitura1;
int comando_janela(){
long int x; // definição variavel local
output_high(janela);
output_high(led_1);
output_high(led_2);
output_high(led_3);
output_high(led_4);
if((input(pin_b0))==0) output_high(led_1);
lcd_pos_xy(1,1);
printf (lcd_escreve,"Comando ");
lcd_pos_xy(1,2);
printf (lcd_escreve,"janela ");
for(x=0;x<2000;x++)
{
if (!input(cx_agua_maximo)) output_low(cx_sisterna);
if (!input(cx_agua_maximo)) output_low(cx_rua);
delay_ms(1);
}
output_low(janela);
lcd_pos_xy(1,1);
printf (lcd_escreve,"USF ITATIBA 2014");
lcd_pos_xy(1,2);
printf (lcd_escreve,"CASA INTELIGENTE ");
for(x=0;x<2000;x++)
{
if (!input(cx_agua_maximo)) output_low(cx_sisterna);
if (!input(cx_agua_maximo)) output_low(cx_rua);
delay_ms(1);
1
C:\Users\Tiago\Desktop\trabalho_final\14112014_com_analogica.c
}
}
VOID apaga_luz(){
output_low(led_1);
output_low(led_2);
output_low(led_3);
output_low(led_4);
}
VOID comando_sisterna(){
long int x; // definição variavel local
output_low(cx_rua);
output_high(cx_sisterna);
lcd_pos_xy(1,1);
printf (lcd_escreve,"Bomba ");
lcd_pos_xy(1,2);
printf (lcd_escreve,"Sisterna ON ");
for(x=0;x<10;x++)
{
if(!input(cx_agua_maximo) && !input(cx_agua_minimo )) output_low(cx_sisterna);
if(!input(cx_agua_maximo) && !INPUT(cx_agua_minimo )) output_low(cx_rua);
if(!input(janela)) comando_janela();
delay_ms(10);
}
}
VOID comando_rua(){
long int x; // definição variavel local
output_low(cx_sisterna);
output_high(cx_rua);
lcd_pos_xy(1,1);
printf (lcd_escreve,"Valvula ");
lcd_pos_xy(1,2);
printf (lcd_escreve,"rua aberta ");
for(x=0;x<2000;x++)
{
if(!input(cx_agua_maximo) && !input(cx_agua_minimo )) output_low(cx_sisterna);
if(!input(cx_agua_maximo) && !INPUT(cx_agua_minimo )) output_low(cx_rua);
if(!input(janela)) comando_janela();
delay_ms(1);
}
RETURN;
}
//********************* Rotina principal *************************************
void main(){
long int x,y,z;
y=70;
z=100;
lcd_ini();
delay_ms(200);
//setup_adc_ports(AN0);
//Setup_adc_ports(RA0_RA1_RA3_ANALOG);
//setup_adc_ports(RA1_analog);
//setup_adc(ADC_CLOCK_INTERNAL);
//setup_psp(PSP_DISABLED);
//setup_spi(SPI_SS_DISABLED);
//setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
//setup_timer_1(T1_DISABLED);
// set_adc_channel(0);
//leitura = read_adc(7);
// set_adc_channel(1);
//leitura1 = read_adc(7);
for (;;)
2
C:\Users\Tiago\Desktop\trabalho_final\14112014_com_analogica.c
{
if(!input(btn_emergencia)) apaga_luz();
if(!input(btn_liga_luz)) comando_janela();
lcd_pos_xy(1,1);
printf (lcd_escreve," USF ");
lcd_pos_xy(1,2);
printf (lcd_escreve," ITATIBA ");
output_high(led_1);
for(x=0;x<y;x++){
if (input(cx_agua_minimo) && !input(sisterna_minimo)) comando_sisterna();
if (input(cx_agua_minimo) && input(sisterna_minimo)) comando_rua();
if(!input(cx_agua_maximo) && !input(cx_agua_minimo )) output_low(cx_sisterna);
if(!input(cx_agua_maximo) && !INPUT(cx_agua_minimo )) output_low(cx_rua);
if(!input(btn_liga_luz)) comando_janela();
delay_ms(10);}
lcd_pos_xy(1,1);
printf (lcd_escreve," PROFESSORES ");
lcd_pos_xy(1,2);
printf (lcd_escreve,"ANDRE ");
for(x=0;x<y;x++){
if (input(cx_agua_minimo) && !input(sisterna_minimo)) comando_sisterna();
if (input(cx_agua_minimo) && input(sisterna_minimo)) comando_rua();
if(!input(cx_agua_maximo) && !input(cx_agua_minimo )) output_low(cx_sisterna);
if(!input(cx_agua_maximo) && !INPUT(cx_agua_minimo )) output_low(cx_rua);
if(!input(btn_liga_luz)) comando_janela();
delay_ms(10);}
lcd_pos_xy(1,1);
printf (lcd_escreve," PROFESSORES ");
lcd_pos_xy(1,2);
printf (lcd_escreve,"ANNET ");
for(x=0;x<y;x++){
if (input(cx_agua_minimo) && !input(sisterna_minimo)) comando_sisterna();
if (input(cx_agua_minimo) && input(sisterna_minimo)) comando_rua();
if(!input(cx_agua_maximo) && !input(cx_agua_minimo )) output_low(cx_sisterna);
if(!input(cx_agua_maximo) && !INPUT(cx_agua_minimo )) output_low(cx_rua);
if(!input(btn_liga_luz)) comando_janela();
delay_ms(10);}
lcd_pos_xy(1,1);
printf (lcd_escreve," PROFESSORES ");
lcd_pos_xy(1,2);
printf (lcd_escreve,"LUIZ CARLOS ");
for(x=0;x<y;x++){
if (input(cx_agua_minimo) && !input(sisterna_minimo)) comando_sisterna();
if (input(cx_agua_minimo) && input(sisterna_minimo)) comando_rua();
if(!input(cx_agua_maximo) && !input(cx_agua_minimo )) output_low(cx_sisterna);
if(!input(cx_agua_maximo) && !INPUT(cx_agua_minimo )) output_low(cx_rua);
if(!input(btn_liga_luz)) comando_janela();
delay_ms(10);}
lcd_pos_xy(1,1);
printf (lcd_escreve," COORDENADOR ");
lcd_pos_xy(1,2);
printf (lcd_escreve,"VICENTE ");
for(x=0;x<y;x++){
if (input(cx_agua_minimo) && !input(sisterna_minimo)) comando_sisterna();
if (input(cx_agua_minimo) && input(sisterna_minimo)) comando_rua();
if(!input(cx_agua_maximo) && !input(cx_agua_minimo )) output_low(cx_sisterna);
if(!input(cx_agua_maximo) && !INPUT(cx_agua_minimo )) output_low(cx_rua);
if(!input(btn_liga_luz)) comando_janela();
delay_ms(10);}
lcd_pos_xy(1,1);
printf (lcd_escreve," ALUNOS ");
lcd_pos_xy(1,2);
printf (lcd_escreve,"DANILO ");
for(x=0;x<y;x++){
if (input(cx_agua_minimo) && !input(sisterna_minimo)) comando_sisterna();
if (input(cx_agua_minimo) && input(sisterna_minimo)) comando_rua();
if(!input(cx_agua_maximo) && !input(cx_agua_minimo )) output_low(cx_sisterna);
if(!input(cx_agua_maximo) && !INPUT(cx_agua_minimo )) output_low(cx_rua);
if(!input(btn_liga_luz)) comando_janela();
delay_ms(10);}
3
C:\Users\Tiago\Desktop\trabalho_final\14112014_com_analogica.c
lcd_pos_xy(1,1);
printf (lcd_escreve," ALUNOS ");
lcd_pos_xy(1,2);
printf (lcd_escreve,"DAVID ");
for(x=0;x<y;x++){
if (input(cx_agua_minimo) && !input(sisterna_minimo)) comando_sisterna();
if (input(cx_agua_minimo) && input(sisterna_minimo)) comando_rua();
if(!input(cx_agua_maximo) && !input(cx_agua_minimo )) output_low(cx_sisterna);
if(!input(cx_agua_maximo) && !INPUT(cx_agua_minimo )) output_low(cx_rua);
if(!input(btn_liga_luz)) comando_janela();
delay_ms(10);}
lcd_pos_xy(1,1);
printf (lcd_escreve," ALUNOS ");
lcd_pos_xy(1,2);
printf (lcd_escreve,"JULIANO ");
for(x=0;x<y;x++){
if (input(cx_agua_minimo) && !input(sisterna_minimo)) comando_sisterna();
if (input(cx_agua_minimo) && input(sisterna_minimo)) comando_rua();
if(!input(cx_agua_maximo) && !input(cx_agua_minimo )) output_low(cx_sisterna);
if(!input(cx_agua_maximo) && !INPUT(cx_agua_minimo )) output_low(cx_rua);
if(!input(btn_liga_luz)) comando_janela();
delay_ms(10);}
lcd_pos_xy(1,1);
printf (lcd_escreve," ALUNOS ");
lcd_pos_xy(1,2);
printf (lcd_escreve,"MURILO ");
for(x=0;x<y;x++){
if (input(cx_agua_minimo) && !input(sisterna_minimo)) comando_sisterna();
if (input(cx_agua_minimo) && input(sisterna_minimo)) comando_rua();
if(!input(cx_agua_maximo) && !input(cx_agua_minimo )) output_low(cx_sisterna);
if(!input(cx_agua_maximo) && !INPUT(cx_agua_minimo )) output_low(cx_rua);
if(!input(btn_liga_luz)) comando_janela();
delay_ms(10);}
lcd_pos_xy(1,1);
printf (lcd_escreve," ALUNOS ");
lcd_pos_xy(1,2);
printf (lcd_escreve,"TIAGO ");
for(x=0;x<y;x++){
if (input(cx_agua_minimo) && !input(sisterna_minimo)) comando_sisterna();
if (input(cx_agua_minimo) && input(sisterna_minimo)) comando_rua();
if(!input(cx_agua_maximo) && !input(cx_agua_minimo )) output_low(cx_sisterna);
if(!input(cx_agua_maximo) && !INPUT(cx_agua_minimo )) output_low(cx_rua);
if(!input(btn_liga_luz)) comando_janela();
delay_ms(10);}
output_high(buzzer);
for(x=0;x<y;x++){
if (input(cx_agua_minimo) && !input(sisterna_minimo)) comando_sisterna();
if (input(cx_agua_minimo) && input(sisterna_minimo)) comando_rua();
if(!input(cx_agua_maximo) && !input(cx_agua_minimo )) output_low(cx_sisterna);
if(!input(cx_agua_maximo) && !INPUT(cx_agua_minimo )) output_low(cx_rua);
if(!input(btn_liga_luz)) comando_janela();
delay_ms(10);}
output_low(buzzer);
for(x=0;x<z;x++){
if (input(cx_agua_minimo) && !input(sisterna_minimo)) comando_sisterna();
if (input(cx_agua_minimo) && input(sisterna_minimo)) comando_rua();
if(!input(cx_agua_maximo) && !input(cx_agua_minimo )) output_low(cx_sisterna);
if(!input(cx_agua_maximo) && !INPUT(cx_agua_minimo )) output_low(cx_rua);
if(!input(btn_liga_luz)) comando_janela();
delay_ms(10);}
lcd_pos_xy(1,1);
printf (lcd_escreve,"A economia ");
lcd_pos_xy(1,2);
printf (lcd_escreve,"comeca com voce ");
for(x=0;x<z;x++){
if (input(cx_agua_minimo) && !input(sisterna_minimo)) comando_sisterna();
if (input(cx_agua_minimo) && input(sisterna_minimo)) comando_rua();
4
C:\Users\Tiago\Desktop\trabalho_final\14112014_com_analogica.c
if(!input(cx_agua_maximo) && !input(cx_agua_minimo )) output_low(cx_sisterna);
if(!input(cx_agua_maximo) && !INPUT(cx_agua_minimo )) output_low(cx_rua);
if(!input(btn_liga_luz)) comando_janela();
delay_ms(10);}
lcd_pos_xy(1,1);
printf (lcd_escreve,"Banhos curtos ");
lcd_pos_xy(1,2);
printf (lcd_escreve,"use a vassoura ");
for(x=0;x<z;x++){
if (input(cx_agua_minimo) && !input(sisterna_minimo)) comando_sisterna();
if (input(cx_agua_minimo) && input(sisterna_minimo)) comando_rua();
if(!input(cx_agua_maximo) && !input(cx_agua_minimo )) output_low(cx_sisterna);
if(!input(cx_agua_maximo) && !INPUT(cx_agua_minimo )) output_low(cx_rua);
if(!input(btn_liga_luz)) comando_janela();
delay_ms(10);}
// lcd_pos_xy(1,1);
// printf (lcd_escreve,"lave toda roupa ");
// lcd_pos_xy(1,2);
// printf (lcd_escreve,"faca sua parte ");
//
// for(x=0;x<z;x++){
// if (input(cx_agua_minimo) && !input(sisterna_minimo)) comando_sisterna();
// if (input(cx_agua_minimo) && input(sisterna_minimo)) comando_rua();
// if(!input(cx_agua_maximo) && !input(cx_agua_minimo )) output_low(cx_sisterna);
// if(!input(cx_agua_maximo) && !INPUT(cx_agua_minimo )) output_low(cx_rua);
// if(!input(btn_liga_luz)) comando_janela();
// delay_ms(10);}
lcd_pos_xy(1,1);
printf (lcd_escreve,"Vamos mudar o ");
lcd_pos_xy(1,2);
printf (lcd_escreve," MUNDO ");
for(x=0;x<z;x++){
if (input(cx_agua_minimo) && !input(sisterna_minimo)) comando_sisterna();
if (input(cx_agua_minimo) && input(sisterna_minimo)) comando_rua();
if(!input(cx_agua_maximo) && !input(cx_agua_minimo )) output_low(cx_sisterna);
if(!input(cx_agua_maximo) && !INPUT(cx_agua_minimo )) output_low(cx_rua);
if(!input(btn_liga_luz)) comando_janela();
delay_ms(10);}
}
}
Nenhum comentário:
Postar um comentário