Principaux périphériques électroniques s'interfaçant avec le microcontrôleur 8051

Essayez Notre Instrument Pour Éliminer Les Problèmes





L'interfaçage est l'un des concepts importants de microcontrôleur 8051 parce que le microcontrôleur est un processeur qui peut effectuer une opération sur une donnée et donne la sortie. Cependant, pour effectuer l'opération, nous avons besoin d'un périphérique d'entrée pour entrer les données et à son tour, le périphérique de sortie affiche les résultats de l'opération. Ici, nous utilisons le clavier et l'écran LCD comme périphériques d'entrée et de sortie avec le microcontrôleur.

Microcontroller 8051 Périphériques

Microcontroller 8051 Périphériques



L'interfaçage est le processus de connexion des périphériques entre eux afin qu'ils puissent échanger les informations et cela s'avère plus facile à écrire les programmes. Il existe différents types de périphériques d'entrée et de sortie selon nos besoins tels que les LED, les LCD, 7 segments, clavier, moteurs et autres appareils.


Voici quelques modules importants interfacés avec le microcontrôleur 8051.



1. Interfaçage des LED avec le microcontrôleur:

Description:

Les LED sont les plus couramment utilisées dans de nombreuses applications pour indiquer la sortie. Ils trouvent une vaste gamme d'applications comme indicateurs pendant les tests pour vérifier la validité des résultats à différentes étapes. Ils sont très bon marché et facilement disponibles dans une variété de formes, de couleurs et de tailles.

Diode électro-luminescente

Diode électro-luminescente

Le principe de fonctionnement des LED C'est très facile. Une simple LED sert également de périphérique d'affichage de base, son état activé et désactivé exprime des informations complètes sur un périphérique. Les LED disponibles courantes ont une chute de tension de 1,7 V, ce qui signifie que lorsque nous appliquons au-dessus de 1,7 V, la diode est conductrice. La diode a besoin d'un courant de 10 mA pour briller à pleine intensité.


Le circuit suivant décrit «comment allumer les LED».

Les LED peuvent être interfacées avec le microcontrôleur en configuration anode commune ou cathode commune. Ici, les LED sont connectées dans une configuration d'anode commune car la configuration de cathode commune consomme plus d'énergie.

Schéma

Interfaçage des LED avec le microcontrôleur

Interfaçage des LED avec le microcontrôleur

Code source:

#comprendre
void main ()
{
non signé int i
tandis que (1)
{
P0 = 0x00
pour (i = 0i<30000i++)
P0 = 0xff
pour (i = 0i<30000i++)
}
}

2. Circuit d'interface d'affichage à 7 segments

Description:
Un affichage à sept segments est l'affichage électronique le plus élémentaire. Il se compose de huit LED qui sont associées de manière séquentielle afin d'afficher des chiffres de 0 à 9 lorsque des combinaisons appropriées de LED sont activées. Un affichage à 7 segments utilise sept LED pour afficher les chiffres de 0 à 9 et la 8ème LED est utilisée pour le point. Un segment typique de sept ressemble comme indiqué dans la figure ci-dessous.

Affichage à 7 segments

Affichage à 7 segments

Les affichages à 7 segments sont utilisés dans un certain nombre de systèmes pour afficher les informations numériques. Ils peuvent afficher un chiffre à la fois. Ainsi, le nombre de segments utilisés dépend du nombre de chiffres à afficher. Ici, les chiffres 0 à 9 sont affichés en continu avec une temporisation prédéfinie.

Les afficheurs à 7 segments sont disponibles en deux configurations qui sont une anode commune et une cathode commune. Ici, une configuration d'anode commune est utilisée car le courant de sortie du microcontrôleur n'est pas suffisant pour piloter les LED. L'affichage à 7 segments fonctionne sur une logique négative, nous devons fournir un 0 logique à la broche correspondante pour faire briller la LED.

Configurations d

Configurations d'affichage à 7 segments

Le tableau suivant montre les valeurs hexadécimales utilisées pour afficher les différents chiffres.

