OPROGRAMOWANIE APARATURY POMIAROWEJ OPROGRAMOWANIE APARATURY P. Programowa obsługa klawiatury PC AT oraz odbiór informacji z pilota TV w kodzie RC-5



Podobne dokumenty
LABORATORIUM OPROGRAMOWANIA MIKROPROCESOROWEJ APARATURY POMIAROWEJ

Wyświetlacz alfanumeryczny LCD zbudowany na sterowniku HD44780

P 6.7 P 6.6 P 6.5 P 6.4 MAX 232. RxD TxD

1.2 Schemat blokowy oraz opis sygnałów wejściowych i wyjściowych

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

Programowanie Mikrokontrolerów

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

Zespół Szkół Technicznych. Badanie wyświetlaczy LCD

Programowanie mikrokontrolerów 2.0

Makieta dydaktyczna IME-LabTM

interfejs szeregowy wyświetlaczy do systemów PLC

TECHNIKA MIKROPROCESOROWA

ĆWICZENIE 7. Wprowadzenie do funkcji specjalnych sterownika LOGO!

Ustawienia ogólne. Ustawienia okólne są dostępne w panelu głównym programu System Sensor, po kliknięciu ikony

Wprowadzenie do informatyki i użytkowania komputerów. Kodowanie informacji System komputerowy

dokument DOK wersja 1.0

Komunikacja w mikrokontrolerach Laboratorium

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

LABORATORIUM ENERGOOSZCZĘDNEGO BUDYNKU

Programowanie mikrokontrolerów. 8 listopada 2007

Zagadnienia zaliczeniowe z przedmiotu Układy i systemy mikroprocesorowe elektronika i telekomunikacja, stacjonarne zawodowe

Instrukcja do oprogramowania ENAP DEC-1

GRM-10 - APLIKACJA PC

UW-DAL-MAN v2 Dotyczy urządzeń z wersją firmware UW-DAL v5 lub nowszą.

Odbiornik z wyświetlaczem

Dokumentacja sterownika mikroprocesorowego "MIKSTER MCC 026"

Standard transmisji równoległej LPT Centronics

MIKROKONTROLERY I MIKROPROCESORY

MIKROPROCESORY architektura i programowanie

Laboratorium mikroinformatyki. Szeregowe magistrale synchroniczne.

Szkolenia specjalistyczne

Instrukcja obsługi elektronicznego licznika typu 524. Model 524. Licznik sumujący i wskaźnik pozycji typu Opis. 1. Opis

Wyjście do drukarki Centronix

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

Programowalne Układy Cyfrowe Laboratorium

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

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

Opis procedur asemblera AVR

instrukcja użytkownika terminala ARGOX PA-20 SYSTEMY AUTOMATYCZNEJ IDENTYFIKACJI

Technika Mikroprocesorowa

OPIS PROGRAMU USTAWIANIA NADAJNIKA TA105

Instrukcja do ćwiczenia : Matryca komutacyjna

IIPW_SML3_680 (Z80) przewodnik do ćwiczeń laboratoryjnych

LABORATORIUM INTELIGENTNYCH SYSTEMÓW ELEKTRYCZNYCH

2. Architektura mikrokontrolerów PIC16F8x... 13

Instrukcja obsługi pulpitu operatorskiego DCK (skrócona wersja)

Alfanumeryczny wyświetlacz LCD

Odczyt zegara ze sterownika do panelu serii TIU z możliwością korekty ustawień zegara w sterowniku

1. Podstawowe wiadomości Możliwości sprzętowe Połączenia elektryczne Elementy funkcjonalne programów...

Sterowanie oświetleniem poprzez TEBIS

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

Opis Ogólny OPIS OGÓLNY LICZNIKA AL154LI01.

WEJŚCIE W TRYB PROGRAMOWANIA

Mikroprocesory i Mikrosterowniki Laboratorium

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

APLIKACJA COMMAND POSITIONING Z WYKORZYSTANIEM KOMUNIKACJI SIECIOWEJ Z PROTOKOŁEM USS W PRZETWORNICACH MDS/FDS 5000

Instrukcja instalacji Przewód interfejsu USB

Programowanie w językach asemblera i C

Aby w pełni przetestować układ o trzech wejściach IN_0, IN_1 i IN_2 chcemy wygenerować wszystkie możliwe kombinacje sygnałów wejściowych.

Laboratorium Komputerowe Systemy Pomiarowe

MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW

Instrukcja programowania nadajnika ATV-49. Instrukcja dotyczy programu PR-DOS V0.80 LIGHT, który obsługuje nadajniki ATV-49 SV 1.3

Obsługa pilota uniwersalnego RCU650

Opis czytnika TRD-FLAT CLASSIC ver Naścienny czytnik transponderów UNIQUE w płaskiej obudowie

Przemysłowy odtwarzacz plików MP3

Instrukcja integracji urządzenia na magistrali Modbus RTU. wersja 1.1

Dodatek D. Układ współpracy z klawiaturą i wyświetlaczem 8279

Logiczny model komputera i działanie procesora. Część 1.

Kod produktu: MP01105

Programator układów HCS

Działanie systemu operacyjnego

