Crn.
El registro PORTA es un registro que, al igual que la mayoria de los registros del PIC, es escribible y leible.
El valor del bit0 del registro PORTA, configurado como salida, sólo podrá cambiar de valor cuando una instrucción afectete al bit o aal registro PORTA entero.
Por lo tanto, muchas instrucciones pueden afectar al bit 0 del PORTA.
Instrucciones que afectan escritura al registro PORTA entero:
addwf PORTA,F
andwf PORTA,F
clrf PORTA
comf PORTA,F
decf PORTA,F
decfsz PORTA,F
incf PORTA,F
incfsz PORTA,F
iorwf PORTA,F
movwf PORTA
rlf PORTA,F
rrf PORTA,F
subwf PORTA,F
swapf PORTA,F
xorwf PORTA,F
Instrucciones que afectan escritura solo al bit0 del registro PORTA:
bsf PORTA,0
bcf PORTA,0
Por lo tanto:
Hasta que no ocurra instruccion alguna o reset que afecte al bit0 del registro PORTA, el bit0 del registro PORTA permanecera con el ultimo valor que le asignaste.
Ejemplo:
bsf PORTA,0
nop ;aqui PORTA,0 = 1
nop ;aqui PORTA,0 = 1
nop ;aqui PORTA,0 = 1
clrf PORTB ;aqui PORTA,0 = 1
bsf PORTA,1 ;aqui PORTA,0 = 1
movlw 0x01 ;aqui PORTA,0 = 1
movwf PORTA ;aqui PORTA,0 = 1
nop ;aqui PORTA,0 = 1
nop ;aqui PORTA,0 = 1
clrf PORTA ;aqui PORTA,0 = 0
P.D.:
En resumen, obviamente que todas las instrucciones que afectan a registros GPRs(General Purpose Registers) seran permanentes, hasta que una nueva instruccion o un reset cambien su estado.
¿Imaginas el infierno que seria si luego de determinado tiempo, los registros volvieran automaticamente a su valor inicial?
Seria casi improgramable!
Saludos.