Cours 80C552
Cours 80C552
Cours 80C552
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
2°- Programme de conversion-type:<br />
a- Programme en langage assembleur:<br />
INCLUDE REG552.INC Inclure le fichier “reg552.inc” pour la définition des registres du<br />
microcontrôleur <strong>80C552</strong>.<br />
BCL2: MOV ADCON,#00h Initialisation du registre de contrôle du convertisseur:<br />
Mise à 0 du bit ADEX, la conversion sera lancée par la mise à 1 du bit ADCS,<br />
Mise à 0 du bit ADCI du registre de contrôle, ce bit passera à 1 lorsque la<br />
conversion sera terminée,<br />
Sélection de la broche P5.0 ou la tension à convertir est appliquée.<br />
ORL ADCON,#08h Lancement conversion par OU logique entre la valeur de ADCON et 08h:<br />
ADCON = 0 0 0 0 0 0 0 0<br />
08h = 0 0 0 0 1 0 0 0<br />
Résultat = 0 0 0 0 1 0 0 0<br />
Le bit ADCS est mis à 1, la conversion peut commencer.<br />
BCL1: MOV A,ADCON Copie de la valeur de ADCON dans A<br />
JNB 0E4h, BCL1 Test du bit 4 (adresse bit E4h) de A, soit du bit ADCI du registre ADCON,<br />
Tant que ce bit est à 0, le programme retourne à BCL.<br />
SJMP BCL2<br />
END<br />
b- Programme en langage C:<br />
#include Inclure le fichier “reg552h” pour la définition des registres du<br />
microcontrôleur <strong>80C552</strong>.<br />
at 0xE4 sbit ADCI; Indiquer l’adresse du bit ADCI: E4h, soit le bit 4 de l’accumulateur A.<br />
void main (void)<br />
{<br />
Déclaration du programme principal<br />
while (1)<br />
{<br />
Début de boucle<br />
ADCON = 0x00; Initialisation du registre de contrôle du convertisseur:<br />
Mise à 0 du bit ADEX, la conversion sera lancée par la mise à 1 du bit ADCS,<br />
Mise à 0 du bit ADCI du registre de contrôle, ce bit passera à 1 lorsque la<br />
conversion sera terminée,<br />
Sélection de la broche P5.0 ou la tension à convertir est appliquée.<br />
ADCON=ADCON | 0x08;Lancement conversion par OU logique entre la valeur de ADCON et 08h:<br />
ADCON = 0 0 0 0 0 0 0 0<br />
08h = 0 0 0 0 1 0 0 0<br />
Résultat = 0 0 0 0 1 0 0 0<br />
Le bit ADCS est mis à 1, la conversion peut commencer.<br />
do<br />
{ Test du bit ADCI:<br />
ACC = ADCON;<br />
}<br />
Charger le contenu de ADCON dans ACC,<br />
while (ADCI == 0); Tant que ce bit est à 0.<br />
}<br />
}<br />
- 90 - - cf RIVALIN Georges 2005-2006-