1. Cel ćwiczenia. 2. Podłączenia urządzeń zewnętrznych w sterowniku VersaMax Micro

Opis czytnika TRD-FLAT 2LN ver Naścienny czytnik transponderów UNIQUE w płaskiej obudowie

Tranzystor JFET i MOSFET zas. działania

imei Instytut Metrologii, Elektroniki i Informatyki

CAR MP3 PLAYER RDS 982 INSTRUKCJA kompatybilny z SD, USB, MP3

Interfejsy systemów pomiarowych

Kontroler Xelee Master DMX64/512 - Instrukcja obsługi. Kontroler Xelee Master DMX64/512 Firmware 1.1 Instrukcja Obsługi.

Rejestratory Sił, Naprężeń.

STEKOP SA. Odbiornik dialerowy. Zakład Pracy Chronionej Białystok, ul. Młynowa 21 tel./fax : (+48 85) ,

INSTRUKCJA OBSŁUGI CZYTNIK LC2200

Dodatek B. Zasady komunikacji z otoczeniem w typowych systemach komputerowych

LABORATORIUM INTELIGENTNYCH SYSTEMÓW ELEKTRYCZNYCH. Ćwiczenie 10. Wykorzystanie funkcji ściemniacza w systemie TEBIS

Sterownik kompaktowy Theben PHARAO II

Gdzie przyjęto, że: IR7...IR4 to starsze bity przesyłanej danej lub rozkazu, IR3...IR0 to młodsze bity przesyłanej danej lub rozkazu.

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

ND48-RS protokół komunikacyjny ASCII A2.04

Ćwiczenie 2. Siedmiosegmentowy wyświetlacz LED

4 Transmisja szeregowa na przykładzie komunikacji dwukierunkowej z komputerem PC, obsługa wyświetlacza LCD.

Struktura i działanie jednostki centralnej

INDU-52. Przemysłowy Sterownik Mikroprocesorowy. Przeznaczenie Kotły warzelne, Patelnie gastronomiczne, Piekarniki

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

SMS SMS telefon. Umożliwia łatwe i szybkie wysyłanie wiadomości SMS...

Moduł komunikacyjny Modbus RTU do ciepłomierza SonoMeter 30

1 Moduł Neuronu Cyfrowego

Opis układów wykorzystanych w aplikacji

Kod produktu: MP01105T

PPHU Janusz Janowski Nowy Sącz; ul. Franciszkańska 3 tel.(0-18) , fax. (0-18)

Program EDYTOR-AS-OUX

3.2. Zegar/kalendarz z pamięcią statyczną RAM 256 x 8

Transkrypt:

OPROGRAMOWANIE APARATURY POMIAROWEJ OPROGRAMOWANIE APARATURY P Programowa obsługa klawiatury PC AT oraz odbiór informacji z pilota TV w kodzie RC- Laboratorium. Cel ćwiczenia Celem ćwiczenia jest zapoznanie studentów w sposób praktyczny z odbiorem informacji z standardowego pilota telewizyjnego nadającego w kodzie RC- (odbiór informacji z pilota telewizyjnego realizowany jest programowo poprzez czujnik sygnału podczerwonego), programową obsługą klawiatury PC AT oraz pokazanie darmowych narzędzi służących do uruchamiania systemów mikroprocesorowych na przykładzie programu monitora PAULMON. Wykorzystywana w ćwiczeniu makieta umożliwia również obsługę wyświetlacza LCD. Programowa obsługa wyświetlacza LCD Interfejs sterownika wyświetlacza LCD składa się z ośmiu linii danych D0..D oraz trzech linii sterujących: R/W, RS oraz E. Sterownik wyświetlacza LCD posiada dwa rodzaje pamięci RAM. Pamięć ekranu (DD RAM) zawiera kody znaków aktualnie wyświetlanych na polu odczytowym. Wyświetlenie znaku na odpowiedniej pozycji pola odczytowego wyświetlacza LCD polega więc na wpisaniu jego kodu do pamięci DD RAM. Kody poszczególnych znaków podano w tabeli (dodatek A). Linia R/W informuje sterownik wyświetlacza o pożądanym kierunku przepływu informacji, tj. zapisie do sterownika (R/W = 0) lub odczycie ze sterownika(r/w = ). Na podstawie stanu linii RS sterownik dokonuje interpretacji samej informacji przy zapisie (R/W = 0) jako: rozkaz do wykonania (RS = 0), kod znaku do wyświetlenia (RS = ), natomiast przy odczycie (R/W = ) wystawia na szynę danych: bajt w którym najstarszy bit informuje o zajętości sterownika, a pozostałe o aktualnym adresie w pamięci DDRAM lub CGRAM (RS = 0), kod znaku z pamięci DD RAM lub CG RAM (RS = ). Wyświetlacz LCD widziany jest jako komórki zewnętrznej pamięci danych. Zatem jego obsługa od strony programowej realizowana jest z wykorzystaniem instrukcji właściwych dla zapisu/odczytu zewnętrznej pamięci danych mikrokontrolera. Linie R/W i RS podłączone są bezpośrednio do linii A i szyny adresowej systemu mikroprocesorowego. Sterowanie nimi odbywa się zatem przez odpowiednie ustawienie dwóch najmłodszych bitów adresu podczas operacji zapisu/odczytu zewnętrznej pamięci danych mikrokontrolera (patrz punkt.). Linia E sterowana jest automatycznie w sposób sprzętowy i ustawienie jej odpowiedniego stanu nie wymaga ingerencji programowej. W tabeli (dodatek A) przedstawiono rozkazy dostępne przy sterowaniu wyświetlaczem LCD. Do poprawnej pracy wyświetlacza wymagane jest co najmniej ustawienie: parametrów pracy (ang. Function Set), sterowania wyświetlaniem (ang. Display on/off Control) i trybu wprowadzania znaków (ang. Entry Mode Set). Znaczenie poszczególnych bitów wymienionych rozkazów znajduje się również w tabeli. Przed wysłaniem jakiejkolwiek informacji do sterownika wyświetlacza, należy sprawdzić jego gotowość do jej przyjęcia przez odczytu informacji ze sterownika (przy RS = 0 i R/W = ) tak długo, aż najstarszy bit oznaczony BF nie przyjmie wartości 0. Na rys. (dodatek A) pokazano graficznie adresy odpowiadające poszczególnym pozycjom na polu odczytowym dla wyświetlacza x. Znak, którego kod zostanie wysłany do sterownika, pojawi się zawsze na pozycji określonej aktualną zawartością licznika adresu AC sterownika wyświetlacza, a następnie adres ten zostanie zwiększony lub zmniejszony w zależności od ustawienia bitu I/D rozkazu ustalającego tryb wprowadzania znaków (ang. Entry Mode Set). Bieżąca wartość licznika adresów AC sterownika wyświetlacza określa również pozycję, na której znajduje się kursor o ile został on włączony przez ustawienie odpowiedniego bit. Dlatego określenia adres pozycji znaku, adres kursora i adres DD RAM są jednoznaczne. W celu zmiany zawartości licznika adresu AC, a jednocześnie przemieszczenia kursora na odpowiednią pozycję pola odczytowego wyświetlacza, należy użyć funkcji ustawiającej adres kursora (ang. Set DDRAM address).

