Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum

Re: LCD Dog-Grafik Display 160x104 hat jemand Zeichensatz ? Kategorie: Programmierung Basic (von Ernst H. - 22.11.2010 17:06)
Als Antwort auf Re: LCD Dog-Grafik Display 160x104 hat jemand Zeichensatz ? von jo - 22.11.2010 15:57
Ich nutze:
C-Control Pro Mega128, CC-Pro 128 Application Board, Pro-Bot128
> > > LCD Dog-Grafik Display 160x104 hat jemand Zeichensatz ?
> > > kostet ca 30 Euro offensichtlich ohne einen Zeichensatz
> > >
> > > unten das beigestellte Demo Programm von EPT - aber nur mit wenigen Zeichen
> > >
> > > der Zeichensatzstick kostet 99 Euro - ich brauche aber nur einen Standartzeichensatz ?
> > >
> > >
> > >
> > >
> > > '*******************************************************************************
> > > '*                                                                             *
> > > '*         This programm for EA DOGM128-6 / ST7565                             *
> > > '*         1. send an initialisation code                                      *
> > > '*         2. clears the display                                               *
> > > '*         3. writes "HELLO WORLD" to the first line                           *
> > > '*                                                                             *
> > > '*                                                                             *
> > > '*         (c) by EPT Systems GmbH 2009                                        *
> > > '*                                                                             *
> > > '*******************************************************************************
> > >
> > > 'SI    = Port B3 = Port Bit 19     Datapin (36) at Display
> > > 'CLK   = Port B4 = Port Bit 20     Clockpin (37) at Display
> > > 'A0    = Port B5 = Port Bit 21     Initialisationpin (38) at Display
> > > 'CS    = Port B7 = Port Bit 23     Chipselectpin (40) at Display
> > > 'Reset = Port B6 = Port Bit 22     Resetpin (39) at Display
> > >
> > > 'Example for 3,3V Single Supply
> > >
> > > #ifdef MEGA32
> > > #define PORT 2                      'Select Port C
> > > #endif
> > >
> > > #ifdef MEGA128
> > > #define PORT 5
> > > #endif
> > >
> > > Dim Daten(8) As Integer             'Data Array for converting byte to bit
> > >
> > >
> > > '------------------------------------------------------------------------------
> > > ' Main Program
> > > '
> > > Sub main()
> > >
> > >     Port_DataDir(PORT,&HFF)         'Input/Output direction: 0=in, 1=out
> > >
> > >     ResetHardware()                 'Hardwarereset
> > >
> > >     Init()                          'Display initialisation
> > >
> > >     Loeschen()                      'Display clear
> > >
> > >     Zeichensatz()                   'HELLO WORLD output
> > >
> > > End Sub
> > >
> > > Sub ResetHardware()
> > >
> > >     Port_WriteBit(22,0)             'Reset (Port B6) to low
> > >     Port_WriteBit(22,1)             'Reset (Port B6) to high
> > >
> > > End Sub
> > >
> > > Sub A0_High()
> > >
> > >     Port_WriteBit(21,1)             'A0 (Port B5) to high
> > >
> > > End Sub
> > >
> > > Sub A0_Low()
> > >
> > >     Port_WriteBit(21,0)             'A0 (Port B5) to low
> > >
> > > End Sub
> > >
> > > Sub CS_Low()
> > >
> > >     Port_WriteBit(23,0)             'CS (Port B7) to low (Display get data)
> > >
> > > End Sub
> > >
> > > Sub CS_High()
> > >
> > >     Port_WriteBit(23,1)             'CS (Port B7) to high (Display don't get data)
> > >
> > > End Sub
> > >
> > > Sub Daten_schreiben()               'Put Data to SI (Port B3)
> > >     Dim i As Integer
> > >
> > >     CS_Low()                        'Display get data
> > >
> > >     For i = 7 To 0 Step -1          'Start with the highest bit
> > >
> > >         Port_WriteBit(20,0)         'CLK (Port B4) to Low
> > >
> > >         Port_WriteBit(19,Daten(i))  'Send Data to SI (Port B3)
> > >
> > >         Port_WriteBit(20,1)         'CLK (Port B4) to high = Data accept
> > >
> > >     Next
> > >
> > >     CS_High()                       'Display don't get data
> > >
> > > End Sub
> > >
> > > Sub Daten_zerlegen(Daten_Dec As Integer) 'Byte convert to bits
> > >
> > >     Dim i As Integer
> > >
> > >     For i =0 To 7                   'Array clear
> > >         Daten(i)=0
> > >     Next
> > >
> > >
> > >     If Daten_Dec>=128 Then
> > >         Daten(7) =1
> > >         Daten_Dec=Daten_Dec-128
> > >     End If
> > >     If Daten_Dec>=64 Then
> > >         Daten(6) =1
> > >         Daten_Dec=Daten_Dec-64
> > >     End If
> > >     If Daten_Dec>=32 Then
> > >         Daten(5) =1
> > >         Daten_Dec=Daten_Dec-32
> > >     End If
> > >     If Daten_Dec>=16 Then
> > >         Daten(4) =1
> > >         Daten_Dec=Daten_Dec-16
> > >     End If
> > >     If Daten_Dec>=8 Then
> > >         Daten(3) =1
> > >         Daten_Dec=Daten_Dec-8
> > >     End If
> > >     If Daten_Dec>=4 Then
> > >         Daten(2) =1
> > >         Daten_Dec=Daten_Dec-4
> > >     End If
> > >     If Daten_Dec>=2 Then
> > >         Daten(1) =1
> > >         Daten_Dec=Daten_Dec-2
> > >     End If
> > >     If Daten_Dec>0 Then
> > >         Daten(0) =1
> > >         Daten_Dec=Daten_Dec-1
> > >     End If
> > >
> > >     Daten_schreiben()               'Send data to display
> > >
> > > End Sub
> > >
> > > Sub Init()                          'Send initialisation data to display
> > >
> > >     CS_Low()
> > >     A0_Low()                        'Initialization
> > >
> > >     Daten_zerlegen(64)              'Display Start Line Set
> > >     Daten_zerlegen(161)             'ADC reverse(Display Ram Adress) 160=reverse
> > >     Daten_zerlegen(192)             'Common Output Mode Select
> > >     Daten_zerlegen(166)             'Display normal/reverse      165=reverse
> > >     Daten_zerlegen(162)             'Set Bias 1/9
> > >     Daten_zerlegen(47)              'Power Control Set
> > >     Daten_zerlegen(248)             'Set Booster to 4x
> > >     Daten_zerlegen(0)               'Booster value
> > >     Daten_zerlegen(39)              'V0 Voltage Regulator Set
> > >     Daten_zerlegen(129)             'Contrast set
> > >     Daten_zerlegen(22)              'Contrast value
> > >     Daten_zerlegen(173)             'Cursor on/off
> > >     Daten_zerlegen(1)               'Flashing mode
> > >
> > >     A0_High()                       'End Display initialisation
> > >     CS_High()                       'To reset the internal register
> > >
> > > End Sub
> > >
> > > Sub Displayseite(Zeile As Byte)
> > >
> > >     A0_Low()                        'Display initialisation
> > >     Daten_zerlegen(176+ Zeile)      'Select display page
> > >     A0_High()                       'End Display initialisation
> > >
> > > End Sub
> > >
> > > Sub Reset()
> > >
> > >     A0_Low()                        'Display initialisation
> > >     Daten_zerlegen(226)             'Internal display reset
> > >     A0_High()                       'End Display initialisation
> > >
> > > End Sub
> > >
> > > Sub Displaylinie(Linie As Byte)
> > >
> > >     A0_Low()                        'Display initialisation
> > >     Daten_zerlegen(64+ Linie)       'Select display start line
> > >     A0_High()                       'End Display initialisation
> > >
> > > End Sub
> > >
> > > Sub Displayspalte(Spalte As Byte,Spalte1 As Byte)
> > >
> > >     A0_Low()                        'Display initialisation
> > >     Daten_zerlegen(16+Spalte1)      'Select display column highbyte
> > >     Daten_zerlegen(Spalte)          'Select display column lowbyte
> > >     A0_High()                       'End Display initialisation
> > >
> > > End Sub
> > >
> > > Sub Loeschen()                      'Clear display
> > >
> > >     Dim i As Integer
> > >     Dim Pixel As Byte
> > >     Dim Zeile As Byte
> > >
> > >     Zeile =0                        'Write in Page 0
> > >     Do
> > >         Displayseite(Zeile)
> > >         Pixel = 0                   'No Pixel set
> > >
> > >             For i = 0 To 127        'Write Column 0 to 127 with value 0
> > >
> > >                 Daten_zerlegen(Pixel)
> > >
> > >             Next
> > >
> > >         Zeile ++
> > >     Loop While Zeile < 8            'Write in page 0-7
> > >
> > >     Displayseite(0)
> > >     Displayspalte(0,0)
> > >     'Displaylinie (0)
> > >
> > > End Sub
> > >
> > > Sub Zeichensatz()
> > >
> > >     Dim Daten(88) As Byte
> > >     Dim Schleife As Integer
> > >
> > >     Schleife = 1
> > >     Display_Aus()                   'Display off
> > >
> > >     Daten(1)=000
> > >     Daten(2)=127
> > >     Daten(3)=008
> > >     Daten(4)=008                    'H
> > >     Daten(5)=008
> > >     Daten(6)=127
> > >     Daten(7)=000
> > >     Daten(8)=000
> > >
> > >     Daten(9)=000
> > >     Daten(10)=127
> > >     Daten(11)=073
> > >     Daten(12)=073                   'E
> > >     Daten(13)=073
> > >     Daten(14)=073
> > >     Daten(15)=000
> > >     Daten(16)=000
> > >
> > >     Daten(17)=000
> > >     Daten(18)=127
> > >     Daten(19)=064
> > >     Daten(20)=064                   'L
> > >     Daten(21)=064
> > >     Daten(22)=064
> > >     Daten(23)=000
> > >     Daten(24)=000
> > >
> > >     Daten(25)=000
> > >     Daten(26)=127
> > >     Daten(27)=064
> > >     Daten(28)=064                   'L
> > >     Daten(29)=064
> > >     Daten(30)=064
> > >     Daten(31)=000
> > >     Daten(32)=000
> > >
> > >     Daten(33)=000
> > >     Daten(34)=062
> > >     Daten(35)=065
> > >     Daten(36)=065                   'O
> > >     Daten(37)=065
> > >     Daten(38)=062
> > >     Daten(39)=000
> > >     Daten(40)=000
> > >
> > >     Daten(41)=000
> > >     Daten(42)=000
> > >     Daten(43)=000
> > >     Daten(44)=000                   'Space
> > >     Daten(45)=000
> > >     Daten(46)=000
> > >     Daten(47)=000
> > >     Daten(48)=000
> > >
> > >     Daten(49)=000
> > >     Daten(50)=063
> > >     Daten(51)=064
> > >     Daten(52)=048                   'W
> > >     Daten(53)=064
> > >     Daten(54)=063
> > >     Daten(55)=000
> > >     Daten(56)=000
> > >
> > >     Daten(57)=000
> > >     Daten(58)=062
> > >     Daten(59)=065
> > >     Daten(60)=065                   'O
> > >     Daten(61)=065
> > >     Daten(62)=062
> > >     Daten(63)=000
> > >     Daten(64)=000
> > >
> > >     Daten(65)=000
> > >     Daten(66)=127
> > >     Daten(67)=009
> > >     Daten(68)=009                   'R
> > >     Daten(69)=009
> > >     Daten(70)=118
> > >     Daten(71)=000
> > >     Daten(72)=000
> > >
> > >     Daten(73)=000
> > >     Daten(74)=127
> > >     Daten(75)=064
> > >     Daten(76)=064                   'L
> > >     Daten(77)=064
> > >     Daten(78)=064
> > >     Daten(79)=000
> > >     Daten(80)=000
> > >
> > >     Daten(81)=000
> > >     Daten(82)=127
> > >     Daten(83)=065
> > >     Daten(84)=065                   'D
> > >     Daten(85)=034
> > >     Daten(86)=028
> > >     Daten(87)=000
> > >     Daten(88)=000
> > >
> > >     Daten(89)=000
> > >     Daten(90)=000
> > >     Daten(91)=000
> > >     Daten(92)=000                   'Space
> > >     Daten(93)=000
> > >     Daten(94)=000
> > >     Daten(95)=000
> > >     Daten(96)=000
> > >
> > >     For Schleife = 1 To 96          'Put fonts to display
> > >         Daten_zerlegen(Daten(Schleife))
> > >     Next
> > >
> > >     Display_Ein()                   'Display on
> > >
> > >     'Displayseite(0)
> > >     'Displayspalte(0,0)
> > >     Displaylinie (0)
> > >
> > > End Sub
> > >
> > > Sub Display_Ein()
> > >
> > >     A0_Low()                        'Display initialisation
> > >     Daten_zerlegen(175)             'Display on
> > >     A0_High()                       'End Display initialisation
> > >
> > > End Sub
> > >
> > > Sub Display_Aus()
> > >
> > >     A0_Low()                        'Display initialisation
> > >     Daten_zerlegen(174)             'Display off
> > >     A0_High()                       'End Display initialisation
> > >
> > > End Sub