Tableau d

Tableau d'affichage à 7 segments

Schéma

Interface d

Interface d'affichage à 7 segments

Code source:

#comprendre
sbit a = P3 ^ 0
void main ()
{
caractère non signé n [10] = {0x40,0xF9,0x24,0x30,0x19,0x12,0x02,0xF8,0xE00,0x10}
non signé int i, j
a = 1
tandis que (1)
{
pour (i = 0i<10i++)
{
P2 = n [i]
pour (j = 0j<60000j++)
}
}
}

3. Interface LCD avec le microcontrôleur

LCD signifie affichage à cristaux liquides qui peut afficher les caractères par ligne. Ici, l'écran LCD 16 par 2 peut afficher 16 caractères par ligne et il y a 2 lignes. Dans cet écran LCD, chaque caractère est affiché dans une matrice de 5 * 7 pixels.

Affichage LCD

Affichage LCD

L'écran LCD est un appareil très important qui est utilisé pour presque tous les appareils automatisés tels que les machines à laver, un robot autonome, systèmes de contrôle de puissance et autres appareils. Ceci est réalisé en affichant leur statut sur de petits modules d'affichage tels que des affichages à 7-sept segments, des LED multi-segments, etc. Les raisons en étant que les LCD sont d'un prix raisonnable, facilement programmables et ils n'ont aucune limitation d'affichage des caractères spéciaux.

Il se compose de deux registres tels que le registre de commande / instruction et le registre de données.

Le registre de commande / instruction stocke les instructions de commande données à l'écran LCD. Une commande est une instruction donnée à l'écran LCD qui exécute un ensemble de tâches prédéfinies telles que l'initialisation, l'effacement de l'écran, la mise en place du curseur, le contrôle de l'affichage, etc.

Le registre de données stocke les données à afficher sur l'écran LCD. Les données sont une valeur ASCII des caractères à afficher sur l'écran LCD.

Le fonctionnement de l'écran LCD est contrôlé par deux commandes. Lorsque RS = 0, R / W = 1, il lit les données et lorsque RS = 1, R / W = 0, il écrit (imprime) les données.

L'écran LCD utilise les codes de commande suivants:

Commandes de l

Commandes de l'écran LCD

Schéma:

Interfaçage LCD avec le microcontrôleur

Interfaçage LCD avec le microcontrôleur

Code source:

#comprendre
#define kam P0

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

void lcd_initi ()
void lcd_dat (caractère non signé)
void lcd_cmd (caractère non signé)
délai d'annulation (int non signé)
affichage vide (caractère non signé * s, caractère non signé)
void main ()
{

lcd_initi ()
lcd_cmd (0x80)
retard (100)
affichage («EDGEFX TECHLNGS», 15)
lcd_cmd (0xc0)
affichage («KITS & SOLTIONS», 15)
tandis que (1)
}

