'****************************************************************
'* Name : UNTITLED.BAS *
'* Date : 10/03/2012 *
'* Version : 1.0 *
'* Notes : *
'* : *
'****************************************************************
Device=16F877A
Xtal = 4
Symbol LCD_CS=PORTD.1
Symbol LCD_SDA=PORTD.2
Symbol LCD_RST=PORTD.0
Symbol LCD_CLK=PORTD.3
Dim Lcd_Data As Byte
Dim ColorByte1 As Byte
Dim ColorByte2 As Byte
Dim ColorByte3 As Byte
Dim X As Word
Dim wRegion As Word
ColorByte1=0xF0'255'%11000110 'RRRRGGGG - Los colores se cargan en 3 bytes para formar 2pixels con esta
ColorByte2=0X0F'255'%00111111 'BBBBRRRR estructura
ColorByte3=0X00'255'%11000011 'GGGGBBBB
GoSub Inicializar
GoSub DefinirRegion
Demo: Lcd_Data=0x2c 'Escribir en la RAM y enviarpixel funciona en modo relleno, todavia no probe mas regiones
GoSub EnviarComando 'En el ejemplo esta en modo 12bits
For X=0 To wRegion Step 2
ColorByte1=ColorByte1 -1
If ColorByte1=128 Then ColorByte3=ColorByte3 -1
If ColorByte3=128 Then ColorByte2=ColorByte2 +1
GoSub WritePixel
DelayMS 10
Next
DelayMS 5000
GoTo Demo
Inicializar:
Low LCD_RST
DelayMS 100
High LCD_RST
Lcd_Data=0x11 'SleepOut
GoSub EnviarComando
Lcd_Data=0x29 'Encender Display
GoSub EnviarComando
Lcd_Data=0x03 'On Voltage Booster
GoSub EnviarComando
Lcd_Data=0x3a 'Sets pixel format to the following data byte
GoSub EnviarComando
Lcd_Data=0x03 'The pixel format 0x03 is 12 bits per pixel
GoSub EnviarDato
Lcd_Data=0x36 'Varios Parametros pueden ir MirroY, MirrorX, VerticalWrite, BottonTop, BGR/RGB, etc
GoSub EnviarComando
Lcd_Data=0xc0 'Mirror Y
GoSub EnviarDato
Lcd_Data=0x25 'Ajustar contraste
GoSub EnviarComando
Lcd_Data=0X3C '
GoSub EnviarDato
Return
DefinirRegion:
Lcd_Data=0x2b 'Page(Y) Adress Set
GoSub EnviarComando
Lcd_Data=001 'y1
GoSub EnviarDato
Lcd_Data=66 'y2
GoSub EnviarDato
Lcd_Data=0x2a 'Column Adress Set
GoSub EnviarComando
Lcd_Data=001 'x1
GoSub EnviarDato
Lcd_Data=97 'x2
GoSub EnviarDato
wRegion=97*66
Return
SetXYPos:
Return
WritePixel:
Lcd_Data=ColorByte1
GoSub EnviarDato
Lcd_Data=ColorByte2
GoSub EnviarDato
Lcd_Data=ColorByte3
GoSub EnviarDato
Return
EnviarDato:
Low LCD_CS
SHOut LCD_SDA,LCD_CLK, msbfirst, [ 0XFF\1,Lcd_Data ]
High LCD_CS
Return
EnviarComando:
Low LCD_CS
SHOut LCD_SDA,LCD_CLK, msbfirst, [ 0X00\1,Lcd_Data ]
High LCD_CS
Return