'****** PIC16F876, SOLO SIMULACION ********************************
Define LCD_BITS = 4 'indicamos que el bus de datos del lcd sera de 4bit
Define LCD_DREG = PORTA 'el bus de datos sera el puerto A
Define LCD_DBIT = 0 'el bus de datos seran los 4 bit menos significativos del puerto A
Define LCD_RSREG = PORTB 'el bit de control RS sera del puerto B
Define LCD_RSBIT = 7 'se usara el RB7 como RS
Define LCD_EREG = PORTB 'el bit de control E sera del puerto B
Define LCD_EBIT = 6 'se usara el RB6 como E
Define LCD_COMMANDUS = 2000 'Tiempo de espera despues de ejecutar un comand del lcd en uSeg.
Define LCD_DATAUS = 50 'Tiempo de espera despues de enviar un dato al LCD en uSeg.
Define LCD_INITMS = 50 '5 '(50) 'Tiempo de espera despues de inicializar el Display, solo se ejecuta una vez en mSeg.
'---------------------------
Dim indata(10) As Byte
Dim contador As Byte
Dim buffer(10) As Byte
contador = 0
AllDigital
TRISC.6 = 0 'Tx, pin fisico de la uar como salida.
Lcdinit
Hseropen 19200
loop:
Hserin indata(contador)
Lcdcmdout LcdClear
Lcdcmdout LcdHome
Lcdout #indata(0)
If indata(0) = 97 Then
Lcdcmdout LcdHome
contador = contador + 1
Hserin indata(contador)
contador = contador + 1
Hserin indata(contador)
If contador > 2 Then contador = 0
Lcdcmdout LcdHome
Lcdout "indata:" #indata(1), " ", #indata(2)
WaitMs 50
buffer(1) = indata(1)
buffer(2) = indata(2)
Lcdcmdout LcdClear
Lcdcmdout LcdLine2Home
Lcdout "buffer:" #buffer(1), " ", #buffer(2)
WaitMs 50
Endif
Goto loop