- Labornetzteil AliExpress         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 15

Thema: LCD Display zeigt nichts an.

  1. #1

    LCD Display zeigt nichts an.

    Anzeige

    Praxistest und DIY Projekte
    Hallo,

    habe zum testen ein Programm geschrieben das gar nichts weiteres macht als am Port B von meinem Atmega48 4 Datenbits zum LCD Display sendet. Hab das ganze mit der Grundlage vom Anfängertutorial auf mikorcontroller.net gemacht. Die Beschaltung sollte soweit korrekt sein. Ich nutze für das Display die Libraries von peter Fleury die ja sehr bekannt sind und wohl auch sehr häufig eingesetzt werden.

    Hintergrundbeleuchtung funktioniert. Ich sehe in einer Zeile schwarze Balken die ich mit dem Kontrast (Poti) einstellen schärfer und schwächer stellen kann, habe das ganze so eingestellt das ich die schwarzen balken gerade noch so sehe. Es handelt sich um ein 2x16 Zeilen Display LCD TC1602A-09.

    Ich habe unten mal das Programm angehangen.

    Zur Frage: Warum sehe ich die Zeichen nicht die ich sende? Nutze ein STK500 Starterkit zum übertragen. Die LED zeigt nach dem übertragen an das alles in Ordnung ist. (Software = AVR Studio 5)

    Code:
    #include	<avr\io.h>
    #include	<avr\interrupt.h>
    #include	<stdlib.h>
    #include	<inttypes.h>
    #include "lcd.h"
          
    void initial(void)
    {    
    DDRD = 0xff;      	// PortD Ausgänge 
    DDRC = 0x00;      	// PortC Eingänge 
    DDRB = 0xff;
    }
    
    
    void print4(unsigned int x)
    {
      unsigned int y;
        y=x/1000;lcd_data(y+0x30);x-=(y*1000);
        y=x/100;lcd_data(y+0x30);x-=(y*100);
        y=x/10;lcd_data(y+0x30);x-=(y*10);
        lcd_data(x+0x30);
    }
    
    
    int main(void)
    {
    
    
    int variable = 0;  
    
    
    initial();
    lcd_init(LCD_DISP_ON); 
    
    
      while(1)
      {
    
    
      variable = 9876;
     
      lcd_data( 'A' );
      lcd_data( 'D' );
      lcd_data( 'C' );
      lcd_data( '0' );
      lcd_data( '=' );
      print4(variable);
      lcd_gotoxy( 0, 1 );
    
    
      } 
      return 0;
    }

    VIELEN DANK fürs Anschauen!!!

  2. #2
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.220
    Wenn du einen schwarzen Balken siehst, dann ist das LCD nicht initialisiert.
    In lcd.h die Zuordnung LCD-Pin zu µC-Pin richtig eingetragen?
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

  3. #3
    Das wird es sein! Guter Tipp. Welchen Pin muss ich da angeben? die Datenleitungen sind angeschlossen am uC: 11,12,13,14. Am LCD Display habe ich die Datenbits DB4,5,6,7 angeschlossen die an Anschluss 11,12,13,14 liegen. Wenn ich in die lcd.h gehe finde und das ganze editiere sieht es so aus (Ausschnitt):

    Code:
    #define LCD_PORT         PORTB        /**< port for the LCD lines   */
    #define LCD_DATA0_PORT   LCD_PORT     /**< port for 4bit data bit 0 */
    #define LCD_DATA1_PORT   LCD_PORT     /**< port for 4bit data bit 1 */
    #define LCD_DATA2_PORT   LCD_PORT     /**< port for 4bit data bit 2 */
    #define LCD_DATA3_PORT   LCD_PORT     /**< port for 4bit data bit 3 */
    #define LCD_DATA0_PIN    11            /**< pin for 4bit data bit 0  */
    #define LCD_DATA1_PIN    12            /**< pin for 4bit data bit 1  */
    #define LCD_DATA2_PIN    13            /**< pin for 4bit data bit 2  */
    #define LCD_DATA3_PIN    14            /**< pin for 4bit data bit 3  */
    #define LCD_RS_PORT      LCD_PORT     /**< port for RS line         */
    #define LCD_RS_PIN       4            /**< pin  for RS line         */
    #define LCD_RW_PORT      LCD_PORT     /**< port for RW line         */
    #define LCD_RW_PIN       5            /**< pin  for RW line         */
    #define LCD_E_PORT       LCD_PORT     /**< port for Enable line     */
    #define LCD_E_PIN        6            /**< pin  for Enable line     */
    Die Datenbits 0-3 liegen frei. Das Problem ist nach der Änderung ist es immernoch genauso wie vorher. habe ich die Pins falsch angegeben?

  4. #4
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.220
    Wie kommst du auf 11,12,13,14 , sollte das nicht 0 bis3 sein? Bei mir sieht das so aus:
    Code:
    #define LCD_PORT         PORTB        /**< port for the LCD lines   */
    #define LCD_DATA0_PORT   LCD_PORT     /**< port for 4bit data bit 0 */
    #define LCD_DATA1_PORT   LCD_PORT     /**< port for 4bit data bit 1 */
    #define LCD_DATA2_PORT   LCD_PORT     /**< port for 4bit data bit 2 */
    #define LCD_DATA3_PORT   LCD_PORT     /**< port for 4bit data bit 3 */
    #define LCD_DATA0_PIN    0            /**< pin for 4bit data bit 0  */
    #define LCD_DATA1_PIN    1            /**< pin for 4bit data bit 1  */
    #define LCD_DATA2_PIN    2            /**< pin for 4bit data bit 2  */
    #define LCD_DATA3_PIN    3            /**< pin for 4bit data bit 3  */
    #define LCD_RS_PORT      PORTB     /**< port for RS line         */
    #define LCD_RS_PIN       4            /**< pin  for RS line         */
    #define LCD_RW_PORT      PORTB     /**< port for RW line         */
    #define LCD_RW_PIN       5           /**< pin  for RW line         */
    #define LCD_E_PORT       PORTB       /**< port for Enable line     */
    #define LCD_E_PIN        6            /**< pin  for Enable line     */
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

  5. #5
    So war es ja Standardäßig eingestellt bevor ich das geändert hatte. Ging ja so nicht.

  6. #6
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.220
    So ist es aber sicher richtig.
    Das Datenblatt ist sehr dürftig, hast du mal die Einstellung
    #define LCD_CONTROLLER_KS0073 0 /**< Use 0 for HD44780 controller, 1 for KS0073 controller */
    mit einer 1 probiert.
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

  7. #7
    AH, habe mich bei einer einstellung vertan habe den Enable Pin falsch angegeben .... grrrr

    Nun ist das Display gesäubert von Balken... Die gewünschten Zahlen sind dort allerdings nicht zu sehen. Wodran könnte das den nun noch liegen?

  8. #8
    RW liegt bei mir laut dem Schaltungsbeispiel auf GND. Vielleicht liegt ja da der Fehler. habe dort einfach einen freien port angegeben. in diesem Fall PORTB6.
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken LCDundPWM.jpg  

  9. #9
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.220
    Dann ist es klar das es nicht funktioniert, R/W ist notwendig zur Busy-Abfrage.
    Angehängte Dateien Angehängte Dateien
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

  10. #10
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.220
    Da ist die *.h verloren gegangen.
    Hier kannst du ohne R/W einstellen.
    Angehängte Dateien Angehängte Dateien
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. LCD (LCDPC2004) zeigt leider nichts an
    Von JellbieO im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 7
    Letzter Beitrag: 10.05.2008, 12:11
  2. LCD zeigt nichts an
    Von robodriver im Forum AVR Hardwarethemen
    Antworten: 3
    Letzter Beitrag: 02.11.2007, 11:45
  3. AVR-Term zeigt nichts an.
    Von ToniThiele im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 10
    Letzter Beitrag: 20.04.2007, 17:44
  4. Display zeigt nichts an!!!!
    Von zizou im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 1
    Letzter Beitrag: 28.12.2006, 23:50
  5. LCD zeigt nichts an :-(
    Von dennis1986 im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 25
    Letzter Beitrag: 04.10.2005, 19:21

Berechtigungen

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

Labornetzteil AliExpress