Pamięć generatora znaków (CG RAM) przechowuje matryce znaków (w pamięci przechowującej tablice kodów znaków odpowiadają im adresy 00H..0FH; patrz tabela, dodatek A), które można dowolnie zaprogramować. Każda matryca składa się z bajtów. Format zapisu przedstawiono w tabeli. Tabela. Format zapisu znaków użytkownika Adres CG RAM Dane dwójkowo dwójkowo n n n 0 0 0 0 0 0 0 0 0 0 0 n n n 0 0 0 0 0 0 0 n n n 0 0 0 0 0 0 0 0 n n n 0 0 0 0 0 0 0 n n n 0 0 0 0 0 0 0 0 n n n 0 0 0 0 0 0 0 n n n 0 0 0 0 0 n n n 0 0 0 0 0 0 0 0 nnn - określa numer jednego z ośmiu znaków użytkownika W celu zaprogramowania powyższego znaku pod adresem 0H w tablicy kodów znaków, należy wysłać rozkaz ustawiający adres pamięci CG RAM na wybraną wartość, a następnie sukcesywnie przesyłać kolejne dane określające wzorce linii znaku. W celu wyświetlenia tak zaprojektowanego znaku należy zapisać do pamięci DD RAM sterownika wyświetlacza jego kod (w rozpatrywanym przykładzie wynosi on 0H). Wysłanie rozkazu ustawiającego adres pamięci CG RAM powoduje, że każda następna operacja zapisu lub odczytu przy RS = będzie odnosiła się do wspomnianej pamięci. Jednocześnie adres po każdej takiej operacji będzie automatycznie inkrementowany. Identycznie następstwa dotyczą wysłania rozkazu ustawiającego adres pamięci DD RAM, dlatego po ewentualnym procesie programowania znaku (czyli odnoszenia się do pamięci CG RAM),a przed procesem wysyłania kodów znaków do wyświetlenia, należy wysłać rozkaz ustawiający odpowiedni adres w pamięci DD RAM. Znak. Odbiór informacji z pilota TV nadającego w kodzie RC Kodowanie RC jest popularnym sposobem formatowania cyfrowych sekwencji sterujących dla urządzeń audio-wideo, definiując sposób transmisji bitów, czasy, rozmiar ramki, a także znaczenie poszczególnych bitów. Kod RC umożliwia przekazanie rozkazów do różnych urządzeń (każde urządzenie ma przypisany właściwy dla swojego typu adres i reaguje tylko na przeznaczone dla niego rozkazy). Można też traktować rozkazy i adresy jako wspólny zbiór komunikatów, co umożliwia przesłanie do jednego urządzenia 0 poleceń. Twórca systemu RC (firma Philips) przyporządkował na stałe część adresów wybranym grupom urządzeń (tabela ), jak również część rozkazów wybranym poleceniom (tabela ). Tabela. Adresu urządzeń sterowanych kodem RC Adres (dziesiętnie) Urządzenie 00 Odbiornik telewizyjny 0 Odbiornik telewizyjny 0 Teletekst 0 Magnetowid 0 Magnetowid Przedwzmacniacz audio Radioodbiornik Magnetofon Przedwzmacniacz audio 0 Odtwarzacz CD Tuner Satelitarny 0,,,,,, Adresy zwykle niewykorzystane, które można przydzielić samodzielnie skonstruowanym urządzeniom Urządzenia fabryczne zawierają zazwyczaj wyspecjalizowane układy do nadawania np. SA0 i odbioru np. SA, które współpracują z pozostałymi blokami urządzenia. Ze względu na stosunkowo małą szybkość transmisji, odbiór ramki informacyjnej nadawanej w kodzie RC można przeprowadzić programowo z wykorzystaniem detektora promieniowania podczerwonego i mikrokontrolera.

