-
        

+ Antworten
Ergebnis 1 bis 4 von 4

Thema: Quellcode für LCD mit HD44780 gefunden...

  1. #1
    KurtM
    Gast

    Quellcode für LCD mit HD44780 gefunden...

    Anzeige

    GearBest Black Friday Verbraucherelektronik Promotion
    Liebe Community!
    gestern habe ich ein Frage über LCD Steuerung gestellt aber keine hat sich bis jetzt gemeldet. Natürlich habe ich dann weiter ein Source Code gesucht und gefunden...
    Das Problem ist, daß diese Source Code bei mir nicht funktioniert. Obwohl er validiert sein soll, ich sehe aber noch nicht mal ein Lebenszeichen aus meinem LCD-Display. Ich habe alle Anschlüsse mehrmals kontrolliert... Das Display ist nagel neu... Wo ist das Problem? Ist etwa mein Display kaputt oder gibt es irgendein Problem in der Software?
    Übrigens, ich benutze ein SAB80C537 Board mit 12 MHz Oszillator. Der Code sieht so aus;


    /* =============== 2L_x_16C_TEST=============*/
    /*====== Brief Description of program =======*/
    /* Program to test out a 2 line LCD
    on 0803 PCB. It also toggles a LED.
    Code compiled and checked OK
    on hardware. - 12 Nov 2004: 5.00PM */

    /*==============Include Files ===============*/
    #include <reg52.h>
    #include <string.h>

    /*============== Type Defines ================*/
    typedef unsigned char tChar;
    typedef unsigned int tInt;
    typedef unsigned long tLong;

    /*============== Bit Defines =================*/
    sfr P4 = 0xe8;
    sbit LCD_RS = P4^0;
    sbit LCD_R_W = P4^1;
    sbit LCD_ENB = P4^2;

    sbit TST_LED = P3^0;
    bit FLG_CPL;

    /*==========Function Prototypes ==============*/
    void ready(void);
    void command(tChar);
    void display(tChar *);
    void msDelay(tInt);

    /*================== MAIN ====================*/
    void main(void)
    {
    msDelay(3);
    command(0x3;
    msDelay(1);
    command(0x3;
    msDelay(1);
    command(0x3;
    msDelay(1);
    command(0x0c);
    command(0x01);
    msDelay(5);

    display("TEST");

    while(1)
    {
    msDelay(10);
    if (FLG_CPL == 1) // Toggle test LED
    {
    FLG_CPL = 0;
    TST_LED = 0;
    }
    else
    {
    FLG_CPL = 1;
    TST_LED = 1;
    }
    }
    }

    /*===============COMMAND=========================== ===*/
    void command(tChar cmd)
    {
    ready();
    P1 = cmd;

    LCD_RS = 0;
    LCD_R_W = 0;
    LCD_ENB = 1;
    msDelay(2);
    LCD_ENB = 0;
    }

    /*================READY============================ =*/
    void ready(void)
    {
    msDelay(1);
    }

    /*================DISPLAY========================== ====*/
    void display(tChar *msg)
    {
    tInt count;
    for (count=0; count <= strlen(msg)-1; ++count)
    {
    if(count == 16)
    command(0xc0);
    ready();
    P1 = msg[count];
    LCD_RS = 1;
    LCD_R_W = 0;
    LCD_ENB = 1;
    msDelay(1);
    LCD_ENB = 0;
    }
    }

    /*==================MSDELAY======================== =====*/
    void msDelay(tInt msec)
    {
    tInt cntr_1, cntr_2;
    for (cntr_1 = 0; cntr_1 <= msec; ++cntr_1 )
    {
    for ( cntr_2 = 0; cntr_2 <= 5000; ++cntr_2);
    }
    }


    Vielen Dank im Voraus
    Grüße

    KurtM

  2. #2
    Erfahrener Benutzer Roboter Genie Avatar von Michael
    Registriert seit
    17.01.2004
    Ort
    Karlstadt
    Alter
    47
    Beiträge
    1.246
    Hallo KurtM,
    Obwohl er validiert sein soll, ich sehe aber noch nicht mal ein Lebenszeichen aus meinem LCD-Display.
    das wird es sein.
    Wenn du gar nichts siehst, solltest du die Kontrastspannung überprüfen, es gibt Displays, die hier eine negative Spannung brauchen.
    Wenn gleich nach dem Einschalten ein schwarzer Balken in der 1.Zeile erscheint, ist zumindest die Kontrastspannung in Ordnung.
    Gruß, Michael

  3. #3
    Gast
    Hallo Michael,
    danke danke danke... Da Problem ist genau das, was du gesagt hast. Jetzt ist es aber endlich erledigt....
    Grüße
    KurtM

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    17.12.2004
    Ort
    /dev/urandom
    Beiträge
    129
    Ich habe auch mehrere solcher Displays, allerdings in der Größe 20*4. Außerdem habe ich die am PC angeschlossen. Wie kann ich so ein Teil z.B. an RN-Control (geht das überhaupt?) oder per I2C ansteuern?

    Ein Schaltplan wäre ideal Danke & noch frohe Weihnachten
    Hilfe, wo ist die Anykey-Taste?

    <- Projekt Agrobot ->

+ Antworten

Benutzer, die dieses Thema gelesen haben: 0

Derzeit gibt es keine Benutzer zum Anzeigen.

Berechtigungen

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