Autor Tema: Visualizar numero BCD en display(16f84)  (Leído 3424 veces)

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

Desconectado zidana

  • PIC10
  • *
  • Mensajes: 1
Visualizar numero BCD en display(16f84)
« en: 02 de Enero de 2009, 16:07:15 »
Hola! Soy muy nueva en esto de los pics y necesito vuestra ayuda.
Quiero introducir un número en BCD mediante 4 interruptores y, utilizando el PIC16F84, quiero que se muestre en el display el número correspondiente al número introducido.
Mi pregunta es si es necesario utilizar la interrupcion RB0-RB4 en este caso y cómo se haría.
Estoy programando en ensamblador.
Gracias de antemano.

jacrmr

  • Visitante
Re: Visualizar numero BCD en display(16f84)
« Respuesta #1 en: 02 de Enero de 2009, 16:28:02 »
No necesariamente ocupas utilizar interrupciones para cada tarea, pero según conforme vayas realizando programas más grandes y complejos puede facilitarte (o complicarte) el uso de las interrupciones.
Una forma muy sencilla es leer continuamente en un bucle (el cual además puede llamar a otras tareas por supuesto) el estado de tus interruptores BCD, de dicho valor leído llamar a una tabla de valores de 7 segmentos y escribir en el puerto de 7 segmentos dicho valor.

Por ahora se me ocurre algo así:

Código: ASM
  1. BUCLE
  2.         movf    PUERTO_BCD,W
  3.         andlw   b'00001111'
  4.         call    TABLA_7_SEGMENTOS
  5.         movwf   PUERTO_7_SEGMENTOS
  6. ; hacer otras tareas
  7.         goto    BUCLE
  8.  
  9. TABLA_7_SEGMENTOS
  10.         addwf   PCL,F
  11.         retlw   b'11111100'     ; Digito 0
  12.         retlw   b'01100000'     ; Digito 1
  13. ; incluir digitos restantes ...

Aquí estoy omitiendo la inicialización de los puertos, del micro y demás. No sé si eso ya lo tendrás resuelto.

Desconectado Vash

  • PIC10
  • *
  • Mensajes: 9
Re: Visualizar numero BCD en display(16f84)
« Respuesta #2 en: 16 de Enero de 2009, 05:47:18 »
Hola yo tambien tengo dudas en cuanto a desplegar un numero en el 7 segmentos, como funciona la tabla? tengo entendido que el PCL es el apuntador de programa y L es la parte baja ya que es un registro de 16 bits. por ejemplo el 0x01 que esta en hex. como funciona la tabla para imprimir el 1 en el display? nos vemos y gracias.

Desconectado tapi8

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1506
Re: Visualizar numero BCD en display(16f84)
« Respuesta #3 en: 16 de Enero de 2009, 07:28:00 »
Hola bienvenidos al foro.
En el almacen del asembler en la quinta chincheta (ejemplos asembler 16f84a) el numero 10 es casi lo que estais buscando, echarle un ojo y despues preguntar lo que no entendais, o sobre ese ejemplo tratar de hacerlo, creo que no os costara mucho.
Tambien hay un curso de asembler desde 0 que esta haciendo leon-pic que seguro que os vendra muy bien.

saludos tapi8