Tabela. Numery rozkazów w kodzie RC (telewizor) Numer (dziesiętnie) Polecenie 00 0 Cyfry od 0 do, numery kanałów TV Stand by (wyłączenie telewizora z zapamiętaniem ustawionych parametrów Mute (wyciszenie dźwięku) Normalizacja Zwiększenie głośności Zmniejszenie głośności Zwiększenie jaskrawości Zmniejszenie jaskrawości 0 Zwiększenie nasycenia Zmniejszenie nasycenia Zwiększenie poziomu tonów niskich Zmniejszenie poziomu tonów niskich Zwiększenie poziomu tonów wysokich Zmniejszenie poziomu tonów wysokich Balans w prawo Balans w lewo.. Nadawanie i odbiór informacji Przesyłanie sygnału przy użyciu fali świetlnej w zakresie podczerwieni stosowane w pilotach TV i jego odbiór przedstawiono schematycznie na rys.. Sygnał prostokątny o zadanej częstotliwości steruje bramką tranzystora sukcesywnie zapalając i gasząc diodę emitującą światło w zakresie podczerwieni. Układ odbiornika posiada filtr, który wychwytuje tylko sygnał o zadanej częstotliwości. Dzięki wbudowanemu demodulatorowi wykrycie transmisji sygnału powoduje przełączenie wyjścia odbiornika w stan niski. Brak sygnału ustawia wyjście odbiornika w stan wysoki. +V +V Rys.. Schematyczne zobrazowanie nadawania i odbioru informacji przez pilot telewizyjny Każdy bit ramki informacyjnej nadawany jest w tzw. kodzie bifazowym (nazywanym również kodem Manchester), co przedstawiono na rys.. Kodowanie bifazowe polega na zmianie fazy sygnału na przeciwny w połowie czasu trwania bitu. Jeśli transmitowany bit ma wartość logiczną, to w pierwszej połowie czasu jego trwania wyjście odbiornika podczerwieni przyjmuje stan wysoki, natomiast w drugiej połowie stan niski. Podobnie przy transmisji bitu o wartości logicznej 0; w pierwszej połowie czasu na wyjściu odbiornika jest stan niski, w drugiej stan wysoki. nadajnik odbiornik a) b) okresy okresy okresy okresy Rys.. Sposób nadawania informacji logicznej w kodzie bifazowym: a) jedynki, b) zera W pilotach nadających w kodzie RC czas trwania pojedynczego bitu wynosi okresy sygnału sterującego pracą nadajnika. Ze względu na kodowanie bifazowe, stan wyjścia zmienia się na przeciwny po okresach. Dzięki określeniu wszystkich czasów w standardzie w powiązaniu z częstotliwością sygnału sterującego pracą nadajnika, możliwa jest praca w jednym pomieszczeniu kilku nadajników kodu RC o różnych częstotliwościach.

.. Ramka informacyjna Wciśnięcie dowolnego klawisza na pilocie TV powoduje wygenerowanie -bitowej ramki informacyjnej pokazanej schematycznie na rys., która przesyłana jest szeregowo do odbiornika podczerwieni. Dwa pierwsze bity S są bitami startu i zawsze mają wartość. Następny bit T jest nazywany bitem kontrolnym lub przełączania. Jego wartość zmienia się po każdorazowym wciśnięciu i zwolnieniu przycisku. Zatem przytrzymanie przycisku powoduje wygenerowanie ciągu identycznych ramek (w odstępach czasu równych czasowi trwania 0 bitów), w których bit T ma stale taką samą wartość. Pięć kolejnych bitów A określa adres urządzenia, dla którego przeznaczony jest rozkaz zakodowany na sześciu następnych bitach C0 C. 0 0 0 0 0 0 S S T A A A A A C C C C C C bitów Rys.. Przykładowa ramka informacyjna w kodzie RC bity 0 bitów bitów Rys.. Sukcesywne wysyłanie tej samej ramki informacyjnej.. Programowy odbiór ramki informacyjnej W makiecie dydaktycznej odbiór sygnału z pilota TV odbywa się z wykorzystaniem odbiornika podczerwieni TFMS0. Układ posiada w swojej strukturze wszystkie elementy potrzebne do odebrania zmodulowanego sygnału, wzmocnienia go i demodulacji, otrzymując na wyjściu podłączonym do wejścia INT mikrokontrolera ciąg impulsów prostokątnych (rys.) gotowych do dalszej obróbki i analizy. Tabela. Czasy związane z nadawaniem ramki informacyjnej w kodzie RC (częstotliwość fali nośnej khz) Opis Obliczenie Czas Okres sygnału, [μs] Czas trwania jednego bitu, [μs], [ms] Czas trwania ramki informacyjnej, [ms], [ms] Czas trwania przerwy pomiędzy ramkami 0, [ms], [ms] Najprostszy sposób poprawnego odczytu ramki informacyjnej wymaga wykrycia jej początku i interpretacji wartości poszczególnych bitów. Można tego dokonać sugerując się informacjami podanymi na rys.., bita bit, ms, ms bit, ms bit, ms bit, ms S = S = T = 0 S = S = T = 0 Rys.. Przykładowy sposób odczytu bitów ramki informacyjnej nadawanej w kodzie RC Przy braku transmisji ramki informacyjnej wyjściowa odbiornika podczerwieni (a tym samym INT mikrokontrolera, do której podłączone jest wyjście odbiornika podczerwieni w niniejszej makiecie dydaktycznej) znajduje się w stanie wysokim. Pierwszy transmitowany bit ramki ma wartość logiczną, dlatego wykrycie zmiany ze stanu wysokiego na niski daje informację, że właśnie znajdujemy się w połowie nadawania Dzięki bitowi T możliwe jest rozróżnienie, czy odebrana ramka została wygenerowana przez kolejne wciśnięcie tego samego przycisku, czy też jest wynikiem przytrzymania przycisku przez dłuższy okres czasu.

