ANALOG (3)


POLITECHNIKA WROCAAWSKA
INSTYTUT MASZYN I NAPDÓW ELEKTRYCZNYCH
LABORATORIUM STEROWNIKÓW
MIKROPROCESOROWYCH
W NAPDZIE ELEKTRYCZNYM
Opracowanie:
mgr inż. Krzysztof P. Dyrcz
mgr inż. Zdzisław Żarczyński
LABORATORIUM STEROWNIKÓW MIKROPROCESOROWYCH W NAPDZIE ELEKTRYCZNYM
1. CEL ĆWICZENIA
Celem ćwiczenia jest poznanie 8 bitowego przetwornika analogowo-
cyfrowego wbudowanego w mikrokontroler SAB 80C535 i zapoznanie się
z metodą pomiaru sygnału analogowego.
Podczas ćwiczenia należy napisać program w języku asemblera do
obsługi przetwornika oraz program w języku BASIC do wizualizacji mierzonego
sygnału, uruchomić programy, a także zapoznać się ze sposobem zwiększenia
rozdzielczości przetwornika do 10 bitów.
2. PRZYGOTOWANIE DO ĆWICZENIA
" Zapoznanie się ze strukturą wewnętrzną przetwornika analogowo-cyfrowego,
" Instrukcje asemblera SAB 80C535,
" Zintegrowane środowisko programowe asm535.
3. STANOWISKO LABORATORYJNE
" Sterownik Minikon z klawiaturą i wyświetlaczem,
" IBM PC z programem Monitor,
" miernik cyfrowy uniwersalny.
4. WPROWADZENIE
Przetwornik a/c jest wewnętrznym układem mikrokontrolera SAB 80C535
przeznaczonym do przetwarzania sygnałów z postaci analogowej na cyfrową 8 -
bitową. Istnieje jednak możliwość zwiększenia rozdzielczości przetwornika do
10 bitów dzięki programowalnemu zawężeniu zakresu pomiarowego
przetwornika.
Wejście przetwornika a/c stanowi 8-wejściowy analogowy multiplekser
umożliwiający pomiar napięciowego sygnału analogowego w 8 różnych
kanałach w zakresie 0..5V.
Czas przetwarzania przetwornika wynosi 13 cykli maszynowych. (15
cykli maszynowych dla mikrokontrolera SAB 80535).
Przetwornik a/c wyróżnia się następującymi parametrami:
" 8 kanałów analogowych AN0..AN7,
" 8-bitowy port wejść cyfrowych P6,
" 8-bitowa rozdzielczość pomiaru (10 bitowa przy programowym zawężeniu
zakresu pomiarowego),
" 16 programowalnych podzakresów pomiarowych,
" programowe wyzwalanie pojedynczego pomiaru lub serii pomiarów,
" możliwość generowania przerwania po każdym pomiarze.
Przetwornik analogowo-cyfrowy Strona 2
LABORATORIUM STEROWNIKÓW MIKROPROCESOROWYCH W NAPDZIE ELEKTRYCZNYM
Przetwornik korzysta z 3 rejestrów specjalnych SFR:
" ADCON (adres 0D8H) - wybór kanału pomiarowego i rodzaju przetwarzania,
Rejestr ADCON adres 0D8H
BD CLK - BSY ADM MX2 MX1 MX0
Znaczenia poszczególnych bitów są następujące:
BD - bit używany do określenia szybkości transmisji łącza szeregowego. Zmiana
stanu tego bitu może powodować zawieszenie systemu, dlatego podczas
pracy przetwornika nie należy modyfikować jego wartości.
CLK - umożliwia uzyskanie na wyprowadzeniu procesora CLKOUT (P1.6)
sygnału o częstotliwości fCLKOUT = fGEN/12 i wypełnieniu 1/6, przy czym
fGEN jest częstotliwością zewnętrznego rezonatora kwarcowego
dołączonego do mikrokontrolera. Podobnie jak dla bitu BD nie modyfikuje
się jego wartości podczas pracy przetwornika.
BSY - wskazuje aktualny stan przetwornika. Jest znacznikiem o atrybucie tylko
do odczytu, ustawianym i kasowanym sprzętowo.
BSY=0 - przetwornik po zakończeniu przetwarzania,
BSY=1 - przetwornik w trakcie przetwarzania.
ADM - określa rodzaj przetwarzania.
ADM=1 - przetwornik w trybie pracy wielokrotnego
pomiaru. Przetwornik wykonuje serię
pomiarów, aż do chwili gdy ADM=0.
ADM=0 - pomiar pojedynczy, przy czym każdy pomiar
musi być uruchamiany programowo.
MX2..MX0 - wybór numeru kanału pomiarowego
Tabela 4.1. Wybór numeru kanału pomiarowego.
MX2 MX1 MX0 Kanał Wejście
0 0 0 0 AN0/P6.0
0 0 1 1 AN1/P6.1
0 1 0 2 AN2/P6.2
0 1 1 3 AN3/P6.3
1 0 0 4 AN4/P6.4
1 0 1 5 AN5/P6.5
1 1 0 6 AN6/P6.6
1 1 1 7 AN7/P6.7
Należy pamiętać, że wejścia AN0..AN7 są jednocześnie wejściami portu
cyfrowego P6.
Przetwornik analogowo-cyfrowy Strona 3
LABORATORIUM STEROWNIKÓW MIKROPROCESOROWYCH W NAPDZIE ELEKTRYCZNYM
" ADDAT (adres 0D9H) - modyfikowany wynik przetwarzania,
Rejestr ADDAT adres 0D9H
bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
MSB LSB
Przy czym:
MSB - najbardziej znaczący bit (Most Significant Bit),
LSB - najmniej znaczący bit (Last Significant Bit)
W rejestrze ADDAT przechowywana jest całkowita wielokrotność
poziomów kwantowania :
Ux
ADDAT = ,
1LSB
przy czym:
VIntAREF - VIntAGND
1LSB =
28
( 1LSB oznacza tu najmniejszy poziom kwantowania)
Jeżeli podczas pracy mikrokontrolera nie wykorzystujemy przetwornika
a/c, wówczas rejestr ADDAT może służyć jako rejestr ogólnego przeznaczenia.
" DAPR (adres 0DAH) - wybór zakresu przetwarzania. Wybór zakresu
rozpoczyna pomiar i przetwarzanie a/c na wybranym kanale.
Rejestr DAPR adres 0DAH
bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
Napięcie VIntAREF Napięcie VIntAGND
przy czym:
Napięcie VIntAREF - górne wewnętrzne napięcie odniesienia,
Napięcie VIntAGND - dolne wewnętrzne napięcie odniesienia.
Napięcia te tworzone są przez podział różnicy napięć VAREF i VGND zgodnie ze
wzorami:
DAPR7..4
VIntAREF = VAGND + (VAREF - VAREF)
16
gdy DAPR7..4 > 3H
DAPR3..0
VIntAGND = VAGND + (VAREF - VAREF)
16
gdy DAPR3..0 < 0CH
Przetwornik analogowo-cyfrowy Strona 4
LABORATORIUM STEROWNIKÓW MIKROPROCESOROWYCH W NAPDZIE ELEKTRYCZNYM
Wyboru podzakresu pomiarowego dokonuje się wg tabeli 2 przy
założeniu, że wartości napięć odniesienia są następujące:
VAREF = +5V,
VAGND = 0V.
Tabela 4.2. Wybór podzakresu pomiarowego.
Podzakres DAPR7..4 VIntAREF DAPR3..0 VIntAGND
pomiarowy [V] [V]
0 0000 5.0 0000 0.0
1 0001 - 0001 0.3125
2 0010 - 0010 0.625
3 0011 - 0011 0.9375
4 0100 1.25 0100 1.25
5 0101 1.5625 0101 1.5625
6 0110 1.875 0110 1.875
7 0111 2.1875 0111 2.1875
8 1000 2.5 1000 2.5
9 1001 2.8125 1001 2.8125
10 1010 3.125 1010 3.125
11 1011 3.4375 1011 3.4375
12 1100 3.75 1100 3.75
13 1101 4.0625 1101 -
14 1110 4.375 1110 -
15 1111 4.6875 1111 -
Przy pomiarze na pełnym zakresie pomiarowym 0V..5V dokładność
przetwarzania przetwornika wynosi
VIntAREF - VIntAGND 5V - 0V
1LSB = = = 19,531 mV,
28 256
natomiast przy pomiarze na zakresie zawężonym do 1.25V
VIntAREF - VIntAGND 125V - 0V
,
1LSB = = = 4,883 mV.
28 256
Z powyższych obliczeń wynika prosty sposób na zwiększenie dokładności
przetwornika o dodatkowe dwa bity. Należy tylko dokonać dwóch pomiarów:
pierwszego, na pełnym zakresie pomiarowym dla określenia dwóch najbardziej
znaczących bitów wyniku oraz określenia nowego podzakresu pomiarowego,
oraz drugiego pomiaru na zawężonym podzakresie pomiarowym dla uzyskania 8
mniej znaczących bitów wyniku przetwarzania.
Przetwornik analogowo-cyfrowy Strona 5
LABORATORIUM STEROWNIKÓW MIKROPROCESOROWYCH W NAPDZIE ELEKTRYCZNYM
Ponieważ rejestr ADDAT jest modyfikowany po każdym cyklu
pomiarowym, należy zwrócić uwagę na to, aby podczas pomiaru z dokładnością
10 bitów przed dokonaniem drugiego pomiaru na zawężonym zakresie
zapamiętać aktualną zawartość rejestru w innym, nie modyfikowanym podczas
pracy przetwornika rejestrze ogólnego przeznaczenia.
Do prawidłowej pracy przetwornika a/c wymagane jest spełnienie
następujących warunków:
- napięcia VIntAREF i VIntAGND muszą być dołączone do wyprowadzeń
mikrokontrolera. Obecność tych napięć nie jest konieczna, gdy przetwornik
nie pracuje,
- jeżeli napięcia VIntAREF i VIntAGND dołączone są do napięć zasilających
mikrokontroler VCC i VSS, to muszą spełniać warunek:
VIntAREF = VCC ą 5%,
VIntAGND = VSS ą 0.2V,
- minimalna różnica napięć (VIntAREF - VIntAGND) e" 1V,
- rezystancja wewnętrzna zródła mierzonego napięcia i napięcia wzorcowego
nie może być większa niż 5 k&!.
Po każdym wykonanym pomiarze przetwornik ma możliwość
generowania przerwania. Ustawiany jest wówczas bit IADC w rejestrze IRCON,
przy czym wektor przerwania ma adres 43H.
Rejestr IRCON adres 0C0H
EXF2 TF2 IEX6 IEX5 IEX4 IEX3 IEX2 IADC
Na rys.4.1 przedstawiono schemat blokowy przetwornika a/c.
Przetwornik analogowo-cyfrowy Strona 6
LABORATORIUM STEROWNIKÓW MIKROPROCESOROWYCH W NAPDZIE ELEKTRYCZNYM
wewnętrzna magistrala procesora
BD CLK BSY ADM MX2 MX1 MX0
ADCON
MSB bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 LSB
ADDAT
bit 3 bit 2 bit 1 bit 0 bit 3 bit 2 bit 1 bit 0
DAPR
VintAREF VintAGND
Rys.3.1. Schemat blokowy przetwornika a/c.
Przetwornik analogowo-cyfrowy Strona 7
adres
adres
adres
adres
0D8H
0D9H
0DBH
0DAH
Port P6
DAPR
ADDAT
ADCON
wersja ACMOS
dzia
ł
aniem
przetwarzania
Rejestr wyniku
Rejestr steruj
ą
cy
BSY ADM
Rejestr programowania
MX2 MX1 MX0
podzakresu pomiarowego
intAGND
V
podzakresu
Przetwornik
pomiarowego
f
Programowanie
intAREF
analogowo-cyfrowy
V
wpis
GEN
do DAPR
Uk
ł
ad
Multiplexer
GND
AREF
(Sample&Hold)
V
V
AN7
AN0
próbkuj
ą
co-pami
ę
taj
ą
cy
LABORATORIUM STEROWNIKÓW MIKROPROCESOROWYCH W NAPDZIE ELEKTRYCZNYM
5. LITERATURA
1. SIEMENS,  Microcomputer Components. SAB 80515 / SAB 80C515 8 bit
single chip Microcontroller Family . Users Manual.
2. Krzysztof P. Dyrcz, Czesław T. Kowalski, Zdzisław Żarczyński,  Podstawy
techniki mikroprocesorowej , skrypt PWr., Wrocław 1999
3. A. Rydzewski,  Mikrokontrolery jednoukładowe rodziny MCS-51 .
Przetwornik analogowo-cyfrowy Strona 8
LABORATORIUM STEROWNIKÓW MIKROPROCESOROWYCH W NAPDZIE ELEKTRYCZNYM
Przetwornik analogowo-cyfrowy Strona 9
LABORATORIUM STEROWNIKÓW MIKROPROCESOROWYCH W NAPDZIE ELEKTRYCZNYM
1. WSTP
Najprostszym zastosowaniem przetwornika a/c jest jednokrotny pomiar
napięcia z rozdzielczością 8 bitową. Ponieważ w rejestrze ADDAT
przechowywana jest całkowita wielokrotność poziomów kwantowania, wartość
zmierzonego napięcia należy obliczyć ze wzoru:
Ux = ADDAT10 * 1LSB,
przy czym:
ADDAT10 - dziesiętna postać zawartości rejestru ADDAT.
Wynik pomiaru można wyświetlić na linijce diodowej, sterowanej
z dowolnego portu wyjścia, na przykład z portu P5. Jednak lepszym sposobem
 wizualizacji wyniku pomiaru jest wyświetlenie go na ekranie monitora
