wiczenie 5 Woltomierz jednokanaowy
IMiO PW, LPTM, wiczenie 5, Woltomierz jednokanaowy -2- Celem wiczenia jest zapoznanie si# z programow% obsug% prostego przetwornika analogowo-cyfrowego na przykadzie przetwornika ADC84. Do wykonania wiczenia b#d% potrzebne moduy DBLCD (wywietlacz ciekokrystaliczny i klawiatura) oraz DBADDA (przetwornik analogowo-cyfrowy).. Przetwornik analogowo - cyfrowy ADC84 Przetwornik ADC84 znajduj%cy si# na pytce DBADDA jest bardzo prostym ukadem. Z naszego punktu widzenia jego najwa4niejsze parametry to: rozdzielczo pomiaru: 8 bitów, b%d wzgl#dny: LSB, czas konwersji: dla konfiguracji jak w module DBADDA, ok. µs, zakres napi#cia wejciowego: - V ref, w module DBADDA - 5V; Start konwersji powodowany jest przez wymuszenie opadaj%cego zbocza na wejciu \WR (Rys..). Ukad zaprojektowany jest w taki sposób, 4e zapisanie dowolnej wartoci pod adres przetwornika powoduje wytworzenie impulsu \WR, a co za tym idzie start konwersji. Zako>czenie konwersji sygnalizowane jest stanem niskim na wyjciu \INTR, co mo4e spowodowa zgoszenie przerwania (wyzwalanie opadaj%cym zboczem). W tym celu nale4y zewrze jedn% ze zworek konfiguracyjnych (J3 lub J4) na pytce (Rys.4.). Na rys. przedstawione s% zale4noci czasowe cyklu akwizycji i przetwarzania, natomiast na rys.2. zale4noci czasowe odczytu danej z przetwornika. Rys.. Timing przetwarzania przetwornika ADC84.
IMiO PW, LPTM, wiczenie 5, Woltomierz jednokanaowy -3- Rys.2. Timing odczytu danej z przetwornika ADC84. Rys. 3. Zale4no cz#stotliwoci zegara przetwornika ADC84 od wartoci pojemnoci oscylatora. Dla zastosowanych w module DBADDA wartoci elementów oscylatora ( k, 5 pf 65 khz) czas przetwarzania T C (zgodnie z zale4noci% przedstawion% na rys.3.) wynosi okoo µs, natomiast czas od zgoszenia przerwania do odczytu danych musi wynosi co najmniej 8 taktów zegara przetwornika, czyli w naszym przypadku 8*,5µs = 2µs. Oznacza to, 4e po przyj#ciu przerwania mikrokontroler mo4e dokona odczytu z przetwornika dopiero po co najmniej cyklach maszynowych (cykl maszynowy dla stosowanego zegara =,592 MHz
IMiO PW, LPTM, wiczenie 5, Woltomierz jednokanaowy -4- jest równy ok., µs). Wi#cej informacji na temat przetwornika ADC84 mo4na znalej w karcie katalogowej (firmy National Semiconductors) znajduj%cej si# w komputerze. 2. Konfiguracja moduu DBADDA Adres bazowy moduu DBADDA jest równy FCCH, a adresy poszczególnych funkcji s% nast#puj%ce: FCDH - wybór kanau (adres multipleksera analogowego); FCEH - adres przetwornika A/D (do zapisu lub odczytu). Wejcia analogowe IN-IN7 do%czane s% do wejcia przetwornika ADC84 (U4) przez 8- kanaowy multiplekser analogowy CD45 (U5). Ukad ten posiada 4 wejcia steruj%ce: INH, A, B i C. Stan wysoki na wejciu INH (inhibit) blokuje przenoszenie sygnau z linii wejciowych X-X7 multipleksera na jego wyjcie X. W module DBADDA wejcie INH multipleksera na stae zwarto do masy, co oznacza, 4e wyboru aktywnego kanau multipleksera dokonuje si# wy%cznie za pomoc% wej A, B i C, zgodnie z poni4sz% tabel%: INH C B A KANAP ON x x x 2 3 4 5 6 7 TADEN W module DBADDA pod jednym adresem znajduj% si# dwa multipleksery analogowe CD45. Jeden z nich (U5)wspópracuje z przetwornikiem analogowo-cyfrowym, drugi (U) z przetwornikiem cyfrowo-analogowym. Bajt wysyany pod adres multiplekserów ma nast#puj%cy format: B7 B6 B5 B4 B3 B2 B B INH DA C DA B DA A DA X C AD B AD A AD Indeks DA oznacza multiplekser wspópracuj%cy z przetwornikiem cyfrowo-analogowym, a indeks AD z przetwornikiem analogowo-cyfrowym. Symbol X oznacza, 4e warto bitu jest dowolna. Poniewa4 przetwornik cyfrowo-analogowy nie jest w wiczeniu u4ywany, nale4y zablokowa mo4liwo przenoszenia sygnau przetwornika na wyjcia analogowe, czyli ustawi B7 =. 3. Zadanie Nale4y zrealizowa jednokanaowy woltomierz cyfrowy. Na wywietlaczu LCD powinna by wywietlona warto mierzonego napi#cia (cz# cakowita i dwie cyfry po przecinku). Nale4y zastanowi si# nad celowoci% i ewentualnie zrealizowa urednianie wyników kilku pomiarów. W programie trzeba wykorzysta przerwanie zewn#trzne INT do sygnalizacji ko>ca konwersji przetwornika. Do prawidowego dziaania ukadu konieczne jest ustawienie zwory na pytce BDADDA w pozycji J4. Przed pierwszym zapisem do przetwornika nale4y odpowiednio zaprogramowa multiplekser (operacj# t# wykonuje si# tylko jeden raz). Pierwszy zapis do przetwornika musi znalej si# w programie gównym.
IMiO PW, LPTM, wiczenie 5, Woltomierz jednokanaowy -5- UWAGA!!! Przerwanie zewn#trzne musi by wyzwalane opadaj%cym zboczem (a nie niskim poziomem). Tak% konfiguracj# otrzymuje si# przez ustawienie bitu IT w rejestrze specjalnym TCON. W procedurze obsugi przerwania zewn#trznego powinny si# znalej nast#puj%ce funkcje: odczyt z przetwornika A/C konwersja wartoci binarnej na dziesi#tn% przepisanie uzyskanej wartoci do bufora wywietlacza zainicjowanie kolejnej konwersji (zapis do przetwornika A/C) 4. Algorytm konwersji warto,ci odczytanych z przetwornika na system dziesi/tny Je4eli przyjmiemy, 4e binarna warto odczytana z przetwornika wynosi X, to warto dziesi#tn% otrzymujemy w nast#puj%cy sposób: d [V] = X napi#cie_referencyjne[v]/255. W naszym przypadku napi#cie referencyjne wynosi 5 V, zatem mo4na napisa, 4e: d [V]= X 5[V]/255 = X/5 Mikrokontroler 85 posiada instrukcj# dzielenia liczb cakowitych DIV AB. Wykonanie tej instrukcji powoduje podzielenie zawartoci akumulatora przez zawarto rejestru B traktowanych jako liczby cakowite. W wynik dzielenia (liczba cakowita) zostaje wpisany do akumulatora, a do rejestru B zostaje wpisana reszta z dzielenia. Przykadowo, je4eli pocz%tkowo w rejestrze A znajdowaa si# liczba 9, a w rejestrze B liczba 2, to po wykonaniu instrukcji DIV AB w rejestrze A znajduje si# liczba 4, a w rejestrze B liczba (2 4+=9). Algorytm konwersji. W akumulatorze umieszczamy warto odczytan% z przetwornika. 2. W rejestrze B umieszczamy liczb# 5 (33H). 3. Wykonujemy instrukcj# DIV AB 4. Warto znajduj%ca si# teraz w akumulatorze, to cz# cakowita wyniku dzielenia. Dodajemy do niej 3H (aby uzyska jej kod ASCII) i wysyamy na wywietlacz: call DanaLCD 5. Na wywietlacz wysyamy kropk# dziesi#tn%: mov A, #. call DanaLCD 6. Reszt# z dzielenia, znajduj%c% si# w rejestrze B, mno4ymy przez : mov A, # mul AB 7. Poniewa4 maksymalna reszta z dzielenia to 5, istnieje mo4liwo, 4e wynik instrukcji mno4enia b#dzie du4szy ni4 jeden bajt (np. 5 = 5 > 255). Instrukcja mno4enia (MUL AB) dziaa tak, 4e modszy bajt wyniku mno4enia jest przechowywany w A, a starszy w rejestrze B. Aby si# zorientowa z jakim przypadkiem mamy do czynienia, wystarczy sprawdzi czy rejestr B po wykonaniu mno4enia jest równy zeru, czy nie.
IMiO PW, LPTM, wiczenie 5, Woltomierz jednokanaowy -6-7.. Je4eli rejestr B jest równy zeru, to wynik mno4enia (akumulator) dzielimy przez 5, dodajemy 3H i wysyamy na wywietlacz. 7.2. Je4eli rejestr B nie jest równy zeru, to wiadomo, 4e jest równy jednoci. Wynik mno4enia mo4na zapisa nast#puj%co: 256 + A = 255 + + A W tej sytuacji dzielenie przez 5 b#dzie wygl%dao nast#puj%co: (255 + + A)/5 = 255/5 + ( + A)/5 = 5 + A/5 Zwi#kszamy zatem akumulator o (nie ma obaw o przepenienie) i dzielimy go przez 5 (DIV AB). Nast#pnie dodajemy do wyniku 5, a potem 3H i wysyamy na wywietlacz. 8. Wynik dzielenia, przechowywany w rejestrze B ponownie mno4ymy przez oraz wykonujmy punkty 7-7.2. W zasadzie, aby uzyska lepsz% dokadno przed wywietleniem drugiej cyfry po przecinku nale4aoby wykona punkty 6-7.2 jeszcze raz i ewentualnie zwi#kszy liczb# setnych o, je4eli otrzymana liczba tysi#cznych jest 5. UWAGA: Prosz# zwróci uwag#, 4e opisana wy4ej procedura jest wy%cznie procedur% konwersji postaci binarnej na BCD po%czona z procedur% standaryzacji wyniku (wynik binarny = 255 ma dawa na wywietlaczu warto 5.) w celu wywietlenia wyniku. Nie jest to procedura kalibracji, któr% nale4aoby przeprowadzi aby wywietlany wynik odpowiada rzeczywistej wartoci napi#cia wejciowego rzeczywisty woltomierz mo4e mie offset (dla napi#cia wejciowego = wynik nie jest równy ) oraz nachylenie charakterystyki ró4ni%ce si# od wzorcowego. W celu wykonania kalibracji nale4aoby wi#c zmierzy dwa znane napi#cia a nast#pnie na podstawie tych pomiarów obliczy dwa wspóczynniki charakterystyki przejciowej woltomierza aproksymowanej lini% prost% y = ax + b wyznaczy wspóczynniki a i b.
IMiO PW, LPTM, wiczenie 5, Woltomierz jednokanaowy -7- Rys.4 Schemat ideowy pakietu DBADDA