- Akku Tests und Balkonkraftwerk Speicher         
Ergebnis 1 bis 8 von 8

Thema: Anschluss LCD an Microcontroller

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #6
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    05.11.2007
    Beiträge
    1.076
    Ich habe grad mal gekramt und eine alte Schaltung von mir gefunden.
    Du brauchst dann eigentlich nur 3 Leitungen:

    Clock
    Chip Select
    Datenleitung

    Hier mal ein Ausschnitt aus dem Schaltplan:

    Klicke auf die Grafik für eine größere Ansicht

Name:	LCD Ansteuerung_2.jpg
Hits:	27
Größe:	47,7 KB
ID:	33359

    Es ist ewig her, als ich ein ähnliches Display mit nem PIC angesteuert habe, aber es gab da einiges zu beachten,
    wenn ich mich recht erinnere musste ich die Segment und die COM Leitung in einem Takt kontinuierlich invertiert ansteuern.
    Dies muss absolut symetrisch erfolgen, also 50:50 Prozent
    Schieberegister hab ich das "berühmte" 74595 genommen, die kann man ja beliebig kaskadieren, weis nicht ob man das auf dem Bild erkennen kann.
    Hier sollten "HC" Typen nicht "HCT" verwendet werden wenn dein Controller mit 3,3 Volt läuft, bei 5 Volt wärs egal.

    Aus meiner Erinnerung, ich hoffe ich liege nicht falsch, dann korrigiert mich bitte:
    Du schiebst die gesamten Daten rein, wobei die anzusteuernden Segmente High sind, dazu die COM Leitungen auf Low.
    Dann schiebst Du die gesamten Daten invertiert rein, also alle anzusteuernden Segmente auf Low und die COM Leitung auf High.
    Das muss im schnellen Wechsel erfolgen, aber absolut symetrisch erfolgen, sonst verblasst dein Display.

    Bei deinem Display benötigst Du laut Datenblatt nur 5 Volt Signale. Spannungsconverter brauchst Du nix.

    Ich vermute mal, es ist einfacher, wie schon beschrieben, ein Display mit fertigem Controller zu verwenden.

    --------------
    ich hab das grad nochmal ausprobiert.
    Ja, das funktioniert so, siehe Bild. Hier habe ich die COM Leitung und das BC-Segment (das ist die "1") wechselweise angesteuert.
    Es läuft bei 5 und auch bei 3,3 Volt wobei der Contrast etwas geringer wird.

    Klicke auf die Grafik für eine größere Ansicht

Name:	LCD_1.jpg
Hits:	24
Größe:	66,4 KB
ID:	33360

    Die Software Hauptschleife von meinem PIC Controller

    Code:
    while (1)
      {    
        LATA5 = 1;        // COM Leitung auf High
        LATA0 = 0;        // Segment Leitung auf Low
        Delay_ms(20);  
        LATA5 = 0;        // COM Leitung auf Low
        LATA0 = 1;        // Segment Leitung auf High
        Delay_ms(20);    
      }
    Fazit:
    Du hast 24 Pins bei deinem Display, dann brauchst Du lediglich 3 Schieberegister.
    Der Rest ist dann Software, wobei nur 3 Leitungen benötigt werden.

    Klicke auf die Grafik für eine größere Ansicht

