Ir ao conteúdo
  • Cadastre-se

Relógio digital com PIC


Gabriel Lazarini

Posts recomendados

  • 3 semanas depois...

Tenho um aqui para o PIC16F628A:

Esquema:

http://www.esnips.com/doc/5ce6dd7d-7012-48f8-9ed1-cad8f73a228c/Esquema-do-Circuito-do--Relógio-Digital

Programa em Assembly:

http://www.esnips.com/doc/0b9ab465-0d68-43d6-9f28-8652aa0a2588/Programa-Fonte-(.asm)-do-Relogio-Digital

Programa objeto (.hex):

http://www.esnips.com/doc/99c2be85-b176-41ff-802c-1f8a3ad217d6/Programa-Objeto-(.hex)-do-Relógio-Digital

No esquema não aparecem as ligações dos pinos de alimentação do 4052. Os pinos 7 e 8 devem ser ligados no VSS e o 16 no VDD.

Ainda não montei este circuito, apenas simulei.

Quem quiser testá-lo fique a vontade, reportando os erros encontrados, por favor.

O relé 1 é acionado por 3 segundos a cada minuto.

O relé 2 fornece pulsos de 3 segundos em número igual ao das horas (badaladas) com intervalo de 2 segundos entre os pulsos.

Estas saídas podem ser descartadas.

O tempos podem ser modificados alterando o programa.

O botão 1 faz piscar o display que será ajustado.

O botão 2 faz o ajuste.

Link para o comentário
Compartilhar em outros sites

Olá consegui abrir o link

Desde já agradeço e muito sua atençao.

porém existem partes do programa que n compreendi

Qual interrupção de TMR0 você utilizou?

Muito obrigada

Bruna

Por nada Bruna.

Quando o TMR0 "estoura", ele seta um flag (INTCON,T0IF) e se a interrupção do TMR0 estiver habilitada (INTCON,T0IE), o programa é desviado para o endereço 0X04, onde está a rotina de interrupção.

Link para o comentário
Compartilhar em outros sites

  • 2 meses depois...
  • Coordenador

Colega HAND, você seria melhor ajudado, se abrir um tópico específico para sua dúvida!...ok?

Click no icone, no canto superior esquerdo da tecla, "Novo Tópico" e siga as instruções...

Sugiro a você que leia as regras antes de abrir seu tópico.

Click aqui para ler as regras do fórum

Link para o comentário
Compartilhar em outros sites

  • 3 meses depois...

sim, posso sim.

me de um tempo, pois agora nao da.

prometo colocar no máximo até amanhã.

Antes de tudo: eu faço uma bagunça danada nos meus programas

quase nao uso comentarios.:D

Estou deixando um arquivo ZIP nesse arquivo contem o .HEX e .BAS do TX e do RX

http://media.xpg.com.br/xpg2.0/0/v/i/virtualwander/prog.zip

OBS: vou ter que desenhar o circuito para você, pois nao fiz esse relogio olhando desenho. hehehehehe. é um projeto que pensei em criar, fiz o programa e boa.

mas vou desenhar o circuito para você.

ele usa modulo TX e RX 433Mhz

prefere sem os modulos?

eu utilizo modulo, pois a temperatura que necessito medir fica a uns 10 metros do receptor. e o receptor é apenas monitor, nem relogio ele tem,

pois o relogio é transmitido via RF

Paz e Bem a todos.:)

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois...
  • 3 semanas depois...
  • 4 meses depois...

Galera estou tentendo fazer um projeto de uma lombada eletrônica, porém estou com problema na utilização da interrupção TIMER1. Eu estava tentando usar esta interrupção pra fazer a contagem do tempo, porém a interrupção dar erro na hora de compilar. Vou postar o código e o erro pode ser visto na imagem do programa. Quem puder ajudar fico muito grato. Utilizo o CCS C Compiler para compilar o código.

#include <16F877.h>

#device adc=8

#FUSES NOWDT, XT, NOPUT, NOPROTECT, BROWNOUT, NOLVP, NOCPD, NOWRT, NODEBUG

#use delay(clock=4000000)

#include "E:\Engenharia Elétrica\a\LCD_16x2_Lib.c"

#ZERO_RAM

int velocidadeMax=100;

long contador;

float s1 = 0.005, s2 = 0.005, velocidade1, velocidade2, cont1;

#int_TIMER1

TIMER1_isr(){

contador++;

printf(exibe_lcd,"\f cont: %lu \n",contador);

delay_ms(200);

}

void main()

{

setup_adc_ports(NO_ANALOGS);

setup_adc(ADC_OFF);

setup_psp(PSP_DISABLED);

setup_spi(FALSE);

setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);

setup_timer_1(T1_DISABLED);

setup_timer_2(T2_DIV_BY_16,62,1);

enable_interrupts(INT_TIMER1);

enable_interrupts(GLOBAL);

ini_lcd_16x2(); // Inicializa o LCD.

printf(exibe_lcd,"\fCABRESTOS S/A\n");

delay_ms(1000);

while(TRUE)

{

printf(exibe_lcd,"\f");

if(input(PIN_B4)){ //Passagem no primeiro laço

printf(exibe_lcd,"\f cont: %lu\n",contador);

delay_ms(200);

//printf(exibe_lcd,"\f Laco1 \n");

//delay_ms(200);

// printf(exibe_lcd,"\f");

}

// if(!input(PIN_B5)) {

// cont1=(contador/3600000); //tempo entre o sensor1 e sensor2 em horas

// contador=0;

// velocidade1=s1/cont1;

// printf(exibe_lcd,"\f Velocidade: %.2f \n",velocidade1);

// delay_ms(300);

// }

// if(input(PIN_B1)) {

else{

printf(exibe_lcd,"\f Em construcao \n");

delay_ms(500);

}

}

}

post-313784-1388495343002_thumb.jpg

Link para o comentário
Compartilhar em outros sites

  • 3 meses depois...
  • 7 meses depois...

Arquivado

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

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!