Reloj digital

Solo disponible en BuenasTareas
  • Páginas : 7 (1618 palabras )
  • Descarga(s) : 0
  • Publicado : 9 de diciembre de 2010
Leer documento completo
Vista previa del texto
En esta oportunidad quiero compartir con ustedes un sencillo reloj basado en un Microcontrolador PIC de la serie 16F84A y usando display ánodo común de 7 segmentos.

Adicionalmente usa otros circuitos con la finalidad de expander el número de salidas, tanto para control como para datos, y de esa forma podemos contar con más displays y más opciones de Configuración. Entre estos circuitostenemos el conocido 74LS47, de cuál dejaré el esquema mostrando la disposición de sus pines (Figura 1), así como su tabla de verdad (Figura 2). Para mayor información pueden consultar el datasheet de este componente.

Disposición de pines

Tabla de Verdad

Otro circuit usado es el 74LS138, el cuál funcionará como selector de display para realizar el efecto de barrido. No detallaré tampoco aeste componente puesto que no es el objetivo de este post, pero si dejaré algunas imágenes, que al igual que las anteriores, nos da una vista rápida de la disposición y el funcionamiento de este integrado.

Disposición de pines

Tabla de Verdad

También dejaré el diagrama de pines de un display de 7 segmentos.

Ahora, una vez conocido el funcionamiento de los componentes individuales, acontinuación muestro el diagrama total del reloj, en donde veremos como estos integrados interactuan entre sí para poder obtener nuestro sencillo reloj digital.
Las resistencias que van a los displays son de 330Ω (Naranja, Naranja, Marrón) y las que van a los transistores son de 1KΩ (Marrón, Negro, Rojo). Y claro, las resistencias que van a los pulsadores son de 10KΩ (Marrón, Negro, Naranja).Antes que nada tenemos que conectar los componentes básicos para el funcionamiento del microcontrolador pic, que son las conexiones a tierra y 5 voltios, el reloj de 4MHz y los capacitores.

Luego podemos armar el siguiente diagrama esquemático para tener en funcionamiento a nuestro sencillo Reloj Digital.

Archivos adjuntos del proyecto:

El código está escritor en ensamblador. Puedenusar el mplab para recompilarlo y usarlo de acuerdo a sus necesidades.
view plainprint?
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC
LIST P=16F84A
INCLUDE

M_UNI equ H'1D' ; Registro para las unidades de los minutos.
M_DEC equ H'1C' ; Registro para las decenas de los minutos.

H_UNI equ H'1F' ; Registro para las unidades de las horas.
H_DEC equH'1E' ; Registro para las decenas de las horas.

S_UNI equ H'20' ; Registro para las unidades de los segundos.
S_DEC equ H'21' ; Registro para las decenas de los segundos.

BARR equ H'1B' ; Registro para almacenar el número de barridos.
PAUSE equ H'1A' ; Registro para almacenar el tiempo de barrido.

;Algunas definiciones de registros y pines;-----------------------------------------
#DEFINE REINICIO PORTA,0 ; Pulsador conectado a RA0.
#DEFINE MINUTO PORTA,1 ; Pulsador conectado a RA1.
#DEFINE HORA PORTA,2 ; Pulsador conectado a RA2.
#DEFINE DISPLAY PORTB ; El display está conectado al Puerto B.

ORG 0

Inicio
bsf STATUS,RP0 ; Acceso al Banco 1.
clrf DISPLAY ; Línea del LED configurada comosalida.
movlw b'00011111' ; Las 5 líneas del Puerto A se configuran como entrada.
movwf PORTA
bcf STATUS,RP0 ; Acceso al Banco 0.
;Inicialización de Registros
;---------------------------
clrf S_UNI
clrf S_DEC
clrf M_UNI
clrf M_DEC
clrf H_UNI
clrf H_DEC
clrf BARR
;---------------------------

Principal
clrf BARR ; Limpiamos elregistro de barridos
;Para el botón de reinicio no importa los rebotes
;------------------------------------------------
VerificarPulsadorReset
btfss REINICIO ; ¿Pulsador reposo?, ¿Pulsador=1?
call InicializarRegistros
;------------------------------------------------------------------------------

;Para el botón de incremento de minutos si importan los rebotes...
tracking img