PICELECTRONICA
¿Quieres reaccionar a este mensaje? Regístrate en el foro con unos pocos clics o inicia sesión para continuar.

Reloj básico con PIC 16F84A

2 participantes

Ir abajo

Reloj básico con PIC 16F84A Empty Reloj básico con PIC 16F84A

Mensaje  Electrobicho Lun Abr 23, 2012 1:27 pm

EL RELOJITO

Durante alguna etapa de los estudiantes de electrónica o de los aficionados, como es en este caso, se desea realizar un proyecto útil y a la vez aplicar los conocimientos básicos que se adquieren a lo largo de un curso, pues bien, este es el caso, para el cual se aplicaran las instrucciones antes vistas, hay que aclarar que “NO SE UTILIZARA NINGÚN TIPO DE RELOJ Y TAMPOCO EL USO DE INTERRUPCIONES” simplemente se usaran los delayms y algunas sentencias de repetición, se aplicaran los ejemplos del contador 0000-9999 y algunos que contengan ciclos for, primero se describe el circuito a utilizar, para ello se usara el PIC de batalla, el famoso y viejito 16F84A, un decodificador 74LS48 y 6 display cátodo común como componentes principales.

El funcionamiento es sencillo, primeramente se realizan tres contadores (Horas, Minutos, Segundos) los cuales tendrán sus respectivos límites e incrementos en cadena, y un indicador del tipo bit para saber cuándo se ha incrementado un contador, hay dos pulsadores, los cuales ejercen el trabajo de incremento en minutos y horas, utilizando así casi todos los pines del microcontrolador. Los valores de los contadores serán mostrados por el PORTA estos a su vez serán conectados al decodificador, con ayuda de la instrucción DIG se imprimirán los valores de cada contador en el formato HH-MM-SS y se activarán los transistores relacionados al display en uso, por ejemplo; cuando sea la hora 12:35:23 se activará el display de segundos y con la instrucción DIG 0 se imprime en el porta el valor “3” de segundos y a la vez se activa el transistor correspondiente, se esperan 3 mS y se imprime el valor de DIG 1 el cual es “2” activando también el transistor correspondiente, así se tiene el primer dato Segundos = 23, este mismo principio se realiza para mostrar todos los datos, para entender un poco mejor el código se presentara a continuación:

Código:
Device = 16F84A

Xtal 4

TRISA = 0  ‘TRIS SE USA PARA DECLARAR EL ESTADO DEL PUERTO DEL PIC,YA SEA EL A O B (A=SALIDA)

TRISB = %11000000 ‘SE LE COLOCA 1 A LAS TERMINALES QUE SERAN ENTRADAS(BOTONES) 0 A LAS SALIDAS

 

Dim Horas As Byte  ‘SE DECLARA HORAS QUE TENGA UN VALOR ENTRE 0 Y 255,YA QUE UN BYTE TIENE ESE VALOR

Dim Minutos As Byte

Dim Segundos As Byte

Dim Incremento As Bit  ‘INCREMENTO ES DECLARADO QUE TOMARA SOLO VALORES DE 1 Y 0 POR SER BIT

Dim i As Byte

Horas = 23    ‘SE COLOCA LA HORA INICIAL DEL RELOJ 23:59:50

Minutos = 59

Segundos = 50

Incremento = 0 ‘INCREMENTO ES UNA VARIABLE AUXILIAR PARA SABER QUE SE A PULSADO UN BOTON

 

 

Inicio:      ‘EMPIEZA EL PROGRAMA

 

For i=0 To 39 ‘ES UNA REPETICION QUE SE LLEVA 40 VECES(0 A 39)PARA APROXIMAR EL VALOR DE 1 SEG

        PORTB=0      ‘SE MANDAN 0 A PUERTO B PARA LIMPIARLO

        PORTA = Segundos Dig 0 ‘SE LE ASIGNA A PUETO A EL VALOR DE SEGUNDOS Y SE TOMA EL PRIMER DIGITO

        PORTB = 32        ‘PARA QUE ENCIENDA EL DISPLAY DE SEGUNDOS SE MANDA UN 1 A BIT DEL PUERTO B

        DelayMS 3            ‘LA PAUSA DE 3 MILISEGUNDOS ES PARA QUE TENGA EL EFECTO QUE ESTE ENCENDIDO

        PORTA = Segundos Dig 1  ‘SE TOMA EL VALOR DE SEGUNDOS,SU SEGUNDO DIGITO

        PORTB= 16            ‘ACTIVO EL SEGUNDO DISPLAY

        DelayMS 3    ‘CON 3 MILESEGUNDOS NO SE VE EL ENCENDIDO Y APAGADO A SIMPLE VISTA

        PORTA = Minutos Dig 0 ‘LE DAMOS EL VALOR DE MINUTOS A PORTA,PRIMER DIGITO

        PORTB= 8

