Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

24/10/2009 #1


Ayuda contador BCD de 0-255 (8 bits) en MPLAB
Hola, estoy aprendiendo apenas a programar pic´s, pero me dejaron hacer un contador BCD en MPLAB de 0 a 255 (8 bits) y desplegarlo en 3 displays de 7 segmentos con el pic 16F628A, pero no se como hacerlo, si alguien me pudiera ayudar con el asm se los agradeceria mucho.

de antemano gracias.
24/10/2009 #2

Avatar de elosciloscopio

Respuesta: Ayuda contador BCD de 0-255 (8 bits) en MPLAB
Yo he hecho algo parecido con el 16F876, lo más normal es hacer un árbol
con todas las combinaciones:

Aquí una versión para dos bits, suponiendo que el más significativo es RA7 y el menos RA6

En cualquier caso son muuuuchas combinaciones
seguro que hay un metodo mejor que desconozco

saludos

PD la imagen esta mal, donde pone RA8 debe poner RA6
24/10/2009 #3
Moderador

Avatar de Vick

Respuesta: Ayuda contador BCD de 0-255 (8 bits) en MPLAB
Es bastante fácil, solo hay que escribir una rutina de conversión de binario a BCD, se hace de la siguiente forma:

- Defines tres registros para almacenar los dígitos en BCD (unidades, decenas, centenas)

- Tomas el número a convertir y le vas restando 10 cada vez, de esta forma vas contando las decenas, y centenas y las vas almacenando en el respectivo registro.

- Cuando el número es menor a 10 la conversión termina, y tienes almacenado los dígitos en BCD en tus 3 registros.

- Luego envías cada dígito en BCD a los displays y listo.
24/10/2009 #4

Avatar de elosciloscopio

Respuesta: Ayuda contador BCD de 0-255 (8 bits) en MPLAB
El problema es que para leer el puerto de entrada ya tienes que hacer lo que posteé antes
22/04/2011 #5


Vick dijo: Ver Mensaje
Es bastante fácil, solo hay que escribir una rutina de conversión de binario a BCD, se hace de la siguiente forma:

- Defines tres registros para almacenar los dígitos en BCD (unidades, decenas, centenas)

- Tomas el número a convertir y le vas restando 10 cada vez, de esta forma vas contando las decenas, y centenas y las vas almacenando en el respectivo registro.

- Cuando el número es menor a 10 la conversión termina, y tienes almacenado los dígitos en BCD en tus 3 registros.

- Luego envías cada dígito en BCD a los displays y listo.
Yo tengo que hacer solo un convertidor de binario a BCD, 8bits a BCD, este algoritmo que pusiste aqui se ve realmente facil... Solo que me gustaria que lo explicaras un poco mejor, mejor dicho con un ejemplo
23/04/2011 #6
Moderador

Avatar de Vick

LxL dijo: Ver Mensaje
Yo tengo que hacer solo un convertidor de binario a BCD, 8bits a BCD, este algoritmo que pusiste aqui se ve realmente facil... Solo que me gustaria que lo explicaras un poco mejor, mejor dicho con un ejemplo
Es bastante sencillo, solo vas restando 10 al número a convertir de esa forma vas contando las decenas y centenas que contiene, te dejo un diagrama de flujo de la librería para convertir de binario a BCD con esto no debes tener problemas para escribir él código, mi librería solo tiene 15 instrucciones...
Imágenes Adjuntas
Tipo de Archivo: png BINaBCD.png (11,4 KB (Kilobytes), 115 visitas)
23/04/2011 #7


Pura Vida! Si, ayer logre entenderlo y lo logre hacer... Funciona este algoritmo para mas d 8 bits? X ejemplo 14bits?
23/04/2011 #8
Moderador

Avatar de Vick

LxL dijo: Ver Mensaje
Pura Vida! Si, ayer logre entenderlo y lo logre hacer... Funciona este algoritmo para mas d 8 bits? X ejemplo 14bits?
No, este método solo sirve para un registro de 8 bits, ya que para números más altos tienes que usar ya dos bytes (dos registros) y eso complica la el asunto, busca en la página de microchip la nota de aplicación AN526, ahí hay hay información de varias rutinas matemáticas e incluye una para conversión de binario a BCD de 16 bits...
23/04/2011 #9

Avatar de Scooter

Funciona para cualquier número de bits, pero entonces hay que extenderlo:
....
Divides por 10000 y el resultado va a decenas de miles
El resto se divide por 1000 y el resultado va a unidades de millar
El resto se divide por 100 y el resultado a centenas
El resto se divide por 10 y el resultado a decenas
el resto son las unidades
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.