Technika mikroprocesorowa - laboratorium Informatyka studia dzienne Ćwiczenie 3: Proste układy we/wy i programowane porty równoległe. Celem ćwiczenia jest zapoznanie się z programowanym układem do transmisji równoległej typu 8255 oraz wykorzystanie go do wyzwolenia a następnie odczytu zarejestrowanego pomiaru przez woltomierz cyfrowy V544. Wymagane wiadomości: Budowa, sposób działania oraz programowanie układu 8255. Budowa, działanie i programowanie systemu MSM 88 oraz modułu MSM-DIO 552. Wykonanie ćwiczenia:. Zaprogramowanie układu 8255 do pracy w trybie jako układu wejściowego. 2. Wyzwolenie woltomierza cyfrowego V544 do pomiaru a następnie odczytanie wyniku poprzez port 8255. 3. Wyświetlenie wyniku pomiaru na wyświetlaczu klawiatury KDHEX-9 przy wykorzystaniu programowanego układu 829. Wykorzystywany sprzęt:. System MSM 88 i moduł portu równoległego MSM-DIO-552 2. Woltomierz cyfrowy 544 3. Regulowane źródło napięcia Ogólny schemat ćwiczenia przedstawia poniższy rysunek. MSM 88 RAM 6KB DIO 552 V544 Regulowane źródło napięcia KDHEX - 9
Wprowadzenie.. Opis modułu MSM-DIO-552-A Moduł MSM-DIO-552-A jest uniwersalnym interfejsem równoległym 34-bitowym z programowanym wybieraniem kierunku transmisji. Może służyć do komunikacji z takimi urządzeniami jak: woltomierze cyfrowe, fazomierze, częstościomierze itp. Jego wejściawyjścia pogrupowane są w następujące porty: port PA-PA port PB-PB port PC-PC3 port PC4-PC port PD-PD port PE port PE dwa ośmiobitowe porty układu 8255, mogą być wejściowe lub wyjściowe dwa czterobitowe porty układu 8255, mogą być wejściowe lub wyjściowe ośmiobitowy port zbudowany na układach LS34 i LS33, może być wejściowy lub wyjściowy dwa jednobitowe porty oparte na układach 44 i LS244, każdy z nich może być wejściowy lub wyjściowy Adres modułu ma postać : aa bbb nnn gdzie aa oraz bbb określone są położeniem przełączników J i J2 na płycie modułu. Obecne ustawienie tych przełączników nadaje następujące wartości pierwszym 5 bitom adresu: nnn. Natomiast nnn określa adres portu wewnątrz modułu według poniższej tabeli: nnn port PA-PA układu 8255 port PB-PB układu 8255 port PC-PC3 i PC4-PC układu 8255 port sterujący układu 8255 nie wykorzystane port PD-PD porty PE i PE port sterujący kierunkiem transmisji portów PD i PE Ze względu na budowę modułu istnieje możliwość pracy układu 8255 tylko w trybie (w pozostałych przypadkach układ 8255 jest odłączony od urządzenia zewnętrznego). Tryb jest najprostszym trybem pracy układu 8255, w którym dane podawane do układu z zewnątrz nie są pamiętane, natomiast dane wyjściowe przesyłane z mikroprocesora do układu 8255 są pamiętane w rejestrze wyjściowym. W trybie linie we-wy układu mogą być zgrupowane i zaprogramowane w następującej konfiguracji: port A port B port CA (linie PC-PC3) port CB (linie PC4-PC) Istnieje zatem 6 możliwych kombinacji we-wy portów. Tworzenie słowa sterującego w celu zaprogramowania funkcji poszczególnych portów przedstawiono na rys.. Należy jego wartość zapisać do portu sterującego 8255, którego adres podano powyżej. W trybie linie portu C pracujące jako wyjścia, mogą być ustawiana indywidualnie za pomocą dodatkowych słów kontrolnych, jest to jednak odradzane przez producenta modułu DIO-552.
D6 D5 D4 D3 D2 D D Grupa I - we - wy PC3 - PC - we - wy PB - PB - tryb - tryb Grupa II - we - wy PC - PC4 - we - wy PA - PA - tryb - tryb X - tryb 2 Rys.. Słowo sterujące - programowanie funkcji poszczególnych portów. Ustawienie kierunku transmisji portów PD i PE dokonuje się poprzez wpisanie odpowiedniego słowa sterującego o formacie przedstawionym na rys.2. Należy zaznaczyć, iż zapis do któregoś z portów PE lub PE (ten sam adres w przestrzeni adresowej procesora) nie ma wpływu na port ustawiony jako port wejściowy. D D6 D5 X X X X X - we Port PD - PD - wy - we Port PE - wy - we Port PE - wy Rys.2. Format słowa sterującego kierunkiem transmisji portów PD i PE. 2. Opis woltomierza cyfrowego V544.
Woltomierz cyfrowy V544 przeznaczony jest do pomiaru napięć stałych. Opiera się na zasadzie podwójnego całkowania co redukuje znacznie wpływ zakłóceń. Oprócz wyświetlenia wyniku pomiaru na wskaźniku cyfrowym istnieje także możliwość przesłania go do urządzenia zewnętrznego przez gniazdo umieszczone z tyłu obudowy. Poniżej przedstawiono sygnały wyjściowe i sterujące woltomierza oraz odpowiadające im sygnały we/wy modułu DIO-552-A. Tabela. DIO 552 Woltomierz cyfrowy V544 Port Styk Znaczenie Styk Uwagi PD 6 Zewnętrzne uruchomienie rejestracji pomiaru 4 Impuls ujemny o amplitudzie 2-5V i czasie trwania 5 ns PE 2 Zewnętrzna blokada uruchomienia pomiaru 45 Sygnał ujemny potencjałowo (może być "" logiczne) PE 2 Sygnał końca rejestracji 4 Impuls dodatni o amplitudzie 2-5V i czasie trwania ms 2 PA 3 4 5 6 28 9 2 8 26 25 x 2x 4x 8x x 2x 4x 8x 2 3 4 5 6 8 Kolejne cyfry wyświetlacza zapisane w kodzie naturalnym 2 PB 3 4 5 6 2 PC 3 4 5 6 8 36 35 6 34 5 33 4 32 3 3 2 3 29 x 2x 4x 8x x 2x 4x 8x x overflow " - " " + " DC C Zakres B mierzonego A napięcia 9 2 3 4 5 6 8 9 2 2 22 23 24 Przekroczenie zakresu pomiarowego - sygnał aktywny zerem W kodzie zgodnym z tabelą 2 Tabela 2. Zakres A B C
mv mv V V V V W celu dokonania zdalnego pomiaru przy użyciu woltomierza i przesłania wyniku do systemu mikroprocesorowego należy wykonać następujące kroki: zaprogramować porty 8255 i port PE jako wejścia oraz porty PD i PE jako wyjścia; odblokować woltomierz i przygotować go do zewnętrznego uruchomienia - sygnały na styku 45 i 4 woltomierza w stanie wysokim; wyzwolić woltomierz do pomiaru poprzez impuls ujemny na styku 4. Sygnał wyzwalający powinien trwać przez około 5 ns w stanie niskim co odpowiada jednemu taktowi zegara systemu 88. Następnie powinien powrócić do stanu wysokiego, umożliwiając kolejne pomiary; sprawdzić koniec pomiaru sygnalizowany przez woltomierz impulsem dodatnim o czasie trwania ms na styku 4. Należy zaznaczyć, iż zaraz po wyzwoleniu, trzeba najpierw sprawdzać stan niegotowości poprzez detekcję na styku 4, a dopiero po jego pojawieniu się stan gotowości do odczytu wyniku pomiaru przez detekcję na tymże samym styku; odczytać wartość zmierzoną poprzez porty 8255. 3. Opis układu 829 Układ 829 jest programowalnym interfejsem zapewniającym sprzęg między systemem mikroprocesorowym 88 a klawiaturą i wyświetlaczem cyfrowym. Zawiera 8- lub 6- bajtowy bufor Display RAM, gdzie są przechowywane wyświetlane dane oraz 8-bajtowy bufor FIFO do przechowywania kodów odczytanych klawiszy. Poniższy opis układu dotyczy tylko wykorzystania 829 do wyświetlania informacji co jest tematem ćwiczenia. Bardziej szczegółowy opis znajduje się w danych katalogowych na końcu instrukcji. Układ 829 zajmuje 2 lokacje w przestrzeni układów we/wy mp 88 - odpowiednio adresy 2 i 3. Linia adresowa A decyduje o tym czy przesyłane sygnały do i z układu poprzez linie D-D są traktowane jako komenda lub status - A= czy jako dana - A=. Ponieważ źródłem danych może być bufor klawiatury FIFO bądź Display RAM, ich pochodzenie ustalone jest poprzez wcześniejsze zapisanie odpowiedniej komendy. Zapis danych odbywa się zawsze do Display RAM i może być poprzedzony wydaniem odpowiedniej komendy Write Display RAM - AI A A A A gdzie: AI = włącza inkrementację tzn. każdy zapis lub odczyt Display RAM powoduje automatyczne zwiększenie wskaźnika położenia zapisywanych lub odczytywanych danych w buforze Display RAM, natomiast AAAA jest adresem jednego z 6 bajtów bufora Display RAM, pod który będzie wpisywana nowa wartość. Obecnie układ 829 zaprogramowany jest w systemie MSM 88 do współpracy z 8- znakowym wyświetlaczem w trybie Left Entry tzn. kolejnym lokacjom pamięci Display RAM odpowiadają od lewej pozycje wyświetlacza. Ponieważ klawiatura KDHEX-9 dysponuje tylko polami, lokacje i 8 nie są wyświetlane.
Przy przesyłaniu danych do układu wyświetlane cyfry muszą być odpowiednio zakodowane - rys 3. Program należy kończyć nieskończoną pętlą. *D4 *D *D2 *D5 *D *D *D6 *D3 Rys. 3. Kodowanie cyfr w układzie 829 Wymagane sprawozdanie. W sprawozdaniu należy umieścić wstęp teoretyczny, opisać szczegółowo przebieg ćwiczenia oraz wynikające z niego wnioski (!!!). Literatura.. Dokumentacja MSM 88 oraz modułu MSM-DIO 552 2. Woltomierz cyfrowy V-544 - instrukcja obsługi. 3. Badźmirowski Układy i systemy mikroprocesorowe.
KODY INSTRUKCJI PROCESORA INTEL 88 DATA TRANSFER GROUP Move Move (cont) Move Immediate MOV A A F MOV E A 5F MVI A byte 3E A B 8 E B 58 B byte 6 A C 9 E C 59 C byte E A D A E D 5A D byte 6 A E B E E 5B E byte E A H C E H 5C H byte 26 A L D E L 5D L byte 2E A M. E E M. 5E M byte 36 MOV B A 4 MOV H A 6 B B 4 H B 6 Load B C 4 H C 6 Immediate B D 42 H D 62 B E 43 H E 63 LXI B dble B H 44 H H 64 D dble B L 45 H L 65 H dble 2 B M. 46 H M. 66 SP dble 3 MOV C A 4F MOV L A 6F C B 48 L B 68 Load C C 49 L C 69 C D 4A L D 6A LDAX B A C E 4B L E 6B LDAX D A C H 4C L H 6C LHLD adr 2A C L 4D L L 6D LDA adr 3A C M 4E L M 6E MOV D A 5 MOV M A D B 5 M B Store D C 5 M C D D 52 M D 2 STAX B 2 D E 53 M D 3 STAX D 2 D H 54 M D 4 SHLD adr 22 D L 55 M D 5 STA adr 32 D M 56 XCHG EB byte 8-bitowa stała ( drugi bajt 2-bajtowej instrukcji) dble 6-bitowa stała (drugi i trzeci bajt 3-bajtowej instrukcji) adr 6-bitowy adres (drugi i trzeci bajt 3-bajtowej instrukcji) * ustawiają wszystkie flagi ( C Z S P AC ) ** ustawiają wszystkie flagi za wyjątkiem CARRY ( INX i DCX nie zmieniają żadnych flag ) zmieniają tylko CARRY
ARITHMETIC AND LOGICAL GROUP Add* Increment** Logical* ADD A 8 INR A 3C ANA A A B 8 B 4 B A C 8 C C C A D 82 D 4 D A2 E 83 E C E A3 H 84 H 24 H A4 L 85 L 2C L A5 M 86 M 34 M A6 ADC A 8F INX B 3 XRA A AF B 88 D 3 B A8 C 89 H 23 C A9 D 8A SP 33 D AA E 8B E AB H 8C H AC L 8D L AD M 8E M AE Subtract* Decrement** ORA A B B B SUB A 9 DCR A 3D C B B 9 B 5 D B2 C 9 C D E B3 D 92 D 5 H B4 E 93 E D L B5 H 94 H 25 M B6 L 95 L 2D M 96 M 35 CMP A BF B B8 SBB A 9F DCX B OB C B9 B 98 D B D BA C 99 H 2B E BB D 9A SP 3B H BC E 9B L BD H 9C M. BE L 9D M 9E Double Add Rotate DAD B 9 RLC D 9 RRC F H 29 RAL SP 39 RAR F Specials Arith & Logical Immediate DAA * 2 ADI byte C6 ANI byte E6 CMA 2F ACI byte CE XRI byte EE STC 3 SUI byte D6 ORI byte F6 CMC 3F SBI byte DE CPI byte FE
BRANCH CONTROL GROUP Jump Call Return JMP adr C3 CALL adr CD RET C9 JNZ adr C2 CNZ adr C4 RNZ C JZ adr CA CZ adr CC RZ C8 JNC adr D2 CNC adr D4 RNC D JC adr DA CC adr DC RC D8 JPO adr E2 CPO adr E4 RPO E JPE adr EA CPE adr EC RPE E8 JP adr F2 CP adr F4 RP F JM adr FA CM adr FC RM F8 PCHL E9 I/O AND MACHINE CONTROL Stack Ops Input Output Restart PUSH B C5 OUT byte D3 RST C D D5 IN byte DB CF H E5 2 D PSW F5 Control 3 DF 4 E POP B C DI F3 5 EF D D EI FB 6 F H E NOP FF PSW F HLT 6