Technika Mikroprocesorowa Laboratorium cz. 1b

Podobne dokumenty
Ćwiczenie 1 Podstawowe właściwości mikrokontrolera rodziny PIC

Wydział Mechaniczny. Instrukcja do zajęć laboratoryjnych. Numer ćwiczenia: 4. Laboratorium z przedmiotu: Technika cyfrowa i mikroprocesorowa

2. Architektura mikrokontrolerów PIC16F8x... 13

Kod produktu: MP01105T

dokument DOK wersja 1.0

Praktyka Techniki Mikroprocesorowej. Mikrokontroler PIC 16F84

Kod produktu: MP01105

Ćwiczenie 5 Zegar czasu rzeczywistego na mikrokontrolerze AT90S8515

Kod produktu: MP01611

ZL4PIC uniwersalny zestaw uruchomieniowy dla mikrokontrolerów PIC (v.1.0) Uniwersalny zestaw uruchomieniowy dla mikrokontrolerów PIC

ZL4PIC. Uniwersalny zestaw uruchomieniowy dla mikrokontrolerów PIC

Organizacja pamięci VRAM monitora znakowego. 1. Tryb pracy automatycznej

1. Wprowadzenie Programowanie mikrokontrolerów Sprzęt i oprogramowanie... 33

Instytut Teleinformatyki

MODBUS RTU wersja M1.14 protokół komunikacyjny wyświetlaczy LDN

Programowanie w językach asemblera i C

Kod produktu: MP01611-ZK

ZL4PIC. Uniwersalny zestaw uruchomieniowy dla mikrokontrolerów PIC

TECHNIKA MIKROPROCESOROWA

Kod produktu: MP-BTM222-5V

Płytka uruchomieniowa AVR oparta o układ ATMega16/ATMega32. Instrukcja Obsługi. SKN Chip Kacper Cyrocki Page 1

Mikroprocesory i Mikrosterowniki Laboratorium

DOKUMENTACJA PROJEKTU

ZL5PIC. Zestaw uruchomieniowy dla mikrokontrolerów PIC16F887

Komunikacja w mikrokontrolerach Laboratorium

Szybki przewodnik instalacji

Konfiguracja i programowanie PLC Siemens SIMATIC S7 i panelu tekstowego w układzie sterowania napędami elektrycznymi. Przebieg ćwiczenia

Instrukcja do oprogramowania ENAP DEC-1

Wyświetlacz alfanumeryczny LCD zbudowany na sterowniku HD44780

Programowalne Układy Cyfrowe Laboratorium

Uniwersalny sterownik silnika krokowego z portem szeregowym RS232 z procesorem AT90S2313 na płycie E200. Zestaw do samodzielnego montażu.

Szkolenia specjalistyczne

Wizualizacja stanu czujników robota mobilnego. Sprawozdanie z wykonania projektu.

LITEcomp. Zestaw uruchomieniowy z mikrokontrolerem ST7FLITE19

MultiTool instrukcja użytkownika 2010 SFAR

Moduł RS232 E054. TAP - Systemy Alarmowe Sp. z o. o. os. Armii Krajowej Poznań tel ; fax:

Uniwersalny zestaw uruchomieniowy ZL4PIC

SML3 październik

RSD Uniwersalny rejestrator danych Zaprojektowany do pracy w przemyśle

Konfiguracja i programowanie sterownika GE Fanuc VersaMax z modelem procesu przepływów i mieszania cieczy

LABORATORIUM - ELEKTRONIKA Układy mikroprocesorowe cz.2

Poradnik programowania procesorów AVR na przykładzie ATMEGA8

Projekt MARM. Dokumentacja projektu. Łukasz Wolniak. Stacja pogodowa

ZL16AVR. Zestaw uruchomieniowy dla mikrokontrolerów ATmega8/48/88/168

Interfejs analogowy LDN-...-AN

SZYMAŃSKI ŁÓDŹ Ul. Wiskicka 22 Tel./fax. (042) Tel./fax. (042) Kom

Sterownik procesorowy S-2 Komunikacja RS485 MODBUS

Kod produktu: MP01611-ZK

