Rok akademicki
Termin
Rodzaj
Kierunek
Prowadzący
Grupa
Sekcja
studiów
2007/2008
Piątek
USM
INF
BSz
1
1
17:15 – 20:15
Projekt
Data wykonania ćwiczenia: 2008-01-20
System mikroprocesorowy
(INTEL 8052)
Autor:
Jacek Jędruch
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).
+ 5V
- +
MIKROKONTROLER
WYŚWIETLACZ
R
R
P3.7
P3.6
CZUJNIK
P3.5
TEMP.
RTC
P3.4
10 mV/K
UT
P1.3
P3.3
OFF
32 - BITOWY
SDA
LOAD
U
P1.2
P3.2
ref
REJESTR
SCL
CLOCK
+
-
P1.1
P3.1
PRZESUWOWY
0
DATA
Ux
P1.0
P3.0
1
2V
ENTER
2 AC
P1.7
0V
DOWN
3
P1.6
UP
P1.5
Wy
ESCAPE
CA
P0 P2
P1.4
C/A
ESCAPE UP DOWN ENTER
EEPROM
PAMIĘĆ
PROGRAMU
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.
U1B
LED1
Vcc
1
2
3
4
R1
P3.7
430
74HC04
74HC04
GREEN
U1C
LED2
5
6
R2
P3.6
510
GREEN
74HC04
U1D
LED3
9
8
R3
P3.5
510
GREEN
74HC04
U1E
LED4
11
10
R4
P3.4
510
GREEN
74HC04
Vcc
R5
R6
R7
R8
10k
10k
10k
10k
ESCAPE
R9
P1.7
100
UP
R10
P1.6
100
P16 DOW
R11
P1.5
N
100
ENTER
R12
P1.0
P1.4
100
80C32
1
1
1
1
C1
C2
C3
C4
100n
100n
100n
2
2
100n
2
2
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.
RP1
L1
DATA
P30
14
15
1
16
5
P3.0
SER
O0
DP
1
2
15
10
Vcc
O1
g
P31
11
2
3
14
9
SRCLK
O2
10
3
4
13
1
3
VCC
SRCLR
O3
e
A1
4
5
12
2
8
O4
d
A2
P32
12
5
6
11
4
RCLK
O5
c
P33
13
6
7
10
6
E
O6
b
7
8
9
7
O7
a
9
8 x
7SEGLED
Q7
RES
74HC595
U2
RP2
L2
14
15
1
16
5
SER
O0
DP
1
2
15
10
O1
g
CLOCK
P31
11
2
3
14
9
P3.1
SRCLK
O2
10
VCC
SRCLR
O3
3
4
13
1
e
A1
3
4
5
12
2
8
O4
d
A2
LOAD
P32
12
5
6
11
4
P3.2
RCLK
P33
13
O5
6
c
7
10
6
E
O6
b
7
8
9
7
O7
a
OFF
P3.3
9
8 x
7SEGLED
Q7
RES
74HC595
U3
RP3
L3
14
15
1
16
5
SER
O0
DP
1
2
15
10
O1
g
P31
11
2
3
14
9
SRCLK
O2
10
3
4
13
1
3
VCC
SRCLR
O3
e
A1
4
5
12
2
8
O4
d
A2
P32
12
5
6
11
4
RCLK
O5
c
P33
13
6
7
10
6
E
O6
b
7
8
9
7
O7
a
9
8 x
7SEGLED
Q7
RES
74HC595
U4
RP4
L4
14
15
1
16
5
SER
O0
DP
1
2
15
10
P31
11
O1
2
g
3
14
9
SRCLK
O2
10
3
4
13
1
3
VCC
SRCLR
O3
e
A1
O4
4
5
12
2
d
A2
8
P32
12
5
6
11
4
RCLK
O5
c
P33
13
6
7
10
6
E
O6
b
80C32
7
8
9
7
O7
a
9
8 x
7SEGLED
Q7
RES
74HC595
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.
a
zapis cyfry 5 (bez przecinka dziesiętnego)
f
b
g
(MSB) (LSB)
DP g f e d c b a
e
5 ≡ 1 0 0 1 0 0 1 0 b ≡ 92h c
DP
d
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.
R1
R2
2K4
2K4
U1
P1.1
SCL
6
1
SCL
A0
2
A1
SDA
P1.2
5
3
SDA
A2
SDA'
D1
P1.3
24C02 I2C_EEPROM
BAT43
80C32
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: 1
Dane
1 0 1 0 A2 A1 A0 R/W
CLK
bit startu
2
ACK
2
Dane
A7 A6 A5 A4 A3 A2 A1 A0
CLK
3
ACK
Dane
D7 D6 D5 D4 D3 D2 D1 D0
CLK
ACK
bit stopu
1
+
+
- wpis bajtu danych do pamięci (R/W = 0),
2
3
+
- odczyt bajtu danych spod bieżącego adresu (R/W = 1),
1
3
+
+
+ - odczyt bajtu danych spod wybranego adresu.
1
2
1
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.
R1
R2
32,768 kHz
2k4
2k4
U1
1
osc1
Vcc
2
SCL
osc0
6
8
P1.1
SCL
VCC
5
3
SDA BAT
R3
7
SDA
FT/OUT
P1.2
4
VSS
4k3
D2
D1
MK41T56 I2C_RTC
P1.3
SDA'
CE1 +
R4
1N4148
BAT43
470u
10k
80C32
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
Miesiąc
Miesiące
01 - 12
m
6
10 lat
Lata
Rok
00 - 99
7
OUT FT
S
Kalibracja
Kontrola
-
8 -
D7
D6
D5
D4
D3
D2
D1
D0
Dane
-
63
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:
dane
stabilne
SCL
SDA
bit
zmiana
bit
startu
danych
stopu
takt zegara
dla
SCL
start
potwierdzenia
Master
1
2
8
9
SDA
dane wyjściowe
bit danych 1
bit danych 2
bit danych 8
nadajnika
SDA
dane wyjściowe
odbiornika
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.
LED 1
1
2
R1
Vcc
430
GREEN
74HC04
- 7
3
1
STER
V
U1B
T1
T2
3
4
2
2
P3.7
BC557C
LM35
1
3
74HC04
R2
Vcc
Vcc
10
R3
R4
U2
2k4
2k4
5
1
A0
AIN
WE
6
2
A1
AIN01
7
3
0WE 1
A2
AIN2
WE 2
4
SCL
AIN3
WE 3
10
16
P1.1
SCL VDD
Vcc
C1
9
14
SDA VREF
13
SDA
AGND
P1.2
12
8
100n
EXT
VSS
D2
D1
11
15
2
3
OS V
C OUT
Uw
P1.3
SDA'
LM336 2,5
PCF8591 I2C_AC/CAR5y
R6
R7
BAT43
Vcc 820
499
2K
80C32
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:
MSB
LSB
1 - odczyt
1
0
0
1
A2
A1
A0 R/W 0 - zapis
Kod urządzenia
Adres
Odczyt/
urządzenia
zapis
Drugi przesyłany bajt ustawia rejestr kontrolny decydujący o trybie pracy układu. Struktura tego rejestru jest następująca:
MSB
LSB
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’)
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:
WE 0
+
kanał 0
WE 1
+
kanał 1
WE 2
+
kanał 2
WE3
1 0
wejścia pojedyncze oraz różnicowe:
WE 0
kanał 0
WE 1
kanał 1
WE 2
+
kanał 2
WE3
1 1
dwa wejścia różnicowe:
WE 0
+
kanał 0
WE 1
WE 2
+
WE3
kanał 1
Flaga uaktywniająca wyjście analogowe (jeśli
ustawiona w stan ’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.
S
ADRES
0
ACK BAJT KONTROLI ACK BAJT DANYCH 1 ACK BAJT DANYCH 2 ACK
SCL
1 2
8 9 1
8 9 1
8 9 1
SDA
Uwy
Stan wysokiej impedancji lub poprzednia
Poprzednia wartość
Poziom napięcia
wartość utzrymywana w rejestrze
utrzymywana w rejestrze
wynikający z bajtu 1
czas
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.