basandome en tus sugerencias resolvi asi:
'****Solo simulacion****
Dim habitaciones As Byte
Dim reset As Byte
Dim dato As Byte
Dim n As Byte
Dim acarreo As Bit
Dim pulreset As Byte '
habitaciones = %10101010 'pulsadores de habitaciones oprimidos
'previamente leidos y guardados en el registro "habitaciones"
dato = habitaciones
pulreset = PORTB 'pulreset es una instantanea del puerto b
'en este se encuentran los pulsadores de reset
n=0
For n = 0 To 7
If pulreset.0 = 1 Then 'si hay pulsador/es de reset oprimidos
dato.0 = 0 'pongo a 0 el bit correspondiente en dato
Endif '
pulreset = ShiftRight(pulreset, 1) 'muestro en pulreset.0 el
'siguiente bit de pulreset
WaitUs 12
acarreo = dato.0 'guardo el bit0 de dato para despues recuperarlo
dato = ShiftRight(dato, 1) 'desplaza ,1 vez a la derecha los bit de
'dato
WaitUs 12
dato.7 = acarreo 'coloca en dato.7 el valor que tenia dato.0
'antes de la rotacion
Next n
habitaciones=dato
End
escucho sugerencias y/o reformas
muchas gracias.