A ver es masomenos sencillo,
tienes tu palabra de 8 bits en una variable como dato.
lo que vas a hacer es mandar bit a bit, no lo veas como la palabra completa.
por ejemplo:
yo programo en ensamblador pero creo que es mas sencillo en C
movlw 0x61 ; que en binario seria b'10100001'
movwf dato ; se carga la variable
;necesitas un contador para checar que los 8 bits se han enviado
movlw 0x08
movwf contador
etiqueta1 decfsz contador ;decrementas en 1 a 1 al contador hasta que se cumplan los 8 bits
goto etiqueta2 ; sino se completan los 8 bits sigue enviando
goto new_dato ; si ya se completaron va por la sig palabra
;lo que vas a hacer es enviar la palabra completa al puerto b, puedes reducir los bits a usar
;enmascarando para que no uses todo el puerto
etiqueta2 movf dato,w ; guardas el valor de dato en el registro w
movwf portb ; y lo pasas al puerto b
rrf dato,w ; con esta instruccion rotas a la derecha la palabra un bit a la vez
goto etiqueta 1
espero te sirva, no recuerdo si al rotar puedes giardar en el registro w pero mas o menos funciona asi
Exito.
tienes tu palabra de 8 bits en una variable como dato.
lo que vas a hacer es mandar bit a bit, no lo veas como la palabra completa.
por ejemplo:
yo programo en ensamblador pero creo que es mas sencillo en C
movlw 0x61 ; que en binario seria b'10100001'
movwf dato ; se carga la variable
;necesitas un contador para checar que los 8 bits se han enviado
movlw 0x08
movwf contador
etiqueta1 decfsz contador ;decrementas en 1 a 1 al contador hasta que se cumplan los 8 bits
goto etiqueta2 ; sino se completan los 8 bits sigue enviando
goto new_dato ; si ya se completaron va por la sig palabra
;lo que vas a hacer es enviar la palabra completa al puerto b, puedes reducir los bits a usar
;enmascarando para que no uses todo el puerto
etiqueta2 movf dato,w ; guardas el valor de dato en el registro w
movwf portb ; y lo pasas al puerto b
rrf dato,w ; con esta instruccion rotas a la derecha la palabra un bit a la vez
goto etiqueta 1
espero te sirva, no recuerdo si al rotar puedes giardar en el registro w pero mas o menos funciona asi
Exito.