Le fonctionnement du convertisseur A/N est similaire aux deux micros 80C535 et 80C537. Sur le 80C537, il y a cependant 12 entrées ana contre 8 sur le 80C535. C'est pourquoi on a 2 registres de contrôle sur cette version (ADCON0 et ADCON1) contre 1 seul sur le 535 (ADCON). De plus, la conversion peut être déclenchée à l'aide d'un signal externe sur le 80C537. Une conversion dure 13µs avec un quartz de 12 MHz. Voyons d'abors le fonctionnement de ADCON :

NB : CLK et BD n'ont aucune influence sur la conversion.

Le registre ADDAT (0D9H) contient le résultat de la dernière conversion. Il est possible de programmer la référence de tension à l'aide du registre DAPR (0DAH). Le quartet de poids fort est affecté à la programmation de VINTaref et celui de poids faible à VINTagnd. Les valeurs possibles pour DAPR sont : (on a pris VAREF = 5V et VAGND = 0V)

PAS DAPR IVAGND IVAREF
0 0000 0 5
1 0001 0.3125 ---
2 0010 0.625 ---
3 0011 0.9375 ---
4 0100 1.25 1.25
5 0101 1.5625 1.5625
6 0110 1.875 1.875
7 0111 2.1875 2.1875
8 1000 2.5 2.5
9 1001 2.8125 2.8125
10 1010 3.125 3.125
11 1011 3.4375 3.4375
12 1100 3.75 3.75
13 1101 --- 4.0625
14 1110 --- 4.375
15 1111 --- 4.6875

La conversion commence tout de suite après écriture dans DAPR. On remarque que grâce à cette référence de tension programmable il est possible d'obtenir une résolution meilleur que 8 bits (10 bits environ) en effectuant deux conversions et en ajustant la référence entre ces deux conversions.

Intéressons nous maintenant aux registres ADCON0 et ADCON1 du 80C537.
Tout d'abord : ADCON0 (0D8H)

Ensuite ADCON1 (0DCH) : on ne se sert dans ce registre que des 4 bits de poids faible : MX0, MX1, MX2 et MX3. Ceux-ci servent à la sélection de l'entrée analogique :

MX3 MX2 MX1 MX0 Entrée sélectionnée
0 0 0 0 P7.0
0 0 0 1 P7.1
0 0 1 0 P7.2
0 0 1 1 P7.3
0 1 0 0 P7.4
0 1 0 1 P7.5
0 1 1 0 P7.6
0 1 1 1 P7.7
1 x 0 0 P8.0
1 x 0 1 P8.1
1 x 1 0 P8.2
1 x 1 1 P8.3

Il faut noter que les bits MX0, MX1 et MX2 des registres ADCON0 et ADCON1 sont les mêmes.