I just found this lying around in My Documents of an old PC:
Code:
'--------------------------------------------------------------------'
' Author: Demon '
' Date: April 7th, 2006 ' '
' Language: PIC Basic Pro v2.46 '
' MPU: PIC 16F877 20/P from MicroChip '
' IDE: MicroCode Studio Plus from Mecanique v2.2.1.1 '
' Programmer: MeLabs Serial Programmer v3.12 (firmware v3.4) '
' LCD: LCM3202401 from QingYun-IT '
' '
' All rights reserved. '
' '
' Use of parts of code is permitted as long as credit is given '
' to the author. Code may or may not be Year 3000 proof. Use '
' at your own risk. '
'--------------------------------------------------------------------'
'define LOADER_USED 1
clear
ADCON1 = 7
ASM
@ DEVICE PIC16F877, HS_OSC, WDT_OFF, PWRT_ON, BOD_ON, LVP_OFF, CPD_OFF, WRT_OFF, DEBUG_OFF, PROTECT_OFF
ENDASM
DEFINE OSC 20
pinData var PORTD
pinWR var PORTB.0
pinRD var PORTB.1
pinCS var PORTB.2
pinA0 var PORTB.4
pinRST var PORTB.5
pinLED VAR PORTB.3
pinSCL VAR PORTC.3
pinSDA VAR PORTC.4
TRISD = 0
TRISB.0 = 0
TRISB.1 = 0
TRISB.2 = 0
TRISB.4 = 0
TRISB.5 = 0
TRISB.3 = 0
conSet con $40
conScroll con $44
conCursorForm con $5d
conCursorAddress con $46
conCursorRight con $4c
conOverlay con $5b
conWrite con $42
conDisplayON con $59
conDisplayOFF con $58
conCharPerLine con $28 ' 40 characters / line
varCommand Var BYTE
varCursor var BYTE
varByte var BYTE
varLoop1 var BYTE
varLoop2 var BYTE
varAddress var WORD
pinRD = 1
pinWR = 1
pinCS = 0
pinRST = 0
pause 1
pinRST = 1
pause 100
goto main
' --------------------------- Subroutines --------------------------
'INCLUDE "SED1335 subroutines.pbp"
SendData:
pinA0 = 0
pinData = varByte
pinWR = 0
' @ nop
pinWR = 1
return
SendCommand:
pinA0 = 1
pinData = varCommand
pinWR = 0
' @ nop
pinWR = 1
return
ClearGraphic:
varCommand = conCursorAddress
gosub SendCommand
varByte = $00
gosub SendData
varByte = $10
gosub SendData
varCommand = conCursorRight
gosub SendCommand
varCommand = conWrite
gosub SendCommand
varByte = %00000000 ' 1 byte = 8 bits = 8 pixels wide
for varLoop1 = 1 to 240 ' 240 pixels high
for varLoop2 = 1 to 40 ' 40 bytes = 320 bits = 320 pixels wide
gosub SendData
next varLoop2
next varLoop1
return
ClearText:
varCommand = conCursorAddress
gosub SendCommand
varByte = $00
gosub SendData
varByte = $00
gosub SendData
varCommand = conCursorRight
gosub SendCommand
varCommand = conWrite
gosub SendCommand
varByte = " "
for varLoop1 = 1 to 30
for varLoop2 = 1 to 40
gosub SendData
next varLoop2
next varLoop1
return
InitDisplay:
varCommand = conSet
gosub SendCommand
for varLoop1 = 0 to 7
lookup varLoop1,[$32,$87,$07,$27,$2B,$EF,$28,$00],varByte
gosub SendData
next varLoop1
varCommand = conScroll
gosub SendCommand
for varLoop1 = 0 to 5
lookup varLoop1,[$00,$00,$EF,$00,$10,$EF],varByte
gosub SendData
next varLoop1
varCommand = conOverlay
gosub SendCommand
varByte = %00000001
gosub SendData
varCommand =conDisplayOFF
gosub SendCommand
varByte = %00000000
gosub SendData
gosub ClearText
gosub ClearGraphic
varCommand = conDisplayON
gosub SendCommand
varByte = %00010100
gosub SendData
varCommand = conCursorAddress
gosub SendCommand
varByte = $0
gosub SendData
varByte = $0
gosub SendData
varCommand =conCursorForm
gosub SendCommand
varByte = $04
gosub SendData
varByte = $86
gosub SendData
return
SetAddress:
varCommand = conCursorAddress
gosub SendCommand
varByte = varAddress.BYTE0
gosub SendData
varByte = varAddress.BYTE1
gosub SendData
varCommand = varCursor
gosub SendCommand
varCommand = conWrite
gosub SendCommand
return
' --------------------------- Main program --------------------------
Main:
gosub InitDisplay
pinLED = 1
varAddress = 0
varCursor = conCursorRight
gosub SetAddress
for varLoop1 = 0 to 39
lookup varLoop1,[".. QINGYUN IT LCM-3202401 GRAPHIC LCD .."],varByte
gosub SendData
NEXT varLoop1
varAddress = 29 * conCharPerLine
varCursor = conCursorRight
gosub SetAddress
for varLoop1 = 0 to 39
lookup varLoop1,["Demon was here! "],varByte
gosub SendData
NEXT varLoop1
end
It's old and not cleaned up, but at least it's a start.
Robert
EDIT: LOL Look what I found while looking at my attachments:
http://www.picbasic.co.uk/forum/showthread.php?t=3811
Bookmarks