Você está na página 1de 10

Universidade do Estado do Amazonas UEA

Escola Superior de Tecnologia EST


Rachel Batalha de Lima

Sistema de Bloqueio de Cdigo Digital

Manaus
2017
Rachel Batalha de Lima

Trabalho solicitado pelo professor


Edgard Luciano da disciplina de
Sistemas Microprocessados para
obteno de nota parcial do
perodo 2017/1.

Manaus
2017
Introduo

A segurana uma grande preocupao em nosso dia a dia, e os bloqueios digitais


tornaram-se uma parte importante desses sistemas de segurana. Existem muitos tipos
de tecnologias disponveis para proteger nosso local, como:
Sistemas de segurana baseados em PIR(Infravermelho Passivo),
Sistema de segurana baseado em RFID(Identificao por radiofrequncia),
Alarmes de segurana de laser,
Sistemas de matriz biolgica, etc.
Com a utilizao do microcontrolador 8051 ser demonstrada uma aplicao a qual
foi intitulada Sistema de Bloqueio de Cdigo Digital que consiste em simular o
funcionamento de um bloqueio digital com a utilizao do display de 7 segmentos, das
chaves pushes buttons, buzzer e do display de cristal lquido.
Sistema de Bloqueio de Cdigo Digital

De acordo com o embasamento terico visto em sala de aula com todas as


caractersticas do microcontrolador 8051 como por exemplo suas sub-rotinas, portas de
entrada e sada, timers/contadores e entre outros, podemos compreender ao desenvolver
a aplicao em um ambiente prtico a melhor maneira de utilizar cada funo do mesmo.

Funcionamento

A aplicao ao ser executada na placa AT8951ED2 com o ciclo de clock


110592MHz funcionar de acordo com os passos a seguir:
O nome do sistema, Bloqueio de Cdigo Digital, ser mostrado no display de
cristal lquido,
Ser utilizada a interrupo de hardware INT0. Quando o usurio pressionar a
interrupo, o sistema inicializar,
Ser mostrado no display de 7 segmentos a mensagem: On assim validando o
incio do processo,
O contador T0 ser acionado ao ser pressionado 5 vezes, a seguir,
Ser mostrado no display de cristal lquido a mensagem: Digite a senha:
Com a utilizao dos pushes buttons, ao ser digitado o padro corretamente
ser exibido no display de cristal lquido a mensagem: Senha Correta!
Ao ser digitado o padro incorreto ser exibido no display de cristal lquido a
mensagem: Senha Incorreta!. E a seguir: Digite a senha: assim o usurio
poder digitar novamente o padro.

Cdigo da Aplicao

O cdigo foi desenvolvido com a utilizao da IDE MikroC pro 2009 e o gravador
Atmel FLIP 3.3.4. Segue abaixo a codificao:

//LCD
sbit LCD_RS at P3_6_bit;
sbit LCD_EN at P3_7_bit;

sbit LCD_D0 at P2_0_bit;


sbit LCD_D1 at P2_1_bit;
sbit LCD_D2 at P2_2_bit;
sbit LCD_D3 at P2_3_bit;
sbit LCD_D4 at P2_4_bit;
sbit LCD_D5 at P2_5_bit;
sbit LCD_D6 at P2_6_bit;
sbit LCD_D7 at P2_7_bit;

//Teclas:
#define bot1 P1_0_bit
#define bot2 P1_1_bit
#define bot3 P1_2_bit
#define bot4 P1_3_bit

#define DELAY_7SEG 10

//Display 7 segmentos
#define edisp1 P3_2_bit
#define edisp2 P3_3_bit

code unsigned char validation[] = {0xc0,0xab, 0xff};


int systemStart = 0;

char txt1[] = "Bloqueio de ";


char txt2[] = "Codigo Digital";
char txt3[] = "Digite a Senha:";
char txt4[] = "Senha Correta!";
char txt5[] = "Senha Incorreta!";

int acertou;

void fun_int_ex0();
void systemOn();
void systemOff();
void showOn();
void nameSystem();
void insertPasswordLcd();
void insertPassword();
void passwordCorrect();
void passwordIncorrect();

