Me encantaria que alguien me ayudara con el siguiente problema, necesito hacer un corrimiento de bits y el programa que uso en proton, tengo 2 registros Rojo1 y Rojo2 el primero tiene 8 bits y el segundo solo dos pero el segundo es el mas significativo, lo que hago es correr dos bits a la derecha de Rojo1 y para que al correr los dos bits de Rojo2 se forme un solo byte el cual guardo en el registro R, pero al hacer esto en la lcd me muestra un valor de 0cuando me deberia dar el valor de 11110011 .Me gustaria saber que estoy haciendo mal.
Les dejo mi programa y gracias de antemano
Device 16F877A
XTAL 4
Dim ROJO1 As Byte
Dim ROJO2 As Byte
Dim R As Byte
DelayMS 500
LCD_DTPIN = PORTB.4
LCD_RSPIN = PORTB.3
LCD_ENPIN = PORTB.2
LCD_INTERFACE = 4
LCD_LINES = 2
LCD_TYPE = 0
Cls
LCD:
Print At 1, 5,"Corrimiento de Bits"
DelayMS 2000
Cls
'CORRIMIENTO DE BITS A LA DERECHA
TMR:
ROJO1 = %11001100
R = ROJO1 >> 2
Print At 1, 5, "R1=", BIN ROJO1
DelayMS 5000
Print At 2, 5, "R=", BIN R
DelayMS 5000
Cls
ROJO2 = %00000011
R = ROJO2 >> 2 'DATA RED_HI
Cls
Print At 1, 5, "R2=", BIN ROJO2
DelayMS 5000
Print At 2, 5, "R=", BIN R
DelayMS 5000
Cls
GoTo TMR
End
Les dejo mi programa y gracias de antemano
Device 16F877A
XTAL 4
Dim ROJO1 As Byte
Dim ROJO2 As Byte
Dim R As Byte
DelayMS 500
LCD_DTPIN = PORTB.4
LCD_RSPIN = PORTB.3
LCD_ENPIN = PORTB.2
LCD_INTERFACE = 4
LCD_LINES = 2
LCD_TYPE = 0
Cls
LCD:
Print At 1, 5,"Corrimiento de Bits"
DelayMS 2000
Cls
'CORRIMIENTO DE BITS A LA DERECHA
TMR:
ROJO1 = %11001100
R = ROJO1 >> 2
Print At 1, 5, "R1=", BIN ROJO1
DelayMS 5000
Print At 2, 5, "R=", BIN R
DelayMS 5000
Cls
ROJO2 = %00000011
R = ROJO2 >> 2 'DATA RED_HI
Cls
Print At 1, 5, "R2=", BIN ROJO2
DelayMS 5000
Print At 2, 5, "R=", BIN R
DelayMS 5000
Cls
GoTo TMR
End