PortC Salida LCD INICIO_LCD INGRESO=0 TECLADO=0 PORTB=b00 001110 BIT 4 PORTB=1?? ANTIRREBOTES NO TECLADO=TECLADO+1 SI BIT 5 PORTB=1?? ANTIRREBOTES NO TECLADO=TECLADO+1 SI BIT 6 PORTB=1?? ANTIRREBOTES NO TECLADO=TECLADO+1 SI BIT 7 PORTB=1?? ANTIRREBOTES NO TECLADO=TECLADO+1 SI W=16-TECLADO Z=0?? NUEVO_DATO NO C=1 SI ROTA A DERECHA PORTB 1 1 2
INICIO_LCD VALIDAR=1 RETARDO0.25s W=02H ENVIAR_INSTR W=28H ENVIAR_INSTR W=06H ENVIAR_INSTR W=02H ENVIAR_INSTR RETURN LCD_LIMPIAR W=01H ENVIAR_DATO RETARDO0.25S RETURN ENVIAR_DATOS LCD1=1 RETURN ENVIAR_INSTR LCD1=0 RETURN BYTES BYTES BYTES DATOS=W PORTC=PORTC AND W W=DATOS W=W AND ,240 PORTC=W OR PORTC RETARDO0.25s VALIDAR=1 RETARDO0.25s VALIDAR=0 RETARDO0.25s PORTC=0FH AND PORTC RETARDO0.25s VALIDAR=1 RETARO0.25s VALIDAR=0 RETURN RETARDO0.25s CONT=.20 CONT1=.255 CONT1=CONT1-1 Z=1?? NO CONT=CONT-1 SI Z=1?? RETURN SI NO
LINEA1 BIT 0 PORTC=0 W=0X80 ENVIA_INSTR 2 LINEA2 BIT 0 PORTC=0 W=0XC0 ENVIA_INSTR 2 IZQUIERDA W=b000100 11' ENVIA_INSTR 2 DERECHA W=b000101 11' ENVIA_INSTR 2 ARRIBA W=b000110 11' ENVIA_INSTR 2 ABAJO W=b000111 11' ENVIA_INSTR 2 DECOD PCL=PCL+W RETORNA O MANDA A EJECUTAR END
ANTIRREBOTES BIT 4 PORTB=1?? BIT 5 PORTB=1?? SI BIT 6 PORTB=1?? SI BIT 7 PORTB=1?? SI NO NO NO NO W=TECLADO DECOD ENVIAR_DATO S INGRESO=INGRESO +1 W=.16 XOR INGRESO Z=0 LINEA 2 2