Vous êtes sur la page 1sur 8

TP : Microcontrôleur

Ecole Nationale Supérieure d’Electricité


et de Mécanique

TP 1: MICRO-CONTROLEUR

Réalisée par :
 ELIBRAHIMI Amine
 TALIBI Fatima Ezzahra
 Amal CHAHYD
 ZINEDDINE ABDELKARIM
 BRAHIM EL AKHRIF
 HAMDI ALAOUI MOHAMED

Filière :
GESET
Enseignant :
Mr.Abderrahim FAIL

Page 0|7
TP 1: MICRO-CONTROLEUR

Objectif de TP :
On utilise un clavier à 12 touches pour afficher un nombre avec une carte de
microcontrôleur. Donc on cherche à réaliser le programme et l’organigramme
corresponde puis on télécharger le programme obtenu en utilisant KIT MCS51.
Dons la deuxième partie on va essayer de convertir un signal analogique digitale(A/D) et
digitale analogique(D/A) à 8 bites en réalisant le programme et l’organigramme puis on
télécharger le programme dans KIT MCS51.
1- Clavier 12 touches:

Les données :
Le clavier comporte 7 fils reliés au bus de données du microcontrôleur. Les bits b2, b1, b0
représentent les colonnes de gauche à droite. Les bits b6, b5, b4 représentent les lignes
de bas en haut.

b7 b6 b5 b4 b3 b2 b1 b0

b7 X 1 1 1 1 1 1 1
1 2 3
Code b6
*Code ligne *Code colonne
ligne 4 5 6
b5 *Cherche à partir de *Cherche à partir de
7 8 9
l’emplacement l’emplacement
b4 8000H (4bites) 8010H (3bites)
* 0 #
b3
b2
Code
colonne b1
b0

1-Organigramme de codage d’une touche :

Débute

(8010H) #00H b0,b1,b2 forcés à 0 (colonnes forcés à 0)

A (8000H)
Lecture des lignes P a g e 1 | 7
TP 1: MICRO-CONTROLEUR

A A & #78H Code ligne placé dans l’accumulateur A

A ?= 78H Test appui

R0 A Code ligne placé dans R0

(8000H) #00H
b6….b3 forcés à zéro (lignes forcés à zéro)
Lecture état colonne
A (8010H)
Lecture des lignes
A A & #07H Code colonne placé de A (b2,b1,b0)

A ?= 07H Test appui

A A OU R0 Code colonne de A

R1 A

FIN

2- Le programme correspondant en mnémonique :


ORG 3000H
MOV DPTR, #8010H % Pointer DPTR à 8010H
MOV A,#00H % Mettre b0,b1 et b2 a zéro
MOVX @DPTR, A % Transférer le contenu de la donnée
Etq1 MOV DPTR, #8000H
MOVX @DPTR, A
ANL A,#78H % Masquer b0 à b2
CJNE A,#78H,Etq2 % tester si appui
SJMP Etq1 % Sauter a Etq1
Etq2 MOV R0, A % Stocker le code ligne dans R0
MOV DPTR,#8000H
MOV A,#00H
MOVX @DPTR,A
Etq3 MOV DPTR, #8010H
MOVX @DPTR, A
ANL A, #07H % Masquer b3 à b6
CJNE A,#07H,Etq4
SJMP Etq3
Etq4 ORL A,R0 % Placer A ou R0 dans A
MOV R1,A % Affectation à R1
Etq5 SJMP Etq5 %Boucle fini
END Page 2|7
TP 1: MICRO-CONTROLEUR

3-on a téléchargé notre programme dans KIT MCS51 et on a testé les touches suivantes
et on a trouvé les mêmes résultats que la théorique :

Touche « 1 » sélection b6,b2 code obtient : 3BH


Touche « * » sélection b3,b2 code obtient : 73H
Touche « # » sélection b3,b0 code obtient : 76H

