
Hola amigos de todopic estoy comenzando con las rutinas del lcd y el mikrobasic pro, logre hacer funcionar un lcd con el 16f84a pero con el 16f877a no e podido de ninguna manera, si alguien sabe que error estoy cometiendo en el programa podrian ayudarme porfavor.
muchas gracias;
el codigo esta basado en el que trae el manual de mikrobasic pro con el 16f887 pero modificado para el 16f877A.
********************************************************************************************************************************************
program LCD_1
'lcd conexiones
DIM
LCD_RS AS SBIT AT RB4_BIT
LCD_EN AS SBIT AT RB5_BIT
LCD_D7 AS SBIT AT RB0_BIT
LCD_D6 AS SBIT AT RB1_BIT
LCD_D5 AS SBIT AT RB2_BIT
LCD_D4 AS SBIT AT RB3_BIT

DIM
LCD_RS_DIRECTION AS SBIT AT TRISB4_BIT
LCD_EN_DIRECTION AS SBIT AT TRISB5_BIT
LCD_D4_DIRECTION AS SBIT AT TRISB3_BIT
LCD_D5_DIRECTION AS SBIT AT TRISB2_BIT
LCD_D6_DIRECTION AS SBIT AT TRISB1_BIT
LCD_D7_DIRECTION AS SBIT AT TRISB0_BIT
DIM
TXT1 AS CHAR[10 ]
TXT2 AS CHAR[16]
TXT3 AS CHAR[14]
TXT4 AS CHAR[13]
I AS BYTE
SUB PROCEDURE MOVE_DELAY()
DELAY_MS(500)
END SUB
' FIN LCD CONECTIONS
main:
TRISA = 0
PORTA = 0
TRISB = 0
PORTB = 0
TRISD = 0
PORTD = 0
PORTE = 0
TRISE = 0
TXT1 = " DIA SOLEADO "
TXT2 = " QUE SERA DE MI"
TXT3 = " TANQUE VACIO"
TXT4 = "REBICE LA RED"
LCD_INIT()
LCD_CMD(_LCD_CLEAR)
LCD_CMD(_LCD_CURSOR_OFF)
LCD_OUT(1,3,TXT1)
LCD_OUT(2,2,TXT2)
DELAY_MS(1000)
LCD_CMD(_LCD_CLEAR)
LCD_OUT(1,1,TXT3)
LCD_OUT(2,2,TXT4)
DELAY_MS(500)
FOR I = 0 TO 3
LCD_CMD(_LCD_SHIFT_RIGHT)
MOVE_DELAY()
NEXT I
WHILE TRUE
FOR I = 0 TO 7
LCD_CMD(_LCD_SHIFT_LEFT)
MOVE_DELAY()
NEXT I
FOR I = 0 TO 7
LCD_CMD(_LCD_SHIFT_RIGHT)
MOVE_DELAY()
NEXT I
WEND
END.
********************************************************************************************************************************************
