Como he recibido gran ayuda de los miembros de esta comunidad para resolver mis problemas, aca les dejo el diagrama esquemático (mitad mia mitad de LordLafebre) aca les dejo el código del programa y el diagrama esquemático de como queda funcionando, no es gran cosa pero algo es algo.
Alguna sugerencia, comentario, duda y/o crítica será bien recibida.
CÓDIGO:
DEFINE LCD_DREG PORTA
DEFINE LCD_DBIT 0
DEFINE LCD_RSREG PORTA
DEFINE LCD_RSBIT 4
DEFINE LCD_EREG PORTA
DEFINE LCD_EBIT 5
DEFINE OSC 3
ADCON1 = 7
HIGH PORTE.0
PAUSE 500
LOW PORTE.0
PAUSE 500
LCDOUT $FE, $1, "Tecla: "
C VAR BYTE
F VAR BYTE
K VAR BYTE
TECLADO:
FOR C = 0 TO 3 STEP 1
LOW PORTB.0
LOW PORTB.1
LOW PORTB.2
LOW PORTB.3
IF C = 0 THEN PORTB.0 = 1
IF C = 1 THEN PORTB.1 = 1
IF C = 2 THEN PORTB.2 = 1
IF C = 3 THEN PORTB.3 = 1
FOR F = 4 TO 7 STEP 1
IF F=4 AND PORTB.4 = 0 THEN GOSUB TECLA
IF F=5 AND PORTB.5 = 0 THEN GOSUB TECLA
IF F=6 AND PORTB.6 = 0 THEN GOSUB TECLA
IF F=7 AND PORTB.7 = 0 THEN GOSUB TECLA
NEXT F
NEXT C
GOTO TECLADO
END
TECLA:
IF F = 4 THEN K = (C+1) + (F-3) + 47
IF F = 5 THEN K = (C+1) + (F-3) + 49
IF F = 6 THEN K = (C+1) + (F-3) + 51
IF F = 7 THEN
IF C = 0 THEN K = 42
IF C = 1 THEN K = 48
IF C = 2 THEN K = 35
ENDIF
IF C = 3 THEN
IF F = 4 THEN K = 65
IF F = 5 THEN K = 66
IF F = 6 THEN K = 67
IF F = 7 THEN K = 68
ENDIF
GOSUB LCD
RETURN
END
LCD:
HIGH PORTE.0
LCDOUT $FE, $C0, K
pause 200
LOW PORTE.0
RETURN
END
Diagrama esquemático en 2 partes:
Parte Teclado y conexión hacia el Micro:
Parte del LCD con el Micro:
Bueno, eso es todo espero que les sea de utilidad.