Das eBook Angewandte Mikroelektronik wurde von Hans Lohninger zur Unterstützung verschiedener Lehrveranstaltungen geschrieben. Weitere Informationen finden sie hier. |
Home Experimente Aufbau einfacher mikroprozessorgesteuerter Geräte Digitalvoltmeter | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Siehe auch: Analog-Digital-Wandler | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Experiment: Digitalvoltmeter
In diesem Experiment soll ein einfaches 8-Kanal-Digitalvoltmeter aufgebaut werden, dessen Eingangsspannungsbereich und Messkanal über die auf der Platine uP1 vorhandenen DIP-Schalter eingestellt werden können. Der Eingangsverstärker kann in 7 binären Stufen eingestellt werden, wobei die niedrigste Stufe einem Eingangsspannungsbereich von +/- 1 V (bzw. +/- 2 V, je nach Stellung des Jumpers J1 auf der Platine ADAC12) entspricht, alle anderen Messbereiche sind jeweils um die Hälfte kleiner. Zu beachten ist, dass die maximale Dynamik aufgrund der Steuersoftware auf 16 Bit begrenzt ist. In der folgenden Tabelle sind die Schalterstellungen für alle Messbereiche und alle Eingangskanäle aufgelistet.
Die Abbildung zeigt den Aufbau des Digitalvoltmeters. Es verwendet die Platinen uP1, SERPAR, ADAC12 und 7SGDSP. Der Mikroprozessor misst die Werte der Eingangsspannung mit Hilfe des ADCs auf der Platine ADAC12 und gibt sie auf dem 6stelligen Display aus. Das Digitalvoltmeter kann auf einfache Weise geeicht werden. Dazu wird der Eingangsspannungsbereich auf +/- 1 V gesetzt und eine Spannung von etwa 0.8 V angelegt. Mit dem Potentiometer 'Full Scale' auf der Platine ADAC12 wird nun die Referenz für den AD-Wandler so angepasst, dass auf der Anzeige genau der entsprechende Wert angezeigt wird. Zu beachten ist, dass die Eingänge der Kanäle 0 bis 3 als Differenzeingänge konstruiert sind. Für Messungen gegen Massepotential ist der negative Eingang auf Masse zu legen.
Das unten abgedruckte Listing zeigt die Implementierung des DVMs. Das Programm läuft in einer Endlosschleife, in der folgende Aktionen durchgeführt werden: Zuerst wird entsprechend der Stellung der DIP-Schalter der Multiplexer und der programmierbare Verstärker (PGA) eingestellt und die S&H-Schaltung aktiviert. Darauf wird der AD-Wandler gestartet und das Ergebnis der Konversion entsprechend dem Verstärkungsfaktor des PGA angepasst. Dieser Wert wird nun mit einem Skalierungsfaktor multipliziert und das Resultat auf dem 7-Segment-Display ausgegeben. Der Skalierungsfaktor zur Skalierung des Ergebnisses ist meist eine reelle Zahl (in diesem Beispiel 0.0000305), für deren Verarbeitung man eine Gleitkommaroutine benötigen würde. Um den Aufwand für eine solche Routine zu vermeiden, wird der Skalierungsfaktor mit dem Faktor 10000 (vier Kommastellen) multipliziert und - um die Genauigkeit zu erhöhen - weiter mit 216. Nach der Berechnung des skalierten Messwertes wird dieser wieder durch 216 dividiert, indem vom 32-Bit-Ergebnis der Multiplikation nur das höherwertige Wort verwendet wird. ;=================================================== ;---- Experiment: Digitalvoltmeter ----------------- ;=================================================== ; .GLOBAL DVM DVM: CALL SETMUX ;Multiplexer setzen CALL GETADC ;Wert von ADC holen IN A,(DIPSW) ;Verstärkungsfaktor AND 07 ;Wert anpassen JR Z,$7 LD B,A $3: SRA H ;durch Schieben RR L DJNZ $3 $7: EX DE,HL LD BC,20000 ;skalieren CALL MLT32S EX DE,HL CALL DSPHL ;Ausgabe auf Display LD C,4 ;Dezimalpunkt CALL SETDP LD HL,50000 ;350 ms warten CALL DELAY JR DVM ; ;=================================================== ;---- MUX-Kanal und Verstärkung einstellen --------- ;=================================================== ; ;ENTRY: DIP-switch ; Bit 0..2: Verstärkungsfaktor ; Bit 4..6: Kanalnummer ;EXIT: MUX entsprechend eingestellt, S&H gestartet ; SETMUX: PUSH AF PUSH BC IN A,(DIPSW) ;Kanaladr. berechnen LD C,MUXBAS AND 0F0H SRL A SRL A SRL A SRL A ADD A,C LD C,A IN A,(DIPSW) ;Verstärkungsfaktor AND 07H OUT (C),A ;MUX einstellen, POP BC ; S&H starten POP AF RET ; ;=================================================== ;---- AD-Wandler starten, Ergebnis lesen ----------- ;=================================================== ; ;ENTRY: - ;EXIT: Wert vom ADC x16 als 2er-Komplement ; GETADC: PUSH AF PUSH DE LD A,0 OUT (ADCHI),A ;ADC (12 bit) starten BIT 0,(IX) ;warten bis ADC fertig BIT 0,(IX) BIT 0,(IX) BIT 0,(IX) BIT 0,(IX) IN A,(ADCHI) ;Wert holen XOR 80H ;2er-Kompl. erzeugen LD H,A IN A,(ADCLO) LD L,A POP DE POP AF RET
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Home Experimente Aufbau einfacher mikroprozessorgesteuerter Geräte Digitalvoltmeter |