Wichtige elektronische Peripheriegeräte, die an den Mikrocontroller 8051 angeschlossen sind

Versuchen Sie Unser Instrument, Um Probleme Zu Beseitigen





Interfacing ist eines der wichtigsten Konzepte in Mikrocontroller 8051 weil der Mikrocontroller eine CPU ist, die eine Operation an Daten ausführen kann und die Ausgabe liefert. Um die Operation auszuführen, benötigen wir jedoch ein Eingabegerät, um die Daten einzugeben, und das Ausgabegerät zeigt wiederum die Ergebnisse der Operation an. Hier verwenden wir neben dem Mikrocontroller auch Tastatur- und LCD-Displays als Ein- und Ausgabegeräte.

Mikrocontroller 8051 Peripheriegeräte

Mikrocontroller 8051 Peripheriegeräte



Beim Interfacing werden Geräte miteinander verbunden, damit sie die Informationen austauschen können, und das Schreiben der Programme ist einfacher. Es gibt verschiedene Arten von Ein- und Ausgabegeräten für unsere Anforderungen, wie z. B. LEDs, LCDs, 7-Segmente, Tastaturen, Motoren und andere Geräte.


Hier sind einige wichtige Module angegeben, die mit dem Mikrocontroller 8051 verbunden sind.



1. LED-Schnittstelle zum Mikrocontroller:

Beschreibung:

LEDs werden in vielen Anwendungen am häufigsten zur Anzeige der Ausgabe verwendet. Sie finden während des Tests eine Vielzahl von Anwendungen als Indikatoren, um die Gültigkeit der Ergebnisse in verschiedenen Phasen zu überprüfen. Sie sind sehr billig und leicht in einer Vielzahl von Formen, Farben und Größen erhältlich.

Leuchtdiode

Leuchtdiode

Das Prinzip von Betrieb von LEDs ist sehr leicht. Eine einfache LED dient auch als Basisanzeigegerät, wobei der Ein- und Ausschaltzustand die vollständige Information über ein Gerät ausdrückt. Die allgemein erhältlichen LEDs haben einen Spannungsabfall von 1,7 V, dh wenn wir über 1,7 V anlegen, leitet die Diode. Die Diode benötigt 10mA Strom, um mit voller Intensität zu leuchten.


Die folgende Schaltung beschreibt, wie die LEDs leuchten.

LEDs können entweder in einer gemeinsamen Anoden- oder einer gemeinsamen Kathodenkonfiguration an den Mikrocontroller angeschlossen werden. Hier werden die LEDs in einer gemeinsamen Anodenkonfiguration angeschlossen, da die gemeinsame Kathodenkonfiguration mehr Strom verbraucht.

Schaltplan

LED-Schnittstelle zum Mikrocontroller

LED-Schnittstelle zum Mikrocontroller

Quellcode:

#einschließen
void main ()
{
unsigned int i
während (1)
{
P0 = 0x00
für (i = 0i<30000i++)
P0 = 0xff
für (i = 0i<30000i++)
}}
}}

2. 7-Segment-Display-Schnittstellenschaltung

Beschreibung:
Eine Sieben-Segment-Anzeige ist die grundlegendste elektronische Anzeige. Es besteht aus acht LEDs, die nacheinander zugeordnet sind, um beim Einschalten der richtigen LED-Kombinationen Ziffern von 0 bis 9 anzuzeigen. Eine 7-Segment-Anzeige verwendet sieben LEDs, um Ziffern von 0 bis 9 anzuzeigen, und die 8. LED wird für Punkte verwendet. Ein typisches Siebensegment sieht wie in der folgenden Abbildung dargestellt aus.

7-Segment-Anzeige

7-Segment-Anzeige

Die 7-Segment-Anzeigen werden in einer Reihe von Systemen verwendet, um die numerischen Informationen anzuzeigen. Sie können jeweils eine Ziffer anzeigen. Daher hängt die Anzahl der verwendeten Segmente von der Anzahl der anzuzeigenden Ziffern ab. Hier werden die Ziffern 0 bis 9 kontinuierlich mit einer vordefinierten Zeitverzögerung angezeigt.

Die 7-Segment-Anzeigen sind in zwei Konfigurationen erhältlich, nämlich gemeinsame Anode und gemeinsame Kathode. Hier wird eine gemeinsame Anodenkonfiguration verwendet, da der Ausgangsstrom des Mikrocontrollers nicht ausreicht, um die LEDs anzusteuern. Die 7-Segment-Anzeige arbeitet mit negativer Logik. Wir müssen dem entsprechenden Pin eine logische 0 zuweisen, damit die LED leuchtet.

7-Segment-Anzeigekonfigurationen

7-Segment-Anzeigekonfigurationen

Die folgende Tabelle zeigt die Hex-Werte, mit denen die verschiedenen Ziffern angezeigt werden.

7-Segment-Anzeigetabelle

7-Segment-Anzeigetabelle

Schaltplan