void main() {
nameSystem();

EX0_bit=1; // Habilita EX0


EA_bit=1; // Habilta chave geral EA
IT0_bit=0; // Configura INT0 como Nvel (enquanto pressionado fica ativo)

while(systemStart==0);

EX0_bit=0; // Habilita EX0


EA_bit=0; // Habilta chave geral EA
IT0_bit=1; // Configura INT0 como Nvel (enquanto pressionado fica ativo)

showOn();
insertPasswordLcd();
insertPassword();
}

void showOn(){ // show On


TR0_bit = 0;
TF0_bit = 0;
TMOD = 0b00000110; // configuraao do TMOD
TL0 = (256 - 5); // valor inicial
TH0 = (256 - 5); // valor de recarga
TR0_bit = 1; // ligar timer

while(!TF0_bit){ // Esperar estouro


TF0_bit = 0; // zerar flag

//int aux=0;

// while(aux < 100){


edisp1=0;
edisp2=1;
P0 = validation[0];
Delay_ms(DELAY_7SEG);

edisp1=1;
edisp2=0;
P0 = validation[1];
Delay_ms(DELAY_7SEG);
//aux+=1;
//}
}

edisp1=1;
edisp2=1;
}

void fun_int_ex0 (void) org IVT_ADDR_EX0 { //cria a funo e associa o end. vetor
systemStart = 1;
}

void insertPassword(){
int checkButtont1 = 1;
int checkButtont2 = 1;
int checkButtont3 = 1;
int checkButtont4 = 1;
int sequenciaCorreta[4] = {1,2,3,4};
int aux[4] = {0,0,0,0};

int countPressButtons = 0;
int acertos = 0;
int i = 0;

while (1){
while( (checkButtont1 = bot1 == 1) && (checkButtont2 = bot2 == 1) &&
(checkButtont3 = bot3 == 1) && (checkButtont4 = bot4 == 1));
Delay_ms(500);

if(checkButtont1 == 0){
aux[countPressButtons] = 1; }
else if (checkButtont2 == 0){
aux[countPressButtons] = 2;
}
else if (checkButtont3 == 0){
aux[countPressButtons] = 3;
}
else if (checkButtont4 == 0){
aux[countPressButtons] = 4;
}
countPressButtons++;

if (countPressButtons == 4){

for (i = 0; i < 4; i++){


if(aux[i] == sequenciaCorreta[i]){
acertos++;
}
}

if( acertos == 4){


break;
}
else{
passwordIncorrect();
acertos = 0;
countPressButtons = 0;
for (i = 0; i < 4; i++){
aux[i] = 0;
}
Delay_ms(500);
insertPasswordLcd();
}
}
}

passwordCorrect();
P1_4_bit = 0;
Delay_ms(500);
P1_4_bit = 1;

void nameSystem(){
Lcd_Init(); // Initialize Lcd
Lcd_Cmd(_LCD_CLEAR); // Clear display
Lcd_Cmd(_LCD_CURSOR_OFF); // Cursor off
Lcd_Out(1,1,txt1);

Lcd_Out(2,1,txt2); // Write text in second row


Lcd_Cmd(_LCD_CLEAR); // Clear display

Lcd_Out(1,1,txt1); // Write text in first row


Lcd_Out(2,1,txt2); // Write text in second row

Delay_ms(2000);

void insertPasswordLcd(){
Lcd_Init(); // Initialize Lcd

Lcd_Cmd(_LCD_CLEAR); // Clear display


Lcd_Cmd(_LCD_CURSOR_OFF); // Cursor off
Lcd_Out(1,1,txt3); // Write text in first row
}

void passwordCorrect(){
Lcd_Init(); // Initialize Lcd

Lcd_Cmd(_LCD_CLEAR); // Clear display


Lcd_Cmd(_LCD_CURSOR_OFF); // Cursor off
Lcd_Out(1,1,txt4); // Write text in first row
}

void passwordIncorrect(){
Lcd_Init(); // Initialize Lcd

Lcd_Cmd(_LCD_CLEAR); // Clear display


Lcd_Cmd(_LCD_CURSOR_OFF); // Cursor off
Lcd_Out(1,1,txt5); // Write text in first row
}
Concluso
Referncias

1. Gimenez, Salvador Pinillos. Microcontroladores 8051: Teoria do hardware e do


software / Aplicaes em controle digital / Laboratrio e simulao. Pearson
Education do Brasil Ltda, 2002.

2. Microgenios. Disponvel em: <http://www.microgenios.com.br/>. Acesso em: 12 de


junho de 2017.

Você também pode gostar