Autor Tema: Implementar reloj con pic 16f84  (Leído 2254 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado satelite_ruso

  • PIC10
  • *
  • Mensajes: 5
Implementar reloj con pic 16f84
« en: 20 de Febrero de 2006, 15:58:00 »
Hola:
 Acabo de encontrar este foro, me hubiera ayudado mucho descubrirlo antes, pero bueno, estoy muy contenta de haber dado con un lugar como este.
 Tengo un problema para hacer una práctica. Básicamente es hacer un reloj con el timer0 del chip, pero no me sale. Tengo una rutina de interrupción, pero vamos, poco más, si alguien puede ayudarme se lo agradecería mucho, el tiempo es esencial, ya que debo entregarla el miércoles por la mañana. El programa es en .ams, lo estoy haciendo con el mplab.
Gracias de antemano por la ayuda.

Programar una rutina de servicio de interrupción cuyo objetivo sea actualizar correctamente tres variables en memoria: Horas, Minutos y Segundos. Para ello se usará el Timer0 del chip y se aprovechará su capacidad de provocar interrupciones. Suponer que la frecuencia del reloj a la que funciona el chip es de 10 MHz. Pondremos código de inicialización de esos recursos en el programa principal y en la dirección 0004h nuestra rutina de servicio de interrupción (lo adjunto más abajo). El algoritmo es muy simple, se trata de ir incrementando en la rutina de interrupción un contador (o varios contadores, de forma anidada). Conociendo el período de la interrupción compararemos la cuenta de nuestro último contador con la cuenta total más próxima a un segundo, momento en el borraremos el contador e incrementaremos nuestra variable de segundos. Comprobaremos si dicha variable llega a 60, momento en el que la pondremos a cero e incrementaremos nuestra variable de minutos. Igual haremos para incrementar las horas a partir de los minutos y para pasar de las 24h a las 00h.

list      p=16F84
#include <p16F84.inc>

** Defino variables **
w_temp        EQU     0x0C ; variable para preservar el acumulador durante las int
status_temp   EQU     0x0D; igual para el registro de Status
; puede usarse la directiva CBLOCK para nuevas variables a
; partir de 0x0D
;*****
ORG     0x000     ; El procesador empieza a ejecutar aqui al arranque o reset
goto    main      ; ir a nuestro programa principal
;Rutina de Servicio de interrupción
ORG     0x004     ; Las interrupciones provocan la ejecucion de esta posición
movwf   w_temp    ; guardar el registro W del programa interrumpido
movf   STATUS,w  ; guardar ahora su registro de Status
movwf   status_temp
; cuerpo de la rutina de interrupción
movf    status_temp,w ; recuperamos el valor del registro de Status
                                      ;guardado antes
movwf   STATUS        ; y lo restauramos
swapf   w_temp,f
swapf   w_temp,w      ; restauramos registro acumulador W
retfie                ; retorno de la interrupción
main
;programa principal
END

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
RE: Implementar reloj con pic 16f84
« Respuesta #1 en: 20 de Febrero de 2006, 17:56:00 »
Te has puesto a buscar en el foro? hay varios ejemplos similares.

Saludos

- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado satelite_ruso

  • PIC10
  • *
  • Mensajes: 5
RE: Implementar reloj con pic 16f84
« Respuesta #2 en: 20 de Febrero de 2006, 18:22:00 »
Escrito originalmente por maunix
Te has puesto a buscar en el foro? hay varios ejemplos similares.

Saludos




La verdad es que sí busqué. Vi muchas referencias al modelo del pic, pero no a la práctica en concreto. ¿Me podrías indicar dónde están? El foro es enorme!!!

Muchas gracias

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
RE: Implementar reloj con pic 16f84
« Respuesta #3 en: 20 de Febrero de 2006, 18:55:00 »
Arriba tienes un boton que se llama buscar.

Escribe RELOJ y a la derecha selecciona Todo en Microcontroladores PIC, me aparecieron decenas de ocurrencias de tu tema.

Te debiera dar algo como esto
http://miarroba.com/foros/buscar.php?comuid=6510&foroid=6510&busquedaid=164

Saludos
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado satelite_ruso

  • PIC10
  • *
  • Mensajes: 5
RE: Implementar reloj con pic 16f84
« Respuesta #4 en: 20 de Febrero de 2006, 19:27:00 »
Sobre tu enlace me sale que es incorrecto o ya ha caducado, pero muchas gracias, voy a meter eso en el buscador. Yo fui mirando los temas directamente en el foro, pero este método es más rápido.

Un saludo


 

anything