7-Segment-Display-Schnittstelle

7-Segment-Display-Schnittstelle

Quellcode:

#einschließen
sbit a = P3 ^ 0
void main ()
{
vorzeichenloses Zeichen n [10] = {0x40,0xF9,0x24,0x30,0x19,0x12,0x02,0xF8,0xE00,0x10}
unsigned int i, j
a = 1
während (1)
{
für (i = 0i<10i++)
{
P2 = n [i]
für (j = 0j<60000j++)
}}
}}
}}

3. LCD-Schnittstelle zum Mikrocontroller

LCD steht für Flüssigkristallanzeige, die die Zeichen pro Zeile anzeigen kann. Hier kann das 16 x 2 LCD-Display 16 Zeichen pro Zeile anzeigen und es gibt 2 Zeilen. In diesem LCD wird jedes Zeichen in einer 5 * 7-Pixel-Matrix angezeigt.

LCD Bildschirm

LCD Bildschirm

LCD ist ein sehr wichtiges Gerät, das für fast alle automatisierten Geräte wie Waschmaschinen, einen autonomen Roboter, verwendet wird. Leistungssteuerungssysteme und andere Geräte. Dies wird erreicht, indem ihr Status auf kleinen Anzeigemodulen wie 7-Sieben-Segment-Anzeigen, Mehrsegment-LEDs usw. angezeigt wird. Die Gründe dafür sind, dass LCDs einen angemessenen Preis haben, leicht programmierbar sind und keine Einschränkungen bei der Anzeige von Sonderzeichen aufweisen.

Es besteht aus zwei Registern wie Befehls- / Befehlsregister und Datenregister.

Das Befehls- / Befehlsregister speichert die Befehlsanweisungen, die an das LCD gegeben werden. Ein Befehl ist eine Anweisung, die an das LCD gesendet wird und eine Reihe vordefinierter Aufgaben wie Initialisieren, Löschen des Bildschirms, Einstellen der Cursorposition, Steuern der Anzeige usw. ausführt.

Das Datenregister speichert die Daten, die auf dem LCD angezeigt werden sollen. Die Daten sind ein ASCII-Wert der Zeichen, die auf dem LCD angezeigt werden sollen.

Der Betrieb des LCD wird durch zwei Befehle gesteuert. Wenn RS = 0, R / W = 1, werden die Daten gelesen, und wenn RS = 1, R / W = 0, werden die Daten geschrieben (gedruckt).

LCD verwendet folgende Befehlscodes:

LCD-Anzeigebefehle

LCD-Anzeigebefehle

Schaltplan:

LCD-Schnittstelle zum Mikrocontroller

LCD-Schnittstelle zum Mikrocontroller

Quellcode:

#einschließen
#define kam P0

sbit rs = P2 ^ 0
sbit rw = P2 ^ 1
sbit bei = P2 ^ 2

void lcd_initi ()
void lcd_dat (vorzeichenloses Zeichen)
void lcd_cmd (vorzeichenloses Zeichen)
void delay (unsigned int)
void display (vorzeichenlose Zeichen, vorzeichenlose Zeichen)
void main ()
{

lcd_initi ()
lcd_cmd (0x80)
Verzögerung (100)
Anzeige ('EDGEFX TECHLNGS', 15)
lcd_cmd (0xc0)
Anzeige ('KITS & SOLTIONS', 15)
während (1)
}}

void display (vorzeichenlose Zeichen, vorzeichenlose Zeichen)
{
unsigned int w
für (w = 0w{

lcd_dat (s [w])
}}
}}

void lcd_initi ()
{
lcd_cmd (0x01)
Verzögerung (100)
lcd_cmd (0x38)
Verzögerung (100)
lcd_cmd (0x06)
Verzögerung (100)
lcd_cmd (0x0c)
Verzögerung (100)
}}
void lcd_dat (unsigned char dat)
{
Kamm = das
rs = 1
rw = 0

in = 1
Verzögerung (100)
in = 0
}}
void lcd_cmd (vorzeichenloses Zeichen cmd)
{
kam=cmd
rs = 0
rw = 0

in = 1
Verzögerung (100)
in = 0
}}
void delay (unsigned int n)
{

unsigned int a
für (a = 0a}}

4. Schrittmotor-Schnittstellenschaltung

Arten von Schrittmotoren-1

Unipolarer Schrittmotor

ZU Schrittmotor ist einer der am häufigsten verwendeten Motoren für präzise Winkelbewegungen. Der Vorteil der Verwendung eines Schrittmotors besteht darin, dass die Winkelposition des Motors ohne Rückkopplungsmechanismus gesteuert werden kann. Die Schrittmotoren sind in industriellen und kommerziellen Anwendungen weit verbreitet. Sie werden auch häufig in Antriebssystemen wie Robotern, Waschmaschinen usw. verwendet.

Arten von Schrittmotoren-2

Bipolarer Schrittmotor

