'------------------------------------------------------------------------------- 'NHD-C0216CZ '2x16 COG Character LCD '------------------------------------------------------------------------------- $large Dim A As Byte Dim Count As Byte Dim Serialcounter As Byte Declare Sub Writedata Declare Sub Writecom Declare Sub Init Declare Sub Text1 Declare Sub Text2 'RST = P3.0 'RS = P3.7 'CS = P3.4 'SCL = P3.1 'SI = P1.0 '------------------------------------------------------------------------------- Do Call Init Call Text1 Call Text2 Loop End '------------------------------------------------------------------------------- Sub Init 'initialize the LCD Set P3 Set P1 Reset P3.0 'RESET Waitms 2 Set P3.0 'end reset Waitms 20 A = &H30 'wake up Call Writecom Waitms 2 A = &H30 'wake up Call Writecom A = &H30 'wake up Call Writecom A = &H39 'function set Call Writecom A = &H14 'internal osc frequency Call Writecom A = &H56 'power control Call Writecom A = &H6D 'follower control Call Writecom A = &H70 'contrast Call Writecom A = &H0C 'display on Call Writecom A = &H06 'entry mode Call Writecom A = &H01 'clear Call Writecom Waitms 10 End Sub '------------------------------------------------------------------------------- Sub Text1 Restore Dta1 'show Dta1 For Count = 1 To 16 '16 characters Read A 'read data from Dta1 and increment Call Writedata 'write data to display Next Count A = &HC0 'move to 2nd line (address 0x40) Call Writecom For Count = 1 To 16 '16 characters Read A 'read data from Dta1 and increment Call Writedata 'write data to display Next Count Wait 3 End Sub Sub Text2 A = &H02 Call Writecom 'home Restore Dta2 'show Dta2 For Count = 1 To 16 '16 characters Read A 'read data from Dta2 and increment Call Writedata 'write data to display Next Count A = &HC0 'move to 2nd line (address 0x40) Call Writecom For Count = 1 To 16 '16 characters Read A 'read data from Dta2 and increment Call Writedata 'write data to display Next Count Wait 3 End Sub '------------------------------------------------------------------------------- 'RST = P3.0 'RS = P3.7 'CS = P3.4 'SCL = P3.1 'SI = P1.0 '------------------------------------------------------------------------------- Sub Writecom Reset P3.4 '/CS Reset P3.7 'A0 = Command For Serialcounter = 1 To 8 Rotate A , Left , 1 'move MSB to bit 0 P1 = A 'put data on P1.0 Set P3.1 'SCL Reset P3.1 'SCL Next Serialcounter Set P3.4 End Sub Sub Writedata Reset P3.4 '/CS Set P3.7 'A0 = Data For Serialcounter = 1 To 8 Rotate A , Left , 1 'move MSB to bit 0 P1 = A 'put data on P1.0 Set P3.1 'SCL Reset P3.1 'SCL Next Serialcounter Set P3.4 End Sub '------------------------------------------------------------------------------- Dta1: Data "Newhaven Display 2x16 COG LCD " Dta2: Data " Genie Max Height:51 ft"