Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Rosilene

central de chamada a ser utilizada em enfermaria de um hospital

Recommended Posts

Fiz a programação que segue abaixo usando o MPLAB X IDE, para uma central de chamada a ser utilizada em enfermaria de um hospital. Ou seja quando um paciente chama declarei como C (chamada), e esta chamada é registrada no led com o número do quarto do paciente (p. ex. C101), ao ser atendido no quarto, quem está atendendo aciona um botão que é identificado no led como P (presença) e se ao chegar for necessário, o atendente pode acionar outro botão que é definido por E (emergência). Depois de ter terminado a programação, numa sumulação, se 10 quartos diferentes chamarem ao mesmo, o programa está pulando um quarto. Revisei toda a programação e também o hardware, e não encontro o problema. Será que pode me dar uma dica porque está acontecendo este erro de pular o quarto que está chamando? Segue abaixo os códigos.

 

O programa tem 2574 linhas.

 

 

#include <p18f4620.h>            //Aqui é informado o processador que será utilizado pelo projeto
#include <string.h>
#include "lcd.h"

#include <delays.h>
#pragma config OSC = INTIO67          //clock interno
#pragma config WDT = OFF         //desliga watchdog
#pragma config LVP = OFF         //desliga programação em baixa tensão
void lcd_texto(char *texto);
void main (void)
{
    //OSCCON=0b01100011;
    char dado [20];
    int x;
    char y;

    lcd_inic();
    TRISAbits.RA4=1;
    TRISAbits.RA3=1;
    TRISEbits.RE3=0;
    PORTEbits.RE0=0;
    y=17;
    volta:
    x=1;
    lcd_locate(1,1);
    strcpypgm2ram(dado,"Hospital São Lucas");
    lcd_texto(dado);
 

/*************************************************************************
**                                                                      **  
**                       QUARTOS 1~10                                   **
**                                                                      **
**************************************************************************/
    if (PORTA==0B00000001)
    {
        
     /* y=y+1;
        if (y==11)
        {                                  Fazer a andar no display
            y=1;
        }*/
        
        lcd_locate(2,1);
        strcpypgm2ram(dado,"    ");
        lcd_texto(dado);
        lcd_locate(2,1);
        strcpypgm2ram(dado,"C101");
        lcd_texto(dado);
        PORTEbits.RE0=1;
        Delay10KTCYx(25);
        PORTEbits.RE0=0;
        Delay10KTCYx(25);

        
        
        
    }

    if(PORTA==0B00000010)
    {
        lcd_locate(2,1);
        strcpypgm2ram(dado,"    ");
        lcd_texto(dado);
     /* y=y+1;
        if (y==11)
        {                                  Fazer a andar no display
            y=1;
        }*/
        lcd_locate(2,1);
        strcpypgm2ram(dado,"C102");
        lcd_texto(dado);
        PORTEbits.RE0=1;
        Delay10KTCYx(25);
        PORTEbits.RE0=0;
        Delay10KTCYx(25);
    }

   if(PORTA==0B00000011)
    {
        lcd_locate(2,1);
        strcpypgm2ram(dado,"    ");
        lcd_texto(dado);
     /* y=y+1;
        if (y==11)
        {                                  Fazer a andar no display
            y=1;
        }*/
        lcd_locate(2,1);
        strcpypgm2ram(dado,"C103");
        lcd_texto(dado);
        PORTEbits.RE0=1;
        Delay10KTCYx(25);
        PORTEbits.RE0=0;
        Delay10KTCYx(25);
    }
 
if(PORTA==0B00000100)
    {
        lcd_locate(2,1);
        strcpypgm2ram(dado,"    ");
        lcd_texto(dado);
     /* y=y+1;
        if (y==11)
        {                                  Fazer a andar no display
            y=1;
        }*/
        lcd_locate(2,1);
        strcpypgm2ram(dado,"C104");
        lcd_texto(dado);
        PORTEbits.RE0=1;
        Delay10KTCYx(25);
        PORTEbits.RE0=0;
        Delay10KTCYx(25);
    }

   if(PORTA==0B00000101)
    {
        lcd_locate(2,1);
        strcpypgm2ram(dado,"    ");
        lcd_texto(dado);
     /* y=y+1;
        if (y==11)
        {                                  Fazer a andar no display
            y=1;
        }*/
        lcd_locate(2,1);
        strcpypgm2ram(dado,"C105");
        lcd_texto(dado);
        PORTEbits.RE0=1;
        Delay10KTCYx(25);
        PORTEbits.RE0=0;
        Delay10KTCYx(25);
    }

   if(PORTA==0B00000110)
    {
        lcd_locate(2,1);
        strcpypgm2ram(dado,"    ");
        lcd_texto(dado);
     /* y=y+1;
        if (y==11)
        {                                  Fazer a andar no display
            y=1;
        }*/
        lcd_locate(2,1);
        strcpypgm2ram(dado,"C106");
        lcd_texto(dado);
        PORTEbits.RE0=1;
        Delay10KTCYx(25);
        PORTEbits.RE0=0;
        Delay10KTCYx(25);
    }

   if(PORTA==0B00000111)
    {
        lcd_locate(2,1);
        strcpypgm2ram(dado,"    ");
        lcd_texto(dado);
     /* y=y+1;
        if (y==11)
        {                                  Fazer a andar no display
            y=1;
        }*/
        lcd_locate(2,1);
        strcpypgm2ram(dado,"C107");
        lcd_texto(dado);
        PORTEbits.RE0=1;
        Delay10KTCYx(25);
        PORTEbits.RE0=0;
        Delay10KTCYx(25);
    }

   if(PORTA==0B00001000)
    {
        lcd_locate(2,1);
        strcpypgm2ram(dado,"    ");
        lcd_texto(dado);
     /* y=y+1;
        if (y==11)
        {                                  Fazer a andar no display
            y=1;
        }*/
        lcd_locate(2,1);
        strcpypgm2ram(dado,"C108");
        lcd_texto(dado);
        PORTEbits.RE0=1;
        Delay10KTCYx(25);
        PORTEbits.RE0=0;
        Delay10KTCYx(25);
    }

   if(PORTA==0B00001001)
    {
        lcd_locate(2,1);
        strcpypgm2ram(dado,"    ");
        lcd_texto(dado);
     /* y=y+1;
        if (y==11)
        {                                  Fazer a andar no display
            y=1;
        }*/
        lcd_locate(2,1);
        strcpypgm2ram(dado,"C109");
        lcd_texto(dado);
        PORTEbits.RE0=1;
        Delay10KTCYx(25);
        PORTEbits.RE0=0;
        Delay10KTCYx(25);
    }

   if(PORTA==0B00001010)
    {
        lcd_locate(2,1);
        strcpypgm2ram(dado,"    ");
        lcd_texto(dado);
     /* y=y+1;
        if (y==11)
        {                                  Fazer a andar no display
            y=1;
        }*/
        lcd_locate(2,1);
        strcpypgm2ram(dado,"C110");
        lcd_texto(dado);
        PORTEbits.RE0=1;
        Delay10KTCYx(25);
        PORTEbits.RE0=0;
        Delay10KTCYx(25);
    }

   if(PORTA==0B00001011)
    {
        /*lcd_locate(2,6);
        strcpypgm2ram(dado,"    ");
        lcd_texto(dado);
     /* y=y+1;
        if (y==11)
        {                                  Fazer a andar no display
            y=1;
        }*/
        PORTEbits.RE0=0;
        lcd_locate(2,6);
        strcpypgm2ram(dado,"P101");
        lcd_texto(dado);
        Delay10KTCYx(50);
    }

   if(PORTA==0B00001100)
    {
       /* lcd_locate(2,6);
        strcpypgm2ram(dado,"    ");
        lcd_texto(dado);
     /* y=y+1;
        if (y==11)
        {                                  Fazer a andar no display
            y=1;
        }*/
       PORTEbits.RE0=0;
        lcd_locate(2,6);
        strcpypgm2ram(dado,"P102");
        lcd_texto(dado);
        Delay10KTCYx(50);
    }

   if(PORTA==0B00001101)
    {
        lcd_locate(2,6);
        strcpypgm2ram(dado,"    ");
        lcd_texto(dado);
     /* y=y+1;
        if (y==11)
        {                                  Fazer a andar no display
            y=1;
        }*/
        PORTEbits.RE0=0;
        lcd_locate(2,6);
        strcpypgm2ram(dado,"P103");
        lcd_texto(dado);
        Delay10KTCYx(50);
    }

   if(PORTA==0B00001110)
    {
        lcd_locate(2,6);
        strcpypgm2ram(dado,"    ");
        lcd_texto(dado);
     /* y=y+1;
        if (y==11)
        {                                  Fazer a andar no display
            y=1;
        }*/
        PORTEbits.RE0=0;
        lcd_locate(2,6);
        strcpypgm2ram(dado,"P104");
        lcd_texto(dado);
        Delay10KTCYx(50);
    }

   if(PORTA==0B00001111)
    {
        lcd_locate(2,6);
        strcpypgm2ram(dado,"    ");
        lcd_texto(dado);
     /* y=y+1;
        if (y==11)
        {                                  Fazer a andar no display
            y=1;
        }*/
        PORTEbits.RE0=0;
        lcd_locate(2,6);
        strcpypgm2ram(dado,"P105");
        lcd_texto(dado);
        Delay10KTCYx(50);
    }

   if(PORTA==0B00010000)
    {
        lcd_locate(2,6);
        strcpypgm2ram(dado,"    ");
        lcd_texto(dado);
     /* y=y+1;
        if (y==11)
        {                                  Fazer a andar no display
            y=1;
        }*/
        PORTEbits.RE0=0;
        lcd_locate(2,6);
        strcpypgm2ram(dado,"P106");
        lcd_texto(dado);
        Delay10KTCYx(50);
    }

   if(PORTA==0B00010001)
    {
        lcd_locate(2,6);
        strcpypgm2ram(dado,"    ");
        lcd_texto(dado);
     /* y=y+1;
        if (y==11)
        {                                  Fazer a andar no display
            y=1;
        }*/
        PORTEbits.RE0=0;
        lcd_locate(2,6);
        strcpypgm2ram(dado,"P107");
        lcd_texto(dado);
        Delay10KTCYx(50);
    }

   if(PORTA==0B00010010)
    {
        lcd_locate(2,6);
        strcpypgm2ram(dado,"    ");
        lcd_texto(dado);
     /* y=y+1;
        if (y==11)
        {                                  Fazer a andar no display
            y=1;
        }*/
        PORTEbits.RE0=0;
        lcd_locate(2,6);
        strcpypgm2ram(dado,"P108");
        lcd_texto(dado);
        Delay10KTCYx(50);
    }

   if(PORTA==0B00010011)
    {
        lcd_locate(2,6);
        strcpypgm2ram(dado,"    ");
        lcd_texto(dado);
     /* y=y+1;
        if (y==11)
        {                                  Fazer a andar no display
            y=1;
        }*/
        PORTEbits.RE0=0;
        lcd_locate(2,6);
        strcpypgm2ram(dado,"P109");
        lcd_texto(dado);
        Delay10KTCYx(50);
    }

   if(PORTA==0B00010100)
    {
        PORTEbits.RE0=0;
        lcd_locate(2,6);
        strcpypgm2ram(dado,"    ");
        lcd_texto(dado);
     /* y=y+1;
        if (y==11)
        {                                  Fazer a andar no display
            y=1;
        }*/
        lcd_locate(2,6);
        strcpypgm2ram(dado,"P110");
        lcd_texto(dado);
        Delay10KTCYx(50);
    }

    if(PORTA==0B00010101)
    {
        lcd_locate(2,11);
        strcpypgm2ram(dado,"    ");
        lcd_texto(dado);
     /* y=y+1;
        if (y==11)
        {                                  Fazer a andar no display
            y=1;
        }*/
        lcd_locate(2,11);
        strcpypgm2ram(dado,"E101");
        lcd_texto(dado);
        PORTEbits.RE0=1;
        Delay10KTCYx(12);
        PORTEbits.RE0=0;
        Delay10KTCYx(12);
        PORTEbits.RE0=1;
        Delay10KTCYx(12);
        PORTEbits.RE0=0;
        Delay10KTCYx(12);
    }

   if(PORTA==0B00010110)
    {
        lcd_locate(2,11);
        strcpypgm2ram(dado,"    ");
        lcd_texto(dado);
     /* y=y+1;
        if (y==11)
        {                                  Fazer a andar no display
            y=1;
        }*/
        lcd_locate(2,11);
        strcpypgm2ram(dado,"E102");
        lcd_texto(dado);
        Delay10KTCYx(12);
        PORTEbits.RE0=0;
        Delay10KTCYx(12);
        PORTEbits.RE0=1;
        Delay10KTCYx(12);
        PORTEbits.RE0=0;
        Delay10KTCYx(12);
    }

   if(PORTA==0B00010111)
    {
        lcd_locate(2,11);
        strcpypgm2ram(dado,"    ");
        lcd_texto(dado);
     /* y=y+1;
        if (y==11)
        {                                  Fazer a andar no display
            y=1;
        }*/
        lcd_locate(2,11);
        strcpypgm2ram(dado,"E103");
        lcd_texto(dado);
        Delay10KTCYx(12);
        PORTEbits.RE0=0;
        Delay10KTCYx(12);
        PORTEbits.RE0=1;
        Delay10KTCYx(12);
        PORTEbits.RE0=0;
        Delay10KTCYx(12);
    }

   if(PORTA==0B00011000)
    {
        lcd_locate(2,11);
        strcpypgm2ram(dado,"    ");
        lcd_texto(dado);
     /* y=y+1;
        if (y==11)
        {                                  Fazer a andar no display
            y=1;
        }*/
        lcd_locate(2,11);
        strcpypgm2ram(dado,"E104");
        lcd_texto(dado);
        Delay10KTCYx(12);
        PORTEbits.RE0=0;
        Delay10KTCYx(12);
        PORTEbits.RE0=1;
        Delay10KTCYx(12);
        PORTEbits.RE0=0;
        Delay10KTCYx(12);
    }

   if(PORTA==0B00011001)
    {
        lcd_locate(2,11);
        strcpypgm2ram(dado,"    ");
        lcd_texto(dado);
     /* y=y+1;
        if (y==11)
        {                                  Fazer a andar no display
            y=1;
        }*/
        lcd_locate(2,11);
        strcpypgm2ram(dado,"E105");
        lcd_texto(dado);
        Delay10KTCYx(12);
        PORTEbits.RE0=0;
        Delay10KTCYx(12);
        PORTEbits.RE0=1;
        Delay10KTCYx(12);
        PORTEbits.RE0=0;
        Delay10KTCYx(12);
    }

   if(PORTA==0B00011010)
    {
        lcd_locate(2,11);
        strcpypgm2ram(dado,"    ");
        lcd_texto(dado);
     /* y=y+1;
        if (y==11)
        {                                  Fazer a andar no display
            y=1;
        }*/
        lcd_locate(2,11);
        strcpypgm2ram(dado,"E106");
        lcd_texto(dado);
        Delay10KTCYx(12);
        PORTEbits.RE0=0;
        Delay10KTCYx(12);
        PORTEbits.RE0=1;
        Delay10KTCYx(12);
        PORTEbits.RE0=0;
        Delay10KTCYx(12);
    }

   if(PORTA==0B00011011)
    {
       /* lcd_locate(2,11);
        strcpypgm2ram(dado,"    ");
        lcd_texto(dado);
     /* y=y+1;
        if (y==11)
        {                                  Fazer a andar no display
            y=1;
        }*/
        lcd_locate(2,11);
        strcpypgm2ram(dado,"E107");
        lcd_texto(dado);
        Delay10KTCYx(12);
        PORTEbits.RE0=0;
        Delay10KTCYx(12);
        PORTEbits.RE0=1;
        Delay10KTCYx(12);
        PORTEbits.RE0=0;
        Delay10KTCYx(12);
    }

   if(PORTA==0B00011100)
    {
        /*lcd_locate(2,11);
        strcpypgm2ram(dado,"    ");
        lcd_texto(dado);
     /* y=y+1;
        if (y==11)
        {                                  Fazer a andar no display
            y=1;
        }*/
        lcd_locate(2,11);
        strcpypgm2ram(dado,"E108");
        lcd_texto(dado);
        Delay10KTCYx(12);
        PORTEbits.RE0=0;
        Delay10KTCYx(12);
        PORTEbits.RE0=1;
        Delay10KTCYx(12);
        PORTEbits.RE0=0;
        Delay10KTCYx(12);
    }

   if(PORTA==0B00011101)
    {
        lcd_locate(2,11);
        strcpypgm2ram(dado,"    ");
        lcd_texto(dado);
     /* y=y+1;
        if (y==11)
        {                                  Fazer a andar no display
            y=1;
        }*/
        lcd_locate(2,11);
        strcpypgm2ram(dado,"E109");
        lcd_texto(dado);
        Delay10KTCYx(12);
        PORTEbits.RE0=0;
        Delay10KTCYx(12);
        PORTEbits.RE0=1;
        Delay10KTCYx(12);
        PORTEbits.RE0=0;
        Delay10KTCYx(12);
    }

   if(PORTA==0B00011110)
    {
        lcd_locate(2,11);
        strcpypgm2ram(dado,"    ");
        lcd_texto(dado);
     /* y=y+1;
        if (y==11)
        {                                  Fazer a andar no display
            y=1;
        }*/
        lcd_locate(2,11);
        strcpypgm2ram(dado,"E110");
        lcd_texto(dado);
        Delay10KTCYx(12);
        PORTEbits.RE0=0;
        Delay10KTCYx(12);
        PORTEbits.RE0=1;
        Delay10KTCYx(12);
        PORTEbits.RE0=0;
        Delay10KTCYx(12);
    }

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rosilene,

 

O seu código é um pouco longo demais, pela descrição do teu problema, verifique se você não tem alguma variável de controle de quantidade de quartos que esteja limitada em 10 ou algo parecido.

 

Analisar seu código, sem connhecer o algorítmo, fica complicado de entender a sua solução para o problema.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Gabriel, eu peguei esta programação como finalizada. Não conheço o programa MPLAB X IDE, e conheço pouco de eletrônica. Quando fui testar a central de chamadas anotei os erros que continha. Examinei a programação consegui resolver um problema na chamada dita em linha, ou seja, numa sequencia de 10 chamadas simultâneas. Mas ao executar chamadas simultâneas do quarto 101, 102, 103, 109, 112, 115 e 116, uma chamada é pulada.

Veja abaixo como esta descrito na programação.

 

 

#include <p18f4620.h>                   //Aqui é informado o processador que será utilizado pelo projeto
#include <delays.h>
#include <delays.h>

#pragma config WDT = OFF                //desliga watchdog
#pragma config LVP = OFF                //desliga programação em baixa tensão
#pragma config OSC = INTIO67                 //Oscillator(LP,XT,HS,RC,EC,ECIO,HSPLL,RCIO,INTIO67,INTIO7

#define ch PORTAbits.RA0
#define pr PORTAbits.RA1
#define em PORTAbits.RA2
#define sg1 PORTCbits.RC0
#define sg2 PORTCbits.RC1
#define s_ch PORTBbits.RB0
#define s_pr PORTBbits.RB1
#define s_em PORTBbits.RB2
#define led_ch PORTBbits.RB3
#define led_pr PORTBbits.RB4
#define led_em PORTBbits.RB5
#define led_sg PORTBbits.RB6

void main (void)
{
    ADCON1=0b00001111;
    TRISA=1;            //Trasnforma Port A em entrada
    PORTA=0;            //Zera todas as entradas em A
    TRISB=0;            //Trasnforma Port B em saida
    PORTB=0;            //Zera todas as saidas em B
    TRISCbits.RC0=0;    //Trasnforma Port sg1 em saida
    //PORTC=0;          //Zera todas as saidas em C
    TRISCbits.RC1=1;    //Trasforma RC1 em Entrada
        
    loop:
 
        if (ch==1 && s_pr==0)           //Se Chamada apertada e Presença desligada
        {
            s_ch=1;                     //Envia sinal de chamada pra central
            led_ch=1;                   //Acende os leds de chamada
            sg1=1;                      //liga siga-me 1
            Delay10KTCYx(5);
        }

        if (pr==1 && s_pr==0)           //Se precença apertada 1° vez
        {
            sg1=0;
            Delay10KTCYx(5);
            s_ch=0;                     //Desliga sinal de chamada para central
            led_ch=0;                   //Desliga leds de chamada
            s_pr=1;                     //Liga sinal de Presença para central
            led_pr=1;                   //Liga led de precença
            
            Delay10KTCYx(5);
        }

        if (sg2==1 && s_pr==1)          //Se siga-me liga enquanto presença ligada
        {
            led_sg=1;                   //Acende led Siga-me
        }

        else                     //se não siga-me desliga apaga led siga-me
        {
            led_sg=0;
        }



         if (pr==1 && s_pr==1)          //Se precença apertada estando ativada
        {
            s_pr=0;                     //Desliga sinal de Presença para central
            led_pr=0;                   //Desliga led de precença
            led_em=0;                   //Desliga led de emergência
            s_em=0;                     //Desliga sinal de emergência
            Delay10KTCYx(5);
        }



        if (s_em==0 && em==1 && s_pr==1)           //Se emergência estiver desligada e for apertada
        {
            s_em=1;                     //Liga sinal de emergência
            led_em=1;                   //Liga led de emergência
            Delay10KTCYx(5);
        }

        if (s_em==1 && em==1)           //se emergência estiver ligada e for apertada novamente
        {
            s_em=0;                     //desliga sinal de emergência
            led_em=0;                   //desliga led de emergência
            Delay10KTCYx(5);
        }

    goto loop;
}

 

 

Rosilene,

 

O seu código é um pouco longo demais, pela descrição do teu problema, verifique se você não tem alguma variável de controle de quantidade de quartos que esteja limitada em 10 ou algo parecido.

 

Analisar seu código, sem connhecer o algorítmo, fica complicado de entender a sua solução para o problema.

 

 

Gabriel, eu peguei esta programação como finalizada. Não conheço o programa MPLAB X IDE, e conheço pouco de eletrônica. Quando fui testar a central de chamadas anotei os erros que continha. Examinei a programação consegui resolver um problema na chamada dita em linha, ou seja, numa sequencia de 10 chamadas simultâneas. Mas ao executar chamadas simultâneas do quarto 101, 102, 103, 109, 112, 115 e 116, uma chamada é pulada.

Veja abaixo como esta descrito na programação.

 

 

#include <p18f4620.h>                   //Aqui é informado o processador que será utilizado pelo projeto
#include <delays.h>
#include <delays.h>

#pragma config WDT = OFF                //desliga watchdog
#pragma config LVP = OFF                //desliga programação em baixa tensão
#pragma config OSC = INTIO67                 //Oscillator(LP,XT,HS,RC,EC,ECIO,HSPLL,RCIO,INTIO67,INTIO7

#define ch PORTAbits.RA0
#define pr PORTAbits.RA1
#define em PORTAbits.RA2
#define sg1 PORTCbits.RC0
#define sg2 PORTCbits.RC1
#define s_ch PORTBbits.RB0
#define s_pr PORTBbits.RB1
#define s_em PORTBbits.RB2
#define led_ch PORTBbits.RB3
#define led_pr PORTBbits.RB4
#define led_em PORTBbits.RB5
#define led_sg PORTBbits.RB6

void main (void)
{
    ADCON1=0b00001111;
    TRISA=1;            //Trasnforma Port A em entrada
    PORTA=0;            //Zera todas as entradas em A
    TRISB=0;            //Trasnforma Port B em saida
    PORTB=0;            //Zera todas as saidas em B
    TRISCbits.RC0=0;    //Trasnforma Port sg1 em saida
    //PORTC=0;          //Zera todas as saidas em C
    TRISCbits.RC1=1;    //Trasforma RC1 em Entrada
        
    loop:
 
        if (ch==1 && s_pr==0)           //Se Chamada apertada e Presença desligada
        {
            s_ch=1;                     //Envia sinal de chamada pra central
            led_ch=1;                   //Acende os leds de chamada
            sg1=1;                      //liga siga-me 1
            Delay10KTCYx(5);
        }

        if (pr==1 && s_pr==0)           //Se precença apertada 1° vez
        {
            sg1=0;
            Delay10KTCYx(5);
            s_ch=0;                     //Desliga sinal de chamada para central
            led_ch=0;                   //Desliga leds de chamada
            s_pr=1;                     //Liga sinal de Presença para central
            led_pr=1;                   //Liga led de precença
            
            Delay10KTCYx(5);
        }

        if (sg2==1 && s_pr==1)          //Se siga-me liga enquanto presença ligada
        {
            led_sg=1;                   //Acende led Siga-me
        }

        else                     //se não siga-me desliga apaga led siga-me
        {
            led_sg=0;
        }



         if (pr==1 && s_pr==1)          //Se precença apertada estando ativada
        {
            s_pr=0;                     //Desliga sinal de Presença para central
            led_pr=0;                   //Desliga led de precença
            led_em=0;                   //Desliga led de emergência
            s_em=0;                     //Desliga sinal de emergência
            Delay10KTCYx(5);
        }



        if (s_em==0 && em==1 && s_pr==1)           //Se emergência estiver desligada e for apertada
        {
            s_em=1;                     //Liga sinal de emergência
            led_em=1;                   //Liga led de emergência
            Delay10KTCYx(5);
        }

        if (s_em==1 && em==1)           //se emergência estiver ligada e for apertada novamente
        {
            s_em=0;                     //desliga sinal de emergência
            led_em=0;                   //desliga led de emergência
            Delay10KTCYx(5);
        }

    goto loop;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.