You are on page 1of 12

Universidade Federal de Mato Grosso

Faculdade de Arquitetura, Engenharia e Tecnologia
Departamento de Engenharia Elétrica
Laboratório de Microprocessadores

Relatório Parcial - Projeto
Sistema de controle de acesso através
de chaves eletrônicas

Engenharia Elétrica

Docente: Prof. Nicolás Eusebio Cortez Ledesma

Discentes:
Bárbara Morais Gianesini
Kaio Vinicius Vilerá

Turma: N1

Cuabá 15 de Abril de 2015

A opção de login. Resumo Sistemas de segurança. Desta forma.1. relativamente baixo. a saber: Modo stand-by (sleep). cuja interface gráfica é apresentada por um display LCD 16X2. 3. o que permite saber qual a tecla pressionada ao se analisar o nível de tensão nos barramentos de cada linha e coluna. a programação foi desenvolvida em assembly e recursos específicos do referido PIC foram utilizados. comunicação via protocolo para gerenciamento de memória EEPROM e circuito integrado de um Real Time Clock e comunicação serial para transferência de dados. apresenta-se o uso do microcontrolador PIC16F877A e sua aplicação em um sistema de controle de acessos através de fechadura eletrônica com suporte multiusuário e registro de acessos. Suporte multiusuário e registro de acessos. O teclado matricial 4x4 utilizado está representado na figura abaixo. conveniente ou suficientemente eficiente um sistema operado exclusivamente por pessoas sem uso de tecnologia eletrônica. alterar ou limpar registros no banco de dados. Com a senha do administrador. Por isso. contendo ID (identificador). display de LCD 16X2. Objetivos  Implementar um sistema de controle de acesso através de fechaduras eletrônicas baseado no uC PIC. Com botões é possível navegar pelo menu. escolhendo as opções desejadas. O administrador ainda tem opção de limpar ou enviar estes dados de registros de abertura da tranca para o computador através de comunicação serial. Sistemas embarcados são de grande utilidade para serviços de segurança graças ao preço. é comum a adoção de tecnologias microcontroladas para tais aplicações. O usuário tem acesso a um menu. Interrupções. botões. de uma forma geral. . foi necessário o uso de componentes periféricos. Uma senha de administrador é predefinida na concepção do projeto e na gravação do código. têm-se privilégios para cadastrar. botões e teclado matricial. Sendo este um projeto de cunho acadêmico.UFMT. no menu. que na igualdade com registro cadastrado. Neste trabalho. se utilizam de tecnologias para controlar e registrar acessos de pessoas. para que fossem implementados. foram empregados conceitos estudados na disciplina de Microprocessadores do curso de Engenharia Elétrica da Universidade Federal de Mato Grosso . tendo em vista que nem sempre é viável. não sendo possível alteração pelo usuário. Fundamentação Teórica Diversos recursos do PIC foram utilizados e. Real Time Clock DS1307. data e hora. e pelo fato de ser possível desenvolver uma aplicação direcionada estritamente para o que se necessita. Este possui quatro linhas e quatro colunas interligadas. memória EEPRON FM24C256 e adaptador Serial/USB CH340. manipulações com Timer1. Quando uma tecla é pressionada. 2. tais como um teclado matricial. permite- se o contato entre uma determinada linha e coluna. envia sinal para abertura da tranca e informação de acesso é armazenada no banco de dados por tempo determinado. solicita código identificador (ID) e senha.

Figura 1: Teclado Matricial 4x4 Displays de LCD são muito utilizados no mercado a fim de se estabelecer uma interface gráfica com o usuário devido a sua fácil utilização e capacidade de exibição de números. Este modelo permite escrever até 32 caracteres. pelo o usuário. o módulo LCD possui um controlador próprio que permite a comunicabilidade com outros dispositivos através de um protocolo de comunicação. letras e símbolos. bytes inerentes a instrução e dados. De acordo com [1]. sendo 16 em cada uma das duas linhas disponíveis. o LCD16x2 foi utilizado. Figura 2: Display LCD16x2 . No projeto. Faz-se então a interligação dos pinos de dados e controle do módulo com os pinos do dispositivo que fará comunicação. sendo transferido.

