Bewegliche Nachrichtenanzeige auf LCD mit 8051-Mikrocontroller.

Bewegliche Nachrichtenanzeige auf LCD mit 8051-Mikrocontroller.

LCDs werden in vielen Geräten verwendet, um Nachrichten anzuzeigen, z. B. in Druckern, Kaffeemaschinen, Fernbedienungen usw. Es gibt viele Arten von LCDs auf dem Markt, diese können alphanumerisch, grafisch oder jede andere Art sein. Hier werde ich über das alphanumerische LCD sprechen.

Alphanumerische LCDs gibt es in verschiedenen Größen 8*1, 8*2, 16*1, 16*2 oder 20*4 usw. Diese LCDs können nur Zeichen anzeigen, die den ASCII-Wert haben. Einige alphanumerische LCDs bieten die Möglichkeit, eigene benutzerdefinierte Zeichen zu generieren.

In diesem Artikel werde ich die Schritte zur Anzeige von bewegten Nachrichten auf einem alphanumerischen 16*2-LCD beschreiben, aber vorher möchte ich über die Pin-Konfiguration und -Verbindung sprechen.

Pin-Konfiguration des 16*2 alphanumerischen LCD

Pin  Beschreibung des Pins
1. VSS (Erdungsstift).
2. VCC (+3,3 bis +5 V).
3. VEE (zum Anpassen des Kontrasts).
4. RS (Widerstandsauswahlstift).

RS =0; Befehlswiderstand wählen.

RS =1; Datenwiderstand auswählen.

5. R/W (Lese- und Schreib-Pin)

R/W =0; Schreibvorgang.

R/W =1; Lesevorgang.

6. E (Taktaktivierungsstift).
7. D0  (E/A)
8. D1  (E/A)
9. D2  (E/A)
10. D3  (E/A)
11. D4  (E/A)
12. D5  (E/A)
13. D6  (E/A)
14. D7  (E/A)
15. LED  (+ve).
16. Led  (-ve).

Hinweis:  Die Schnittstelle des HD44780 unterstützt zwei Betriebsmodi, den 8-Bit-Modus und den 4-Bit-Modus. In diesem Artikel werde ich nur über den 8-Bit-Modus sprechen.

Einige nützliche Befehle für LCD

Befehl  Beschreibung
0x01 Zum Löschen des LCD.
0x0e Display an und Cursor blinken.
0x0c Anzeige ein und Cursor aus.
0x38 8-Bit-Modus und 2-zeilige 5*8-Matrix.
0x06 Cursor erhöhen (nach rechts verschieben)
0x04 Cursor verringern (nach links verschieben)
0x80 Cursor am Anfang der ersten Zeile.
0xc0 Cursor am Anfang der zweiten Zeile.

Schritte zum Schreiben einer Anzeigemeldung auf dem LCD

  • Initialisieren Sie das LCD mit den LCD-Initialisierungsbefehlen.
  • Stellen Sie die Adresse von DDRAM ein, wo Sie das Zeichen anzeigen möchten.
  • Schreiben Sie das Zeichen auf den Datenbus des LCD.
Wenn wir Befehle oder Daten auf dem LCD übergeben, befolgen Sie die folgenden Schritte.
  • Wenn Sie den Befehl übergeben, dann machen Sie den RS-Pin niedrig (RS =0) oder für Daten machen Sie den RS-Pin hoch (RS =1).
  • Enable-Pin auf High setzen (EN =1).
  • Schreiben Sie den Befehl oder die Daten auf den Datenbus.
  • Enable-Pin auf Low setzen (EN =0).

Wenn Sie mehr über die C-Sprache erfahren möchten, finden Sie hier 10 kostenlose Tage (bis zu 200 Minuten) C-Videokurs für Sie.

Ihre kostenlose Testversion wartet auf Sie

Quellcode zum Anzeigen von bewegten Nachrichten auf einem alphanumerischen 16×2-LCD.

#include<reg51.h>
#include<string.h>

#define LCD P2 /*Attached Lcd on Port*/

sbit rs =P3^0; /*Configure RS Pin*/
sbit rw=P3^1; /*Configure R/W pin*/
sbit e =P3^2; /*Configure Enable pin*/


/*Function to write command on Lcd*/
void LcdCommand(const char cCommand);

/*Function to display message on Lcd*/
void DisplayMessage(const char *pszMessage);

/*Function To Initialize Lcd*/
void LcdInit(void);

/*Function to Provide delay*/
void Delay(unsigned int);



int main()
{

    short siLoop = 0;
    short siLen = 0;
    const char *pszDisplayMsg = "Welcome to aticleworld.";

    siLen = strlen(pszDisplayMsg); /*Calculate length of Message*/

    LcdInit();  /*Lcd Initialize*/

    while(1)
    {

        LcdCommand(0x8f); /*Address of DDRAM*/

        DisplayMessage(pszDisplayMsg);

        for(siLoop=0; siLoop < siLen; siLoop++)
        {

            LcdCommand(0x1c);
            Delay(25);

        }
    }
}

/*Function to write command on Lcd*/
void LcdCommand(const char cCommand)
{

    rs = 0;
    rw = 0;
    e  = 1;
    LCD = cCommand;
    Delay(1);
    e=0;

}

/*Function to Display message on Lcd*/
void DisplayMessage(const char *pszMessage)
{

    rs = 1;
    rw = 0;
    while(*pszMessage!='\0')
    {
        e  = 1;
        LCD = *pszMessage;
        Delay(1);
        e=0;
        pszMessage++;
    }
}

/*Function to Provide Delay*/
void Delay(unsigned int i)
{
    int j,k;
    for(j=0; j<i; j++)
    {
        for(k=0; k<1275; k++);
    }
}

/*Initialise the LCD*/
void LcdInit(void)
{

    LcdCommand(0x01);
    LcdCommand(0x38);
    LcdCommand(0x06);
    LcdCommand(0x0c);
}

Empfohlener Beitrag:

  • Led-Blinkprogramm in c für 8051.
  • Schnittstelle von Schalter und LED mit 8051
  • Schnittstelle von Relais mit 8051-Mikrocontroller
  • Bewegungsanzeige auf dem LCD mit 8051
  • LCD-4-Bit-Modus-C-Code für 8051.
  • Erstellen Sie benutzerdefinierte LCD-Zeichen für alphanumerische 16×2-LCDs
  • Schnittstelle der Tastatur mit 8051
  • Elektronisches digitales Schloss mit 8051
  • Schnittstelle von EEPROM mit 8051-Mikrocontrollern unter Verwendung von I2C
  • Eingebettete c Interviewfragen.
  • Pin-Diagramm und Pin-Beschreibung des 8051-Mikrocontrollers.
  • Kann Interviewfragen protokollieren.
  • 8051-Architektur.