/ bita 0, ms / bita 0, ms / bita 0, ms / bita 0, ms / bita 0, ms / bita 0, ms / bita 0, ms 0, ms / bita pierwszego bitu startowego ramki. W celu poprawnego odczytania wartości kolejnych bitów należy sprawdzać stan linii INT w pierwszej połowie czasu trwania każdego kolejnego bitu, gdyż wtedy stan linii INT odpowiada wartości przesyłanego bitu informacji. W tym celu po wykryciu zmiany z stanu wysokiego na niski przy pierwszym bicie startowym, a tym samym wykryciu początku ramki, należy odmierzyć czas równy, bitu, jeśli kolejny bit startowy jest pomijany (patrz rys.) lub 0, bitu - jeśli nie jest. Odmierzając teraz kolejno czasy równe bitowi i sukcesywnie odczytując stan linii INT, możliwy jest odczyt wartości dalszych bitów ramki. Podczas nadawania ramki informacyjnej może dojść do zasłonięcia diody emitującej promieniowanie podczerwone w pilocie. Stosując sposób odbioru przedstawiony na rys. nie ma możliwości stwierdzenia, czy transmisja ramki została przerwana, co może spowodować błędną interpretację odebranej informacji. Aby się ustrzec przed opisaną sytuacją, konieczne jest próbkowanie linii INT zarówno w czasie trwania pierwszej, jaki i drugiej połowy bitu (rys.). Jeśli dwa odczytane stany mają wartości przeciwne to znaczy, że ramka informacyjna jest wciąż nadawana, a odczytana wartość bitu jest poprawna., bita, ms S = S = T = 0 S = S = T = 0 Rys.. Ulepszony sposób odczytu bitów ramki informacyjnej nadawanej w kodzie RC Również może dojść do sytuacji, w której odbiór ramki rozpoczęto nie od pierwszego, lecz od któregoś z dalszych bitów traktując go jako bit startu. Dlatego po stwierdzeniu zmiany stanu linii INT z wysokiego na niski zaleca się odmierzenie czasu większego od długości jednej ramki a krótszego niż czas równy połowie długości czasu trwania przerwy pomiędzy ramkami. W ten sposób niezależnie od tego, w jakiej chwili czasowej rozpoczęliśmy analizę ramki po odmierzeniu tego czasu znajdziemy się w przerwie pomiędzy ramkami (rys. ). Po tym czasie należy ponownie oczekiwać na zmianę stanu linii INT z wysokiego na niski, a więc na początek nowej ramki, co zapewni poprawny jej odczyt. bitów bitów Rys.. Ulepszony sposób rozpoczęcia odczytu ramki informacyjnej nadawanej w kodzie RC. Klawiatura PC AT Klawiatura PC AT podłączana jest do urządzeń przy wykorzystaniu czteroprzewodowego interfejsu. Tylko dwie z tych linii ( danych i zegarowa) służą do przesyłania informacji pomiędzy klawiatura a urządzeniem nadrzędnym (ang. host). Pozostałe dwie są mi zasilającymi. Jak można się zorientować po występowaniu linii zegarowej, przesyłanie informacji odbywa się synchronicznie Podłączenie linii odpowiedzialnych za przesyłanie informacji do systemu mikroprocesorowego makiety pokazano na schemacie elektrycznym. Sama klawiatura zawiera macierz klawiszy monitorowaną prze wewnętrzny procesor. Wykrycie wciśnięcia klawisza, jego przytrzymania lub puszczenia powoduje wysłanie informacji nazywanej kodem skaningowym (ang. scan codes). Rozróżniane są dwa typy kodów skaningowych: wysyłanych przy wciśnięciu lub przytrzymaniu klawisza (ang. make codes) oraz wysyłane przy zwolnieniu klawisza (ang. break codes). Kody skaningowe wysyłane z klawiatury do urządzenia nadrzędnego reprezentują tylko numer wciśniętego klawisza, natomiast nie reprezentują znaku, który jest na nim przedstawiony. Dlatego w ogólności kody skaningowe i kody ASCII odpowiadające poszczególnym znakom są różne. Urządzenie nadrzędne zmuszone jest więc do dekodowania odebranych kodów skaningowych. Kody skaningowe przypisane poszczególnym klawiszom pokazano na rys..

