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 15:57)
Als Antwort auf Re: LCD Dog-Grafik Display 160x104 hat jemand Zeichensatz ? von jo - 22.11.2010 13:36

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

LCD Zeichen definieren.zip




    Antwort schreiben


Antworten:

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