TODOPIC
Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: quodigital en 05 de Abril de 2007, 02:23:20
-
Hola lo que quiero es hacer un contador de 0 a 999, estoy con dos display nada mas para entender, el tema que el display numero 1 cuenta hasta 9, y el numero dos tendria que sumar 1 y el display 1 seguir la cuenta, asi susesivamnte lo que me ocurre es que el display uno cuenta hasta 9 y cuando pasa de 9 a cero los dos display a la ves cuenta hasta 9 . aca les dejo el programa:
device 16f84a
xtal 4
dim x as word
dim y as word
TRISA=0
trisb=0
ini:
x=x+1 ' inicio con x = 1
portb.1 = 0 ' la salida 1 la pongo en 0
porta = x ' el porta vale x
delayms 50 ' espero
if x=9 then gosub sa ' cuando x llega a 9 salta a sa
goto ini ' vuelvo a ini
sa:
y=y+1 'y vale 1
portb.0 = 0 'enciendo el 2 display
porta = y ' el porta vale y osea 1
return ' vuelvo al goto
(http://www.quodigital.com.ar/01/Dibujo23.JPG)
los archivos son:
http://www.quodigital.com.ar/01/Archivos.rar
Muchas Gracias.
Saludos a todos
PD: Parece que lo que no entiendobien es el multiplexado.. puede ser?
Saludos y Suerte
-
lo q sucede es que cuando la cuenta llega a 9 del display 1 (conectado a portb.1 ) te saltas a subrutina sa y activas el display 2 (conectado a portb.0) pero dejas encendido el display 1 tambien y tendras la misma lectura en ambos display. tendrias q multiplexar osea alternar ambos display.... si aun no has multiplexado dale en busqueda q hay unos post geniales. saludos.
-
claro parece que ese es el problema porque si apago el segundo display no me marcaria nunca el 21por ejemplo. he leido quesi lo hago rapido no se nota que se esta apagando y prendiendo, creo que en eso esta el problema
Muchas gracias voy aberiguar algo mas sobre multiplexado..
Cualquier sugerencia es bienbenida
Saludos
Suerte. :-/ :-/ :-/
-
Aqui te dejo esto ojala te pueda servir amigo , solo es con dos displays pero es bastante similar asi q no tendras problemas
'****************************************************************
'* Name : "DisplaysMultiplexados.BAS" * *
'* Author : Manuel Rodríguez *
'* Notice : Copyright (c) 2007 [select VIEW...EDITOR OPTIONS] *
'* : All Rights Reserved *
'* Date : 01/04/2007 *
'* Version : 1.0 *
'* Notes : Este programa nos permite ver como se multiplexan *
'* : dos display de 7 segmentos para un contador *
'****************************************************************
i var byte ' variable "i"
j var byte ' variable "j"
unid var byte ' variable Unidades
dece var byte ' variable Decenas
cuenta var byte
trisa = 0 ' Puerto A como salida
trisb = 0 ' Puerto B como salida
unid = 0
dece = 0
cuenta = 0
inicio:
gosub UNIDADES
pause 10
gosub DECENAS
pause 10
goto inicio
Unidades:
cuenta = cuenta + 1
lookup i , [63,6,91,79,102,109,125,7,127,111] , unid
porta = 2
portb = unid
if i >=10 then
i = 0
endif
If cuenta >= 50 then
i = i + 1
CUENTA = 0
endif
return
Decenas:
if i >= 10 then
j = j +1
if j >= 10 then
j = 0
endif
endif
lookup j , [63,6,91,79,102,109,125,7,127,111] , dece
porta = 1
portb = dece
return
end
-
Muchas Gracias por tu programa ahora lo veo, espero entender un poco mas, porque de verdad que no se me ocurre como dos display conectados = pueden mostrar cosas distintas.
Bueno saludos y gracias :-/ :-/ :-/
Suerte... .
-
Es simple , mira por el puerto B mandas un dato por ejmplo el numero 9 das 5 milisegundos y mandas el puerto B el numero 2 pero en cada uno activa y descativas ( Multiplexar) un pin en el puerto A que controla al Display
-
Si eso mas o menos gracias a tus ejemplo estoy entendiendo, pero si yo quiero mostrar un contador de 3 cifras como se haria?.. es como barrer de derecha a izquierda? ...
Bueno seguire aprendiendo que no hace mal :mrgreen:
muchas gracias por tu ayuda..
Suerte
Saludos
-
es exactamente igual amigo, en este foro no estamos acostumbrados a resolverte todo el trabajo , a mi me parece q con ese ejemplo con dos Display ya esta solucionado tu problema ya q para 3 es de la misma manera por favor pon de tu parte para q puedas avanzar, suerte!!
-
Si entiendo la parte de la que yo deba investigar y no te quepa dudas que lo estoy haciendo, tambien existe este grandioso foro y tu muy buena colaboracion que me a ayudado a entender, es verdad que con dos digitos tengo que hacer el resto y cuano lo termine te lo paso, para que veas que "e estudiado "
Muchas Gracias
por tu ayuda
Espero no volver a molestarte
Suerte a todos..!!!!!!!!!!! :-/ :-/ :-/
-
No sera necesario amigo, simplemente basta con la satisfaccion personal q tengas y q lo compartas con este foro para que todos puedan aprender , siempre q necesites ayuda no dudes en consultar, fue un gusto