w postaci dziesiętnej, korzystając z programu napisanego w języku BASIC.
Listing programu w języku BASIC przedstawiono poniżej:
10 CALL 00H
20 U=XBY(100H)
30 V=(U*5)/256
40 PRINT  U = 
50 PRINT USING (##.##),V
60 PRINT  V
70 INPUT  CZY JESZCZE JEDEN POMIAR ? 0-NIE, 1-TAK ,Z
80 IF Z=1 THEN GOTO 10
90 END
przy czym:
CALL 00H - wywołanie podprogramu przetwornika a/c,
U=XBY(100H) - przypisanie zmiennej U wyniku pomiaru zawartego
w zewnętrznej pamięci RAM w komórce o adresie 100H.
Algorytm podprogramu do pomiaru napięcia, który należy napisać
w asemblerze SAB 535 jest następujący:
Przetwornik analogowo-cyfrowy Strona 10
LABORATORIUM STEROWNIKÓW MIKROPROCESOROWYCH W NAPDZIE ELEKTRYCZNYM
Start programu
Deklaracja stałych.
Adres początku programu
org $00
Konfiguracja przetwornika.
Start pomiaru
TAK
BSY=1
NIE
Wysłanie wyniku z ADDAT do
zewn. pamięci RAM do
komórki #100
Stop programu
Rys.4.2. Algorytm programu do pomiaru 8-bitowego przetwornika a/c.
2. PRZEBIEG ĆWICZENIA
1. Zapoznać się z wyposażeniem stanowiska.
2. Przygotować moduł sterownika do pracy z przetwornikiem a/c i do
współpracy z komputerem PC.
3. Uruchomić komputer IBM PC.
4. Napisać program w języku asemblera do pomiaru napięcia z rozdzielczością 8
bitów.
5. Uruchomić i przetestować program.
6. Napisać program w języku BASIC do obsługi programu pomiarowego
asembler.
7. Uruchomić program BASIC i wyświetlić wyniki pomiaru na ekranie monitora.
Przetwornik analogowo-cyfrowy Strona 11
LABORATORIUM STEROWNIKÓW MIKROPROCESOROWYCH W NAPDZIE ELEKTRYCZNYM
Przetwornik analogowo-cyfrowy Strona 12
LABORATORIUM STEROWNIKÓW MIKROPROCESOROWYCH W NAPDZIE ELEKTRYCZNYM
1. WSTP
Jeżeli istnieje potrzeba pomiaru z dokładnością 10 bitów, to pomiaru
napięcia Ux zawartego w przedziale 0..5V należy dokonać dwukrotnie. Pierwszy
pomiar odbywa się przy pełnym zakresie pomiarowym 0..5V. Na podstawie
wyniku pomiaru dokonywany jest dobór właściwego podzakresu pomiarowego
do wykonania drugiej operacji przetwarzania a/c. Przy doborze podzakresu
należy spełnić warunki:
" VIntAREF - VIntAGND e" 1V,
" mierzone napięcie nie może znajdować się na granicy podzakresu, ponieważ
wynik drugiego pomiaru może zostać zafałszowany.
Sposób pomiaru z rozdzielczością 10 bitów został przedstawiony na rys. poniżej.
U
pierwszy pomiar 8
5V
bitowy na peł nym
zakresie pomiarowym
VIntAREF - VIntAGND >= 1V
VIntAREF
Ux
VIntGND
drugi pomiar 8 bitowy na
zawężonym zakresie pomia-
rowym
0V
Rys.4.3. Dobór zakresu pomiarowego.
Algorytm doboru podzakresu pomiarowego przedstawiony został poniżej.
Dla lepszego zrozumienia ograniczono się do 4 podzakresów pomiarowych:
0..1.25V, 1.25..2.5V, 2.5V..3.75V, 3.75..5V.
Dobór podzakresu pomiarowego dokonywany jest na podstawie analizy
dwóch najbardziej znaczących bitów wyniku uzyskanego z pierwszego pomiaru.
Jeżeli dwa najbardziej znaczące bity mają wartość 00, to wynik pomiaru
mieści się w przedziale 6 mniej znaczących bitów, czyli może przyjmować
wartości 0..64d (0..3FH), stąd mierzone napięcie znajduje się w zakresie:
5
(0..64)* = 0..1.25V
256
Należy zatem do drugiego pomiaru wybrać zakres 0..1.25V, czyli do rejestru
DAPR wpisać wartość 01000000b = 40H.
Przetwornik analogowo-cyfrowy Strona 13
LABORATORIUM STEROWNIKÓW MIKROPROCESOROWYCH W NAPDZIE ELEKTRYCZNYM
Jeżeli dwa najbardziej znaczące bity mają wartość 01, to wynik pomiaru
mieści się w przedziale 7 mniej znaczących bitów, czyli może przyjąć wartości
64..128d (40H..80H), a mierzone napięcie zmienia się w zakresie:
5
(64..128)* = 1.25..2.5V,
256
do drugiego pomiaru należy zatem wybrać zakres 1.25..2.5V, czyli do rejestru
DAPR wpisać wartość 10000100b = 84H.
Jeżeli dwa najbardziej znaczące bity mają wartość 10, to wynik pomiaru
mieści się w przedziale 8 bitów, czyli przyjmuje wartości 128..192d (80H..C0H).
Mierzone napięcie przyjmuje zatem wartości w zakresie:
5
(128..192)* = 2.5..3.75V,
256
czyli należy wybrać zakres 2.5..3.75V wpisując do rejestru DAPR wartość
11001000b = 0C8H.
W ostatnim przypadku dwa najstarsze bity mogą przyjąć wartość 11.
Wówczas wynik pomiaru mieści się w przedziale 192..255d (C0H..FFH), a
zmierzone napięcie mieści się w zakresie
5
(192..255)* = 3.75..5V,
256
czyli należy wybrać zakres 3.75..5V wpisując do rejestru DAPR wartość
11111100b = 0FCH.
A zatem deklaracja tablicy, w której umieszczone są wartości
podzakresów pomiarowych wygląda następująco:
db #$40, #$84,#$0C8,#$0FC
Wartość mierzonego napięcia obliczana jest na podstawie obu pomiarów
wg wzoru:
A + B*256
U = *5,
1024
przy czym:
A - osiem bitów z drugiego pomiaru,
B - dwa najbardziej znaczące bity z pierwszego pomiaru.
B A
256
1024
Przetwornik analogowo-cyfrowy Strona 14
LABORATORIUM STEROWNIKÓW MIKROPROCESOROWYCH W NAPDZIE ELEKTRYCZNYM
Podobnie jak w pierwszej części ćwiczenia, wynik pomiaru należy
wyświetlić na ekranie monitora, korzystając z programu napisanego w języku
BASIC, przy czym dwa najbardziej znaczące bity z pierwszego pomiaru należy
przesłać do zewnętrznej pamięci RAM do komórki o adresie #101, a osiem bitów
z drugiego pomiaru do komórki o adresie #100.
Listing programu w języku BASIC przedstawiono poniżej:
10 CALL 00h
20 A=XBY(100H)
30 B=XBY(1O1H)
40 U=256*B+A
50 V=(U*5)/1024
60 PRINT  U=
70 PRINT USING (##.##),V
80 PRINT  V
90 INPUT  CZY JESZCZE JEDEN POMIAR ? 0-NIE, 1-TAK ,Z
100 IF Z=1 THEN GOTO 10
110 END
przy czym:
CALL 00H - wywołanie podprogramu przetwornika a/c,
A=XBY(100H) - przypisanie zmiennej A wyniku pomiaru zawartego
w zewnętrznej pamięci RAM w komórce o adresie 100H,
B=XBY(101H) - przypisanie zmiennej B wyniku pomiaru zawartego
w zewnętrznej pamięci RAM w komórce o adresie 101H.
Algorytm podprogramu do pomiaru napięcia z rozdzielczością 10 bitów,
który należy napisać w asemblerze SAB 535 jest następujący:
Przetwornik analogowo-cyfrowy Strona 15
LABORATORIUM STEROWNIKÓW MIKROPROCESOROWYCH W NAPDZIE ELEKTRYCZNYM
Start programu
Deklaracja stałych.
Adres początku programu
org $00
Konfiguracja przetwornika.
Start pomiaru
TAK
BSY=1
NIE
Analiza wyniku pomiaru i
określenie nowego podzakresu
pomiarowego
Zapamiętanie 2 najbardziej
znaczących bitów pomiaru w
komórce o adresie 20H
Wybór podzakresu z tablicy.
Start pomiaru
TAK
BSY=1
NIE
Przesłanie zawartości komórki
#20 do zewn. pamięci RAM do
komórki #100
Przesłanie wyniku 2 pomiaru z
ADDAT do zewn. pamięci
RAM do komórki #100
Stop programu
Rys.4.4. Algorytm programu do przetwarzania 10-bitowego przetwornika a/c.
Przetwornik analogowo-cyfrowy Strona 16
LABORATORIUM STEROWNIKÓW MIKROPROCESOROWYCH W NAPDZIE ELEKTRYCZNYM
2. PRZEBIEG ĆWICZENIA
1. Przygotować moduł sterownika do pracy z przetwornikiem a/c i do
współpracy z komputerem PC.
2. Uruchomić komputer IBM PC.
3. Napisać program w języku asembler do pomiaru napięcia z rozdzielczością 10
bitów.
4. Uruchomić i przetestować program.
5. Zmodyfikować program BASIC.
6. Uruchomić program BASIC, wyświetlić wyniki pomiaru na ekranie monitora.
Przetwornik analogowo-cyfrowy Strona 17


Wyszukiwarka

Podobne podstrony:
Analog 12 72 Vinge, Vernor Original Sin v1 0
Analogia
analogi dla ZIELONEGO
TECHNIKA ANALOG ID 4
cwiczenia analogie dod ODP
Magazine Analog Science Fiction and Fact 2004 Issue 12 December (v1 0) [txt]
staniec, planowanie sieci radiokomunikacyjnych, Radiofonia analogowa
Analog 05 1972 v1 0
Mikser analogowy Allen & Heath ZED10FX
06 Przetwarzanie i rejestrowanie sygnału audio analogowego
Moje usługi dodatkowe DLA TELEFONII ANALOGOWEI OFEROWANE W SYSTEMIE CENTRAL CYFROWYCH
AnalogReference
AnalogReference
Analog 1974 07 v1 0
Analog 1971 07 v1 0
Magazine Analog Science Fiction and Fact 2004
Analog 03

więcej podobnych podstron