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 jo - 22.11.2010 17:59)
Als Antwort auf Re: LCD Dog-Grafik Display 160x104 hat jemand Zeichensatz ? von Ernst H. - 22.11.2010 17:06

> > > > 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.
>
>

Hallo Ernst, ich nehme mal an, du hast meinen 2ten Post verwendet.
Kommt die Fehlermeldung bei
=VERKETTEN("0x";DEC2HEX(WENN(C15="#";POTENZ(2;C$9);0)+
WENN(D15="#";POTENZ(2;D$9);0)+WENN(E15="#";POTENZ(2;E$9);0)+
WENN(F15="#";POTENZ(2;F$9);0)+WENN(G15="#";POTENZ(2;G$9);0);2))

?

Bitte pr├╝fe im Excel
unter -> Extras  -> Add-Ins ob Analysis ToolPak, Analysis ToolPak - VBA, Conditional Sum Wizard.
Lookip Wizard mit einem H├Ąkchen versehen sind.

Viele Gr├╝├če
Jo


    Antwort schreiben


Antworten:

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