control display 7 segmentos con un pulsador

Hola, me llamo David y este es mi primer post.
Estoy empezando a programar pic, y como no... tengo dudas. A ver si me podeis echar una mano.

Quiero que un display de siete segmentos controlado por un 16f84a, valla ascendiendo de cero a cinco, pero solo un numero cada vez actue el pulsador.

Tengo este codigo:

I var Byte
pulsador var byte
aumentar var byte
cero con %11000000
uno con %11111001
dos con %10100100
tres con %10110000
cuatro con %10011001
cinco con %10010010



trisa = %11111 ;configura el puerto a como entradas
trisb = %00000000 ;configura el puerto b como salidas

porta =%00000 ;inicializa el puerto a
portb =%11111111 ;inicializa el puerto b

inicio:
aumentar = I+1
pulsador = porta.0

if pulsador = 1 then I = i + 1



call digito


goto inicio



digito:

if I = 0 THEN portb = cero
if I = 1 then portb = uno
if I = 2 then portb = dos
if i = 3 then portb = tres
if i = 4 then portb = cuatro
if i = 5 then portb = cinco

return

End


El caso es que estando asi, cuando pulso, me sube directamente al cinco.
¿Que puede ser?
 
Atrás
Arriba