Buscar

Sistema de Controle de Acesso - Microcontrolador

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

void main() {
 int i,x;
 const char BCD_7SEG[10] =
 {
 0x3f, //0
 0x06, //1
 0x5b, //2
 0x4f, //3
 0x66, //4
 0x6d, //5
 0x7d, //6
 0x07, //7
 0x7f, //8
 0x6f, //9
 };
 adcon1 = 0xff; //Config do ADC
 trisa = 0x00; //Define o portal A como saída
 trisc = 0x00; //Define o portal C como saída
 trisb = 0b00001111; //Define o portal B como entrada
 trisd = 0x00; //Define o portal D como saída
 i = 2;
 x = 0; // Sistema inicia com 4 pessoas dentro
 portd = 0x00; // Mostra o correspondente do display nos lads.
 portb = 0x00; // Vai ser usado para os alertas - Inicia desligado
 portc.RC1 = 1; //Config Buzzer
 while(1)
 {
 if(x==0)
 {
 if( portb.RB1 == 0)
 {
 i++;
 delay_ms(200); //Atraso para contagem
 }
 if( portb.RB2 == 0)
 {
 i--;
 delay_ms(200); //Atraso para contagem
 }
 PORTA.F5 = 1;
 PORTA.F4 = 0;
 portd = BCD_7SEG[i]; //Mostra i no DIS1
 if(i == 3)
 portb = 0b00010000; //Quando o numero de pessoas na sala foi de 3 acender um lad de alerta.
 // 5º Lad do portal B;
 if(i != 3)
 portb = 0b00000000;
 if(i<4)
 portc.RB1 = 1;
 if (i>4)
 portc.RB1 = 0;
 if(i == 8)
 portb = 0b00100000; //Quando o numero de pessoas na sala foi de 8 acender um lad de alerta.
 // 6º Lad do portal B;
 if(i != 8)
 portb = 0b00000000;
 if(i > 3)
 portc.RB2 = 1;
 if (i < 4)
 portc.RB2 = 0;
 if (i < 2 || i > 9){
 portc.RC1 = 0; //Liga Buz
 delay_ms(1000); //Início e fim da contagem
 portc.RC1 = 1; // Desliga Buz
 x = 1; // Manda i = 1 de maneira que a buz vai ficar ativo ate que o numero de pessoas
 // suba para mais de 2;
 }
 if(x == 1)
 {
 PORTA.F5 = 0;
 PORTA.F4 = 0;
 PORTA.F3 = 0;
 PORTA.F2 = 0;
 }
 }
 }
}

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais

Outros materiais