12.01.2013 Views

Cours 80C552

Cours 80C552

Cours 80C552

SHOW MORE
SHOW LESS

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-

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!