Hola,
Estoy haciendo un programa pero nose por donde cogerlo, el programa tiene que seleccionar entre 8 juegos de luces y 4 velocidades.
Actualmente el problema que tengo es que e puesto un contador para que cada 0x10 veces se produzca una rotacion de bits pero no me funciona, nose tambien me gustaria recibir alguna orientacion porque seguro que no estoy llendo por un buen camino.
Saludos
LIST P=16F84A
estado EQU 03h
option_reg EQU 81h
intcon EQU 0Bh
porta EQU 05h
portb EQU 06h
tmr0 EQU 01h
modo EQU 0Dh
velocidad EQU 0Eh
pap EQU 0Fh
porta2 EQU 10h
contador EQU 11h
W EQU 00h
F EQU h'FF'
PCL EQU 02h
#DEFINE Z estado,2
; ZONA DE CÓDIGOS ********************************************************************
ORG 0
goto Inicio
ORG .4
goto tmr0int
ORG .6
Inicio
bsf estado,5
clrf portb
movlw b'00000111'
movwf option_reg
bcf estado,2
bcf estado,5
movlw b'10100000'
movwf intcon
clrf portb
bsf portb,0
clrf tmr0
clrf contador
goto Programa
Guardar
movfw porta
movwf porta2
Leer
movfw porta2
xorwf porta, W
btfsc Z
goto Leer
Programa
movlw b'00000011'
andwf porta, W
addwf PCL,1
goto vel0
goto vel1
goto vel2
goto vel3
vel0
clrf portb
bsf portb,0
movlw .0
movwf velocidad
goto mod
vel1
clrf portb
bsf portb,0
movlw .0
movwf velocidad
goto mod
vel2
clrf portb
bsf portb,0
movlw .0
movwf velocidad
goto mod
vel3
clrf portb
bsf portb,0
movlw .0
movwf velocidad
goto mod
mod
movlw b'00011100'
andwf porta, W
movwf modo
rrf modo
rrf modo
goto Guardar
tmr0int
movlw 0x10
xorwf contador, W
btfss Z
goto Incrementar
clrf contador
movfw modo
addwf PCL,1
goto comb0
goto comb1
goto comb2
goto comb3
goto comb4
goto comb5
goto comb6
goto comb7
comb0
movfw velocidad
movwf tmr0
rlf portb,1
goto Fin
comb1
movfw velocidad
movwf tmr0
rlf portb,1
goto Fin
comb2
movfw velocidad
movwf tmr0
rrf portb,1
goto Fin
comb3
movfw velocidad
movwf tmr0
bsf portb,4
goto Fin
comb4
movfw velocidad
movwf tmr0
rlf portb,1
goto Fin
comb5
movfw velocidad
movwf tmr0
rlf portb,1
goto Fin
comb6
movfw velocidad
movwf tmr0
rlf portb,1
goto Fin
comb7
movfw velocidad
movwf tmr0
rlf portb,1
Fin bcf intcon,2
retfie
Incrementar
incf contador, F
goto Fin
;movlw .60
;movwf tmr0
;btfss pap,0
;goto as
;bcf pap,0
;rrf portb,1
;btfsc Salida
;fin
; bcf intcon,2
; retfie
;as
;bsf pap,0
;goto fin
END