Rys.. Kody skaningowe klawiatury PC AT O ile przedstawione na rys. kody są wysyłane przy wciśnięciu lub przytrzymaniu klawisza, to przy jego zwolnieniu wysyłany jest również ten sam kod jednak poprzedzony wartością F0h. Pokazuje to poniższy przykład. Kod wysyłany przy wciśnięciu Kod przy zwolnieniu Wciśnięty klawisz lub przytrzymaniu klawisza klawisza A Ch F0h, Ch Prawy Ctrl E0h, h F0h, E0h, h Wysyłane kody skaningowe nie są buforowane w klawiaturze, dlatego w przypadku wciśnięcia więcej niż jednego klawisza, wysyłany jest kod ostatniego z wciśniętych klawiszy. Zwolnienia ostatnio wciśniętego klawisza i jednoczesne dalsze przytrzymywanie klawiszy wciśniętych wcześniej nie powoduje wysyłania ich kodów skaningowych... Odbiór kodów skaningowych z klawiatury Klawiatura może przesyłać dane do urządzenia nadrzędnego tylko wtedy, gdy zarówno danych, jak również zegarowa znajdują się w stanie logicznej jedynki. Transmisja danych odbywa się z wykorzystaniem bitowej ramki (rys.) składającej się z bitu startu, bitów danych, bitu parzystości i bitu stopu. zegarowa danych bit startu 0 P bit stopu Rys.. Protokół przesyłania informacji z klawiatury do urządzenia nadrzędnego Wartość bitu startu i stopu jest zawsze stała i wynosi odpowiednio 0 oraz. Bity danych przesyłane są od najmniej znaczącego do najbardziej znaczącego. Przebieg na linii zegarowej generuje zawsze klawiatura. Jego częstotliwość waha się w granicach od 0 do 0 khz. W protokole transmisyjnym zakłada się, że stan linii danych jest ustabilizowany, gdy sygnał zegarowy przyjmuje stan niski, dlatego stan każdego bitu powinien być odczytywany właśnie w tym przedziale czasowym. Linia zegarowa podłączona jest do wejścia INT0 mikrokontrolera, dlatego wykrycie opadającego zbocza na niej może być realizowane z wykorzystaniem systemu przerwań mikrokontrolera. Bit parzystości określa tzw. parzystość typu odd. Oznacza to, że jeśli w przesłanym bajcie informacyjnym jest parzysta liczba jedynek, to bit ten przyjmuje wartość... Przesyłanie rozkazów do klawiatury Proces przesyłania rozkazów z urządzenia nadrzędnego do klawiatury inicjowany jest przez wymuszenie stanu niskiego na linii danych. Aby zapobiec nadawaniu w tym samym czasie informacji z klawiatury do urządzenia nadrzędnego, powszechnie przed wymuszeniem stanu niskiego na linii danych wymusza się również stan niski na linii zegarowej na czas nie krótszy niż 0 s (rys.0). Po wymuszeniu stanu niskiego na linii danych przez urządzenie nadrzędne, klawiatura maksymalnie po czasie 0ms rozpoczyna generowanie sygnału zegarowego. Stan linii danych jest odczytywany przez klawiaturę przy opadającym zboczu sygnału zegarowego, dlatego po wykryciu pierwszego opadającego zbocza na linii zegarowej należy ustawić na linii danych stan odpowiadający pierwszemu (najmłodszemu) bitowi przesyłanego