3- La correspondance :
selon le code de ligne /colonne qui on a trouvé dans la premier question on doit faire
une correspondance de ce code avec la valeur numérique corresponde à chaque code
obtenu soit ces deux tableau l’une avec les valeur L /C et autre contient les valeur
numérique :

TAB2 3B
01
02 CORRESPONDANCE 3D

03 3E
5B
04
05 5D

06 5E

07 6B

09 6D

2A 6E
TAB1
73
00 CODE LIGNE /COLONNE
75
23 76

On obtient pour l’organigramme :

Débute

R2 #00H

DPTR #TAB1 Pointage 1er donnée de la table 1

A (DPTR) Page 3|7


TP 1: MICRO-CONTROLEUR
DPTR DPTR +1

R2 R2+1

A ?= R0 Test si le code L /C

R2 R2-1

DPTR #TAB2
Pointage 1er donnée de la table 2

R2 ?= #00H

DPTR DPTR+1

R2 R2-1

R2 ?= #00H

A (DPTR)

R3 A

FIN

Le programme obtenu par l’organigramme :


ORG 2000H
MOV R2,#00H
MOV DPTR, #TAB1 % Pointage 1er donnée de la table 1
Etq1 MOVX A,@DPTR
INC DPTR
INC R2
CJNE A,R0,Etq1 % Test si le code L /C
DEC R2
MOV DPTR, #TAB2 % Pointage 1er donnée de la table 2
CJNE R2,#00,Etq2
SJMP Etq3
Etq2 INC DPTR
DEC R2
CJNE R2,#00,Etq2
Etq3 MOVX A,@DPTR
MOV R3,A
LAB5 SJMP LAB5
END Page 4|7
TP 1: MICRO-CONTROLEUR

4- A- Signal triangle :
Pour tracer le signal triangle soit on commence de la valeur maximal 127
correspondant à 75H ou la valeur minimal -128 correspondant à 80H.

Débute

DPTR #0 E000H Adresse conv N/R de DPTR

A #81H

(DPTR) A

A A+1
Synthèse de la monte

A ?= #75H

(DPTR ) A Stock le A max trouver

A A-1
Synthèse de la dissente

A ?= #81H

Le programme obtenu par l’organigramme :

ORG 2000H
MOV DPTR, #0 E000H
MOV A,#81H
Etq1 MOVX @DPTR,A
INC A
MOV A,#75H,ETQ1
Etq1 MOVX @DPTR,A
DEC A
CJNE A,#81H,ETQ2
Page 5|7
SJMP ETQ1
TP 1: MICRO-CONTROLEUR

5- b- Signal sinusoïdale :
Pour tracer le signal sinusoïdale est un peu très difficile donc on échantillonne le signal
donc on rendre discret et on utilise les valeurs des échantillonnages trouver on les stock
dans ce tableau :

N 0 1 2 3 4 5 6 7 8 9
127sin(36.N) 0 74 120 120 74 0 -74 -120 -120 -74

Débute

DPTR #TAB R2 contient la nombre de donnée de


R2 #10D
table

R1 DPH

R0 DPL

DPH R1

DPL R0

A (DPTR )
(DPTR )

DPTR DPTR +1
Sauvegarde de l’adresse
R2 R2-1
stable
R1 DPH

R0 DPL

DPTR #0 E000H

(DPTR) A

A ?= #81H
Page 6|7
TP 1: MICRO-CONTROLEUR

Le programme obtenu par l’organigramme :

ORG 2000H
SJMP ETQ1
TAB DB 0,74,120,120,74,0,-74,-120,-120,-74
ETQ1 MOV DPTR,#TAB
MOV R2,#10
MOV R1,DPH
MOV R0,DPL
ETQ2 MOV DPH,R1
MOV DPL,R0
MOVX A,@DPTR
INC DPTR
DEC R2
MOV R1,DPH
MOV R0,DPL
MOV DPTR,#0 E000H
MOVX @DPTR,A
CJNE R2,#00H,ETQ2
SJMP ETQ1

Page 7|7

Vous aimerez peut-être aussi