affichage vide (caractère non signé * s, caractère non signé)
{
non signé int w
pour (w = 0w{

lcd_dat (s [w])
}
}

void lcd_initi ()
{
lcd_cmd (0x01)
retard (100)
lcd_cmd (0x38)
retard (100)
lcd_cmd (0x06)
retard (100)
lcd_cmd (0x0c)
retard (100)
}
void lcd_dat (dat car non signé)
{
peigne = ça
rs = 1
rw = 0

dans = 1
retard (100)
dans = 0
}
void lcd_cmd (caractère non signé cmd)
{
venu = cmd
rs = 0
rw = 0

dans = 1
retard (100)
dans = 0
}
délai d'annulation (unsigned int n)
{

unsigned int a
pour (a = 0a}

4. Circuit d'interface de moteur pas à pas

Types de moteurs pas à pas-1

Moteur pas à pas unipolaire

À moteur pas à pas est l'un des moteurs les plus couramment utilisés pour un mouvement angulaire précis. L'avantage d'utiliser un moteur pas à pas est que la position angulaire du moteur peut être contrôlée sans aucun mécanisme de rétroaction. Les moteurs pas à pas sont largement utilisés dans les applications industrielles et commerciales. Ils sont également couramment utilisés dans les systèmes d'entraînement tels que les robots, les machines à laver, etc.

Types de moteurs pas à pas-2

Moteur pas à pas bipolaire

Les moteurs pas à pas peuvent être unipolaires ou bipolaires et nous utilisons ici un moteur pas à pas unipolaire. Le moteur pas à pas unipolaire se compose de six fils dont quatre sont connectés à la bobine du moteur et deux sont des fils communs. Chaque fil commun est connecté à une source de tension et les fils restants sont connectés au microcontrôleur.

Schéma:

Circuit d

Circuit d'interface de moteur pas à pas

Code source:

#comprendre
sbit a = P3 ^ 0
sbit b = P3 ^ 1
sbit c = P3 ^ 2
sbit d = P3 ^ 3

délai d'annulation ()

void main ()
{

tandis que (1)
{

a = 0
b = 1
c = 1
d = 1
retard()
a = 1
b = 0
c = 1
d = 1
retard()
a = 1
b = 1
c = 0
d = 1
retard()
a = 1
b = 1
c = 1
d = 0

}
}

délai d'annulation ()
{

caractère non signé i, j, k
pour (i = 0i<6i++)
pour (j = 0j<255j++)
pour (k = 0k<255k++)

}

5. Clavier matriciel en interface avec le 8051

Description:

Clavier matriciel

Clavier matriciel

Le clavier est un dispositif d'entrée largement utilisé avec de nombreuses applications telles que le téléphone, l'ordinateur, le guichet automatique, la serrure électronique, etc. Un clavier est utilisé pour prendre les entrées de l'utilisateur pour un traitement ultérieur. Ici, un clavier matriciel 4 par 3 composé de commutateurs disposés en lignes et colonnes est interfacé au microcontrôleur . Un écran LCD 16 par 2 est également interfacé pour afficher la sortie.

Le concept d'interfaçage du clavier est très simple. Chaque nombre de clavier se voit attribuer deux paramètres uniques qui sont la ligne et la colonne (R, C). Par conséquent, chaque fois qu'une touche est enfoncée, le numéro s'identifie en détectant les numéros de ligne et de colonne du clavier.

Schéma interne du clavier

Schéma interne du clavier

Au départ, toutes les lignes sont mises à zéro («0») par le contrôleur et les colonnes sont analysées pour vérifier si une touche est enfoncée. Si aucune touche n’est enfoncée, la sortie de toutes les colonnes sera élevée («1»).

Schéma

Clavier matriciel en interface avec 8051

Clavier matriciel en interface avec 8051

Code source:

#comprendre
#define kam P0
sbit rs = P2 ^ 0
sbit rw = P2 ^ 1
sbit à = 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 (caractère non signé)
void lcd_cmd (caractère non signé)
délai d'annulation (int non signé)
affichage vide (caractère non signé * s, caractère non signé)

void main ()
{
lcd_initi ()
lcd_cmd (0x80)
retard (100)
affichage ('0987654321', 10)
tandis que (1)
}

affichage vide (caractère non signé * s, caractère non signé)
{

non signé int w
pour (w = 0w{

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

void lcd_dat (dat car non signé)
{
peigne = ça
rs = 1
rw = 0

dans = 1
retard (100)
dans = 0
}
void lcd_cmd (caractère non signé cmd)
{
venu = cmd
rs = 0
rw = 0

dans = 1
retard (100)
dans = 0

}
délai d'annulation (unsigned int n)
{

unsigned int a
pour (a = 0a}
}

Nous espérons avoir été en mesure de fournir des connaissances approfondies sur les circuits d'interfaçage basiques mais importants de microcontrôleur 8051 . Ce sont les circuits les plus basiques requis dans toute application de système embarqué et nous espérons vous avoir fourni une bonne révision.

Une autre question ou un commentaire lié à ce sujet est le bienvenu dans la section des commentaires ci-dessous.

Crédits photo