toda a comunicação deve começar com uma condição de START válida e terminar com uma condição de STOP. De acordo com [2]. seguem-se dois bytes contendo palavras de endereço. toda vez que um byte é enviado com sucesso. sendo respondida pelo receptor com um acknowledge. Depois do byte de controle. que só então é seguida pelo byte de dados. que permite determinar o endereço a ser lido. basicamente. será leitura. o dispositivo escravo já envia o byte de dado presente no endereço n + 1. os 4 primeiros bits de controle são 1010 para operações de leitura e escrita. A figura a seguir ilustra os passos tomados para Random Read. que será respondida com o byte de dado do endereço especificado anteriormente pela operação de escrita falsa. Quando o dispositivo escravo enviar uma confirmação do recebimento (acknowledgemente) das palavras de endereço. uma entrada para o CLOCK (SCL) e uma entrada de dados I/O (SDA) para sincronizar a comunicação de dados com o dispositivo mestre. o mestre deve enviar outro START condition para finalmente ser enviado o comando de leitura (a operação verdadeira). se for enviado um comando de leitura. o método utilizado é conhecido como Random Read. O Real Time Clock DS1307 conta segundos. mês e ano. Foi o utilizado a memória EEPROM FM24C256 de 256 Kbits. caso se esteja utilizando mais de uma memória EEPROM simultaneamente. Figura X: Ilustração dos passos do protocolo IIC 2-wire para escrita de 1 byte na memória EEPROM 24C256. horas. Segundo [2]. Como o objetivo é utilizar Random Read. o receptor responde com uma confirmação (ACK). minutos. compatível com o protocolo de comunicação IIC 2-Wire. utiliza. deve- se começar uma operação de escrita falsa ("dummy write operation"). É importante salientar que. apresentando-os em BCD. Para memórias EEPROM. dia do mês. Se 1. que pode ser bidirecional. O último bit do byte de controle determina se a operação a ser realizada é de escrita ou de leitura. Estes 4 bits são então seguidos pelos bits A2. No caso de leitura de dados. escrita. se 0. Este módulo possui memória RAM interna de 56 . Dessa forma. Esse protocolo de comunicação. Figura 3: Ilustração dos passos do protocolo IIC 2-wire para leitura de 1 byte na memória EEPROM 24C256 através de Random Read. o FM24C256 guarda internamente o último endereço de memória utilizado (endereço n). A figura abaixo ilustra o funcionamento do protocolo para escrita de dados. A1 e A0 que permitem escolher o dispositivo utilizado. O byte de controle deve seguir a condição de START.

Para a leitura das memórias.m). .bytes e também se comunica através do protocolo IIC 2-wire. A figura abaixo mostra a distribuição de memórias do RTC: Figura 4: Mapa de endereço dos registradores do RTC DS1307. o RTC possui uma bateria interna que é chaveada quando o sistema detecta falta de tensão. 4. O relógio opera tanto no sistema 24 horas ou 12 horas (indicando a. Além disso. foi necessário estabelecer a conexão deles com as portas e pinos do microcontrolador utilizado. mantendo-o operativo mesmo em casos de ausência de alimentação. lê-se os dados em endereços específicos baseado No que se pretende obter. Da mesma forma que a memória. são ajustados automaticamente e inclui correções para anos bissextos. sendo a principal diferença a quantidade de dados transmitidos e o byte de controle. portanto.m/p. o protocolo é basicamente o mesmo do discutido anteriormente para a memória EEPROM. Os meses que não possuem 31 dias. serão utilizados dispositivos periféricos. Desenvolvimento do Trabalho a) Projeto do trabalho Como indicado na fundamentação teórica. Figura 5: Ilustração dos passos do protocolo IIC 2-wire para leitura de dados no RTC DS1307.

