|
Bitte beachte die Copyrighthinweise.
AD-Converter II
1 Aufgabenstellung
· Ansteuerung eines AD-Wandler-Bausteins ADC0809 von Analog Devices mittels eines Microcontrollers (80C537) unter Verwendung von Ports
· Einlesen eines Gleichspannungswerts
2 Allgemeines
Die Betriebsspannung der Microcontrollerplatine und des ADC0809-Bausteins betrug UB = 5V.
Der ADC0809 wurde auf einer Testplatine mit IC-Sockel aufgebaut, die Verbindungen wurden gelötet.
3 Schaltung
Die Adressleitungen ADD A bis ADD C wurden mit Masse verbunden und somit der Analogeingang IN0 gewählt, durch die Verwendung eines Potentiometers konnte die Eingangspannung ue zwischen 0V und UB eingestellt werden. Da der Baustein keine Sample-Hold-Schaltung besitzt, war nur eine DC-Messung möglich. Der externe Clock des ADCs wurde durch den Frequenzgenerator G1 erzeugt (mit Oszilloskop P1 auf etwa 500kHz eingestellt, Abgriff der Spannung am TTL-Ausgang).
Als Referenzspannung wurde die Betriebsspannung verwendet, wobei jedoch extra Leitungen zu den Labortischklemmen verwendet wurden. Als Massesternpunkt wurde der UREF Anschluss verwendet.
Die Anschlüsse START, ALE, OUTPUT ENABLE (OE) und EOC wurden mit Port 1.0 bis Port 1.3 gesteuert, die Datenleitungen des ADCs wurden mit Port 3 verbunden (LSB P3.0; MSB P3.7).
(Adc0809.pdf - Seite 1)
(Adc0809.pdf - Seite 3)
(Adc0809.pdf - Seite 4)
(Adc0809.pdf - Seite 6)
4 Programm
Das Programm realisiert im Wesentlichen obiges Signaldiagramm. Da der Microcontroller mit 1 MHz Takt läuft, ist die Schaltzeit der Ports mit mindestens einer ms lang genug. Lediglich beim Warten auf das EOC-Signal wurde ein Wartezeit von 20ms programmiert. Es wäre auch anstelle der JNB-Schleife eine Auswertung über die Interupts der Flanken auf Port 1 möglich.
;*********************************************************************
; Editor: Florian Rosenauer @ HTBLA Karlstein, Austria-3830 Waidhofen
; Datum: 17/Apr/1997 Klasse/Gruppe/Kat.Nr : IV-EA/-/--
;*********************************************************************
; Sprache : ASM für 80C537
; Programm Nr. : Labor 20 AD-Wandler PRG1
; Version : 1.01
; Kurzbeschreibung : Unipolarer 8bit Converter am Bus=Ports
;*********************************************************************
#include 537.inc
.org $0000
ljmp $0100 ;Sprung über Interupts
.org $0100
start .equ P1.0
ale .equ P1.1
oe .equ P1.2
oec .equ P1.3
data .equ P3
beginn: clr start ;init
clr oe
clr ale
setb ale
setb start ;conv starten
clr ale
clr start
mov r0,#10
T20: djnz r0,T20 ;20us warten, dann oec garantiert auf LOW
oec2: jnb oec,oec2 ;... auf eoc=HIGH warten
setb oe ;Output Enable setzen
mov a,data
ljmp beginn
.end
La20a.asm
Da der Port 3 bereits intern auf der Microcontrollerplatine belegt ist, kam es bei der Programmausführung im Microcontroller zu Fehlern. Aus Zeitgründen konnten die Anschlüsse nicht mehr auf einen anderen Port umgelötet werden.
5 Interpretation der Messergebnisse
Vor der Verwendung von Ports einer Microcontrollerplatine sollte immer auf der entsprechenden Schaltung geprüft werden, ob diese Ports nicht bereits intern belegt sind.