Schrittmotoren können unipolar oder bipolar sein und hier verwenden wir einen unipolaren Schrittmotor. Der unipolare Schrittmotor besteht aus sechs Drähten, von denen vier mit der Spule des Motors verbunden sind und zwei gemeinsame Drähte sind. Jedes gemeinsame Kabel ist mit einer Spannungsquelle verbunden, und die verbleibenden Kabel sind mit dem Mikrocontroller verbunden.

Schaltplan:

Schrittmotor-Schnittstellenschaltung

Schrittmotor-Schnittstellenschaltung

Quellcode:

#einschließen
sbit a = P3 ^ 0
sbit b = P3 ^ 1
sbit c = P3 ^ 2
sbit d = P3 ^ 3

void delay ()

void main ()
{

während (1)
{

a = 0
b = 1
c = 1
d = 1
verzögern()
a = 1
b = 0
c = 1
d = 1
verzögern()
a = 1
b = 1
c = 0
d = 1
verzögern()
a = 1
b = 1
c = 1
d = 0

}}
}}

void delay ()
{

vorzeichenloses Zeichen i, j, k
für (i = 0i<6i++)
für (j = 0j<255j++)
für (k = 0k<255k++)

}}

5. Matrix-Tastatur mit 8051

Beschreibung:

Matrixtastatur

Matrixtastatur

Die Tastatur ist ein weit verbreitetes Eingabegerät mit vielen Anwendungen wie Telefon, Computer, Geldautomat, elektronischem Schloss usw. Eine Tastatur wird verwendet, um Eingaben vom Benutzer zur weiteren Verarbeitung zu übernehmen. Hier befindet sich eine 4 x 3-Matrixtastatur, die aus in Zeilen und Spalten angeordneten Schaltern besteht an den Mikrocontroller angeschlossen . Ein 16 x 2 LCD ist ebenfalls angeschlossen, um die Ausgabe anzuzeigen.

Das Schnittstellenkonzept der Tastatur ist sehr einfach. Jeder Anzahl von Tastaturen werden zwei eindeutige Parameter zugewiesen, nämlich Zeile und Spalte (R, C). Daher wird die Nummer jedes Mal, wenn eine Taste gedrückt wird, durch Erkennen der Zeilen- und Spaltennummern der Tastatur identifiziert.

Internes Diagramm der Tastatur

Internes Diagramm der Tastatur

Zu Beginn werden alle Zeilen vom Controller auf Null („0“) gesetzt und die Spalten werden gescannt, um zu überprüfen, ob eine Taste gedrückt wurde. Wenn keine Taste gedrückt wird, ist die Ausgabe aller Spalten hoch („1“).

Schaltplan

Anbindung der Matrixtastatur an 8051

Anbindung der Matrixtastatur an 8051

Quellcode:

#einschließen
#define kam P0
sbit rs = P2 ^ 0
sbit rw = P2 ^ 1
sbit bei = P2 ^ 2
sbit c1 = P1 ^ 4
sbit c2 = P1 ^ 5
sbit c3 = P1 ^ 6
sbit r1 = P1 ^ 0
sbit r2 = P1 ^ 1
sbit r3 = P1 ^ 2
sbit r4 = P1 ^ 3
void lcd_initi ()
void lcd_dat (vorzeichenloses Zeichen)
void lcd_cmd (vorzeichenloses Zeichen)
void delay (unsigned int)
void display (vorzeichenlose Zeichen, vorzeichenlose Zeichen)

void main ()
{
lcd_initi ()
lcd_cmd (0x80)
Verzögerung (100)
Anzeige ('0987654321', 10)
während (1)
}}

void display (vorzeichenlose Zeichen, vorzeichenlose Zeichen)
{

unsigned int w
für (w = 0w{

lcd_dat (s [w])
}}
}}
void lcd_initi ()
{
lcd_cmd (0x01)
Verzögerung (100)
lcd_cmd (0x38)
Verzögerung (100)
lcd_cmd (0x06)
Verzögerung (100)
lcd_cmd (0x0c)
Verzögerung (100)
}}

void lcd_dat (unsigned char dat)
{
Kamm = das
rs = 1
rw = 0

in = 1
Verzögerung (100)
in = 0
}}
void lcd_cmd (vorzeichenloses Zeichen cmd)
{
kam=cmd
rs = 0
rw = 0

in = 1
Verzögerung (100)
in = 0

}}
void delay (unsigned int n)
{

unsigned int a
für (a = 0a}}
}}

Wir hoffen, dass wir in der Lage waren, umfassendes Wissen über die grundlegenden, aber wichtigen Schnittstellenschaltungen von zu vermitteln Mikrocontroller 8051 . Dies sind die grundlegendsten Schaltkreise, die in einer eingebetteten Systemanwendung erforderlich sind, und wir hoffen, dass wir Ihnen eine gute Überarbeitung zur Verfügung gestellt haben.

Eine weitere Frage oder ein Feedback zu diesem Thema kann im Kommentarbereich unten erwähnt werden.

Bildnachweis