klawiatura urządzenie nadrzedne bajta. Zostanie on odczytany przez klawiaturę przy następnym opadającym zboczu. W ten sam sposób należy postąpić z kolejnymi siedmioma bitami danej i bitem parzystości. min 0 s max 0ms zegarowa danych bit startu 0 P bit stopu ack Rys.0. Protokół przesyłania informacji z urządzenia nadrzędnego do klawiatury; grubszą linią zaznaczono fragmenty, kiedy stan danej linii wymusza urządzenie nadrzędne. Po wysłaniu tej informacji urządzenie nadrzędne powinno zwolnić linię danych poprzez wystawienia na niej logicznej jedynki. W kolejnym cyklu zegarowym klawiatura potwierdza przyjęcie danych przez wymuszenie na linii danych stanu niskiego, a następnie zwalnia linię wymuszając stan wysoki. Jeśli danych nie zostanie zwolniona po wysłaniu 0 bita (bita parzystości), to klawiatura nie zaprzestaje generowania sygnału zegarowego, aż do spełnienia tego warunku. zegarowa min 0 s danych bit startu 0 P bit stopu max 0ms zegarowa danych ack Rys.. Protokół przesyłania informacji z urządzenia nadrzędnego do klawiatury; podział na przebiegi generowane przez klawiaturę i urządzenie nadrzędne. nich. FDh EEh Fh FFh Urządzenie nadrzędne może wysyłać do klawiatury różnego rodzaju polecenia. Poniżej podano kilka z Ustawia stan diod LED w klawiaturze. Polecenie to jest używane do zapalania i gaszenia diod LED oznaczonych nazwami: Caps Lock, Num Lock i Scroll Lock. Po wysłaniu tego polecenia klawiatura odpowiada bajtem potwierdzającym (wartość FAh) i czeka na następny bajt określający status diod LED. Poszczególnym diodom są odpowiednio przyporządkowane bity b, b i b 0 wysyłanego bajta. Echo. Po wysłaniu tego polecenia klawiatura przesyła w odpowiedzi tą samą wartość (EEh). Ustawia wartość opóźnienia (czas uznania klawisza za stale naciskany) i częstość repetycji (powtórzenia wysłania kodu stale naciskanego klawisza na sekundę) przy wciskaniu danego klawiszy. Klawiatura odpowiada bajtem potwierdzającym (FAh), wstrzymuje przeglądanie klawiszy i oczekuje na jeden bajt parametru. Poszczególnym bitom przesyłanego bajta przypisane jest następujące znaczenia: b = 0, b i b określają opóźnienie w milisekundach według zależności: (+b b ) 0 b,...,b 0 określają częstość repetycji, gdzie okres powtórzeń w sekundach można określić na podstawie wzoru: (+b b b 0 ) bb 0,00 Żądanie inicjalizacji i wewnętrznego testu klawiatury. Klawiatura po odebraniu tego polecenia wysyła bajt potwierdzający (FAh) i oczekuje na ustawienie linii danych i zegarowej w stan wysoki na okres nie krótszy niż 00 s.

. Działanie makiety pod kontrolą programu monitora PAULMON jest darmowym programowym monitorem instalowanym w systemach bazujących na mikrokontrolerach rodziny MCS-. Umieszczenie opisywanego monitora w pamięci ROM mikrokontrolera pozwala na wczytywanie programów do pamięci RAM i wykonywanie ich, co jest znacznie wygodniejsze i szybsze, niż przeprogramowywanie pamięci EPROM. Do komunikacji z programem monitora można wykorzystać dowolny program pozwalający na komunikację za pomocą złącza RS-, np. HyperTerminal. Po uruchomieniu niniejszego programu na komputerze PC, oraz po wciśnięciu klawisza resetu makiety, monitor wysyła następujący komunikat: Welcome to PAULMON v., by Paul Stoffregen See PAULMON.DOC, PAULMON.EQU and PAULMON.HDR for more information. Program Name Location Type List 000 External command Single-Step 00 External command Memory Editor (VT00) 00 External command a następnie pojawia się znak zachęty PAULMON Loc:000 > _ Wartość 000 określa adres, na jaki wskazuje wewnętrzny wskaźnik monitora. Jego znajomość jest użyteczna przy wywoływaniu komend operujących na pamięci systemu. Poniżej zostaną przedstawione wybrane komendy monitora. Wielkość liter przy wprowadzaniu poleceń nie ma znaczenia... D (ang. Download) ładowanie programu Polecenie to pozwala na załadowanie do pamięci RAM systemu mikroprocesorowego pliku z programem w formacie Intel Hex. W formacie tym zawarte są informacje o adresie, pod który mają być zapisywane kolejne bajty przesyłanego programu, zatem wewnętrzny wskaźnik pamięci monitora nie jest brany pod uwagę. Załadowanie programu polega na wciśnięciu klawisza [D], co powoduje wyświetlenie następującej informacji PAULMON Loc:000 > Download Begin ascii transfer of Intel hex file, or ESC to abort Teraz należy z menu Transfer programu TyperTerminal wybrać Wyślij plik tekstowy..., a w otwartym oknie wskazać miejsce położenia pliku *.hex. Zatwierdzenie wyboru powoduje rozpoczęcie przesyłania danych. Za każdym razem, kiedy monitor odbierze pojedynczą linię z ładowanego pliku *.hex, na ekranie zostaje wyświetlona kropka. Jeśli z jakiś powodów konieczne jest przerwanie ładowania programu należy wtedy wcisnąć klawisz [Esc]. Po zakończeniu ładowania pliku z programem lub gdy ładowanie zostanie przerwane na życzenie użytkownika, na ekranie pojawia się podsumowanie....... Download completed Summary: lines received 0 bytes received 0 bytes written No errors detected Jeśli po wykonaniu polecenia wczytania pliku w informacji podsumowującej monitora raportowane są błędy o braku możliwości zapisu Summary: lines received bytes received 0 bytes written Errors:

0 bytes unable to write to oznacza, że plik HEX został odebrany poprawnie, jednak obszar pamięci wyspecyfikowany w kolejnych rekordach zawartych w pliku jest tylko do odczytu. W przypadku odebrania przez monitor danych o niepoprawnym formacie zostanie wyświetlone podsumowanie podobne do poniższego. Summary: lines received bytes received bytes written Errors: bad checksums unexpected begin of line unexpected hex digits unexpected non hex digits.. J (ang. Jump) skocz pod określony adres w pamięci Polecenie to pozwala na przejście do wykonywania wczytanego wcześniej programu użytkownika. Po wciśnięciu klawisza [J] pojawi się napis PAULMON Loc:000 > Jump to memory location Jump to memory location (000), or ESC to quit: _ W tym momencie należy wprowadzić wartość adresu, od którego został umieszczony program. Po wpisaniu ostatniego (czwartego) znaku na ekranie pojawi się napis running program: _ informując o rozpoczęciu wykonywania programu użytkownika. Przed przejściem pod wyspecyfikowany adres program monitora odkłada na stosie wartość 0000H, zatem programy, które kończą się instrukcją RET powodują ponowne wywołanie programu monitora. Jeśli program działa w nieskończonej pętli, to jedyną możliwością powrotu do programu monitora jest reset mikrokontrolera.. Wskazówki do ćwiczenia Wszystkie niezbędne informacje odnośnie układów wykorzystanych w makiecie znajdują się w dodatkach dołączonych do instrukcji: dodatek A: wyświetlacz ciekłokrystaliczny... Konfiguracja przestrzeni adresowej makiety monitor EPROM program RAM: dane RAM: obszar wspólny dla programu i danych:.. Adresy układów peryferyjnych 0000h FFFh, 000h FFFh, 0000h FFFh, 000h FFFh. wyświetlacz LCD FE00h, F E 0 X hex 0 0 0 0 0 0 0 R/W RS bin RS sterująca RS sterownika wyświetlacza R/W sterująca R/W sterownika wyświetlacza

. Literatura [] Rydzewski A.: Mikrokomputery jednoukładowe. WNT, Warszawa. [] Starecki T.: Mikrokontrolery jednoukładowe rodziny. NOZOMI, Warszawa. [] Starecki T.: Mikrokontrolery 0 w praktyce. BTC, Warszawa 00. [] Majewski, Kardach K.: Mikrokontrolery jednoukładowe 0. Programowanie w języku C w przykładach. Oficyna Wydawnicza Politechniki Wrocławskiej, Wrocław. [] Kernighan W., Ritchie D.M.: ANSI C. WNT, Warszawa. [] Lach M.: Biblioteka mikroprocesorowych procedur standardowych. Elektronika Praktyczna ////, /. [] Hadam P.: Podstawy projektowania systemów mikroprocesorowych, cześć. Elektronika Praktyczna /00. [] Piotrowski S.: Klawiatury. klan, luty. [] Ziembicki J.: Moduły wyświetlaczy znakowych LCD ze sterownikami VLSI. Radioelektronik /. [0] Beach M.: C Primer, Hitex (UK) Ltd. www.esacademy.com/automation/docs/cprimer/cprim.htm 0

D C B A J DB S RESET R k C 0uF/V D N C pf Y MHz C pf 0 U X X RST P.0/T P./TEX P. P. P. P. P. P. P.0/RXD0 P./TXD0 P./INT0 P./INT P./T0 P./T 0C (AD0)P0.0 (AD)P0. (AD)P0. (AD)P0. (AD)P0. (AD)P0. (AD)P0. (AD)P0. (A)P.0 (A)P. ()P. (A)P. (A)P. (A)P. (A)P. (A)P. EA ALE PSEN P./WR P./RD 0 AD0 AD AD AD AD AD AD AD AD0 AD AD AD AD AD AD AD U D0 D D D D D D D LE OE Q0 Q Q Q Q Q Q Q HCT U IN 0/CLK IO 0 A IN IO A IN IO A LCD E IN IO A OEROM IN IO A OERAM IN IO CSRAM IN IO A CSRAM IN IO IN IN /OE GALV-LC(0) A A A A A A A A A A A A A A A A A A A A A A A A A A A 0 0 U A A A A A A A A A A A A A R/W OE CE C I/O 0 I/O I/O I/O I/O I/O I/O I/O AD0 AD AD AD AD AD AD AD A A A A A A A A A A A A A 0 0 U A A A A A A A A A A A A A R/W OE CE C P k I/O 0 I/O I/O I/O I/O I/O I/O I/O AD0 AD AD AD AD AD AD AD A A A A A A A A A A A A A A 0 0 U A A A A A A A A A A A A A A E G/VPP C WYŚWIETLACZ LCD DQ DQ DQ DQ DQ DQ DQ DQ AD0 AD AD AD AD AD AD AD Title Size Number Revision A Date: -Feb-00 Sheet of File: D:\Moje dokumenty\oap\instrukcje\makieta Drawn RC\KlawPC By: RC LCD.ddb VO RS R/W E DB0 DB DB DB DB DB DB DB R k U LCD DISPLAY Makieta dydaktyczna: klawiatura PC i odbiornik RC OUT U TFMS0 R 0k R 0k R 0R V- R IN R IN T OUT T OUT V+ R OUT R OUT T IN T IN C+ C- C+ C- 0 J DIN C,uF C uf C uf U MAX C uf C uf J DC IN C 00nF C0 00nF C 00nF C 00nF C 00nF C 00nF C 00nF A AD0 AD AD AD 0 AD AD AD AD D C B A