Systemy wbudowane. Uniwersytet Łódzki Wydział Fizyki i Informatyki Stosowanej. Witold Kozłowski

Mikroprocesory i mikrosterowniki Wydział Elektroniki Mikrosystemów i Fotoniki Politechniki Wrocławskiej Ćwiczenie nr 4

Instrukcja obsługi programatora AVR Prog USB v2

Sterownik Spid Pant 8 i Ant 8. Podręcznik użytkowania

Instrukcja obsługi programatora AVR Prog USB v2

Wstęp Architektura... 13

Politechnika Białostocka

Spis treœci. Co to jest mikrokontroler? Kody i liczby stosowane w systemach komputerowych. Podstawowe elementy logiczne

Opis procedur asemblera AVR

AN ON OFF TEMPERATURE CONTROLLER WITH A MOBILE APPLICATION

ZL9AVR. Płyta bazowa dla modułów ZL7AVR (ATmega128) i ZL1ETH (RTL8019)

LABORATORIUM ENERGOOSZCZĘDNEGO BUDYNKU

ZL15AVR. Zestaw uruchomieniowy dla mikrokontrolerów ATmega32

Dokumentacja Techniczna. Konwerter USB/RS-232 na RS-285/422 COTER-24I COTER-24N

1 Badanie aplikacji timera 555

SML3 październik

ZL15AVR. Zestaw uruchomieniowy dla mikrokontrolerów ATmega32

TECHNIKA MIKROPROCESOROWA

Interfejs RS485-TTL KOD: INTR. v.1.0. Zastępuje wydanie: 2 z dnia

1.2. Architektura rdzenia ARM Cortex-M3...16

Electronic Infosystems

Wydział Elektryczny. Katedra Automatyki i Elektroniki. Instrukcja. do ćwiczeń laboratoryjnych z przedmiotu: SYSTEMY CYFROWE 1.

1.1 Co to jest USBCOM? Budowa oraz parametry techniczne... 3

INDU-22. Przemysłowy Sterownik Mikroprocesorowy. Przeznaczenie. masownica próżniowa

SiMod-X-(A1) Przetwornik parametrów powietrza z interfejsem RS485 (MODBUS RTU) oraz wyjściem analogowym (dotyczy wersji -A1)

Instrukcja obsługi i użytkowania Panel sterujący KPZ 52(E) 7

OPIS PROGRAMU USTAWIANIA NADAJNIKA TA105

LDA-8/ Z wyświetlacz tekstowy

Opis układów wykorzystanych w aplikacji

Kod produktu: MP-1W-2480

INSTRUKCJA OBSŁUGI. Przekaźnik czasowy ETM ELEKTROTECH Dzierżoniów. 1. Zastosowanie

3. Sieć PLAN. 3.1 Adresowanie płyt głównych regulatora pco

interfejs szeregowy wyświetlaczy do systemów PLC

Systemy wbudowane. Uniwersytet Łódzki Wydział Fizyki i Informatyki Stosowanej. Witold Kozłowski

Programowanie Mikrokontrolerów

Mikrokontrolery AVR Wprowadzenie

E-TRONIX Sterownik Uniwersalny SU 1.2

AVREVB1. Zestaw uruchomieniowy dla mikrokontrolerów AVR. Zestawy uruchomieniowe

ZL8AVR. Płyta bazowa dla modułów dipavr

LABORATORIUM PRZEMYSŁOWYCH SYSTEMÓW STEROWANIA

Moduł przekaźnika czasowego FRM01 Instrukcja obsługi

Pośredniczy we współpracy pomiędzy procesorem a urządzeniem we/wy. W szczególności do jego zadań należy:

Instrukcja obsługi programatora AVR Prog USB v2

INSTRUKCJA OBSŁUGI KROSOWNICY WIDEO KV-12/4

Uniwersalny zestaw uruchomieniowy dla mikrokontrolerów AVR

Karta katalogowa JAZZ OPLC JZ20-T40/JZ20-J-T wejść cyfrowych, 2 wejścia analogowe/cyfrowe, 2 wejścia analogowe. 20 wyjść tranzystorowych

