Code:
InicializaLCD:
D_C=1 ' Seleccionamos el registro de datos en RAM
SCE=1 ' Anulamos la seleccion del chip
pause 100 ' Hacemos una pausa de 100 ms
gosub Reset_LCD ' Reseteamos el LCD
return
Reset_LCD:
RST=0 ' Damos un pulso de reset durante 100 ms
pause 100
RST=1
SCE=0
RETURN
CursorHome:
SCK = 1
LcdReg = %10000000 ' cursor Home
call PrintCtrlLcd
LcdReg = %01000000 ' cursor Home
call PrintCtrlLcd
return
PrintChar:
offset = Char * 5
for a = 1 to 5
read offset, LcdReg
call PrintDataLcd
offset = offset + 1
next a
LcdReg = 0
call PrintDataLcd
return
PrintCtrlLcd: D_C = 0
PrintDataLcd:
for x = 1 to 8
SDIN = LcdReg.7
SCK = 1
LcdReg = LcdReg << 1
SCK = 0
next x
D_C = 1
return
LCD_Clear:
PosX=0:PosY=0:Gosub LCD_GotoXY
D_C = 1
FOR Chr=1 TO 252
LcdData=0:Gosub LCD_ByteOut
LcdData=0:Gosub LCD_ByteOut
next Chr
return
LCD_GotoXY:
D_C = 0
LcdData=%01000000 | PosY :Gosub LCD_ByteOut
LcdData=%10000000 | PosX :Gosub LCD_ByteOut
return
LCD_ByteOut:
SHIFTOUT SDIN,SCK,1,[LcdData]
return
Border_line:
'~~~~~~~~~~~~~~~~~ RAND 0
LcdReg = %10000000 ' cursor X
call PrintCtrlLcd
LcdReg = %01000000 ' cursor Y
call PrintCtrlLcd
for y = 0 to 83
LOokup y, [$FF,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,_ ' UP-side "DIGITAL"
$01,$01,$01,$F9,$F9,$F9,$09,$09,$F9,$F9,$F1,$01,_
$01,$F9,$F9,$F9,$01,$01,$F1,$F9,$F9,$09,$09,$19,_
$19,$11,$01,$01,$F9,$F9,$F9,$01,$09,$09,$09,$F9,$F9,$F9,_
$09,$09,$09,$01,$F1,$F9,$F9,$09,$09,$F9,$F9,$F1,$01,$01,_
$F9,$F9,$F9,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,_
$01,$01,$01,$01,$01,$FF] ,LcdReg
call PrintDataLcd
next y
'~~~~~~~~~~~~~~~~~ RAND 1
LcdReg = %10000000 ' cursor X
call PrintCtrlLcd
LcdReg = %01000001 ' cursor Y
call PrintCtrlLcd
for y = 0 to 83
LOokup y, [$FF,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_ ' DOWN-side "DIGITAL"
$00,$00,$00,$1F,$1F,$1F,$10,$10,$1F,$1F,$0F,$00,$00,_
$1F,$1F,$1F,$00,$00,$0F,$1F,$1F,$10,$11,$1F,$1F,_
$0F,$00,$00,$1F,$1F,$1F,$00,$00,$00,$00,$1F,$1F,$1F,$00,_
$00,$00,$00,$1F,$1F,$1F,$01,$01,$1F,$1F,$1F,$00,$00,$1F,$1F,_
$1F,$10,$10,$10,$10,$00,$00,$00,$00,$00,$00,$00,_
$00,$00,$00,$00,$00,$FF] ,LcdReg
call PrintDataLcd
next y
'=================================== RAND 2
LcdReg = %10000000 ' cursor X
call PrintCtrlLcd
LcdReg = %01000010 ' cursor Y
call PrintCtrlLcd
LOokup 0, [$FF] , LcdReg
call PrintDataLcd
LcdReg = %10000000 + 83 ' cursor X
call PrintCtrlLcd
LcdReg = %01000010 ' cursor Y
call PrintCtrlLcd
LOokup 0, [$FF] , LcdReg
call PrintDataLcd
'=================================== RAND 3
LcdReg = %10000000 ' cursor X
call PrintCtrlLcd
LcdReg = %01000011 ' cursor Y
call PrintCtrlLcd
LOokup 0, [$FF] , LcdReg
call PrintDataLcd
LcdReg = %10000000 + 48 ' cursor X
call PrintCtrlLcd
LcdReg = %01000011 ' cursor Y
for y = 0 to 35
LOokup y, [$18,$38,$60,$60,$38,$18,_ ' "VOLT"
$00,$30,$78,$48,$78,$30,_
$00,$78,$78,$40,$40,_
$00,$08,$08,$78,$78,$08,$08,$00,_
$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$FF] ,LcdReg
call PrintDataLcd
next y
'=================================== RAND 4
LcdReg = %10000000 ' cursor X
call PrintCtrlLcd
LcdReg = %01000100 ' cursor Y
call PrintCtrlLcd
LOokup 0, [$FF] , LcdReg
call PrintDataLcd
LcdReg = %10000000 + 83 ' cursor X
call PrintCtrlLcd
LcdReg = %01000100 ' cursor Y
call PrintCtrlLcd
LOokup 0, [$FF] , LcdReg
call PrintDataLcd
'=================================== JOS
LcdReg = %10000000 ' cursor X
call PrintCtrlLcd
LcdReg = %01000101 ' cursor Y
call PrintCtrlLcd
for y = 0 to 83
LOokup y, [$FF,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,_
$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,_
$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,_
$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,_
$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,_
$80,$80,$80,$80,$80,$80,$80,$80,$FF] ,LcdReg
call PrintDataLcd
next y
Return
'=======================================================================
End 'of program
Bookmarks