Projekt
Data wykonania ćwiczenia: 2008-01-20
System mikroprocesorowy
(INTEL 8052)
Autor:
Jacek Jędruch
Mikroprocesory
Rok akademicki
Termin
Rodzaj
studiów
Kierunek
Prowadzący
Grupa
Sekcja
2007/2008
Piątek
17:15 – 20:15
USM
INF
BSz
1
1
1. Wprowadzenie.
Stanowisko pozwala na przebadanie wybranych układów współpracujących
z 8-bitowym mikrokontrolerem INTEL 8052. W skład badanego systemu
mikroprocesorowego, umieszczonego w stanowisku wchodzą elementy
przedstawione na rys.1.:
- Mikrokontroler 80C32 wraz z pamięcią programu,
- Klawiaturą z zespołem diod sygnalizacyjnych,
- Wyświetlacz LED,
- Pamięć trwała EEPROM,
- Zegar czasu rzeczywistego RTC,
- Przetworniki analogowo-cyfrowy i cyfrowo-analogowy(A/C i C/A).
+
RTC
0
1
2 AC
3
CA
Ux
2V
0V
U
T
CZUJNIK
TEMP.
10 mV/K
-
U
ref
Wy
C/A
EEPROM
+ 5V
R
R
MIKROKONTROLER
P3.7
P3.6
P3.5
P3.4
P3.3
P3.2
P3.1
P3.0
P1.7
P1.6
P1.5
P1.4
32 - BITOWY
REJESTR
PRZESUWOWY
OFF
LOAD
CLOCK
DATA
ENTER
DOWN
UP
ESCAPE
ESCAPE UP DOWN
ENTER
P1.3
P1.2
P1.1
P1.0
PAMIĘĆ
PROGRAMU
- +
P0 P2
SDA
SCL
WYŚWIETLACZ
Rys. 1. System mikroprocesorowy.
1.1. Klawiatura z zespołem diod sygnalizacyjnych.
Klawiaturę stanowią cztery klawisze:
UP (góra),
DOWN (dół),
ENTER (wprowadź),
ESCAPE (wyjście),
przyciśnięcie których powinno zapoczątkować wykonanie odpowiedniego
podprogramu realizującego wymagane zadanie.
R8
10k
R6
10k
R5
10k
R7
10k
1
2
1
2
1
2
1
2
Vcc
P16
80C32
P1.7
P1.6
P1.5
P1.4
ESCAPE
UP
DOW
N
ENTER
5
6
U1C
74HC04
8
9
U1D
74HC04
10
11
U1E
74HC04
3
4
U1B
74HC04
1
2
U1A
74HC04
P3.4
P3.5
P3.6
P3.7
R2
510
R3
510
R4
510
R1
430
LED2
GREEN
LED3
GREEN
LED4
GREEN
LED1
GREEN
Vcc
R10
100
C3
100n
R9
100
C2
100n
R11
100
C4
100n
R12
100
C1
100n
P1.0
Rys. 2. Schemat układu klawiatury i diod sygnalizacyjnych.
Zastosowane rozwiązanie układowe klawiatury powoduje utrzymywanie się
stanu wysokiego (przy otwartych wyłącznikach) na odpowiednich
wyprowadzeniach portu: P1.4 do P1.5 mikrokontrolera. Zamknięcie
wyłącznika powoduje zwarcie do masy i podanie stanu niskiego. Wykrycie
zatem naciśnięcia danego klawisza polega na odczytaniu wartości logicznej
z odpowiedniego bitu rejestru (P1
≡
90h w SFR) i sprawdzeniu czy jest to
stan niski. Efektem naciśnięcia dowolnego klawisza może być np.
zapalenie diody LED w porcie P3 (P3.4 .. P3.7 - poprzez wpisanie stanu
niskiego do odpowiednich bitów rejestru o adresie B0h w SFR).
Przykładowy program obsługi klawisza ENTER, świecenia diody D4 i użycia
sygnału dźwiękowego podano niżej (źródło progr. napisane w t51.exe):
org
0
ENTER
EQU 97h
;przypisz klaw. ’ENTER’ adres 97h tj. P1.7
LED4
EQU 0B4h
;przypisz diodzie LED4 adres B4h tj. P3.4
SYGNAL
EQU 90h
;przypisz sygn. dŸwiêk. adres 90h tj. P1.0
KLAWISZ:
;etykieta KLAWISZ
JNB
ENTER, NEGUJ_LED4
;jeśli w kom. ’ENTER’ (bit 97h) jest ’0’ to skocz
;do NEGUJ_LED4 (jeśli ’1’ następny rozkaz)
SJMP KLAWISZ
;skocz do etykiety KLAWISZ
NEGUJ_LED4:
;etykieta NEGUJ_LED4
CPL
LED4
;neguj zawartość komórki LED4 (bit B4h)
CPL
SYGNAL
;neguj zawartość komórki SYGNAL (bit 90h)
LCALL
MOMENT
;skocz do podprogramu MOMENT
SJMP
KLAWISZ
;skocz do etykiety KLAWISZ
MOMENT:
;etykieta MOMENT (pętla opóźn. czasowego)
MOV R1, #4
;wpisz do rej. R1 wartość 4
M1:
;etykieta M1
MOV R2, #255
;wpisz do rej. R2 wartość 255
M2:
;etykieta M2
MOV R3, #255
;wpisz do rej. R3 wartość 255
M3:
;etykieta M3
DJNZ R3, M3
;zmniejsz zawartość R3 o 1, jeśli różne od 0
skocz
;do etykiety M3 (jeśli 0 przejdź do nast. rozkazu)
DJNZ R2, M2
;zmniejsz zawartość R2 o 1, jeśli różne od 0
skocz
;do etykiety M2 (jeśli 0 przejdź do nast. rozkazu)
DJNZ R1, M1
;zmniejsz zawartość R1 o 1, jeśli różne od 0
skocz
;do etykiety M1 (jeśli 0 przejdź do nast. rozkazu)
RET
;wróć z podprogramu
Powyższy program realizuje prostą obsługę klawisza ENTER, którego
każde naciśnięcie powoduje zapalenie/zgaszenie diody LED4 z
jednoczesnym wytworzeniem sygnału dźwiękowego. Warto zwrócić uwagę
na podprogram MOMENT, który realizuje opóźnienie czasowego
eliminujące zjawisko drgań styków przełączników klawiatury. Brak takiego
opóźnienia może spowodować wielokrotne zapalanie i zgaszenie diody
LED4 podczas pojedynczego naciśnięcia klawisza ENTER.
1.2. Wyświetlacz elektroluminescencyjny LED.
Wyświetlacz składa się z czterech wskaźników 7 - segmentowych
współpracujących z 32 - bitowym rejestrem przesuwowym zgodnie ze
schematem podanym na rys. 3.
SER
14
SRCLK
11
SRCLR
10
RCLK
12
E
13
O0
15
O1
1
O2
2
O3
3
O4
4
O5
5
O6
6
O7
7
Q7
9
U1
74HC595
SER
14
SRCLK
11
SRCLR
10
RCLK
12
E
13
O0
15
O1
1
O2
2
O3
3
O4
4
O5
5
O6
6
O7
7
Q7
9
U2
74HC595
SER
14
SRCLK
11
SRCLR
10
RCLK
12
E
13
O0
15
O1
1
O2
2
O3
3
O4
4
O5
5
O6
6
O7
7
Q7
9
U3
74HC595
SER
14
SRCLK
11
SRCLR
10
RCLK
12
E
13
O0
15
O1
1
O2
2
O3
3
O4
4
O5
5
O6
6
O7
7
Q7
9
U4
74HC595
DP
5
g
10
9
e
1
d
2
c
4
b
6
a
7
A1
3
A2
8
L1
7SEGLED
DP
5
g
10
9
e
1
d
2
c
4
b
6
a
7
A1
3
A2
8
L2
7SEGLED
DP
5
g
10
9
e
1
d
2
c
4
b
6
a
7
A1
3
A2
8
L3
7SEGLED
DP
5
g
10
9
e
1
d
2
c
4
b
6
a
7
A1
3
A2
8
L4
7SEGLED
VCC
VCC
VCC
VCC
P30
P31
P32
P33
P31
P32
P33
P31
P32
P33
P31
P32
P33
1
2
3
4
5
6
7
8
16
15
14
13
12
11
10
9
RP1
8 x
RES
1
2
3
4
5
6
7
8
16
15
14
13
12
11
10
9
RP2
8 x
RES
1
2
3
4
5
6
7
8
16
15
14
13
12
11
10
9
RP3
8 x
RES
1
2
3
4
5
6
7
8
16
15
14
13
12
11
10
9
RP4
8 x
RES
Vcc
80C32
P3.3
P3.2
P3.1
P3.0
DATA
CLOCK
LOAD
OFF
Rys. 3. Schemat podłączenia wyświetlaczy 7 - segmentowych.
Wyświetlenie czterech dowolnych znaków wymaga szeregowego przesłania
32 bitów danych z wyprowadzenia portu P3.0 (DATA), przy czym każdemu
bitowi towarzyszy takt zegara z wyprowadzenia P3.1 (CLOCK). Po
przesłaniu wszystkich bitów należy zmienić stan sygnału LOAD (P3.2) z
niskiego na wysoki aby przepisać wprowadzone dane na wyjścia Q0 .. Q7
rejestrów U1 .. U4, co przy niskim stanie sygnału OFF (P3.3) spowoduje
wyświetlenie odpowiednich znaków na wyświetlaczu. Można również
wysłać dowolną liczbę bitów danych i w dowolnym momencie uaktywnić
sygnał LOAD wyświetlając tym samym dotąd przesłane dane. Można
również w dowolnym momencie zgasić wyświetlacz ustawiając sygnał OFF
w stan wysoki. Należy pamiętać, że przy tak połączonym wyświetlaczu
stanem aktywnym powodującym świecenie danego segmentu jest stan
niski (’0’). Bity danych należy przesyłać w kolejności od najmłodszego do
najstarszego, co odpowiada segmentom w kolejności a, b, .. , g, DP (DP -
przecinek dziesiętny). Poniżej przedstawiono opis poszczególnych
segmentów i przykład zapisu wybranej cyfry.
f
e
d
c
b
DP
g
a
zapis cyfry 5 (bez przecinka dziesiętnego)
(MSB) (LSB)
DP g f e d c b a
5
≡
1 0 0 1 0 0 1 0 b
≡
92h
Przykładowy program wysłania cyfry ’5’ na wyświetlacz :
org
0
DATA
EQU 0B0h
CLOCK
EQU 0B1h
LOAD
EQU 0B2h
OFF
EQU 0B3h
POCZATEK:
MOV P3, #0
;zerowanie portu P3
MOV R1, #4
;określenie liczby przesłań danych (4 x 8 bitów)
WYSLIJ_5:
;etykieta powtarzana w każdej pętli
LCALL
WPIS_CYFRY_5
;wywołanie podprogr. wysłania 8 bitów danych
DJNZ
R1, WYSLIJ_5
;zmniejsz. R1 o 1 i jeśli różne od 0 to skok do et.
SETB
LOAD
;ustaw bit LOAD - wysłanie danych na wyśw.
LCALL
MOMENT
;wywołanie zwłoki czasowej
SETB
OFF
;ustaw bit OFF - wygaszenie wyświetlacza
LCALL
MOMENT
;wywołanie zwłoki czasowej
SJMP
POCZATEK
;skok do początku programu
WPIS_CYFRY_5:
;podprogram wysłania cyfry 5
CLR
DATA
;zeruj bit DATA - LSB cyfry 5 - zapal segm. ’a’
LCALL
CLK
;wywołanie podpr. wytwarzającego takt zegara
SETB
DATA
;ustaw bit DATA - 2 bit cyfry 5 - zgaœ segm.’ b’
LCALL
CLK
;takt zegara
CLR
DATA
;zeruj bit DATA - 3 bit cyfry 5 - zapal segm. ’c’
LCALL
CLK
;takt zegara
LCALL
CLK
;takt zegara dla 4-go bitu
SETB
DATA
;ustaw bit DATA - 5 bit cyfry 5 - zgaœ segm.’ e’
LCALL
CLK
;takt zegara
CLR
DATA
;zeruj bit DATA - 6 bit cyfry 5 - zapal segm. ’f’
LCALL
CLK
;takt zegara
LCALL
CLK
;takt zegara dla 7-go bitu
SETB
DATA
;ustaw bit DATA - 5 bit cyfry 5 - zgaœ segm.’ e’
LCALL
CLK
;takt zegara
RET
;powrót z podprogramu
CLK:
;podprogram sygnału zegarowego
SETB
CLOCK
;ustaw bit CLOCK - zbocze narastające
CLR
CLOCK
;zeruj bit CLOCK - zbocze opadające
RET
;powrót z podprogramu
MOMENT:
;podpr. zwłoki czasowej - działanie jak wcześniej
MOV
R5, #8
M1:
MOV
R6, #255
M2:
MOV
R7, #255
M3:
DJNZ
R7, M3
DJNZ
R6, M2
DJNZ
R5, M1
RET
Powyższy, najprostszy program obsługi wyświetlacza, działający w
nieskończonej pętli powoduje cykliczne, chwilowe wyświetlenie liczby:
5 5 5 5 i następnie wygaszenie wyświetlacza.
1.3. Pamięć trwała EEPROM szeregowa z magistralą I2C.
Pamięci EEPROM są pamięciami trwałymi (dane są zachowywane po
wyłączeniu napięcia zasilania), które mogą być wielokrotnie
programowane i kasowane elektrycznie przez użytkownika. Pamięci
szeregowe, w odróżnieniu od pamięci równoległych, charakteryzuje
szeregowy odczyt i wpis danych oraz adresów. Dostęp szeregowy oznacza,
że w jednej chwili, określonej taktem zegara (CLK), użytkownik może
odczytać lub zapisać do pamięci tylko 1 bit danych. Interfejs szeregowy
pozwala na znaczne zmniejszenie obudowy pamięci (DIP08) oraz znaczne
zmniejszenie liczby wyprowadzeń, przy jednoczesnym wydłużeniu cykli
odczytu i zapisu, co nie zawsze jest wadą. W projektowanych i
produkowanych obecnie urządzeniach elektronicznych (magnetowidach,
telewizorach, kamerach itp.) stosowane są szeroko mikrokontrolery oraz
specjalizowane i programowane układy scalone. W związku z tym w
urządzeniach takich zachodzi konieczność przekazywania informacji
między poszczególnymi układami. Do tego celu przeznaczona jest
magistrala I2C (Inter Integrated Circuits) składająca się z dwóch
przewodów (linii): SDA (serial data) - linii danych (w ćwiczeniu przyjęto
oznaczenie Dane) i SCL - (serial clock) - linii zegara (w ćwiczeniu przyjęto
oznaczenie CLK). Sposób podłączenia pamięci w badanym układzie
przedstawia rys. 4.
80C32
P1.3
P1.2
P1.1
SCL
6
SDA
5
A0
1
A1
2
A2
3
U1
24C02 I2C_EEPROM
R1
2K4
R2
2K4
D1
BAT43
Vcc
SCL
SDA
SDA'
Rys. 4. Schemat połączenia pamięci z systemem mikroprocesorowym.
Przekazywanie informacji magistralą I2C odbywa się binarnie, szeregowo i
dwukierunkowo. Następujące nazwy używane w opisie magistrali:
- nadajnik danych - układ wysyłający dane na magistralę,
- odbiornik danych - układ odbierający dane z magistrali,
- układ zarządzający (Master) - układ inicjujący transmisję danych,
generujący przebieg taktujący (zegarowy) i kończący transmisję danych,
- układ podporządkowany (Slave) - układ adresowany i sterowany przez
układ zarządzający,
- arbitraż - procedura powodująca, w przypadku próby wysterowania
magistrali przez więcej niż jeden układ zarządzający, ustalenie kolejności
dostępu bez utraty informacji,
- synchronizacja - procedura synchronizacji przebiegu taktującego w
przypadku próby dostępu do magistrali dwóch lub więcej układów.
Magistrala I2C charakteryzuje się następującymi właściwościami:
- dwuprzewodowe (trzecie) połączenie -masa- nie jest brane pod uwagę,
- dwukierunkowy przepływ sygnałów przewodem magistrali,
- brak ograniczeń co do liczby układów zarządzających lub
podporządkowanych dołączonych do magistrali pod warunkiem nie
przekroczenia dopuszczalnej sumarycznej pojemności obciążenia (400 pF)
każdej z linii sygnałowych oraz 4 metrowej długości przewodów łączących,
- 7 - bitowy adres każdego z urządzeń,
- możliwość nadania każdemu z urządzeń statusu układu zarządzającego
lub podporządkowanego w czasie transmisji danych,
- procedura arbitrażu uniemożliwiająca utratę informacji w czasie próby
dostępu do magistrali jednocześnie przez więcej niż jeden układ
zarządzający,
- 8-bitowa transmisja danych, przy czym pierwszy bajt zawiera 7 - bitowy
adres układu podporządkowanego (nie może być dwóch lub więcej ukł. o
tym samym adresie) i 1- bitową informację o kierunku transmisji,
- potwierdzenie odbioru każdego bajtu danych przez odbiornik,
- maksymalna prędkość transmisji - 100 kbitów/s.
Przykładowe przebiegi odczytu i zapisu bajtu danych:
Dane
CLK
Dane
CLK
Dane
CLK
1 0 1 0 A2 A1 A0 R/W
A7 A6 A5 A4 A3 A2 A1 A0
D7 D6 D5 D4 D3 D2 D1 D0
1
2
3
ACK
ACK
ACK
bit startu
bit stopu
1
+
+
- wpis bajtu danych do pamięci (R/W = 0),
+
- odczyt bajtu danych spod bieżącego adresu (R/W = 1),
+
+
+ - odczyt bajtu danych spod wybranego adresu.
2
3
1
3
1
1
2
2
2
3
Zastosowano pamięć typu NM 24C02 o 8-bitowym słowie danych i
pojemności 2k bitów, która umożliwia zapis i odczyt pojedynczego bajtu
danych o dowolnym adresie lub całej strony danych (16 bajtów), dzięki
zastosowaniu wewnętrznego licznika automatycznie zwiększającego adres.
Wejścia A2, A1, A0 oznaczające adres (numer) urządzenia (pamięci)
zgodnie z rys. 4. są ustawione w stan niski (’0’). Dane należy przesyłać
pinem P1.3, natomiast odbierać P1.2 (w trakcie wysyłania należy
utrzymywać P1.2 w stanie wysokim).
1.4. Zegar czasu rzeczywistego RTC.
W modelu zastosowano układ RTC typu MK 41T56 z wewnętrznym
oscylatorem o częstotliwości 32,768 kHz i dodatkową pamięć statyczną o
pojemności 56 bajtów (56 x 8 bitów). Pierwsze 8 bajtów jest przeznaczone
do wpisu funkcji zegara i kalendarza w formacie BCD. Adres i dane
przesyłane są szeregowo magistralą I2C (analogicznie jak w przypadku
wcześniej opisanej pamięci EEPROM). Wewnętrzny rejestr adresowy jest
automatycznie zwiększany po wpisaniu bajtu danych. Zegar posiada układ
podtrzymania w przypadku wyłączenia napięcia zasilania lecz nie został on
wykorzystany w stanowisku. Schemat podłączenia układu do systemu
mikroprocesorowego przedstawia rys. 5.
80C32
P1.3
P1.2
P1.1
SDA'
Vcc
SCL
SDA
R1
2k4
R2
2k4
osc1
1
osc0
2
VCC
8
BAT
3
FT/OUT
7
VSS
4
SCL
6
SDA
5
U1
MK41T56 I2C_RTC
32,768 kHz
R3
4k3
R4
10k
D2
1N4148
+
CE1
470u
Vcc
D1
BAT43
Rys. 5. Schemat podłączenia układu RTC.
Kolejność wprowadzania poszczególnych bajtów danych podaje
następująca mapa struktury wewnętrznej układu MK 41T56:
Dane
Funkcja/zakres
Adres D7
D6
D5
D4
D3
D2
D1
D0
format BCD
0
ST
10 sekund
Sekundy
Sekundy
00 - 59
1
X
10 minut
Minuty
Minuty
00 - 59
2
X
X
10 godzin Godziny
Godziny
00 - 23
3
X
X
X
X
X
Dzień tyg.
Dni tyg.
01 - 07
4
X
X
10 dni
Dzień
Dni
01 - 31
5
X
X
X
10
m
Miesiąc
Miesiące
01 - 12
6
10 lat
Lata
Rok
00 - 99
7
OUT FT
S
Kalibracja
Kontrola
-
8 -
63
D7
D6
D5
D4
D3
D2
D1
D0
Dane
-
Oznaczenia: S - bit znaku, FT - test częstotliwości, ST - bit stopu, OUT -
poziom wyjścia, X - nie istotne.
Podstawowe parametry pracy magistrali I2C są takie jak podano
wcześniej, w związku z tym należy pamiętać, że obowiązują następujące
zasady:
- transmisja danych może nastąpić dopiero po zwolnieniu magistrali przez
inne urządzenie np. pamięć EEPROM,
- podczas transmisji dane muszą być ustalone przed taktem zegarowym,
- zmiany stanu na linii danych (SDA) podczas wysokiego stanu sygnału
zegarowego (SCL) są traktowane jako sygnały sterujące,
- magistrala jest wolna, gdy linie danych i zegara są w stanie wysokim,
- bit startu polega na wykonaniu następującej sekwencji zmian linii danych
i zegara (rys. 6.): zmiana danych (SDA) ze stanu wysokiego na niski
podczas wysokiego stanu sygnału zegara (SCL),
- bit stopu: zmiana danych (SDA) ze stanu niskiego na wysoki (rys. 6.)
podczas wysokiego stanu sygnału zegarowego (SCL),
- zmiana danych może następować tylko podczas stanu niskiego sygnału
zegarowego,
- każdemu bitowi danych towarzyszy jeden takt zegara,
- każda transmisja rozpoczyna się bitem startu i kończy bitem stopu,
liczba bajtów danych jest w zasadzie nie ograniczona,
- po każdym ósmym bicie danych następuje bit potwierdzenia (rys. 6.),
który polega na wystawieniu przez urządzenie stanu niskiego na linii
danych podczas dziewiątego taktu zegara,
Bity startu, stopu oraz potwierdzenie przedstawiają poniższe przebiegi
czasowe:
bit
startu
dane
stabilne
zmiana
danych
SDA
SCL
bit
stopu
start
9
8
1
2
SCL
Master
SDA
dane wyjściowe
nadajnika
SDA
dane wyjściowe
odbiornika
bit danych 1
bit danych 2
bit danych 8
takt zegara
dla
potwierdzenia
Rys. 6. Przebiegi czasowe bitu startu, bitu stopu oraz potwierdzenia.
1.5. Przetworniki A/C i C/A.
W stanowisku zastosowano 8-bitowy przetwornik A/C i 8-bitowy
przetwornik C/A umieszczone we wspólnej obudowie układu PCF 8591
współpracującego z magistralą I2C. Układ PCF 8591 posiada 4
programowane wejścia analogowe oraz jedno wyjście analogowe. Schemat
włączenia układu w system mikroprocesorowy przedstawia rys. 7.
80C32
P1.3
P1.2
P1.1
SDA'
Vcc
SCL
SDA
R3
2k4
R4
2k4
D1
BAT43
R5
820
R6
499
R7
2K
C1
100n
Uw
y
3
2
D2
LM336 2,5
AIN
0
1
AIN1
2
AIN2
3
AIN3
4
VDD
16
VREF
14
AGND
13
VSS
8
VOUT
15
A0
5
A1
6
A2
7
SCL
10
SDA
9
EXT
12
OSC
11
U2
PCF8591 I2C_AC/CA
R2
10
WE
0WE 1
WE 2
STER
2
1
3
T1
BC557C
2
1
3
T2
LM35
WE 3
Vcc
Vcc
- 7
V
1
2
U1A
74HC04
3
4
U1B
74HC04
P3.7
R1
430
LED 1
GREEN
Vcc
Vcc
WE 2
Rys. 7. Schemat podłączenia przetwornika A/C C/A.
Podobnie jak w przypadku układu RTC lub pamięci EEPROM układ wymaga
odpowiedniego zaadresowania, które odbywa się w pierwszym
przesyłanym bajcie o następującej strukturze:
1
R/W
A
0
A
1
A
2
1
0
0
Kod urządzenia
Adres
urządzenia
Odczyt/
zapis
1 - odczyt
0 - zapis
MSB
LSB
Drugi przesyłany bajt ustawia rejestr kontrolny decydujący o trybie pracy
układu. Struktura tego rejestru jest następująca:
0
X
X
X
0
X
X
X
Wybór wejścia (kanału) A/C:
0 0
WE 0
0 1
WE 1
1 0
WE 2
1 1
WE 3
Automatycznie zwiększana
flaga (ustawiana na ’1’)
MSB
LSB
Sposób programowania wejść analogowych:
0 0
cztery pojedyncze wejścia:
WE 0 - kanał 0
WE 1 - kanał 1
WE 2 - kanał 2
WE 3 - kanał 3
0 1
trzy wejścia różnicowe:
1 0
wejścia pojedyncze oraz różnicowe:
1 1
dwa wejścia różnicowe:
Flaga uaktywniająca wyjście analogowe (jeśli
ustawiona w stan ’1’).
WE 0
WE 1
WE 2
WE3
+
+
+
kanał 0
kanał 1
kanał 2
WE 0
WE 1
WE 2
WE3
+
kanał 0
kanał 1
kanał 2
WE 0
WE 1
WE 2
WE3
+
kanał 0
kanał 1
+
Starszy półbajt służy do uaktywnienia wyjścia analogowego oraz do
programowania sposobu pracy wejść analogowych. Młodszy półbajt służy
natomiast do wyboru jednego z czterech wejść analogowych. Jeśli
automatycznie zwiększana flaga jest ustawiona (’1’) - numer kanału
(wejścia) jest automatycznie zwiększany po każdej konwersji A/C. Po
załączeniu zasilania rejestr kontrolny jest zawsze wyzerowany.
Sposób przesłania poszczególnych bajtów oraz zachowanie się wyjścia
układu przedstawia rys. 8.
ADRES
0
ACK
S
BAJT KONTROLI ACK
1 2
8 9 1
8 9 1
BAJT DANYCH 1 ACK BAJT DANYCH 2 ACK
8 9 1
Stan wysokiej impedancji lub poprzednia
wartość utzrymywana w rejestrze
Poprzednia wartość
utrzymywana w rejestrze
Poziom napięcia
wynikający z bajtu 1
U
wy
czas
SCL
SDA
Rys. 8. Sposób transmisji do przetwornika C/A.
1.6. Literatura.
- A. Rydzewski: „Mikrokomputery jednoukładowe rodziny MCS - 51”, WNT
W-wa 1995,
- P. Gałka, P. Gałka: „Podstawy programowania mikrokontrolera 8051”,
Mikom W-wa 1995,
- Philips Semiconductor: „8 - bit A/D and D/A converter” - karta
katalogowa.