Bueno, despues de averiguar, leer mucho pude intentar controlar 2 digitos con un 16F84A, la parte del circuito es muy sencilla, y se basa en 2 displays multiplexados con 2 CD4511(el 7447 me obliga a rehacer el codigo ya que si el programa hace otra cosa que no sea mostrar el numero, el display se apaga) gracias al LE que guarda el valor del numero.
Les adjunto la imagen del Schema probado en Proteus, y les dejo el codigo escrito en PBP, quizás a alguien le pueda servir (disculpen si esta escrito desordenadamente, mi nivel de programacion todavia es muy bajo
) y mas abajo el Hex para que puedan probarlo.
Ahí les va el código en PbasicPro:
cmcon = 7 'todas las entradas son digitales
sumar var PORTA.0 'PIN 0 DEL PORT A
restar var PORTA.1 'PIN 1 DEL PORT A
prender var PORTB.6 'PIN 6 DEL PORT B
'declaro variables
n var byte 'n es el valor contador
uni var byte 'uni va a guardar el digito de unidad
deci var byte 'lo mismo para la decena
TRISB = 0 'PORTB todas salidas
n=0 'inicio contador en 0
GOSUB DISPLAY
INICIO:
IF sumar=0 THEN SUMA
IF restar=0 THEN RESTA
PAUSE 10
GOTO INICIO
SUMA:
n = n+1
IF N>99 THEN N=0
GOSUB DISPLAY
PAUSE 300
GOTO INICIO
RESTA:
if n = 0 then n = 100
n = n - 1
GOSUB DISPLAY
PAUSE 300
GOTO INICIO
DISPLAY:
LOW prender 'baja el PORTB.6, por ende pone a 0 los Bl del CD4511(ambos 2)
uni = n DIG 0 'guarda en UNI el primer digito de N (4 bites)
PORTB = uni 'envio a los PORTB el contenido de UNI (que van a las 4 entradas de ambos CD4511)
PORTB = uni + %00010000 'mantengo, y a su vez, y levanto a 1 PORTB.4 (LE del CD4511 correspondiente a la UNIDAD, guarda el dato a mostrar)
deci = n DIG 1 'repito lo mismo para decena
PORTB = deci + %00010000 'notese qui que vuelvo a enviar el valor + el 1 en PORTB.4
PORTB = deci + %00110000 'y levanto el PORTB.5 para que el LE guarde el valor de la decena tmb
HIGH prender 'levanto PORTB.6, lo pongo a 1 (osea, prendo los leds con Bl)
RETURN
Algún avanzado en el tema que me pueda ayudar? suponiendo que los switch los elimino, y mi idea es que el PIC RECIBA información desde una pc, con el display y el dato que quiero q se prenda, como podría hacerlo?me estoy quemando la cabeza intentando buscarle la vuelta pero no lo consigo xD, gracias!