sendo eles responsáveis por transmitir e enviar dados. Essa transferência é feita através do protocolo de comunicação serial USART. esta interrupção é capaz de acordar o microcontrolador do estado de "sleep". sendo o mesmo configurado como pino digital de saída. O buzzer utilizado emite ondas sonoras quando alimentado por uma tensão de 5V. O projeto também inclui o uso de 4 botões do tipo botão de impulso. Para isso. e as restantes. e isso será utilizado no decorrer projeto. . O buzzer será conectado ao pino 1 da porta A. uma vez que a porta D não possui resistores de pull-up/pull-down internos. conter apenas LEDs e Displays 7 segmentos conectados à mesma na placa física. Além desses periféricos. e os mesmos estão conectados aos pinos 4. como portas de saída. é necessário conectar o mesmo a 7 pinos do microcontrolador. foi escolhida a porta D para conectar o teclado ao PIC. Destas portas. A memória EEPROM 24C256 e o módulo Relógio de Tempo Real (RTC) estão conectados as portas RC3(SCL) e RC4(SDA) do microcontrolador. 4 serão configuradas como portas de entrada. uma vez que ambos os módulos utilizam o protocolo de comunicação IIC 2-wire e as postas citadas são as únicas neste modelo de PIC que realizam a transferência de dados por este protocolo. e mais especificamente. será utilizado um display LCD 16x2. foram escolhidos por possuírem a característica de dispararem interrupção por mudança de estado de qualquer um destes pinos. Dessa forma. pode-se conectar um relé de 5 VCC em algum pino disponível do microcontrolador. e 3 deles para enviar comandos ao LCD. Como esses dispositivos não serão utilizados no projeto. serão utilizados os pinos TX e RX. Os resistores conectados ao teclado são utilizados como resistores de pull-down. 1 e 2 da porta E. mas errar a senha por 3 vezes consecutivas. Por fim. A escolha se deve ao fato da porta D. será acionado um buzzer quando o usuário tentar acessar o sistema. é necessária a utilização de 8 portas E/S do PIC. que é energizada (fechada) ou não (aberta) de acordo com o valor de tensão proveniente dos terminais do relé. conectados aos pinos 0. seria possível controlar a abertura da porta através no sistema de controle de acessos implementado neste projeto. Será também utilizado um adaptador serial/USB para fazer a transferência dos dados gravados na memória para o computador conectado por ele. o teclado matricial também poderá ser conectado à esta porta. respectivamente. para fazer a interface entre o sistema e o usuário. 6 e 7 da porta B. Para utilização do teclado matricial. além de possuir 8 pinos (como necessário). Este relé seria utilizado para acionar uma fechadura elétrica. Esses botões já estão implementados na placa de desenvolvimento. Para fins de segurança. por meio das conexões existentes na placa de desenvolvimento. A porta B. sendo 4 deles conectados aos pinos 0 ao 3 da porta B. destinados ao envio de caracteres à serem escritos no LCD. sendo que. Como o projeto será implementado fisicamente na placa de desenvolvimento montada pelos alunos. logo. 5 . os pinos citados.

b) Circuito esquemático Figura 6: Circuito Esquemático O circuito esquemático mostrado na figura 6 ainda não está completo. Falta ser acrescentado o módulo do Relógio de Tempo Real (RTC) e o buzzer. a figura 7 mostra uma das páginas do menu principal. enquanto que a figura 8 mostra o momento em que o usuário digita a senha para fazer login no sistema. Figura 7: Simulação menu . As figuras abaixo mostram alguns momentos do programa. de acordo com o circuito esquemático mostrado na figura 6. c) Simulações Para simulação do projeto. foi utilizado o software Proteus.

