Hallo alle zusammen,
ich habs jetzt geschaft, das Display HLM8070 von pollin mit Bascom anzusteuern.
hier mein Quelltext:
Code:
$regfile = "m8def.dat"
$crystal = 16000000
$baud = 57600
Lcddisplay Alias Portc
Config Lcddisplay = Output
Oc1 Alias Portd.4
Config Oc1 = Output
Oc2 Alias Portd.5
Config Oc2 = Output
Ex Alias Portd.6
Config Ex = Output
Dim Parameter As Byte
Dim Xparameter As Byte
Dim Command As Byte
Dim Zeile As Byte
Dim I As Byte
Dim Char As Byte
Dim Xchar As String * 1
Dim Text As String * 16
Dim Xxchar As String * 1
Dim Xxxchar As Byte
Reset Oc1
Reset Oc2
Reset Ex
Declare Sub Init()
Declare Sub Command(command As Byte)
Declare Sub Disp(xchar As Byte)
Declare Sub Zeile(xzeile As Byte)
'------------
'Hautprogramm
'------------
Call Init
Zeile = $00
Call Zeile(zeile)
Text = "0123456789ABCDEF"
Gosub Ausgeben
Zeile = $40
Call Zeile(zeile)
Text = "GHIJKLMNOPQRSTUV"
Gosub Ausgeben
Zeile = $80
Call Zeile(zeile)
Text = "WXYZ!,$%&/()=?`*"
Gosub Ausgeben
Zeile = $c0
Call Zeile(zeile)
Text = "@+#'<>|^{[]};_-."
Gosub Ausgeben
Do
Print "fertig"
Wait 1
Loop
'------------------
'Ende Hauptprogramm
'------------------
'----------
Sub Init()
'----------
Parameter = $d8
Call Command(parameter)
Parameter = $50
Call Command(parameter)
Parameter = $33
Call Command(parameter)
Parameter = $01
Call Command(parameter)
Waitms 2
End Sub
'-----------------------------
Sub Command(command As Byte)
'-----------------------------
Xparameter = Command
Shift Xparameter , Right , 4
Lcddisplay = Xparameter
Set Ex
Waitus 1
Reset Ex
Lcddisplay = Command And $0f
Set Ex
Waitus 1
Reset Ex
Waitus 20
End Sub
'--------------------------
Sub Zeile(xzeile As Byte)
'--------------------------
Parameter = Xzeile
Set Oc1
Set Oc2
Call Command(parameter)
Reset Oc1
Reset Oc2
Waitus 100
End Sub
'------------------------
Sub Disp(xchar As Byte)
'------------------------
Set Oc2
Parameter = Xchar
Call Command(parameter)
Reset Oc2
End Sub
'---------
Ausgeben:
'---------
For I = 1 To 16
Xxchar = Mid(text , I , 1)
Xxxchar = Val(xxchar)
Char = Asc(xxchar)
If Char = 0 Then
Char = $20
End If
Call Disp(char)
Next I
Return
bei mir funktioniert alles einwandfrei
hier noch meine Anschlussbelegung:
Code:
1 GND GND
2 +5V +5V
3 Kontrast Kontrast
4 IO C1 PD4
5 R/W GND
6 EX PD6
7 DB0
8 DB1
9 DB2
10 DB3
11 DB4 PC0
12 DB5 PC1
13 DB6 PC2
14 DB7 PC3
15 IO C2 PD5
alles, was das Programm macht, ist 4 Zeilen voll Zeichen auszugeben
für Verbesserungsvorschläge bin ich jederzeit offen
hoffe damit geholfen zu haben
Lesezeichen