Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: zidana en 02 de Enero de 2009, 16:07:15
Título: Visualizar numero BCD en display(16f84)
Publicado por: zidana 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.
Título: Re: Visualizar numero BCD en display(16f84)
Publicado por: jacrmr 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
BUCLE
movf PUERTO_BCD,W
andlw b'00001111'
call TABLA_7_SEGMENTOS
movwf PUERTO_7_SEGMENTOS
; hacer otras tareas
goto BUCLE
TABLA_7_SEGMENTOS
addwf PCL,F
retlw b'11111100'; Digito 0
retlw b'01100000'; Digito 1
; 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.
Título: Re: Visualizar numero BCD en display(16f84)
Publicado por: Vash 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.
Título: Re: Visualizar numero BCD en display(16f84)
Publicado por: tapi8 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.