Relogio digital

Disponível somente no TrabalhosFeitos
  • Páginas : 5 (1060 palavras )
  • Download(s) : 0
  • Publicado : 8 de novembro de 2012
Ler documento completo
Amostra do texto
Projeto Relógio







Telemática – Semestre IV - Noite
















Fortaleza, 21 de Dezembro de 2011

INTRODUÇÃO

Neste trabalho, produzimos o projeto de um Relógio Digital, a base de um microcontrolador PIC 16F871, seu layout foi criado e simulado no software Proteus, e seu Firmware foi desenvolvido em código C e codificado para um arquivo .HEX, para quepudéssemos realizar o download para o PIC, junto a eles e para maior entendimento do problema em questão a ser resolvido fizemos a rede Petri onde obtivemos a melhor compreensão sobre o desafio desse projeto.



PROJETO



No projeto original temos que:

1) Desenvolver um relógio digital com sistema de alarme embutido.

2) O alarme tocará por cinco segundos e um Led ficará aceso, oalarme poderá ser setado no tempo escolhido.

3) Três botões serão colocados para fazer as devidas alterações de tempo e alarme.

4) A interrupção será dada por int_timer0


OBJETIVOS


- Criar Circuito em Hardware do Projeto no Proteus.

- Desenvolver software que controlará a lógica do sistema.

- Realizar testes no Sistema.

- Especificar de forma técnica oHardware e o software utilizados.

- Concluir o projeto do Relógio, abordando de forma sucinta o cumprimento dos objetivos lançados.











REDE PETRI



[pic]
Rede de Petri é uma forma de representar um sistema graficamente, com intuito de verificar se o mesmo está funcionando de maneira correta, dessa forma podemos detectar algumas falhas nesse sistema, como por exemplo,se ele apresenta algum tipo de bloqueio.

Temp1 faz a contagem de segundos, quando Uni1 recebe as nove (9) fichas ela completa um ciclo formando uma dezena de minuto, assim Dez1 recebe uma ficha até completar cinco (5), quando Dez1 estiver com cinco (5) fichas e Uni1 com nove (9), eles fecharam um ciclo de 1 hora entregando uma ficha a UniH que ficará completa com três (3), passando 1 ficha paraDezHHHH que ficará completa com duas fichas, quando o ciclo fechar em DezH com duas (2) fichas, UniH com Três (3) fichas, Dez1 com cinco (5) fichas e Uni1(9), todos irão zerar e recomeçarão o ciclo completo.

RELÓGIO PROTEUS


ESPECIFICAÇÕES TÉCNICAS – HARDWARE

Utilizamos os seguintes componentes no simulador PROTEUS 7:

- 1 Oscilador de cristal (CRYSTAL) na freqüência de 1Mhz.
- 2capacitores de 1 nF,cada, (CAP).
- 1 microcontrolador (PIC16F871).
- 4 Displays de 7 seguimentos, tipo catodo
- 1 LED verde
- 3 Button (Botão)
- 3 Resistores

Logo abaixo segue graficamente o esquema proposto no simulador PROTEUS:






Estado 0
[pic]


Estado 1: 1 hora
[pic]

Estado 2: 1 minuto
[pic]


Estado 3: 23 horas e 59 minutos
[pic]
Estado 4: alarme acionado em30 minutos
[pic]

Estado 5: retornando ao estado 0
[pic]



Código:


#include // incluindo a biblioteca do micro selecionado
#use delay(clock=1000000) // define o oscilador
#fuses XT,NOWDT,PUT // definição de fusíveis

// lista 0-9 em binário para diplay 7Seg
const byte min[10] ={0b00000000,0b00000001,0b00000010,0b00000011,0b00000100,0b00000101,0b00000110,0b00000111,0b00001000,0b00001001};
const byte dez[10] = {0b00000000,0b00010000,0b00100000,0b00110000,0b01000000,0b01010000,0b01100000,0b01110000,0b10000000,0b10010000};
const byte hora[10] = {0b00000000,0b00000001,0b00000010,0b00000011,0b00000100,0b00000101,0b00000110,0b00000111,0b00001000,0b00001001};
const byte dezenaHora[10] ={0b00000000,0b00010000,0b00100000,0b00110000,0b01000000,0b01010000,0b01100000,0b01110000,0b10000000,0b10010000};

int conta=0; //variáveis globais para contagem do relógio
int dezSeg=0;
int uniMin=0;
int dezMin=0;

int alConta=0;
int alDezSeg=1;
int alUniMin=0;
int alDezMin=0;

int alFlag=0;
int ajFlag=0;

int alIniciar=0;
int alControle=0;

#int_rb
void trata_rb()...
tracking img