Zaliczenie Termin zaliczenia: Sala IE 415 Termin poprawkowy: > (informacja na stronie:

Instytut Teleinformatyki

Instrukcja obsługi rejestratora cyfrowego DLM-090

Instrukcja Obsługi. Modułu wyjścia analogowego 4-20mA PRODUCENT WAG ELEKTRONICZNYCH

KOMUNIKACJA Z OTOCZENIEM MIKROKONTROLERA

dv-2ps INSTRUKCJA OBSŁUGI

Transkrypt:

Technika Mikroprocesorowa Laboratorium cz. 1b Politechnika Gdańska Wydział Elektroniki, Telekomunikacji i Informatyki Gdańsk 2007

Spis treści Ćwiczenie 1 Współpraca mikrokontrolera PIC z klawiaturą i wyświetlaczem...1 Wykorzystywany sprzęt...1 Cel ćwiczenia...1 Szczegółowe zagadnienia...1 Zadania...1 Potrzebne informacje...2 Uwagi do realizacji programu...2 Ćwiczenie 2 Sprzętowy interfejs szeregowy RS232...3 Wykorzystywany sprzęt...3 Cel ćwiczenia...3 Szczegółowe zagadnienia...3 Zadania...3 Potrzebne informacje...4 Uwagi do realizacji programu...4 Ćwiczenie 3 Komunikacja mikrokontrolera PIC z urządzeniami z interfejsem I2C...5 Wykorzystywany sprzęt...5 Cel ćwiczenia...5 Szczegółowe zagadnienia...5 Zadania...5 Potrzebne informacje...6 Załącznik A Układ laboratoryjny PIC16F877...7 Schemat ideowy...7 Rysunek układu...8 Opis układu...8 Załącznik B Układ laboratoryjny Keyboard + Display...10 Schemat ideowy...10 Rysunek układu...11 Opis układu...11 Załącznik C Układy laboratoryjne TCN75 i MCP9803...12 Schematy ideowe...12 Rysunki układów...13 Opis układów...13 Załącznik D Zestaw instrukcji mikrokontrolera PIC16F877...14

Ćwiczenie 1 Współpraca mikrokontrolera PIC z klawiaturą i wyświetlaczem Wykorzystywany sprzęt Układ laboratoryjny PIC16F877 Układ laboratoryjny Keyboard + Display 2 10-przewodowe, taśmowe kable połączeniowe Układ programatora Kabel szeregowy RS232 Komputer z oprogramowaniem Cel ćwiczenia Opanowanie współpracy multipleksowanej klawiatury i wyświetlacza 7- segmentowego z mikrokontrolerem Szczegółowe zagadnienia Zasada działania multipleksowanej klawiatury i wyświetlacza Pętle, instrukcje warunkowe Operacje na pojedynczych bitach, rotacje Podprogramy Porty we-wy Przerwania Zadania Napisać program odczytujący wciśnięte klawisze i wyświetlający ich kod na wyświetlaczu 7-segmentowym Klawiszom przyporządkować kody od 0 do F Każde wciśnięcie klawisza ma spowodować wyświetlenie jego kodu na skrajnym wyświetlaczu i przesunąć poprzednie Skompilować program Zaprogramować układ testowy PIC16F877 UWAGA: Programator dołączyć do gniazda ICSP płytki, zasilanie pozostawić włączone, klawiaturę odłączyć!!! Podłączyć klawiaturę z wyświetlaczami Sprawdzić, czy program działa zgodnie z założeniami

Ćwiczenie 1 Współpraca mikrokontrolera PIC z klawiaturą i wyświetlaczem Potrzebne informacje Opis układu laboratoryjnego PIC16F877 załącznik A Opis układu laboratoryjnego Keyboard + Dislplay załącznik B Zestaw instrukcji mikrokontrolera PIC16F877 załącznik D Karta katalogowa mikrokontrolera PIC16F877 Microchip Data Sheet DS39582B Organizacja pamięci programu i adresy rejestrów mikrokontrolera rozdz. 2.0, str. 15-21 Rejestr STATUS rozdz. 2.2.2.1, str. 22 Rejestr OPTION_REG rozdz. 2.2.2.2, str. 23 Szczególnie bit RBPU Rejestr INDF i FSR rozdz. 2.5, str. 31 Rejestry TRIS i porty we/wy rozdz. 4.0, str. 41-48 Szczególnie port B i D Przerwania rozdz.14.11, str. 153-157 Rejestr INTCON rozdz. 2.2.2.3, str. 24 Szczególnie bity GIE, RBIE, RBIF Szczegółowy opis instrukcji mikrokontrolera rozdz. 15, str. 159-165 Uwagi do realizacji programu Program powinien cyklicznie wystawiać 0 na linie RB0..3 Odstęp czasowy pomiędzy przesunięciem 0 do następnej kolumny powinien być rzędu kilkunastu do kilkudziesięciu milisekund Cały port D jest wyjściem sterującym segmentami wyświetlaczy. Stan niski odpowiada zapaleniu segmentu, wyświetlacza zaadresowanego przez linie RB0..3 Pojawienie się stanu niskiego na wejściu RB4..7 oznacza wciśnięcie klawisza z odpowiedniej kolumny Linie portu B powinny być podciągnięte do góry weak pull-up Można, lecz nie trzeba, wykorzystać przerwania generowane poprzez zmianę stanu na wejściach RB4..7 oraz instrukcję SLEEP Niekonieczna jest eliminacja drgań styków, lecz warto o tym pomyśleć 2

Ćwiczenie 1 Współpraca mikrokontrolera PIC z klawiaturą i wyświetlaczem UWAGA: Po zakończeniu instrukcji SLEEP następuje kontynuacja programu od następnej instrukcji. UWAGA: Przerwanie w trakcie instrukcji SLEEP powoduje jej zakończenie, lecz także wykonanie następnej instrukcji i dopiero wtedy następuje przejście do procedury obsługi przerwania pod adresem 0004H. Po SLEEP warto podać instrukcję NOP. Przykładowa część programu include p16f877a.inc config _LVP_OFF & _HS_OSC ; rejestry pomocnicze DIG0 equ 20H ; kod pierwszej cyfry DIG1 equ 21H ; kod drugiej cyfry DIG2 equ 22H ; kod trzeciej cyfry DIG3 equ 23H ; kod czwartej cyfry TMPRB equ 24H ; kopia portu B z przerwania ; kody cyfr dla wyświetlacza 7-segmentowego ; segmenty: dpgfedcba - zero aktywne S0 equ 11000000B S1 equ 11111001B S2 equ 10100100B S3 equ 10110000B S4 equ 10011001B S5 equ 10010010B S6 equ 10000010B S7 equ 11111000B S8 equ 10000000B S9 equ 10010000B SA equ 10001000B SB equ 10000011B SC equ 11000110B SD equ 10100001B SE equ 10000110B SF equ 10001110B SERR equ 00110110B ; stan początkowy wyświetlaczy, nie cyfra PRSM equ 11111000B ; maska z wartością preskalera 11111PPP ; ppp - wartość preskalera ; określa prędkość przemiatania kolumn 3

Ćwiczenie 1 Współpraca mikrokontrolera PIC z klawiaturą i wyświetlaczem ; Początek programu org goto 0000H start org 0004H ; wektor przerwań goto int ; obsługa przerwania, przerwania wyłączone int... intwait ; oczekiwanie na zwolnienie klawisza ; czy RB = 1111xxxx clrwdt movlw 0xF0 ; maska 11110000 andwf PORTB, W ; W równe RB7..4 0000 xorlw 0xF0 ; btfss STATUS, Z ; czy RB = 1111xxxx goto intwait ; nie - wróć bcf INTCON, RBIF ; skasowanie flagi przerwania RB clrwdt retfie ; powrót z przerwania ; koniec obsługi przerwania, przerwania włączone... ; procedura dekodująca klawisz na kod cyfry wejście TMPRB, wyjście W enc movlw 0 ; W <- 0 btfss TMPRB, 1 ; TMPRB = xxxx0010? addlw 1 ; TAK - kolumna 1 btfss TMPRB, 2 ; TMPRB = xxxx0100? addlw 2 ; TAK - kolumna 2 btfss TMPRB, 3 ; TMPRB = xxxx1000? addlw 3 ; TAK - kolumna 3 ; NIE - kolumna 0 btfss TMPRB, 5 ; TMPRB = 0010xxxx? addlw 4 ; TAK - rząd 1 btfss TMPRB, 6 ; TMPRB = 0100xxxx? addlw 8 ; TAK - rząd 2 btfss TMPRB, 7 ; TMPRB = 1000xxxx? addlw 12 ; TAK - rząd 3 ; NIE - rząd 0 4

Ćwiczenie 1 Współpraca mikrokontrolera PIC z klawiaturą i wyświetlaczem ; w W numer klawisza 0..F andlw 00001111B ; dla pewności W <= 15 ; skok wyliczany addwf PCL, F ; odczyt tablicy stałych retlw S0 retlw S1 retlw S2 retlw S3 retlw S4 retlw S5 retlw S6 retlw S7 retlw S8 retlw S9 retlw SA retlw SB retlw SC retlw SD retlw SE retlw SF ; koniec procedury dekodującej, w W kod cyfry 5

Ćwiczenie 2 Sprzętowy interfejs szeregowy RS232 Wykorzystywany sprzęt Układ laboratoryjny PIC16F877 Układ programatora 2 kable szeregowe RS232 10-przewodowy, taśmowy kabel połączeniowy Komputer z oprogramowaniem Cel ćwiczenia Zapoznanie się z sprzętowym asynchronicznym szeregowym interfejsem USART mikrokontrolerów rodziny PIC Szczegółowe zagadnienia Konfiguracja sprzętowego modułu USART Komunikacja układu mikrokontrolerowego z komputerem Zadania Napisać program umożliwiający szeregową komunikację pomiędzy komputerem, a układem mikrokontrolera Program terminala na komputerze powinien mieć możliwość odczytania i ustawienia portu mikrokontrolera Zawartość portu powinna być przesyłana w postaci heksalnej tj. 00 do FF, używając jedynie cyfr 0 do F Wysłanie litery W do mikrokontrolera powinno ustawić jego port w stan wyjścia, a następnie wysyłane pary cyfr, ustawić linie portu w odpowiedni stan Wysłanie litery I do mikrokontrolera powinno ustawić jego port w stan wejścia. Wciśnięcie przycisków S0..7 powinno być zapamiętane i wyświetlone przez diody LED0..7 (odpowiednie linie w stan wyjścia i niski) Wysłanie litery R do mikrokontrolera powinno spowodować jego odpowiedź w postaci dwóch cyfr szesnastkowych zgodnie z wciśniętymi poprzednio przyciskami Na inne znaki mikrokontroler nie powinien reagować Skompilować program Zaprogramować układ testowy PIC16F877

Ćwiczenie 2 Sprzętowy interfejs szeregowy RS232 UWAGA: Programator dołączyć do gniazda ICSP płytki, zasilanie pozostawić włączone, resztę odłączyć!!! Połączyć taśmą port D (lub B) z wewnętrzną klawiaturą i LEDami gniazdo LK Połączyć gniazdo RS232 z komputerem i uruchomić terminal Sprawdzić, czy program działa zgodnie z założeniami Potrzebne informacje Opis układu laboratoryjnego PIC16F877 załącznik A Zestaw instrukcji mikrokontrolera PIC16F877 załącznik D Dodatkowo, nota aplikacyjna AN774 Microchip Asynchronous Communication with the PICmicro USART DS00774A Karta katalogowa mikrokontrolera PIC16F877 Microchip Data Sheet DS39582B Organizacja pamięci programu i adresy rejestrów mikrokontrolera rozdz. 2.0, str. 15-21 Rejestr STATUS rozdz. 2.2.2.1, str. 22 Rejestr OPTION_REG rozdz. 2.2.2.2, str. 23 Rejestry TRIS i porty we/wy rozdz. 4.0, str. 41-48 Opis asynchronicznego portu szeregowego rozdz. 10, str. 111-120 Szczegółowy opis instrukcji mikrokontrolera rozdz. 15, str. 159-165 Uwagi do realizacji programu Należy zwrócić szczególną uwagę na identyczne ustawienia prędkości i rodzaju transmisji w mikrokontrolerze i komputerze PC W przypadku kłopotów z transmisją warto napisać mały programik konfigurujący jedynie port RS232 i wysyłający jakiś znak lub echo odebranego Po odebraniu rozkazu (znaku) I port dołączony do złącza LK należy ustawić w stan wejścia Pojawienie się zera na jakiejś jego linii oznacza, że został wciśnięty klawisz Wówczas należy przestawić tą linię w stan wyjścia i ustawić w stanie zero odpowiadający bit portu Po odebraniu rozkazu R, wystarczy odczytać stan tego portu i przesłać go, po przekształceniu na postać czytelną (niebinarną), do komputera 7

Ćwiczenie 3 Komunikacja mikrokontrolera PIC z urządzeniami z interfejsem I2C Wykorzystywany sprzęt Układ laboratoryjny PIC16F877 Układ laboratoryjny Keyboard + Display 2 10-przewodowe, taśmowe kable połączeniowe Układ laboratoryjny MCP9803 termometr cyfrowy I2C Układ laboratoryjny TCN75 termometr cyfrowy I2C Układ programatora Kabel szeregowy RS232 Komputer z oprogramowaniem Cel ćwiczenia Zapoznanie się ze sprzętowym interfejsem I2C mikrokontrolera PIC Szczegółowe zagadnienia Interfejs szeregowy I2C mikrokontrolera PIC Urządzenia zewnętrzne wykorzystujące standard I2C Protokół I2C i jego właściwości Komunikacja i konfiguracja zewnętrznych termometrów cyfrowych I2C Konwersja liczb binarnych na dziesiętne Współpraca z multipleksowanym wyświetlaczem 7-segmentowym Zadania UWAGA: Przed zajęciami obowiązkowo zapoznać się z: informacjami dotyczącymi portu I2C mikrokontrolera, dokumentacją układów MCP9803 oraz TCN75 Napisać program odczytujący temperaturę z termometrów cyfrowych i wyświetlający ją na 4-cyfrowym wyświetlaczu 7-segmentowym Temperatura powinna być wyświetlana w stopniach Celsiusza z dokładnością 2 cyfr po przecinku Temperatur ujemnych, ani powyżej 100 stopni nie należy się spodziewać w laboratorium Odczyt i wyświetlenie temperatury termometru może być cykliczny (np. co sekundę) lub lepiej, na żądanie zgłoszone przyciskiem klawiatury

Ćwiczenie 3 Komunikacja mikrokontrolera PIC z urządzeniami z interfejsem I2C Powinna istnieć możliwość wyboru termometru Np. dolne 8 klawiszy termometr 1, górne 8 termometr 2 Dodatkowo, można ustawić próg alarmu dla termometrów i obserwować jego przekroczenie na diodach kontrolnych LED8..10 Skompilować program Zaprogramować układ testowy PIC16F877 UWAGA: Programator dołączyć do gniazda ICSP płytki, zasilanie pozostawić włączone, resztę odłączyć!!! Podłączyć klawiaturę z wyświetlaczami Podłączyć dwa układy termometrów MCP9803 oraz TCN75 do gniazd I2C Sprawdzić, czy program działa zgodnie z założeniami Potrzebne informacje Opis układu laboratoryjnego PIC16F877 załącznik A Opis układu laboratoryjnego Keyboard + Dislplay załącznik B Opis układów laboratoryjnych TCN75 i MCP9803 załącznik C Zestaw instrukcji mikrokontrolera PIC16F877 załącznik D Karta katalogowa termometru TCN75 Microchip Data Sheet DS21490C Karta katalogowa termometru MCP9803 Microchip Data Sheet DS21909B Karta katalogowa mikrokontrolera PIC16F877 Microchip Data Sheet DS39582B Opis synchronicznego portu szeregowego rozdz. 9, str. 71-109 Szczególnie tryb I2C rozdz. 9.4, str 80-84 Oraz tryb Master I2C -rozdz. 9.4.6-15, str. 95-105 Szczegółowy opis instrukcji mikrokontrolera rozdz. 15, str. 159-165 9

Załącznik A Układ laboratoryjny PIC16F877 Schemat ideowy

Załącznik A Układ laboratoryjny PIC16F877 Rysunek układu Opis układu Jest to główny układ laboratoryjny wykonany w postaci dwustronnego obwodu drukowanego z mikrokontrolerem PIC16F877A w centralnej części. Mikrokontroler taktowany jest zegarem 8MHz jeden cykl rozkazowy trwa 0,5 mikrosekundy. Za pomocą gniazd RB i RD z lewej strony wyprowadzono odpowiednie porty mikrokontrolera, służące do podłączania odpowiednich urządzeń zewnętrznych, lub układu przełączników i diod LED z dolnej części układu. 11

Załącznik A Układ laboratoryjny PIC16F877 Wciśnięcie przełącznika S0-S7 wymusza stan niski na złączu LK, diody LED0- LED7 pokazują stan odpowiednich linii. Złącze AN daje dostęp do niewykorzystywanych linii portu RA0..3 oraz RC1..2. W prawej górnej części znajduje się złącze RS232 wraz z układem dopasowującym poziomy MAX232. Układ ten jest podłączon do odpowiednich portów (RC6..7) procesora realizujących protokół RS232. Po prawej stronie znajdują się diody LED20-LED27 pokazujące parami stan linii sygnałowych interfejsu szeregowego. W lewym górnym rogu znajduje się złącze zasilania oraz układ stabilizacji napięcia 5V. Złącze programowania ICSP znajduje się na górnym brzegu płytki, obok klawisz RESET Po prawej stronie mikrokontrolera znajdują się trzy gniazda SPI0/I2C-SPI2/I2C wykorzystywane do zasialania i podłączania urządzeń zewnętrznych I2C lub SPI. Linie sygnałowe dołączone są do odpowiednich portów procesora (RC3..5). Nad gniazdami znajdują się 3 diody LED8-LED10 pokazujące stan pinów nr. 6 gniazd, wykorzystywanych jako Chip Select w standardzie SPI, lub jako linie informacyjne dla urządzeń I2C stanem aktywnym jest 0. Piny te podłączone są także do portu RE procesora. Przełącznik SPWR z lewej górnej strony służy do włączenia zasilania układu. Położenie 1 (do góry) to włączenie. Przełącznik SRS obok układu MAX232, nad procesorem pozwala na programową kontrolę sygnałów CTS i RTS standardu RS232 za pomocą portów RA4..5, tu nie wykorzystywana, należy ustawić w pozycję 1 (do góry). Czerwone diody sygnalizują stan wysoki, a zielone stan niski lub napięcie ujemne (linie interfejsu RS232), żółta dioda LED17 oznacza podłączenie zasilacza. 12

Załącznik B Układ laboratoryjny Keyboard + Display Schemat ideowy

Załącznik B Układ laboratoryjny Keyboard + Display Rysunek układu Opis układu Układ składa się z 16-polowej klawiatury multipleksowanej z 4-cyfrowym 7- segmentowym wyświetlaczem. Posiada 2 złacza RB i RD. Młodsza połowa portu RB RB0..3 (ustawiona jako wyjście mikrokontrolera) używana jest do wyboru kolumny matrycy klawiatury oraz jednocześnie cyfry wyświetlacza. Wyboru dokonuje się poprzez wystawienie 0 na odpowiedniej linii. Starsza połowa portu RB4..7 (ustawiona jako wejście mikrokontrolera) służy do detekcji (pojawi się 0) wćiśniętego klawisza z zaadresowanej kolumny. Cały port RD (wyjście mikrokontrolera) służy do wyboru segmentów wyświetlaczy. Stanem aktywnym jest 0. 14

Załącznik C Układy laboratoryjne TCN75 i MCP9803 Schematy ideowe

Załącznik C Układy laboratoryjne TCN75 i MCP9803 Rysunki układów Opis układów Układy TCN75 i MCP9803 są cyfrowymi termometrami z interfejsem I2C. Płytki drukowane różnią się jedynie rodzajem zastosowanego układu scalonego. Na dolnej warstwie płytki znajduje się płaszczyzna masy, tu nie ukazana. 7-bitowy adres układu jest postaci 1001A2A1A0, gdzie bity A2-A0 są trzema najmłodszymi bitami, Wartość bitów adresu A2-A0 ustawia się za pomocą złącza ADDR. Zwarcie na złączu oznacza wartość 0 dla odpowiedniego bitu, brak łącznika oznacza wartość 1. UWAGA: Do jednej szyny interfejsu I2C nie można podłączać urządzeń o tym samym adresie. Należy ustawić w różny sposób adresy na złączu ADDR. Termometry TCN75 i MCP9803 posiadają dodatkowe wyjście typu OC alarmu przekroczenia zadanej temperatury, lub zgłaszające przerwanie. Wyjście to można dołączyć do układu laboratoryjnego PIC16F877 za pomocą założenia zworki na górne 2 piny złącza INT. Stan tego wyjścia można wówczas obserwować poprzez diody LED nad odpowiednimi gniazdami układu PIC16F877. Możliwe jest również programowe sprawdzanie ich stanu. 16

Załącznik D Zestaw instrukcji mikrokontrolera PIC16F877 Mnemonic, Operands Description Cycles 14-Bit Opcode MSb BYTE-ORIENTED FILE REGISTER OPERATIONS LSb Status Affected ADDWF f, d Add W and f 1 00 0111 dfff ffff C, DC, Z ANDWF f, d AND W with f 1 00 0101 dfff ffff Z CLRF f Clear f 1 00 0001 1fff ffff Z CLRW Clear W 1 00 0001 0xxx xxxx Z COMF f, d Complement f 1 00 1001 dfff ffff Z DECF f, d Decrement f 1 00 0011 dfff ffff Z DECFSZ f, d Decrement f, skip if 0 1 (2) 00 1011 dfff ffff None INCF f, d Increment f 1 00 1010 dfff ffff Z INCFSZ f, d Increment f, skip if 0 1 (2) 00 1111 dfff ffff None IORWF f, d Inclusive OR W with f 1 00 0100 dfff ffff Z MOVF f, d Move f 1 00 1000 dfff ffff Z MOVWF f Move W to f 1 00 0000 1fff ffff None NOP No Operation 1 00 0000 0xx0 0000 None RLF f, d Rotate left f through Carry 1 00 1101 dfff ffff C RRF f, d Rotate right through Carry 1 00 1100 dfff ffff C SUBWF f, d Subtract W from f 1 00 0010 dfff ffff C, DC, Z SWAPF f, d Swap f 1 00 1110 dfff ffff None XORWF f, d Exclusive OR W with f 1 00 0110 dfff ffff Z BIT-ORIENTED FILE REGISTER OPERATIONS BCF f, b Bit Clear f 1 01 00bb bfff ffff None BSF f, b Bit Set f 1 01 01bb bfff ffff None BTFSC f, b Bit Test f, Skip if Clear 1 (2) 01 10bb bfff ffff None BTFSS f, b Bit Test f, Skip if Set 1 (2) 01 11bb bfff ffff None LITERAL AND CONTROL OPERATIONS ADDLW k Add Literal and W 1 11 111x kkkk kkkk C, DC, Z ANDLW k AND Literal with W 1 11 1001 kkkk kkkk Z CALL k Call Subroutine 2 10 0kkk kkkk kkkk None CLRWDT Clear Watchdog Timer 1 00 0000 0110 0100 TO, PD GOTO k Unconditional branch 2 10 1kkk kkkk kkkk None IORLW k Inclusive OR Literal with W 1 11 1000 kkkk kkkk Z MOVLW k Move literal to W 1 11 00xx kkkk kkkk None RETFIE Return from Interrupt 2 00 0000 0000 1001 None RETLW k Return, place Literal in W 2 11 01xx kkkk kkkk None RETURN Return from Subroutine 2 00 0000 0000 1000 None SLEEP Go into Standby mode 1 00 0000 0110 0011 TO, PD SUBLW k Subtract W from Literal 1 11 110x kkkk kkkk C, DC, Z XORLW k Exclusive OR Literal to W 1 11 1010 kkkk kkkk Z f adres rejestru, b numer bitu, k stała, d=1 wynik w f, d=0 wynik w W