peterfido
21.06.2007, 08:57
Wenn Dein Display über Speicher verfügt und die gleichen Adressen wie meines hat, dann könntest du folgendes machen:
Sub deklarieren
declare sub Sonderzeichen()
Dann LCD Initialisieren
Config Graphlcd = 240 * 64 , Dataport = Porta , Controlport = Portc , Ce = 2 , Cd = 3 , Wr = 0 , Rd = 1 , Reset = 4 , Mode = 6 ', Fs = 5 , Mode = 6
call sonderzeichen
und nach der Hauptschleife (Do...Loop)
Sub Sonderzeichen()
$asm
ldi r24,&h03 ;CG-RAM
rcall _GWrite_Data
clr r24
rcall _GWrite_Data
ldi r24,&H22
rcall _GWrite_Cmd
clr r24 ;CG-RAM komplett gefüllt - 160
rcall _GWrite_Data
ldi r24,&h1c
rcall _GWrite_Data
ldi r24,&H24
rcall _GWrite_Cmd
ldi r24,&hff
rcall _GWrite_Data
ldi r24,&Hc0
rcall _GWrite_Cmd
ldi r24,&hff
rcall _GWrite_Data
ldi r24,&Hc0
rcall _GWrite_Cmd
ldi r24,&hff
rcall _GWrite_Data
ldi r24,&Hc0
rcall _GWrite_Cmd
ldi r24,&hff
rcall _GWrite_Data
ldi r24,&Hc0
rcall _GWrite_Cmd
ldi r24,&hff
rcall _GWrite_Data
ldi r24,&Hc0
rcall _GWrite_Cmd
ldi r24,&hff
rcall _GWrite_Data
ldi r24,&Hc0
rcall _GWrite_Cmd
ldi r24,&hff
rcall _GWrite_Data
ldi r24,&Hc0
rcall _GWrite_Cmd
ldi r24,&hff
rcall _GWrite_Data
ldi r24,&Hc0
rcall _GWrite_Cmd
ldi r24,&h1e ;CG-Ram gefülltes O - 161
rcall _GWrite_Data
ldi r24,&Hc0
rcall _GWrite_Cmd
ldi r24,&hFF
rcall _GWrite_Data
ldi r24,&Hc0
rcall _GWrite_Cmd
ldi r24,&hff
rcall _GWrite_Data
ldi r24,&Hc0
rcall _GWrite_Cmd
ldi r24,&hff
rcall _GWrite_Data
ldi r24,&Hc0
rcall _GWrite_Cmd
ldi r24,&hff
rcall _GWrite_Data
ldi r24,&Hc0
rcall _GWrite_Cmd
ldi r24,&hff
rcall _GWrite_Data
ldi r24,&Hc0
rcall _GWrite_Cmd
ldi r24,&hff
rcall _GWrite_Data
ldi r24,&Hc0
rcall _GWrite_Cmd
ldi r24,&h1e
rcall _GWrite_Data
ldi r24,&Hc0
rcall _GWrite_Cmd
ldi r24,&hff ;CG-Ram Antenne - 162
rcall _GWrite_Data
ldi r24,&Hc0
rcall _GWrite_Cmd
ldi r24,&hff
rcall _GWrite_Data
ldi r24,&Hc0
rcall _GWrite_Cmd
ldi r24,&h1e
rcall _GWrite_Data
ldi r24,&Hc0
rcall _GWrite_Cmd
ldi r24,&h1e
rcall _GWrite_Data
ldi r24,&Hc0
rcall _GWrite_Cmd
ldi r24,&h0c
rcall _GWrite_Data
ldi r24,&Hc0
rcall _GWrite_Cmd
ldi r24,&h0c
rcall _GWrite_Data
ldi r24,&Hc0
rcall _GWrite_Cmd
clr r24
rcall _GWrite_Data
ldi r24,&Hc0
rcall _GWrite_Cmd
clr r24
rcall _GWrite_Data
ldi r24,&Hc0
rcall _GWrite_Cmd
clr r24 ;CG-Ram Smilie - 163
rcall _GWrite_Data
ldi r24,&Hc0
rcall _GWrite_Cmd
clr r24
rcall _GWrite_Data
ldi r24,&Hc0
rcall _GWrite_Cmd
ldi r24,&h14
rcall _GWrite_Data
ldi r24,&Hc0
rcall _GWrite_Cmd
clr r24
rcall _GWrite_Data
ldi r24,&Hc0
rcall _GWrite_Cmd
ldi r24,&h22
rcall _GWrite_Data
ldi r24,&Hc0
rcall _GWrite_Cmd
ldi r24,&h1c
rcall _GWrite_Data
ldi r24,&Hc0
rcall _GWrite_Cmd
clr r24
rcall _GWrite_Data
ldi r24,&Hc0
rcall _GWrite_Cmd
clr r24
rcall _GWrite_Data
ldi r24,&Hc0
rcall _GWrite_Cmd
ldi r24,&h30 ;CG-Ram PR - 164
rcall _GWrite_Data
ldi r24,&Hc0
rcall _GWrite_Cmd
ldi r24,&h28
rcall _GWrite_Data
ldi r24,&Hc0
rcall _GWrite_Cmd
ldi r24,&h30
rcall _GWrite_Data
ldi r24,&Hc0
rcall _GWrite_Cmd
ldi r24,&h26
rcall _GWrite_Data
ldi r24,&Hc0
rcall _GWrite_Cmd
ldi r24,&h25
rcall _GWrite_Data
ldi r24,&Hc0
rcall _GWrite_Cmd
ldi r24,&h06
rcall _GWrite_Data
ldi r24,&Hc0
rcall _GWrite_Cmd
ldi r24,&h05
rcall _GWrite_Data
ldi r24,&Hc0
rcall _GWrite_Cmd
ldi r24,&h05
rcall _GWrite_Data
ldi r24,&Hc0
rcall _GWrite_Cmd
ldi r24,&h1f ;CG-Ram PR liegend 31,5,2,32,31,5,26,32 - 165
rcall _GWrite_Data ; 1f, 05,02,20,1f,05,1a,20
ldi r24,&Hc0 ;stehend 30,28,30,26,25,6,5,5
rcall _GWrite_Cmd
ldi r24,&h05
rcall _GWrite_Data
ldi r24,&Hc0
rcall _GWrite_Cmd
ldi r24,&h02
rcall _GWrite_Data
ldi r24,&Hc0
rcall _GWrite_Cmd
ldi r24,&h20
rcall _GWrite_Data
ldi r24,&Hc0
rcall _GWrite_Cmd
ldi r24,&h1f
rcall _GWrite_Data
ldi r24,&Hc0
rcall _GWrite_Cmd
ldi r24,&h05
rcall _GWrite_Data
ldi r24,&Hc0
rcall _GWrite_Cmd
ldi r24,&h1a
rcall _GWrite_Data
ldi r24,&Hc0
rcall _GWrite_Cmd
ldi r24,&h20
rcall _GWrite_Data
ldi r24,&Hc0
rcall _GWrite_Cmd
ldi r24,&h1f ;CG-Ram PC liegend 31,5,2,32,14,17,10,32 - 166
rcall _GWrite_Data ; 1f, 05,02,20,0e,11,0a,20
ldi r24,&Hc0 ; stehend 30,28,32,25,24,5,2,0
rcall _GWrite_Cmd
ldi r24,&h05
rcall _GWrite_Data
ldi r24,&Hc0
rcall _GWrite_Cmd
ldi r24,&h02
rcall _GWrite_Data
ldi r24,&Hc0
rcall _GWrite_Cmd
ldi r24,&h00
rcall _GWrite_Data
ldi r24,&Hc0
rcall _GWrite_Cmd
ldi r24,&h0e
rcall _GWrite_Data
ldi r24,&Hc0
rcall _GWrite_Cmd
ldi r24,&h11
rcall _GWrite_Data
ldi r24,&Hc0
rcall _GWrite_Cmd
ldi r24,&h0a
rcall _GWrite_Data
ldi r24,&Hc0
rcall _GWrite_Cmd
ldi r24,&h00
rcall _GWrite_Data
ldi r24,&Hc0
rcall _GWrite_Cmd
clr r24 ;Herz 0,36,7F,7F,3E,1C,8,0 - 167
rcall _GWrite_Data
ldi r24,&Hc0
rcall _GWrite_Cmd
ldi r24,&hA
rcall _GWrite_Data
ldi r24,&Hc0
rcall _GWrite_Cmd
ldi r24,&h1F
rcall _GWrite_Data
ldi r24,&Hc0
rcall _GWrite_Cmd
ldi r24,&h1F
rcall _GWrite_Data
ldi r24,&Hc0
rcall _GWrite_Cmd
ldi r24,&h0E
rcall _GWrite_Data
ldi r24,&Hc0
rcall _GWrite_Cmd
ldi r24,&h04
rcall _GWrite_Data
ldi r24,&Hc0
rcall _GWrite_Cmd
clr r24
rcall _GWrite_Data
ldi r24,&Hc0
rcall _GWrite_Cmd
clr r24
rcall _GWrite_Data
ldi r24,&Hc0
rcall _GWrite_Cmd
clr r24 ;CG-Ram trauriges Smilie - 168
rcall _GWrite_Data
ldi r24,&Hc0
rcall _GWrite_Cmd
clr r24
rcall _GWrite_Data
ldi r24,&Hc0
rcall _GWrite_Cmd
ldi r24,&h14
rcall _GWrite_Data
ldi r24,&Hc0
rcall _GWrite_Cmd
clr r24
rcall _GWrite_Data
ldi r24,&Hc0
rcall _GWrite_Cmd
ldi r24,&h1c
rcall _GWrite_Data
ldi r24,&Hc0
rcall _GWrite_Cmd
ldi r24,&h22
rcall _GWrite_Data
ldi r24,&Hc0
rcall _GWrite_Cmd
clr r24
rcall _GWrite_Data
ldi r24,&Hc0
rcall _GWrite_Cmd
clr r24
rcall _GWrite_Data
ldi r24,&Hc0
rcall _GWrite_Cmd
clr r24 ;CG-Ram neutrales Smilie - 169
rcall _GWrite_Data
ldi r24,&Hc0
rcall _GWrite_Cmd
clr r24
rcall _GWrite_Data
ldi r24,&Hc0
rcall _GWrite_Cmd
ldi r24,&h14
rcall _GWrite_Data
ldi r24,&Hc0
rcall _GWrite_Cmd
clr r24
rcall _GWrite_Data
ldi r24,&Hc0
rcall _GWrite_Cmd
clr r24
rcall _GWrite_Data
ldi r24,&Hc0
rcall _GWrite_Cmd
ldi r24,&h3E
rcall _GWrite_Data
ldi r24,&Hc0
rcall _GWrite_Cmd
clr r24
rcall _GWrite_Data
ldi r24,&Hc0
rcall _GWrite_Cmd
clr r24
rcall _GWrite_Data
ldi r24,&Hc0
rcall _GWrite_Cmd
$end Asm
End Sub
Die Sonderzeichen sind dann ab 160 zu finden
Lcd Chr(160)
Ich hoffe du kannst erkennen, wo die Daten Eingetragen werden müssen. Bei einigen habe ich die HEX Codes als Bemerkung hintergeschrieben, diese werden dann nach und nach zum Display geschickt.
edit:
Die Zeichen habe ich für den Small Font (6 Punkte) erstellt.
Kann sein, dass das nicht der optimale Weg ist, so habe ich es dann aber nach Studieren des Datenblattes vom LCD gelöst.
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.