5. o projeto. de forma geral. Além disso. . Enquanto que os blocos em cinza ainda serão implementados ou não foram concluídos até o momento. dessa forma o professor poderá. também. Software a) Fluxogramas Fluxograma geral O fluxograma mostrado na figura 9 tem a finalidade de apresentar. simular o projeto. observa-se que os blocos na cor verde. são os blocos implementados até o momento. Figura 8: Simulação teclado matricial Será enviado em anexo o arquivo circuito esquemático criado no Proteus e o projeto criado no MPLAB. As instruções de utilização do sistema para o usuário foram incluídas no apêndice.

” Datasheet. 1996. . Referências bibliográficas [1] BARBACENA. Claudio A. todo o projeto está sendo desenvolvido usando-se somente a linguagem assembly. Figura 9: Fluxograma geral do projeto b) Código de programa em assembly para microcontroladores PIC Até esse ponto. 6. Ilton L. [2] FAIRCHIELD SEMICONDUCTOR.. 2000. todos os códigos serão inseridos nos apêndices. no. June. O código em assembly e as bibliotecas utilizadas serão enviados para o professor juntamente com o relatório. pp. Para o relatório final. “256 KBit 2-Wire Bus Interface Serial EEPROM with Write Protect. FLEURY. DISPLAY LCD. 1–12.

utilizando os botões indicados no circuito esquemático (figura 6). chamado de menu principal. no entanto. Caso o usuário erre nas três tentativas. O sistema tem. Isso quer dizer que a única tarefa que pode ser executada sem a autorização do administrador.  Remoção de um ou todos os usuários cadastrados. as funções descritas acima.  Alteração de senha de usuário. Apêndices Manual do usuário O sistema funciona da seguinte maneira. ainda não foram concluídas as implementações de todas das funções descritas. tem. O botão RIGHT (botão 1). como um alarme ante furto. Professor Nicolás Eusebio Cortez Ledesma [4] Datasheet PIC16F877A 7. Temos quatro botões. pode ser descrito como um botão de seleção. quando o mesmo for ligado.  Controle de registros de acesso Dentre as funções descritas acima. as funções descritas abaixo:  Acesso ao login do usuário cadastrado. através do LCD. indicado no circuito como botão 4. como é explicado no fluxograma. o botão UP move no sentido contrário. se o usuário digitar a senha correta. somente a primeira pode ser acessada sem a senha do administrador do sistema. O usuário poderá navegar entre as páginas do menu. basicamente.[3] Notas de aula da disciplina Microprocessadores UFMT. pois clicando nele. o número do ID (2 dígitos) e a senha de acesso (4 dígitos). basicamente. No entanto. com mais detalhes. Assumindo que o microcontrolador está desligado. entramos em um sub menu desta página. enquanto o botão DOWN muda de páginas em um sentido. ambos armazenados na memória. a função de navegar entre as páginas "conectadas" do menu. além de ser acionada uma sirene (buzzer). A mesma função tem o botão DOWN (botão 2). no momento do login será pedido.  Cadastro de novo usuário e informação sobre espaço disponível. Dessa forma. UP. Por fim. a) Login do usuário cadastrado Para os usuários já cadastrados. o fluxograma da figura 9 mostra como o menu principal está relacionado com os sub menus e suas páginas. é o login de usuários já cadastrados no sistema. DOWN. Serão explicadas. O botão UP. Até este ponto do projeto.  Visualização e alteração dos parâmetros do Relógio de Tempo Real (RTC). o sistema será bloqueado por um tempo de 15 à 20 minutos. ele terá acesso ao . o botão LEFT (botão 3) é usado para voltar de um sub menu para a página anterior. O usuário terá 3 tentativas para digitar a senha correspondente ao ID digitado. será mostrado na tela o primeiro menu. RIGHT e LEFT.

