Define CONFIG = 0x3f71
Define CLOCK_FREQUENCY = 4
Dim addr As Word 'variable for storing EEPROM byte address
Dim data As Byte 'variable for storing EEPROM byte data
Dim bl As Byte
Dim rs As Byte
'data
Symbol d0 = PORTB.0
Symbol d1 = PORTB.1
Symbol d2 = PORTC.0
Symbol d3 = PORTC.1
'control
Symbol en = PORTB.2
Symbol cd = PORTB.3
TRISB = 0
TRISC = 0
Dim lcdoutput As String
Call lcdbegin()
main: 'endless loop
data = 45
Call cmdwrite(0x80)
lcdoutput = "Testing = " + #data
Call printstr(lcdoutput)
Call cmdwrite(0xc0)
data = 128
lcdoutput = "Set = " + #data
Call printstr(lcdoutput)
Goto main
End 'end program
Proc printstr(str As String)
Dim x As Byte
Dim ch As Byte
Dim idx As Byte
Idx = Len(str) - 1
For x = 0 To idx
ch = Asc(str)
Call datawrite(ch)
str = LRotateStr(str)
Next x
End Proc
Proc lcdbegin()
WaitMs 20
Call cmdwrite(0x33)
WaitMs 5
Call cmdwrite(0x32)
WaitMs 5
Call cmdwrite(0x2c)
WaitMs 1
Call cmdwrite(0xc)
WaitMs 1
Call cmdwrite(0x6)
WaitMs 1
Call cmdwrite(0x1)
End Proc
Proc datawrite(data As Byte)
cd = 1
d0 = data.4
d1 = data.5
d2 = data.6
d3 = data.7
en = 1
WaitUs 100
en = 0
WaitMs 1
d0 = data.0
d1 = data.1
d2 = data.2
d3 = data.3
en = 1
WaitUs 100
en = 0
WaitMs 1
End Proc
Proc cmdwrite(cmd As Byte)
cd = 0
d0 = cmd.4
d1 = cmd.5
d2 = cmd.6
d3 = cmd.7
en = 1
WaitUs 100
en = 0
WaitMs 1
d0 = cmd.0
d1 = cmd.1
d2 = cmd.2
d3 = cmd.3
en = 1
WaitUs 100
en = 0
WaitMs 1
End Proc