Name:	LCD_Sheet-2.jpg
Hits:	6
Größe:	36,7 KB
ID:	33362


    Dann hab ich mir eine Header Datei geschrieben:
    Code:
    /******************************************************************************
      File  : SEGCODE.H
      Autor : Siro
     ******************************************************************************/
    
    /* bit definition for the 7-segment-displays
    
             a
          -------
         |       |    
       f |       | b
         |   g   |
          -------
         |       | 
       e |       | c
         |       |
          -------
             d
    
    */
    
    /* hardware definitions where the segments are connected */
    #define SEG_A    0x80    /* Display Segment a  is Bit 7 */
    #define SEG_B    0x40    /* Display Segment b  is Bit 6 */
    #define SEG_C    0x20    /* Display Segment c  is Bit 5 */
    #define SEG_D    0x10    /* Display Segment d  is Bit 4 */
    #define SEG_E    0x08    /* Display Segment e  is Bit 3 */
    #define SEG_F    0x04    /* Display Segment f  is Bit 2 */
    #define SEG_G    0x02    /* Display Segment g  is Bit 1 */
    #define SEG_DP    0x01    /* Display Segment dp is Bit 0 */
    
    /* visible outline of Numbers and Characters */
    #define SEG_CODE_0 SEG_A + SEG_B + SEG_C + SEG_D + SEG_E + SEG_F
    #define SEG_CODE_1         SEG_B + SEG_C
    #define SEG_CODE_2 SEG_A + SEG_B         + SEG_D + SEG_E         + SEG_G
    #define SEG_CODE_3 SEG_A + SEG_B + SEG_C + SEG_D                 + SEG_G
    #define SEG_CODE_4         SEG_B + SEG_C                 + SEG_F + SEG_G
    #define SEG_CODE_5 SEG_A         + SEG_C + SEG_D         + SEG_F + SEG_G
    #define SEG_CODE_6 SEG_A         + SEG_C + SEG_D + SEG_E + SEG_F + SEG_G
    #define SEG_CODE_7 SEG_A + SEG_B + SEG_C
    #define SEG_CODE_8 SEG_A + SEG_B + SEG_C + SEG_D + SEG_E + SEG_F + SEG_G
    #define SEG_CODE_9 SEG_A + SEG_B + SEG_C + SEG_D         + SEG_F + SEG_G
    #define SEG_CODE_A SEG_A + SEG_B + SEG_C         + SEG_E + SEG_F + SEG_G
    #define SEG_CODE_b                 SEG_C + SEG_D + SEG_E + SEG_F + SEG_G
    #define SEG_CODE_C SEG_A                 + SEG_D + SEG_E + SEG_F
    #define SEG_CODE_d         SEG_B + SEG_C + SEG_D + SEG_E         + SEG_G 
    #define SEG_CODE_E SEG_A                 + SEG_D + SEG_E + SEG_F + SEG_G
    #define SEG_CODE_F SEG_A                         + SEG_E + SEG_F + SEG_G
    
    #define SEG_CODE_G SEG_A         + SEG_C + SEG_D + SEG_E + SEG_F + SEG_G
    #define SEG_CODE_H         SEG_B + SEG_C         + SEG_E + SEG_F + SEG_G
    #define SEG_CODE_i                                 SEG_E 
    #define SEG_CODE_I                                 SEG_E + SEG_F
    #define SEG_CODE_L                         SEG_D + SEG_E + SEG_F
    #define SEG_CODE_l                                 SEG_E + SEG_F
    #define SEG_CODE_n                 SEG_C         + SEG_E         + SEG_G
    #define SEG_CODE_o                 SEG_C + SEG_D + SEG_E         + SEG_G
    #define SEG_CODE_O SEG_A + SEG_B + SEG_C + SEG_D + SEG_E + SEG_F
    #define SEG_CODE_t                         SEG_D + SEG_E + SEG_F + SEG_G
    #define SEG_CODE_u                 SEG_C + SEG_D + SEG_E
    #define SEG_CODE_P SEG_A + SEG_B                 + SEG_E + SEG_F + SEG_G
    #define SEG_CODE_r                            SEG_E         + SEG_G    
    #define SEG_CODE_S SEG_A         + SEG_C + SEG_D         + SEG_F + SEG_G
    #define SEG_CODE_T SEG_A                         + SEG_E + SEG_F
    #define SEG_CODE_U         SEG_B + SEG_C + SEG_D + SEG_E + SEG_F
    #define SEG_CODE_Y         SEG_B + SEG_C + SEG_D         + SEG_F + SEG_G
    #define SEG_CODE_h                 SEG_C         + SEG_E + SEG_F + SEG_G
    
    #define SEG_CODE_MINUS     SEG_G
    #define SEG_CODE_UNDERLINE SEG_D
    #define SEG_CODE_POINT       SEG_DP
    #define SEG_CODE_BLANK       0
    Geändert von Siro (21.03.2018 um 22:57 Uhr)

Ähnliche Themen

  1. Daten von Microcontroller zu Microcontroller reichen
    Von MiniMax im Forum PC-, Pocket PC, Tablet PC, Smartphone oder Notebook
    Antworten: 9
    Letzter Beitrag: 07.12.2009, 15:48
  2. Anschluss I2C
    Von BlackBroom im Forum Elektronik
    Antworten: 6
    Letzter Beitrag: 27.04.2007, 22:40
  3. Antworten: 3
    Letzter Beitrag: 12.02.2007, 12:01
  4. LCD Anschluss
    Von Björn im Forum AVR Hardwarethemen
    Antworten: 10
    Letzter Beitrag: 23.09.2005, 20:48
  5. L298N wo ist anschluss 1 und anschluss 15????
    Von hoer173 im Forum Elektronik
    Antworten: 2
    Letzter Beitrag: 15.03.2004, 17:52

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

fchao-Sinus-Wechselrichter AliExpress