$regfile = "m8535.dat"
$crystal = 4000000
Config Portd = Output
Config Portc = Output
E Alias Portc.0
Rw Alias Portc.1
A0 Alias Portc.2
Display_power Alias Portc.7
Declare Sub Lcdinit()
Declare Sub Write_cmd_display(byval Cmd As Byte)
Declare Sub Write_data_display(byval Dat As Byte)
Declare Sub Set_marker(byval Marker As Byte , Byval Aan_uit As Byte)
Declare Sub Lcd_char(byval Text As String )
Declare Sub Set_row(byval Row As Byte)
Dim X As Byte
Reset Display_power
Wait 1
Set Display_power
Wait 3
Call Lcdinit()
Wait 1
Call Set_row(1)
Call Lcd_char( "0123456789")
Call Set_row(2)
Call Lcd_char( "ABCDEFGHIJKLMN")
Call Set_row(3)
Call Lcd_char( "opqrstuvwxyz")
Call Set_row(4)
Call Lcd_char( "!#$%&'( )@^-")
Call Set_row(5)
Call Lcd_char( "*+-/<>?;:[]")
Call Set_row(6)
Call Lcd_char( "Bascom Rocks !")
Do
Call Set_marker(4 , 1)
Waitms 400
Call Set_marker(4 , 0)
Waitms 400
Loop
End
Sub Lcdinit()
Call Write_cmd_display(&He2)
Wait 1
Call Write_cmd_display(&Ha1)
Call Write_cmd_display(&Ha2)
Call Write_cmd_display(&H2c)
Call Write_cmd_display(&H2e)
Call Write_cmd_display(&H2f)
Call Write_cmd_display(&Ha6)
Call Write_cmd_display(&H8f)
Call Write_cmd_display(&Ha4)
Call Write_cmd_display(&Haf)
Call Write_cmd_display(&H40)
End Sub
Sub Write_cmd_display(byval Cmd As Byte)
Reset Rw
Reset A0
Portd = Cmd
Set E
Waitus 10
Reset E
Waitus 10
Set E
End Sub
Sub Write_data_display(byval Dat As Byte)
Reset Rw
Set A0
Portd = Dat
Set E
Waitus 10
Reset E
Waitus 10
Set E
End Sub
Sub Set_row(byval Row As Byte)
Dim Page As Byte
Select Case Row
Case 1 : Page = &HB0
Case 2 : Page = &HB1
Case 3 : Page = &HB2
Case 4 : Page = &HB3
Case 5 : Page = &HB4
Case 6 : Page = &HB5
End Select
Call Write_cmd_display(page)
Call Write_cmd_display(&H08)
Call Write_cmd_display(&H00)
Call Lcd_char( " ")
Call Write_cmd_display(page)
Call Write_cmd_display(&H08)
Call Write_cmd_display(&H00)
End Sub
Sub Set_marker(byval Marker As Byte , Byval Aan_uit As Byte)
Dim High_nibble As Byte
Dim Low_nibble As Byte
Select Case Marker
Case 1 : Marker = 20
Case 2 : Marker = 31
Case 3 : Marker = 32
Case 4 : Marker = 57
Case 5 : Marker = 69
Case 6 : Marker = 78
End Select
Low_nibble = Marker And &B00001111
High_nibble = Marker
Shift High_nibble , Right , 4
Set High_nibble.4
Call Write_cmd_display(&Hb6)
Call Write_cmd_display(high_nibble)
Call Write_cmd_display(low_nibble)
If Aan_uit = 1 Then
Call Write_data_display(&H01);
Else
Call Write_data_display(&H00);
End If
End Sub
Sub Lcd_char(byval Text As String )
Dim Tempdata As Byte , Tempbyte As Integer , Chars As Byte , Charcount As Byte , Tempstring As String * 1
Charcount = Len(text)
If Charcount > 16 Then
Charcount = 16
End If
Call Write_cmd_display(&He0)
For Chars = 1 To Charcount
Tempstring = Mid(text , Chars , 1)
Tempbyte = Asc(tempstring)
Tempbyte = Tempbyte - 32
Tempbyte = Tempbyte * 5
Restore Characterslookup
For X = 1 To 5
Tempdata = Lookup(tempbyte , Characterslookup)
Call Write_data_display(tempdata)
Tempbyte = Tempbyte + 1
Next
Call Write_data_display(&H00)
Next
Call Write_cmd_display(&Hee)
End Sub
Characterslookup:
Data &H00 , &H00 , &H00 , &H00 , &H00
Data &H00 , &H00 , &H5F , &H00 , &H00
Data &H00 , &H07 , &H00 , &H07 , &H00
Data &H14 , &H7F , &H14 , &H7F , &H14
Data &H24 , &H2A , &H7F , &H2A , &H12
Data &H23 , &H13 , &H08 , &H64 , &H62
Data &H36 , &H49 , &H55 , &H22 , &H50
Data &H00 , &H05 , &H03 , &H00 , &H00
Data &H00 , &H1C , &H22 , &H41 , &H00
Data &H00 , &H41 , &H22 , &H1C , &H00
Data &H08 , &H2A , &H1C , &H2A , &H08
Data &H08 , &H08 , &H3E , &H08 , &H08
Data &H00 , &H50 , &H30 , &H00 , &H00
Data &H08 , &H08 , &H08 , &H08 , &H08
Data &H00 , &H60 , &H60 , &H00 , &H00
Data &H20 , &H10 , &H08 , &H04 , &H02
Data &H3E , &H51 , &H49 , &H45 , &H3E
Data &H00 , &H42 , &H7F , &H40 , &H00
Data &H42 , &H61 , &H51 , &H49 , &H46
Data &H21 , &H41 , &H45 , &H4B , &H31
Data &H18 , &H14 , &H12 , &H7F , &H10
Data &H27 , &H45 , &H45 , &H45 , &H39
Data &H3C , &H4A , &H49 , &H49 , &H30
Data &H01 , &H71 , &H09 , &H05 , &H03
Data &H36 , &H49 , &H49 , &H49 , &H36
Data &H06 , &H49 , &H49 , &H29 , &H1E
Data &H00 , &H36 , &H36 , &H00 , &H00
Data &H00 , &H56 , &H36 , &H00 , &H00
Data &H00 , &H08 , &H14 , &H22 , &H41
Data &H14 , &H14 , &H14 , &H14 , &H14
Data &H41 , &H22 , &H14 , &H08 , &H00
Data &H02 , &H01 , &H51 , &H09 , &H06
Data &H32 , &H49 , &H79 , &H41 , &H3E
Data &H7E , &H11 , &H11 , &H11 , &H7E
Data &H7F , &H49 , &H49 , &H49 , &H36
Data &H3E , &H41 , &H41 , &H41 , &H22
Data &H7F , &H41 , &H41 , &H22 , &H1C
Data &H7F , &H49 , &H49 , &H49 , &H41
Data &H7F , &H09 , &H09 , &H01 , &H01
Data &H3E , &H41 , &H41 , &H51 , &H32
Data &H7F , &H08 , &H08 , &H08 , &H7F
Data &H00 , &H41 , &H7F , &H41 , &H00
Data &H20 , &H40 , &H41 , &H3F , &H01
Data &H7F , &H08 , &H14 , &H22 , &H41
Data &H7F , &H40 , &H40 , &H40 , &H40
Data &H7F , &H02 , &H04 , &H02 , &H7F
Data &H7F , &H04 , &H08 , &H10 , &H7F
Data &H3E , &H41 , &H41 , &H41 , &H3E
Data &H7F , &H09 , &H09 , &H09 , &H06
Data &H3E , &H41 , &H51 , &H21 , &H5E
Data &H7F , &H09 , &H19 , &H29 , &H46
Data &H46 , &H49 , &H49 , &H49 , &H31
Data &H01 , &H01 , &H7F , &H01 , &H01
Data &H3F , &H40 , &H40 , &H40 , &H3F
Data &H1F , &H20 , &H40 , &H20 , &H1F
Data &H7F , &H20 , &H18 , &H20 , &H7F
Data &H63 , &H14 , &H08 , &H14 , &H63
Data &H03 , &H04 , &H78 , &H04 , &H03
Data &H61 , &H51 , &H49 , &H45 , &H43
Data &H00 , &H00 , &H7F , &H41 , &H41
Data &H02 , &H04 , &H08 , &H10 , &H20
Data &H41 , &H41 , &H7F , &H00 , &H00
Data &H04 , &H02 , &H01 , &H02 , &H04
Data &H40 , &H40 , &H40 , &H40 , &H40
Data &H00 , &H01 , &H02 , &H04 , &H00
Data &H20 , &H54 , &H54 , &H54 , &H78
Data &H7F , &H48 , &H44 , &H44 , &H38
Data &H38 , &H44 , &H44 , &H44 , &H20
Data &H38 , &H44 , &H44 , &H48 , &H7F
Data &H38 , &H54 , &H54 , &H54 , &H18
Data &H08 , &H7E , &H09 , &H01 , &H02
Data &H08 , &H14 , &H54 , &H54 , &H3C
Data &H7F , &H08 , &H04 , &H04 , &H78
Data &H00 , &H44 , &H7D , &H40 , &H00
Data &H20 , &H40 , &H44 , &H3D , &H00
Data &H00 , &H7F , &H10 , &H28 , &H44
Data &H00 , &H41 , &H7F , &H40 , &H00
Data &H7C , &H04 , &H18 , &H04 , &H78
Data &H7C , &H08 , &H04 , &H04 , &H78
Data &H38 , &H44 , &H44 , &H44 , &H38
Data &H7C , &H14 , &H14 , &H14 , &H08
Data &H08 , &H14 , &H14 , &H18 , &H7C
Data &H7C , &H08 , &H04 , &H04 , &H08
Data &H48 , &H54 , &H54 , &H54 , &H20
Data &H04 , &H3F , &H44 , &H40 , &H20
Data &H3C , &H40 , &H40 , &H20 , &H7C
Data &H1C , &H20 , &H40 , &H20 , &H1C
Data &H3C , &H40 , &H30 , &H40 , &H3C
Data &H44 , &H28 , &H10 , &H28 , &H44
Data &H0C , &H50 , &H50 , &H50 , &H3C
Data &H44 , &H64 , &H54 , &H4C , &H44
Data &H00 , &H08 , &H36 , &H41 , &H00
Data &H00 , &H00 , &H7F , &H00 , &H00
Data &H00 , &H41 , &H36 , &H08 , &H00
Data &H08 , &H08 , &H2A , &H1C , &H08
Data &H08 , &H1C , &H2A , &H08 , &H08