> >
> >
> > Hallo Ernst,
> > ich kann dir keine genaue Antwort auf deine Frage geben, aber aufzeigen, wie ich Sonderzeichen
> > für das beim CC-Control mitgelieferte Display mache:
> > Ich habe in Excel "Formeln" zusammengestellt, die über eine Dot.Matrix im Excel die einem
> > Zeichen entspricht drüber geht und den entsprechenden .CC code daraus generiert.
> > Die Datei ist im Anhang.
> > Vielleicht hilft dir das auch - Man kann einfach das Zeichen Editieren, sieht sofort wie das Zeichen
> > aussieht und der Code entsteht automatisch dabei.
> >
> > Viele Grü�e
> >
> > Jo
>
> sorry im vorrigen Anhang war eine falsche Datei angezogen, hier ist die korrekte Excel Datei

Hallo Jo!

Vielen Dank, schaut nach einer sehr nützlichen Routine aus, da eine grafische Darstellung gleich
dabei ist - noch dazu auch später im Quelltext   -  perfekter gehts wohl nicht!.
Leider reichen offensichtlich meine Excel kenntnisse nicht - wenn ich im Grünen Feld
das # lösche, oder eine Auswahl auf Leerfeld, oder ein Leerzeichen einfüge, oder in einem
leeren grünen Feld ein # - Zeichen einfüge kommt   #NAME?   als Fehlermeldung?
"Ein anderer Benutzer hat die Eingaben begrenzt in diesem Textfeld" - oder so ähnlich kommt
auch beim Versuch etwas zu ändern.?

Vielen Dank - schöne GrüÃ?e   Ernst H.




    Antwort schreiben


Antworten:

Re: LCD Dog-Grafik Display 160x104 hat jemand Zeichensatz ? (von jo - 22.11.2010 17:59)
    Re: LCD Dog-Grafik Display 160x104 hat jemand Zeichensatz ? (von Ernst H. - 22.11.2010 19:56)