problemas com incremento de P2

estou tentando fazer um 8051 incrementar o port P2 apertando um botão no port P0.0, usando umas rotinas que experimentei num outro código que funcionou.
eu programei o uC para acender todos os oito leds do port P2 e ao apertar P0.0 ele incrementa em 1 o port P2 até chegar em 255(0XFF)
tipo, aperta uma vez, incrementa uma vez, aperta duas vezes incrementa duas vezes,(uma apertada = incrementa em 1) mas quando pressiono esse botão, ele apenas acende um unico led do P2 e não sai disso...
o código tá abaixo:
asm code
será que tenho q salvar alguma coisa na pilha? tentei diferentes versões mas não consegui o efeito desejado...
poderiam me dar uma luz?
vou upar um video no youtube pra vocês verem a reação do circuito.
eu programei o uC para acender todos os oito leds do port P2 e ao apertar P0.0 ele incrementa em 1 o port P2 até chegar em 255(0XFF)
tipo, aperta uma vez, incrementa uma vez, aperta duas vezes incrementa duas vezes,(uma apertada = incrementa em 1) mas quando pressiono esse botão, ele apenas acende um unico led do P2 e não sai disso...
o código tá abaixo:
asm code
org 0000h
;inicializa P0 como entrada
mov A,#00h ;carrega 00 no acumulador
mov A,P0 ;zera P0, inciando ele como port de entrada
inicio:
mov A,#0FFh
mov P2,A
loop:
jb P0.0,inicio ;enquanto P0.0 não for acionado, desvia para inicio
setb B.0 ;apertou P0.0? seta flag B0
sjmp leitura ;em seguida desvia para a rotina de leitura
leitura:
jnb P0.0,$
clr B.0
mov A,#00h
mov P2,#01h
inc P2
sjmp leitura
end
será que tenho q salvar alguma coisa na pilha? tentei diferentes versões mas não consegui o efeito desejado...
poderiam me dar uma luz?
vou upar um video no youtube pra vocês verem a reação do circuito.