o administrador pode navegar no sub menu destinado as funções do RTC. horário de acesso. No momento do cadastro. contendo informações como ID. Futuramente. Na primeira opção. o usuário poderá digitar sua senha de acesso de 4 dígitos. A primeira. a nova senha será armazenada na memória no lugar da senha antiga. Esses usuários serão identificados através de um ID (00 – 99) e uma senha de 4 dígitos. de forma a se verificar os registros caso algo incomum aconteça no local onde o sistema foi instalado. e) Informe de horário e alteração de parâmetro do relógio de tempo real (RTC) Existe a possibilidade de visualizar e também alterar os parâmetros do RTC. E a segunda. um ID livre será identificado por tem o valor FF (binário) armazenado na memória. pode-se implementar o acionamento de uma fechadura elétrica via relé. Caso. será necessário que o administrador primeiro conecte o computador a placa do circuito. por algum motivo. que neste caso será escolhido anteriormente por meio do teclado numérico. Depois de . por meio de um adaptador Serial/USB. enviar os registros de acesso ao computador. será possível atualizar o horário e data através da alteração dos seus parâmetros. data e dia da semana. c) Remoção de um ou todos os usuários cadastrados O administrador poderá deletar todos os usuários cadastrados na memória. d) Alteração de senha do usuário Nesta opção. começando sempre do ID 00. serão armazenados somente os últimos 10 acessos. Na verdade. e então será pedida a nova senha. Depois disso. o microcontrolador informará o primeiro ID disponível. deletar somente um dado usuário. será armazenado o registro do mesmo na memória externa. O RTC será utilizado para garantir que a data e o horário de acesso dos usuários sejam precisos. remoção dos registros. O administrador poderá também. Dessa forma. e um LED amarelo acenderá na placa do circuito. a contagem do RTC deixe de sem correta. Todos os IDs e senhas serão armazenados em uma memória externa EEPROM (24C256). f) Controle de registros de acesso Esse sub menu controla os registros de acesso no sistema. Quando o usuário conseguir acessar o sistema. e ser cadastrado com sucesso.sistema. quando acabar a bateria do mesmo. Haverá um módulo RTC independente no projeto. por exemplo. Para isso. deixando os 100 IDs livres para novos usuários. Haverá suas opções. deve ser informado o ID do qual se deseja alterar a senha. Funções acessadas com autorização do administrador: b) Cadastro Será disponibilizado pelo sistema cem usuários.

Além disso. todos os registros serão deletados da memória externa. indicando cada digito da senha digitado. como ID e senha. e os dígitos digitados serão armazenados em dois registrador(8 bits) de maneira "empacotada". Depois disso. Entrada de ID Nesse caso. se sairá da rotina do teclado. e os dígitos digitados serão armazenados em um registrador(8 bits) de maneira "empacotada". o correspondente binário de cada dígito em cada nibble do registrador. O administrador também terá 3 tentativas para digitar a senha. Depois disso. nas funções que somente o administrador terá acesso. a rotina do teclado ficará esperando o usuário digitar os 2 dígitos. Diferentemente do caso do ID. caso ele falhe nas três. o correspondente binário de cada dígito em cada nibble dos registradores. no LCD serão mostrados asteriscos "****". o mesmo deve pressionar o botão RIGHT. no LCD será mostrado os dígitos que o usuário digitar. se sairá da rotina do teclado. será pedida a senha do administrador. a rotina do teclado ficará esperando o usuário digitar os 4 dígitos. Neste momento. para indicar que os dispositivos estão conectados e a transferência de dados pode ser iniciada.conectado. também de 4 dígitos. . Caso 2. armazenada na memória. o teclado funciona da seguinte maneira: Caso 1. será mostrada uma mensagem de sucesso. Se a segunda opção for selecionada. Ao final da transmissão. Entrada de Senha Agora. como o ID é composto de 2 dígitos. ou seja. Vale destacar que será utilizado um teclado matricial de 16 teclas para entrada das informações pelo usuário. A transferência de dados é feita através do protocolo de comunicação serial USART. ou seja. Como dito. como a senhas são compostas de 4 dígitos. o mesmo sistema de bloqueio do login será acionado.