TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: asd12 en 28 de Septiembre de 2003, 13:21:00
-
Si tengo un valor en una posicion de memoria. Por ejemplo 136. Como lo puedo mostrar en 3 displays 7 segmentos.
El hardware se diseñarlo, pero no se me ocurre como separar los numeros 1, 3 y 6 en tres posiciones de memoria para mandarlos a los displays.
-
Hola, aqui hay una rutina en .asm, puedes verla a modo de ejemplo
http://www.todopic.com.ar/asm/matematicas/bin_bcd.txt
si no tienes problemas en cuanto al tiempo, serian 3 contadores, cuya cuenta maxima es de 9 (emprezando en cero), por ejemplo U, D, y C
si U>9 entonces D=D+1 y U=0
si D>9 entonces C=c+1 y D=0
de esta manera, el numero , por ejemplo 136, lo empleas como un contador descendente, y aplicas el programa anterior, para que se generen las cuentas...
este no es un proceso muy rebuscado matematicamente hablando, pero si es muy facil de implementar... 
Esta otra seria justamente la que buscas, solo adaptala a tus necesidades..
http://www.todopic.com.ar/asm/matematicas/hex_7seg.txt
Norberto
-
Gracias. Habia buscado, pero no me dio por mirar en matematicas.
-
Hola, je je... pasa pasa...
bueno, mira, yo simule y corregi un pequeño error, hay una llamada mal, asi que te adjunto una demostracion que esta funcionando, la ejecute paso a paso en el mplab y funciona muy bien... 
bueno, como este foro ya esta completo, no permite adjuntar archivos
asi que estan AQUI
http://miarroba.com/foros/adjuntos.php?accion=download&fileid=277532&foroid=132135&rand=1275940
Norberto
-
Quien me puede hacer el favor de probar lo que estoy haciendo mal en proteus.
Hice el programa y no funciona bien. Creo que son los transistores que puse. En vez de salir el 136, cuando tendria que salir un 1 en el primer display, no sale nada y en los otros 2 sale el 1. Lo mismo para los demas.
-
Quien me puede hacer el favor de probar lo que estoy haciendo mal en proteus.
Hice el programa y no funciona bien. Creo que son los transistores que puse. En vez de salir el 136, cuando tendria que salir un 1 en el primer display, no sale nada y en los otros 2 sale el 1. Lo mismo para los demas.
Como puedo adjuntar el archivo?
-
Lo debes hacer en el almacen de archivos del FORO. Su dirección es esta: http://miarroba.com/foros/ver.php?id=132071
Un saludo
-
Ya lo he puesto. A ver si alguien se lo baja y lo prueba. Me da que es una tonteria.
-
Pues sí, una tontería.
Verás, en las bases de los pnp tienes que poner un cero para que conduzca, osea, lo inverso a lo que estabas haciendo.
Para refrescar los displays te he colocado una rutina de retardo. Sólo lo he mirado por encima, pero creo que usas mal el temporizador en ese caso. Cuando hay una interrupción, salta a la dirección 04H. En tu caso tienes activa la del timer, así que creo que saltará a esa dirección.
En fin míralo y me cuentas.
Por cierto, le coloqué unas resistencias a las bases de los transistores. No me preguntes por qué. No tengo ni idea
http://miarroba.com/foros/ver.php?foroid=132071&temaid=1119726
Saludos!!
-
Gracias. Lo miraré. Lo que no entiendo porque dices que salta la interupcion si no la tengo activada.
-
Olvídalo. Como ví que usabas el timer lo supuse. La verdad es que no me fijé muy bien.
Un saludo!