w4-sw_w_us - Katedra Inżynierii Komputerowej Politechniki

Download Report

Transcript w4-sw_w_us - Katedra Inżynierii Komputerowej Politechniki

Wykład 4
Przetwornik Analogowo-Cyfrowy
(Analog to Digital Converter – ADC)
oraz
Jednostki Czasowo-licznikowe (Timery)
SAB80C537
dr inż. Andrzej Przybył
Katedra Inżynierii Komputerowej
Politechnika Częstochowska
1
Przetwornik Analogowo-Cyfrowy
Wstęp
• Zadaniem przetwornika analogowo-cyfrowego jest konwersja
wartości napięcia elektrycznego na wartość liczbową w formacie
binarnym
• Sygnał analogowy w postaci napięcia elektrycznego z zakresu 0..5V
(występujący na wybranych nóżkach procesora) jest konwertowany
na liczbę z zakresu 0..(2n) -1.
• Im większa liczba bitów (n) przetwornika tym przetwornik jest
dokładniejszy (ma większą rozdzielczość).
• Przykładowo dla przetwornika 8-bitowego (występującego w systemie
SAB80C537) n=8 a zakres wynosi odpowiednio 0..255.
2
Podstawowe parametry
przetwornika ADC
• 12 multiplexowanych
kanałów wejściowych
współdzielonych ze
standardowymi (GPIO)
funkcjami portów P7, P8
3
Podstawowe parametry
przetwornika ADC, cd.
• Programowalne wewnętrzne
poziomy referencyjne
(zakres przetwarzania może
być zawężony). Możliwe
ustawienie 16-poziomów
każdego (górnego i dolnego)
z napięć referencyjnych z
zakresu 0..5V
• 8-bitowa rozdzielczość
przetwarzania zakresu
napięć referencyjnych
• Wybieralny zewnętrzny lub
wewnętrzny start konwersji
4
Rejestr ADCON0 i ADCON1
5
Wybór kanału do przetwarzania
6
Programowanie zakresów konwersji
• Rejestr DAPR
7
Przykładowa procedura
Odczyt kanału nr 7 (port P7.7)
odczytaj_AD1:
CLR ADEX ;konwersja uruchamiana wewnętrznie
;(przez program)
CLR ADM
;pojedyncza konwersja
MOV ADCON1,#7 ;numer kanału wg tabeli
mov DAPR,#0 ;ustawienie zakresu
;przetwarzania 0..5V, i wystartowanie
;konwersji
czekaj1:
jb BSY, czekaj1 ;oczekiwanie na koniec przetwarzania
mov A,ADDAT
ret
;odczyt wyniku z rejestru wynikowego
;powrót do programu wywołującego
8
Jednostki czasowo-licznikowe
TIMERY
• Procesor SAB80C537 posiada kilka jednostek
czasowo-licznikowych, tzw. timerów:
• T0, T1 – uniwersalne timery identyczne jak we
wszystkich procesorach z rodziny 80C51
• T2 i Compare Timer – są dodatkowymi timerami
dostosowanymi do zadań pomiaru i generacji
przebiegów impulsowych takich jak Modulacja
Szerokości Impulsu (ang. PWM) itp.
9
Timery T0 i T1, tryby pracy i konfiguracja,
REJESTR TMOD (89h SFR)
10
Timery T0 i T1, tryby pracy i konfiguracja
11
Timery T0 i T1. Tryb 1 – 16-bitowy
• TH0, TL0 (TH1, TL1) są połączone kaskadowo
tworząc timer 16-bitowy
• Timer jest napędzany zegarem o częstotliwości OSC/12
• Przepełnienie timera powoduje wyzerowanie TL0, TH0 i ustawienie
TF0 (TF1)
12
Timery T0 i T1. Tryb 2 – 8-bitowy
z automatycznym przeładowywaniem
• TL0 tworzy 8-bitowy timer
• Przy przepełnieniu (oprócz ustawienia TF0) PRZEŁADOWYWANA
jest zawartość TL0 wartością początkową zawartą w TH0 (TH0 nie
ulega zmianie)
13
Pytania kontrolne
• Podać i wyjaśnić zależność rozdzielczości od liczby
bitów przetwornika analogowo-cyfrowego (AC)
• Wyjaśnić pojęcia multipleksowania kanałów wejściowych
przetwornika AC
• Opisać w punktach procedurę odczytu przetwornika AC
• Podać podstawowe dane (rozdzielczości, tryby pracy
itp.) jednostek czasowo licznikowych (tzw. timerów) T0 i
T1 mikrokontrolera SAB80C537
• Opisać zjawisko przepełniania się liczników
(funkcjonowanie flag przepełnienia, pojemność licznika a
jego liczba bitów, możliwości wpływania na szybkość
przepełniania się licznika w systemie z
mikrokontrolerem).
14