DelayMS 3

PORTA = Minutos Dig 1

PORTB= 4

DelayMS 3

PORTA = Horas Dig 0

PORTB = 2

DelayMS 3

PORTA = Horas Dig 1

PORTB = 1

DelayMS 3

PORTB=0

DelayMS 3

Next i          ‘EN NEXT I SE USA PARA FINALIZAR EL CICLO DE REPETICION(FOR I)

If Incremento = 0 Then    ‘SI INCREMENTO ES 0 ENTONCES HACE UNA PAUSA DE 12mS

        DelayMS 13

Else

        Incremento = 0    ‘SI INCREMENTO NO ES 0 LO VUELVE 0

EndIf

   

    Segundos = Segundos + 1  ‘TOMA EL VALOR INICIAL DE SEGUNDOS(50)Y SUMA DE 1 EN 1

    If Segundos > 59 Then    ‘SI LLEGA A 59 VUELVE SEGUNDOS A 0

        Segundos = 0

Minutos = Minutos + 1  ‘HACE QUE MINUTOS INCREMENTE DE 1 EN 1(59)

    EndIf

   

    If Minutos > 59 Then    ‘SI MINUTOS VALE 59,LO REGRESA A 0 Y EMPIEZA A SUMAR HORAS

        Minutos = 0

Horas = Horas + 1

EndIf

   

    If Horas > 23 Then      ‘CUANDO HORAS LLEGA A 23(11 PM) SE VUELVE 0 Y EMPIEZA TODO OTRA VEZ

        Horas = 0

EndIf

    If PORTB.7 = 0 Then      ‘CUANDO PULSE EL BOTON DEL PUERTO B=7 AUMENTA LAS HORAS

          Horas = Horas + 1    ‘ SE GUARDA EN LA VARIABLE HORA TOMANDOLA COMO VALOR INICIAL

          If Horas > 23 Then

            Horas = 0

EndIf

          Incremento = 1    ‘HACE INCREMENTO 1 PARA QUE SEPA QUE HAY CAMBIO DE HORA

          DelayMS 10

EndIf

    If PORTB.6 = 0 Then      ‘SI S EPULSA EL BOTON 6 AUNMENTA MINUTOS

          Minutos = Minutos + 1

If Minutos > 59 Then

            Minutos = 0

EndIf

          Incremento = 1

DelayMS 10

EndIf 

 

GoTo Inicio      ‘VUELVE A INICIO PARA QUE SEA UN CICLO INFINITO

End                ‘FIN DEL PROGRAMA

Reloj básico con PIC 16F84A Nueva-imagen-4

Por ahora no me deja escribir vínculos el foro, dice que debo esperar 7 días, así que hasta entonces publicare los link de descargas para los archivos, o pueden pasar por mi blog para verlos
Electrobicho
Electrobicho
Usario Nuevo
Usario Nuevo

Mensajes : 17
Fecha de inscripción : 20/04/2012
Edad : 35
Localización : Salina Cruz,Oaxaca

http://protonbasic.wordpress.com/

Volver arriba Ir abajo

Reloj básico con PIC 16F84A Empty Re: Reloj básico con PIC 16F84A

Mensaje  Electrobicho Lun Abr 23, 2012 2:27 pm

Aquí les dejo los archivos para que puedan descargarlos y tener sus propias deducciones
Reloj básico con PIC 16F84A

Un video de su funcionamiento, se ve mal y a eso se le aumenta la claridad, pero ustedes pueden mejorar la calidad del brillo usando resistencias de 100 Ohms

Electrobicho
Electrobicho
Usario Nuevo
Usario Nuevo

Mensajes : 17
Fecha de inscripción : 20/04/2012
Edad : 35
Localización : Salina Cruz,Oaxaca

http://protonbasic.wordpress.com/

Volver arriba Ir abajo

Reloj básico con PIC 16F84A Empty Re: Reloj básico con PIC 16F84A

Mensaje  Somacruz Lun Abr 23, 2012 2:37 pm

Excelente electro gracias por el aporte saludos Wink
Somacruz
Somacruz
Administrador
Administrador

Mensajes : 23
Fecha de inscripción : 20/04/2012
Edad : 41

http://solopic.wordpress.com

Volver arriba Ir abajo

Reloj básico con PIC 16F84A Empty Re: Reloj básico con PIC 16F84A

Mensaje  Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Volver arriba

- Temas similares

 
Permisos de este foro:
No puedes responder a temas en este foro.