Mikroprocesory

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

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).

+ 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.

U1A

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.

U1

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.

Vcc

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.

Vcc

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.

U1A

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.