Komputerowe Sterowanie w Elektronice Przemysłowej

Wielkość: px
Rozpocząć pokaz od strony:

Download "Komputerowe Sterowanie w Elektronice Przemysłowej"

Transkrypt

1 Autorzy: Rafał Kotas, Piotr Krasiński LABORATORIUM Komputerowe Sterowanie w Elektronice Przemysłowej 1

2 Niniejsza instrukcja nie jest kompletnym źródłem informacji niezbędnych do wykonania zaproponowanych ćwiczeń. Zawarte są w niej jedynie wskazówki na co należy zwrócić szczególną uwagę przy programowaniu mikrokontrolera. Podstawowymi źródłami informacji, z których należy korzystać są: nota katalogowa mikrokontrolera oraz nota katalogowa płyty dydaktycznej wyposażonej we wspomniany mikrokontroler oraz peryferia. Potrzebna do wykonania poniższych ćwiczeń dokumentacja znajduje się we wskazanej lokalizacji: C:\Atmel\Dokumentacja AVR\ lub na stronach internetowych: 1) 2) 3) Literatura: o Mikrokontrolery AVR ATmega w praktyce / Rafał Baranowski o Wyświetlacze graficzne i alfanumeryczne w systemach mikroprocesorowych / Rafał Baranowski o Sztuka programowania mikrokontrolerów AVR : podstawy / Andrzej Pawluczuk o Sztuka programowania mikrokontrolerów AVR : przykłady / Andrzej Pawluczuk Mapa połączeń płyty dydaktycznej: PA0 -> CON7 (P2) potencjometr analogowy [zielony 1] PA1 -> CON7 (TEM) termistor [zielony 1] PA2 PA7 -> CON13 (D4, D5, D6, D7, E, RS) char LCD [zielony 6] CON13 (RW) -> GND char LCD [zielony 1] PB0-PB3 -> CON19 (SW0, SW1, SW2, SW3) klawiatura [czerwony 4] PB4, PB6, PB7-> CON8 (CS, SIO, SCK) termometr cyfrowy [czerwony 3] PB5 -> CON7 (SPK) brzęczek [czerwony 1] PC6-PC7 -> CON9 (6, 7) LED-y: LED6, LED7 [niebieski 2] PD0 -> CON7 (RxD) transmisja szeregowa [niebieski 1] PD1 -> CON7 (TxD) transmisja szeregowa [niebieski 1] PD2-PD6 -> CON9 (0, 1, 2, 3, 4, 5) LED-y: LED0, LED1, LED2, LED3, LED4, LED5 [niebieski 6] PC0, PC1 -> CON7 (SCL,SDA) [niebieski 2] 2

3 Wstęp teoretyczny do ćwiczeń 1-5 Każdy mikrokontroler integruje w swojej strukturze kilka elementów, nazywanych zasobami. Niemal w każdym mikrokontrolerze z rodziny AVR występuje pewna grupa zasobów. Są to: pamięć RAM, pamięć programu, rejestry robocze, jednostka centralna CPU (Central Processing Unit), rejestry wejścia/wyjścia. Pamięć RAM jest ulotną pamięcią przewidzianą, do zapamiętywania informacji powstałej podczas realizacji programu. W pierwszej chwili po włączeniu zasilania zawartość pamięci RAM trzeba traktować jako przypadkową. Przed jej właściwym użyciem należy ją zainicjować, czyli ustawić zmienne programu przy użyciu danych początkowych. Do tej pamięci dostęp jest ograniczony i możliwy wyłącznie z poziomu programu. Wynika z tego, iż jedynie program może zapisywać dane do pamięci oraz odczytywać z niej dane. Pamięć programu nie jest pamięcią ulotną. Przewidziana jest ona do przechowywania kodu programu w postaci binarnych kodów rozkazów programu. Wykonywanie tych rozkazów w ściśle określonej kolejności, sprawia, że mikrokontroler spełnia zaprogramowane zadanie. Najważniejszym elementem wchodzącym w skład struktury mikrokontrolerów jest jednostka centralna. Element ten odpowiedzialny jest za realizację programu. Kody rozkazów pobierane z pamięci programu dekodowane są przez CPU, a następnie są wykonywane czynności związane z tą instrukcją. Bardzo ważnym fragmentem CPU jest rejestr nazywany licznikiem rozkazów. Wskazuje on miejsce w programie, w którym obecnie znajduje się jego wykonanie. Wszystkie mikrokontrolery posiadają również pewien zestaw wskaźników, nazywanych inaczej rejestrem flag. Do tego rejestru należą m.in. flagi: przeniesienia C (carry flag) i globalnego zezwolenia na przerwania I (interrupt enable flag). Zasobami mikrokontrolerów AVR, które biorą udział w operacjach arytmetycznych i logicznych są tzw. rejestry robocze. Wszystkie operacje realizowane przez mikrokontroler wykonywane są właśnie na tych rejestrach. Do zajęć przygotowano płyty dydaktyczne wyposażone w mikrokontroler ATmega32. Główną jego cechą, która zadecydowała o takim wyborze jest dostępna ilość portów, wbudowany przetwornik A/C, a także dostępność, niski koszt i łatwość programowania. ATmega32 jest 8 bitowym mikrokontrolerem z rodziny AVR. Rdzeń mikrokontrolera AVR posiada bogaty zestaw instrukcji z 32 rejestrami ogólnego przeznaczenia, które mają symbole od R0 do R31. Rejestry te, z punktu widzenia programu, znajdują się na początku wewnętrznej pamięci RAM. Bezpośrednie podłączenie wszystkich 32 rejestrów do jednostki arytmetyczno-logicznej (ALU), pozwala na jednoczesny dostęp do dwóch niezależnych rejestrów w jednej instrukcji wykonywaj w czasie jednego cyklu maszynowego. Taka architektura zwana architekturą RISC jest zdecydowanie bardziej wydajna i efektywna, gdyż pozwala na szybszą pracę w porównaniu z konwencjonalnymi mikrokontrolerami o architekturze typu CISC. ATmega32 posiada wbudowane: 32K bajty wewnętrznej programowalnej pamięci typu FLASH z możliwością odczytu podczas zapisu, 1K bajt EEPROM, 2K bajty SRAM, 32 rejestry robocze, 8-kanałowy, 10-bitowy przetwornik ADC, Watchdog programowalny licznik z wewnętrznym oscylatorem, SPI - port równoległy, JTAG, programowany szeregowo USART, dwa 8-bitowe liczniki, jeden licznik 16-bitowy, 4-kanałowy PWM oraz komparator analogowy. Możliwe są następujące częstotliwości pracy: 3

4 1, 2, 4, 8 albo 16 MHz. Istnieje również możliwość podłączenia do mikroprocesora kwarcu w celu uzyskania precyzyjnej częstotliwości pracy. Do poprawnej pracy mikrokontroler ATmega32 wymaga napięcia zasilającego od 4,5 do 5,5 V. Mikrokontroler posiada wbudowane obwody, kontrolujące prawidłowość napięcia zasilającego. W przypadku, gdy napięcie niespodziewanie obniży się poniżej wartości zadanej, mikrokontroler zostaje zresetowany i pozostaje w tym stanie do czasu powrotu prawidłowego napięcia zasilającego. Mikrokontroler ten wyposażony jest w 6 różnych trybów pracy w uśpieniu. Dzięki temu posiada wiele niezbędnych konfiguracji, w których możliwe jest oszczędzanie energii. Podczas aktywnej pracy mikrokontrolera pobiera on około 1,1 ma. Po przejściu w jeden z trybów uśpienia pobór prądu spada poniżej 0,4 ma. Istnieje również ustawienie mikrokontrolera do pracy w trybie niskiego poboru mocy (Power-Down). W trybie tym mikrokontroler zapamiętuje zawartość rejestrów, ale zatrzymuje oscylator, uniemożliwiając wykonywanie instrukcji, aż do wystąpienia następnego przerwania lub sprzętowego resetu. ATmega32 produkowana jest w trzech rodzajach obudów (w tym SMD). Posiada 4 8-bitowe porty wejścia/wyjścia A, B, C i D. Osobne wyprowadzenia są przydzielone do podłączenia mikrokontrolera do zasilania, masy, zewnętrznego źródła odniesienia dla przetwornika ADC, zewnętrznego kwarcu, a także do sprzętowego resetu. Rejestry wejścia/wyjścia są zbiorem rejestrów przeznaczonych do komunikacji ze światem zewnętrznym. Służą one również do kontroli i konfigurowania wbudowanych w mikrokontroler bloków funkcjonalnych. Odpowiednie zapisy w poszczególnych rejestrach decydują o tym, które bity portów równoległych spełniają rolę wejść, a które rolę wyjść. W mikrokontrolerach AVR w przestrzeni rejestrów wejścia/wyjścia znajduje się wskaźnik stosu SP (Stack Pointer). Przede wszystkim służy on do zachowania rejestrów wykorzystanych w procedurze obsługi przerwania (instrukcja push i pop). Wskaźnik stosu w mikrokontrolerach AVR jest rejestrem o charakterze adresowym. W przypadku mikrokontrolerów z rodziny AVR wskaźnik stosu SP jest adresem pierwszego, wolnego do zapisu miejsca w pamięci RAM. Do obsługi mikrokontrolerów ATmega32 stworzono wiele programów, środowisk narzędziowych i oprogramowania. Są to m.in. kompilatory C, debuggery i programatory. Rys.1. Adresy rejestrów roboczych mikrokontrolera ATmega32 Rys. 2. Adresy portów i rejestrów I/O mikrokontrolera ATmega32 4

5 Ćwiczenie 1 Temat: Obsługa rejestrów i portów mikrokontrolera operacje podstawowe Zadanie: Na porcie PB ustawić żądaną informację o dowolnej treści. Skontrolować działanie przy użyciu symulatora wbudowanego w AVR Studio. Język: Asembler Zasoby: port PB Ćwiczenie 2 Temat: Obsługa rejestrów i portów mikrokontrolera operacje podstawowe Zadanie: 1) Na odpowiednim porcie ustawić żądaną informację o dowolnej treści. Skontrolować działanie przy użyciu diod LED na płycie dydaktycznej. 2) Odmierzanie czasu pętla opóźniająca i wykorzystanie przerwań. Wyświetlić na buforze LED dowolną dynamiczną informację pulsowanie, miganie itp. Język: Asembler Zasoby: port PD2-PD7, port PC6-PC7 Ćwiczenie 3 Temat: Obsługa rejestrów i portów mikrokontrolera. Zadanie: Obsługa klawiatury. W zależności od ustawienia klawiatury wyświetlać odpowiednią informację na buforze LED. Język: Asembler Zasoby: port PB0-PB3, port PD2-PD7, port PC6-PC7 Ćwiczenie 4 Temat: Generacja dźwięków za pomocą brzęczyka. Zadanie: 1) Wykorzystać programy do odmierzania czasu do generacji dźwięku w zakresie słyszalnym. 2) Przyporządkować klawiszom różne dźwięki. Język: Asembler Zasoby: port PB5, port PB0-PB3 Ćwiczenie 5 Temat: Generacja dźwięków za pomocą brzęczyka oraz wyświetlanie informacji na diodach LED. Zadanie: Wygenerować dźwięk oraz ustawić dowolną informację na diodach LED. Napisać obsługę klawiatury. Język: C Zasoby: port PB5, port PB0-PB3 5

6 Wstęp teoretyczny do ćwiczenia 6 Wszystkie mikrokontrolery z rodziny AVR wyposażone są w przetwornik analogowocyfrowy (ADC). Najczęściej jest to jeden przetwornik, który posiada kilka multipleksowanych wejść. Programista posiada możliwość wyboru, z którego wejścia w danym momencie chce korzystać. Przetwornik może pracować w dwóch trybach: 1. Tryb ciągły, konwersja wykonywana automatycznie co określony czas; 2. Wyzwalanie ręczne. Mikrokontroler Atmega32, posiada jeden 10-bitowy przetwornik ADC. Wynik konwersji przechowywany jest w rejestrach ADCH i ADCL. Istnieje możliwość odczytu 8-bitowego. Do konfiguracji przetwornika wykorzystywane są dwa rejestry: ADCMUX ADCSRA Podłączanie przetwornika analogowo-cyfrowego W układach elektronicznych, w których występują sygnały analogowe często wprowadza się rozdział napięć zasilających na napięcia analogowe i cyfrowe. Tak samo postępuje się z masą, prowadząc masę cyfrową i masę analogową osobno na płytce. Zabiegi takie wynikają z faktu, że układy cyfrowe w których występuje częste kluczowanie są źródłami szumu. Szum ten przedostający się na linie zasilania i masy może zakłócać sygnały analogowe i wprowadzać błędy pomiaru. Jednym z typowych rozwiązań oddzielenia zasilania analogowego od cyfrowego jest układ pokazany na rysunku poniżej. Jak wiadomo, cewkę w przypadku prądu stałego można rozpatrywać jako zwarcie. Dla prądów wysokiej częstotliwości jest ona oporem. Kondensatory stanowią przerwę w obwodzie dla prądu stałego jednak są dogodną drogą dla prądu zmiennego. Cały ten układ powoduje więc, że prąd stały może swobodnie płynąć od źródła do odbiorników natomiast prąd zmienny (wynikający z zakłóceń) jest zwierany do masy. Rys. 3. Rozdzielenie zasilania analogowego i cyfrowego. W przypadku masy nie wprowadza się elementów filtrujących pomiędzy masę cyfrową i analogową. Prowadzi się natomiast te sygnały osobno na ścieżkach płytki drukowanej zwierając je w tylko jednym miejscu na płytce drukowanej. Mikrokontrolery z rodziny AVR posiadają oddzielne piny dla analogowych i cyfrowych sygnałów zasilających. W wielu mikrokontrolerach napięcie z wejścia analogowego wykorzystywane jest jako napięcie zasilające port A. (sprawdź w karcie katalogowej). Z tego powodu, jeśli nie wykorzystujemy przetwornika ADC a zamierzamy korzystać z portu A, należy pin AVCC połączyć z napięciem cyfrowym. Takiego połączenia można też dokonać jeśli nie zależy nam na dużej dokładności konwersji analogowo-cyfrowej. 6

7 Rys. 4. Przykładowe sygnały podane na wejście ADC Mikrokontrolery z rodziny AVR posiadają wejście napięcia odniesienia do przetwornika ADC (VREF). Podczas projektowania układu wykorzystującego przetwornik ADC należy wziąć pod uwagę jakie będą sygnały podawane na jego wejście. Na rysunku 4 pokazano dwa przykładowe sygnały. Wartość sygnału o dużej amplitudzie (a) zmienia się w zakresie około 0 5V. Dlatego, napięcie odniesienia dla przetwornika nie może być niższe niż 5V. W przypadku niższego napięcia odniesienia przetwornik dawałby fałszywe wyniki lub mógłby nawet zostać uszkodzony. W drugim przypadku, wartość sygnału nie przekracza wartości 1V (b). Duża część zakresu pomiarowego przetwornika jest więc nie wykorzystana a sygnał jest próbkowany z mniejszą rozdzielczością niż jest to dostępne. Z tego powodu, jeśli mamy pewność, że sygnał nie będzie przekraczał wartości 1V, najlepszym rozwiązaniem jest podanie napięcia odniesienia wynoszącego 1V. Istnieją trzy możliwości podania napięcia odniesienia do przetwornika: 1. Zewnętrzne napięcie podane na pin VREF 2. VREF połączone wewnątrz mikrokontrolera do AVCC 3. Wewnętrzne źródło napięcia 2,56V W dokumentacji zestawu startowego należy zwrócić uwagę na sposób podłączenia pinu VREF. Jak widać, jest do niego podłączony kondensator. Należy też zwrócić uwagę jaki sygnał może zostać podany na wejście przetwornika. Może on mieć wartość nawet 5V. Dlatego jest tylko jedno ustawienie bitów REFS1, REFS0 właściwe dla zestawu uruchomieniowego ZL15AVR. Rejestr ADCMUX Mikrokontrolery z rodziny AVR, najczęściej posiadają wiele wejść do przetwornika ADC. W szczególności w mikrokontrolerze AtMega32 każdy pin portu A może być użyty jako wejście przetwornika. Podczas konfiguracji przetwornika, musimy więc określić, który z pinów ma być użyty jako wejście ADC. Do ustawienia wejścia używane są bity MUX[4..0]. Przetwornik ADC w mikrokontrolerze Atmega32 posiada rozdzielczość 10 bitów. Aby zapisać wynik konwersji wykonanej przy użyciu tego przetwornika, potrzebne są dwa 8-bitowe rejestry (ADCH i ADCL). Ponieważ zapisujemy wartość 10-bitową do dwóch rejestrów (16-bitów), pozostaje 6 bitów zbędnych, które uzupełniane są zerami. Istnieje możliwość wyboru, czy wartość rejestrów za zostać wyjustowania do prawej lub lewej strony. - ADLAR = 0, justowanie do prawej, odczyt 10-bitowy ADCH ADCL ADLAR = 1, justowanie do lewej, odczyt 8-bitowy ADCH ADCL

8 Justowanie do prawej strony ma sens kiedy zależy nam na największej dostępnej dokładności i odczytujemy pełen, 10-bitowy, wynik. Musimy odczytać oba rejestry a następnie ich zawartość skleić ze sobą. Jeśli nie zależy nam na pełnej dokładności, możemy odczytywać tylko wartość 8-bitową. W takim przypadku justujemy wynik do lewej i odczytujemy jedynie wartość rejestru ADCH. Rejestr ADCSRA Jeśli chcemy używać przetwornika, musimy go najpierw włączyć. Służy do tego bit ADEN. Przetwornik ADC w mikrokontrolerach AVR może pracować w dwóch trybach: 1. Wyzwalanie ręczne 2. Praca ciągła W przypadku wyzwalanie ręcznego musimy ręcznie ustawić bit, który uruchomi konwersję (ADSC), następnie sprawdzić flagę (ADIF), która mówi czy konwersja się zakończyła. Następnie możemy odczytać wynik z rejestrów ADCH i ADCL. Przykładowy program Jest to przykładowe podejście przy wykorzystaniu jednego wejścia przetwornika ADC, odczycie 10-bitowym i ręcznym wyzwalaniu: int main() { ustawienie rejestru ADCMUX while(1) { Ustawienie rejestru ADCSRA (uruchomienie konwersji) Sprawdzenie flagi informującej o ukończeniu konwersji Odczytanie zawartości rejestrów ADCH i ADCL Przeliczenie wartości rejestrów na oczekiwane jednostki Wyświetlenie wyniku } } Ćwiczenie 6 Temat: Obsługa 10-bitowego przetwornika ADC wbudowanego w mikrokontroler. Zadanie: W zależności od ustawienia pokrętła potencjometru analogowego P2 wyświetlić wyskalowaną wartość tego napięcia na diodach LED. Język: C Zasoby: port PA0, port PD2-PD7, port PC6-PC7 8

9 Wstęp teoretyczny do ćwiczenia 7 Transmisja szeregowa RS- 232 Złącze RS-232 jest podstawowym złączem wykorzystywanym w transmisji szeregowej. Znaki składające się z pięciu do ośmiu bitów mogą być przesyłane w sposób szeregowy bit po bicie. Aby przesłać dane przez złącze RS-232 należy zaopatrzyć je w dwa dodatkowe bity sterujące, mianowicie: Bit startu, który wyznaczy rozpoczęcie nadawania; Bit stopu, wyznacza koniec procesu nadawania pojedynczego znaku. Wykorzystywany jest tutaj również bit parzystości, w celu detekcji błędów. Jest to jednak czynność stosowana coraz rzadziej, ponieważ lepszym rozwiązaniem okazuje się być algorytm sum kontrolnych, zapewnia on znacznie większy poziom detekcji błędów w przesyłanym znaku. Bit parzystości kontroluje stosunek zer do jedynek w znaku. W transmisji szeregowej asynchronicznej stosuj się dwa bity stopu, służy to zwiększeniu odstępu pomiędzy przesyłanymi znakami. Urządzenia DCE (Data Communication Equipment ) są to np. modemy lub też inne urządzenia, które służą w pośredniczeniu w transmisji szeregowej danych. Urządzenia zaś DTE (Data Terminal Equipment) to komputery lub inne urządzenia, które są nadawcami lub odbiorcami informacji. Przesyłanie danych przez magistralę RS-232 zwykle za pomocą kabla. Przy tym połączeniu może być realizowane jedno z kilku połączeń w zależności od złącza, które zastosowane jest w komputerze (9 lub 25 pin): - DB-9 BD-9 RDX(2) TDX(3) TDX(3) RDX(2) GND(5) GND(5) - DB-9 DB-25 RDX(2) TDX(2) TDX(3) RDX(3) GND(5) GND(7) - DB-25 DB-25 RDX(3) TDX(2) TDX(2) RDX(3) GND(7) GND(7) Szybkość transmisji szeregowej Nawet w transmisji asynchronicznej urządzenia nadawcze i odbiorcze muszą być w jakiś sposób,,zsynchronizowane'' muszą więc pracować z,,jednakową szybkością'' (to znaczy wiedzieć ile,,trwa'' transmisja pojedynczego bitu). Szybkość transmisji podawana jest w bitach na sekundę - bps (ang. bits per second). Najczęściej używane szybkości w transmisji szeregowej mieszczą się w następującym szeregu: 75, 110, 150, 300, 600, 1200, 2400, 4800, 9600, 19200, 38400, oraz bps. Urządzenia nadawcze i odbiorcze muszą zatem pracować z jednakową szybkością. Zazwyczaj jest ona taka sama w obu kierunkach. Szeregowa transmisja asynchroniczna Transmisja rozpoczyna się od przesłania bitu startu (bit STB) następnie przesyłany jest znak (oznaczony CB) zwykle 7 lub 8 bitów danych, transmisję kończy bit stopu (STB). Po czasie martwym procedura jest powtarzana. Na początku transmisji przesyłany jest jednostkowy impuls (zero lub jeden), musi on być przeciwny do sygnału zastosowanego w czasie martwym. Odbiorca takiego bitu 9

10 startowego wie że w takim odcinku czasu będą nadawane następne bity tworzące przesyłaną informację następuje więc krótkie zsynchronizowanie nadawcy z odbiorcy. Bity stopu w zależności od rodzaju zastosowanego rozwiązania trwają od jednej do kilku jednostek czasu. Do podstawowych wad transmisji asynchronicznej należą: - istnienie czasu martwego, które ogranicza wydajność przesyłu nawet do 60% ; - szybkość transmisji jest ograniczona do kilkudziesięciu Kb/s. Zaletami takiej transmisji są: - niezależność zegarów nadawcy i odbiorcy; - zamknięcie transmisji w ścisłych ramach czasowych. Transmisja nazywana jest asynchroniczną, gdyż zakłada się, że dane mogą pojawiać się w dowolnej chwili i będą natychmiast transmitowane do odbiorcy. Z tego też powodu rozpoczęcie transmisji danych musi być zasygnalizowane w jakiś sposób. W tym celu używamy dodatkowych dwóch bitów: - bit startu 0 - bit stopu - 1. Znak A wysyłany w sposób szeregowy,,wygląda'' następująco: 1 0 SP T Oznaczenia użyte w powyższym wykresie to: S - bit startu, P - bit parzystości, T - bit stopu. Szeregowa transmisja synchroniczna W transmisji synchronicznej ciąg znaków zerojedynkowych o ściśle określonym czasie trwania i ilości dokonuje zsynchronizowania nadawcy i odbiorcy. Początek nadawania to ciąg synchronizujący (zazwyczaj jest to nie więcej niż 25 impulsów) SYNC. Po synchronizacji następuje przesłanie danych (DATA). Synchronizacja jest powtarzana tylko wtedy, gdy następuje rozsynchronizowanie co może się objawiać wzrostem błędów w transmisji. Zalety transmisji synchronicznej to: - brak przerw w transmisji; - nielimitowana szybkość transmisji. Wadami takiej transmisji są: - konieczność synchronizowania zegarów nadawcy i odbiorcy; - urządzenia nadawczo-odbiorcze muszą być wyposażone w bufory. Sposób postępowania dla mikrokontrolera Mikrokontroler ATmega32 wyposażony jest w USART (Universal Synchronous and Asynchronous serial Receiver Transmitter), który może pracować jako RS232. Aby skorzystać z portu szeregowego RS232, należy wcześniej odpowiednio skonfigurować mikrokontroler. Do tego celu służą rejestry: UBRRH - USART Baud Rate Register High, UBRRL - USART Baud Rate Register Low, 10

11 - Bit URSEL (bit 7 w UBRRH) musi być ustawiony na 0. - Bity 6:4 w UBRRH są zarezerwowane i należy je zerować. - Szybkość transmisji wynosi: - Wartość UBRR obliczamy ze wzoru: UCSRA - USART Control and Status Register A, - Bit 7 Ustawiony, gdy w buforze odbiorczym są nieprzeczytane dane. Może służyć do wyzwolenia przerwania. - Bit 6 Ustawiany, gdy zakończy sie nadawanie ramki. Może służyć do wyzwolenia przerwania. Zerowany przez wpisanie 1 lub przy wywołaniu przerwania. - Bit 5 Ustawiony, gdy rejestr nadawczy jest pusty. Może służyć do wyzwolenia przerwania. - Bit 4 Błąd ramki. - Bit 3 Przepełnienie kolejki odbiorczej. - Bit 2 Błąd parzystości. - Bit 1 Podwojenie prędkości transmisji, tylko dla trybu asynchronicznego. - Bit 0 Włączenie trybu komunikacji wieloprocesorowej. UCSRB - USART Control and Status Register B, - Bit 7 Włączenie przerwania, gdy odebrano dane (ustawiony bit RXC). - Bit 6 Włączenie przerwania, gdy zakończono nadawanie (ustawiony bit TXC). - Bit 5 Włączenie przerwania, gdy rejestr nadawczy pusty (ustawiony bit UDRE). - Bit 4 Włączenie odbiornika, zmiana funkcji nogi PD0 na RxD. - Bit 3 Włączenie nadajnika, zmiana funkcji nogi PD1 na TxD. - Bit 2 Liczba przesyłanych bitów. - Bit 1 Dziewiąty odbierany bit. - Bit 0 Dziewiąty nadawany bit. UCSRC - USART Control and Status Register C, - Bit 7 musi być ustawiony na 1. - Bit 6 Tryb pracy: - 0 asynchroniczny - 1 synchroniczny 11

12 - Bity 5:4 Tryb parzystości: - 00 bez bitu parzystości - 01 wartość zarezerwowana - 10 bit parzystości (ang. even parity) - 11 bit nieparzystości (ang. odd parity) - Bit 3 Liczba bitów stopu: - 0 jeden bit - 1 dwa bity - Bity 2:1 Liczba przesyłanych bitów. - Bit 0 Polaryzacja sygnału zegara, dotyczy trybu synchronicznego. Po zainicjalizowaniu mikrokontrolera można używać transmisji szeregowej wykorzystując odpowiednie funkcje i polecenia operujące na rejestrze UDR. UDR - USART I/O Data Register: - Są osobne rejestry nadawczy i odbiorczy (USART pracuje w trybie full duplex), widziane pod tym samym adresem wejścia-wyjścia. - Zapis dokonywany jest do rejestru nadawczego. - Odczyt dotyczy bufora odbiorczego. - Odbierane bity są gromadzone w rejestrze odbiorczym. - Odebrane dane są dodatkowo buforowane w dwuelementowej kolejce FIFO. Ćwiczenie 7 Temat: Komunikacja za pomocą portu szeregowego RS232. Zadanie: 1) Należy uruchomić port szeregowy kontrolera. 2) Zrealizować funkcję echa dla konsoli: znaki wpisywane za pomocą klawiatury komputerowej powinny być przesyłane za pośrednictwem portu szeregowego mikrokontrolera i wyświetlane na ekranie komputera (okno terminala) 3) Echo buforowane: dane wpisane za pomocą klawiatury powinny być gromadzone w buforze o wielości 128 bajtów w pamięci RAM kontrolera, zaś wysłane po wciśnięciu klawisza ENTER lub przepełnieniu bufora. Język: C Zasoby: port PD0, port PD1 12

13 Wstęp teoretyczny do ćwiczenia 8-9 Alfanumeryczny wyświetlacz LCD, na którym są wyświetlane parametry w trakcie pracy, składa się z dwóch linii po szesnaście znaków. Układ ten posiada wbudowany sterownik zgodny z HD44780, który umożliwia pracę wyświetlacza w jednym z dwóch trybów magistrala danych może być ośmiobitowa lub czterobitowa. Na zajęciach wykorzystywać będziemy magistralę czterobitową, która pozwala na oszczędzenie 4 portów mikrokontrolera. Wadą tej magistrali jest bardziej rozbudowana i skomplikowana obsługa programowa. Rysunek przedstawia rozmieszczenie wyprowadzeń wyświetlacza, a tabela zawiera opis ich funkcji. LCD 2x16 Rys. 5. Wyprowadzenia alfanumerycznego wyświetlacza LCD Nr Symbol Funkcja 1 GND Masa 2 Vcc Zasilanie 3 Kontrast Regulacja kontrastu 4 RS Wybór rejestru 5 R/W 1 odczyt, 0 zapis 6 E Sygnał zezwalający enable 7 D0 Linia danych D0 8 D1 Linia danych D1 9 D2 Linia danych D2 10 D3 Linia danych D3 11 D4 Linia danych D4 12 D5 Linia danych D5 13 D6 Linia danych D6 14 D7 Linia danych D7 15 LED_A Anoda podświetlania 16 LED_C Katoda podświetlania Tabela 1. Funkcje wyprowadzeń wyświetlacza LCD 13

14 W wykorzystanym wyświetlaczu jest wbudowane podświetlanie (linie 15 i 16), które zrealizowano za pomocą diod LED. Podświetlanie wymagało dodania rezystora ograniczającego prąd, którego nie ma w module wyświetlacza. Bez rezystora ograniczającego wyświetlacz świeciłby bardzo jasno, wydzielając przy tym dużo ciepła. Prowadziłoby to do nadmiernego nagrzewania się matrycy oraz skróciłoby jej żywotność, a także mogłoby spowodować szybsze odparowanie ciekłego kryształu. Do linii CONTRAST dołączono potencjometr tak jak na rysunku, co umożliwia regulację kontrastu. Standardowo kontrast regulowany jest przyłożeniem napięcia z zakresu od 0 do napięcia zasilania, gdzie zero odpowiada maksymalnemu kontrastowi, a napięcie zasilania - minimalnemu. Wyświetlacz LCD posiada następujące rejestry: - DataWR - rejestr danych przeznaczony do zapisu informacji; - DataRD - rejestr danych przeznaczony do odczytu informacji; - ControlRD - rejestr stanu wyświetlacza (Status) przeznaczony do odczytu; - ControlWR - rejestr sterujący wyświetlacza (Control) przeznaczony do zapisu; O wyborze, do którego rejestru nastąpi zapis lub odczyt decydują linie 4 i 5 (D/C i R/W). Linia 6 (E-enable) uaktywnia wymianę informacji z wyświetlaczem. Wyświetlacz zawiera dwa rodzaje wewnętrznej pamięci, które mogą być kontrolowane: pamięć DD (Display Data) i pamięć CG (Character Generator). Dostęp do tych pamięci odbywa się przez wymienione wyżej rejestry. Pamięć CG składa się z dwóch części: pamięci CG ROM zawierającej przygotowane przez producenta kody znaków oraz pamięci CG RAM przeznaczonej na kody znaków dowolnie zdefiniowane. Aby wyświetlacz zaczął funkcjonować zawsze na początku programu po załączeniu zasilania należy go zainicjować, czyli wysłać kilka rozkazów sterujących w ściśle określonych odstępach czasu. Rozkazy oraz wszystkie zależności są zamieszczone w aplikacji sterownika HD Przykładowa sekwencja inicjalizacji wyświetlacza LCD znajduje się na rysunku. 14

15 Rys. 6. Przykładowa programowa inicjalizacja modułu LCD Po prawidłowym zainicjowaniu startu wyświetlacza można przejść do komunikacji z tym modułem, która odbywa się przy wykorzystaniu magistrali czterobitowej. Każde wysyłane do LCD słowo składa się z ośmiu bitów, funkcja odpowiedzialna za wysyłanie danych do modułu dzieli je na dwie części czterobitowe i wysyła najpierw cztery starsze bity, a następnie cztery młodsze. 15

16 Ćwiczenie 8 Temat: Obsługa wyświetlacza char LCD. Zadanie: 1) Zainicjalizować wyświetlacz LCD. 2) Wyświetlić na wyświetlaczu LCD napis statyczny. 3) Zrealizować funkcję reklamy świetlnej : stopniowe wyświetlanie kolejnych liter napisu, przewijanie w lewo i prawo, migotanie napisu (negatyw). Język: C Zasoby: port PA2 PA7 Ćwiczenie 9 Temat: Obsługa 10-bitowego przetwornika ADC wbudowanego w mikrokontroler. Zadanie: Pomiar temperatury przy użyciu termistora. Wyświetlenie przeliczonej wartości temperatury na wyświetlaczu char LCD. Język: C Zasoby: port PA1, port PA2 PA7 16

17 Wstęp teoretyczny do ćwiczenia 10 Jednym z dwóch najpopularniejszych magistral do podłączania urządzeń peryferyjnych w systemach mikroprocesorowych jest magistrala Serial Peripherial Interface (SPI). Pozwala ona w prosty sposób komunikować się mikrokontrolerowi z takimi peryferiami jak przetworniki ADC i DAC, czujniki temperatury, drivery diod, pamięci EEPROM itp. Mikrokontrolery z rodziny AVR posiadają wbudowaną obsługę tej magistrali co znacznie ułatwia programowanie układów korzystających z SPI. Część sprzętowa magistrali SPI Magistrala SPI korzysta z architektury master-slave. Jedno w urządzeń (MASTER) inicjalizuje transmisję i generuje sygnał zegarowy. Drugie (SLAVE) odpowiada. Transmisja może toczyć się w trybie full-duplex, to znaczy jednoczesne nadawanie i odbieranie. Służą do tego dwie linie sygnałowe: MOSI (Master Out, Slave In) MISO (Master In, Slave Out) Sygnał zegara przesyłany jest linią SCK. Do magistrali może być podłączonych wiele urządzeń. Wykorzystują one wspólnie linie MISO, MOSI i SCK. Koniecznym jest poprowadzenie oddzielnych linii Chip Select (CS), służących do wyboru, które urządzenie ma być w danej chwili aktywne. Przykładowy układ wykorzystujący magistralę SPI pokazany jest na rysunku 7. Rys. 7. Przykładowe połączenie SPI SPI posiada kilka trybów pracy. Przed korzystaniem z tej magistrali należy ustawić: 1. Kolejność bitów (MSB pierwszy lub LSB pierwszy), 2. Polaryzację zegara, 3. Fazę zegara, 4. Częstotliwość pracy magistrali. Różne układy peryferyjne mogą wymagać innych ustawień. Z tego powodu może się zdarzyć, że ustawienia magistrali trzeba zmieniać przed odwołaniem się do kolejnego urządzenia peryferyjnego. Programowanie interfejsu SPI Do konfiguracji SPI w mikrokontrolerach AVR służą rejestry: SPCR - aby używać SPI, należy je najpierw włączyć (bit SPE). Kolejne bity tego rejestru pozwalają ustawić, kolejność bitów, fazę i polaryzację zegara, częstotliwość transmisji oraz czy mikrokontroler ma być masterem czy slavem. SPSR - w tym rejestrze znajduje się bit informujący o zakończeniu transmisji. Znajduje się tutaj też bit odpowiedzialny za uruchomienie podwajania częstotliwości zegara magistrali. Rejestr, do którego zapisywane są dane do wysłania oraz rejestr w którym przechowywane są dane odebrane noszą tą samą nazwę (SPDR). Należy jednak pamiętać, że 17

18 są to tak naprawdę dwa oddzielne rejestry. Kiedy mikrokontroler pracuje w trybie master, transfer inicjowany jest zapisaniem danej do rejestru SPDR. W tym samym czasie następuje odbiór. Jeśli chcemy jedynie odebrać dane z zewnątrz, to co zostanie zapisane do rejestru SPDR nie ma znaczenia. Sposób programowania int main() { ustawienie rejestru SPCR ustawienie rejestru SPSR zapisanie do rejestru SPDR (wykonanie transmisji) Sprawdzenie flagi ukończenia transmisji Odczytanie danej z rejestru SPDR } Ćwiczenie 10 Temat: Cyfrowy pomiar temperatury przy użyciu termometru cyfrowego TC77. Zadanie: Zrobić pomiar temperatury i wyświetlić tę wartość na wyświetlaczu char LCD. Porównać wartość tej temperatury z temperaturą pomierzoną przy użyciu termistora. Język: C Zasoby: port PA2 PA7, port PB4, PB6, PB7 18

19 Wstęp teoretyczny do ćwiczenia 11 Wyświetlacze 7-segmentowe zbudowane są z diod LED. Składają się z siedmiu segmentów + kropka (a, b,..., g, dt), za pomocą których możemy przedstawić dowolną cyfrę dziesiętną, a także niektóre litery. Rys. 8. Wygląd zewnętrzny wyświetlacza 7-segmentowego W celu zmniejszenia liczby wyprowadzeń, łączy się LED-y ( diody ) na dwa sposoby: łącząc wszystkie katody ( wyświetlacz 7-segmentowy ze wspólną katodą ) albo wszystkie anody ( wyświetlacz 7-segmentowy ze wspólną anodą ). Rys. 9. Schematy podłączenia wyświetlaczy 7-segmentowych Cyfry kodujemy tak, aby w siedmiobitowym słowie binarnym każdy bit odpowiadał jednemu z segmentów. Tablica stanów linii portów układu wyświetlacza umożliwiająca wyświetlanie cyfr: Wspólna anoda Wspólna katoda cyfra h g f e d c b a cyfra h g f e d c b a Tabela 2. Stany linii portów układu wyświetlacza 7-segmentowego umożliwiająca wyświetlanie cyfr. Zaletą tych wyświetlaczy jest bardzo dobra czytelność nawet w całkowitych ciemnościach. Wadą duży pobór mocy (2..3 mw na segment dla najbardziej energooszczędnych wyświetlaczy), co bardzo ogranicza ich zastosowanie w sprzęcie zasilanym bateryjnie. 19

20 Wyświetlacze statyczne Statyczne sterowanie wyświetlaczem informacji jest najprostszym sposobem wykorzystania wyświetlacza LED (lub pojedynczych diod). Jednocześnie sposób ten jest najrzadziej stosowany ze względu na konieczność zarezerwowania tylu linii wyjściowych portu mikrokontrolera ile będzie wykorzystywanych niezależnie elementów wyświetlacza. Sposób ten polega na ciągłym podtrzymywaniu (do momentu zmiany informacji) odpowiednich stanów logicznych, którym odpowiada świecenie lub wygaszenie diod LED. Z tego powodu obsługa wyświetlacza statycznego jest niezwykle prosta a sam mikrokontroler obciążony jest tylko w momencie zmian przekazywanej informacji. Stosowanie wyświetlaczy ze wspólnym wyprowadzeniem anod poszczególnych segmentów jest dużo bardziej popularne, ponieważ zazwyczaj bardziej wydajnym prądowo poziomem logicznym linii portów wejścia-wyjścia jest poziom niski. Gwarantuje to prawidłowe zaświecenie wyświetlacza. Warto nadmienić, że dla miniaturowych wyświetlaczy niskoprądowych jest wymagany niski prąd o wartości 2..3mA. Można też wykorzystać wyświetlacz ze wspólną katodą, którą wówczas łączymy z masą. Jednak stosowany mikrokontroler musi mieć wyjścia portów w układzie przeciwsobnym, tzn. o odpowiedniej wydajności linii w stanie wysokim. Dla obu wariantów różna będzie interpretacja logiczna stanu wyświetlacza: dla wspólnej anody zaświecenie danego segmentu uzyskamy ustawiając poziom niski na odpowiadającej mu linii, natomiast dla wyświetlacza ze wspólną katodą świeceniu odpowiada poziom wysoki na wyprowadzeniu mikrokontrolera. Włączone szeregowo rezystory R1 R8 ograniczają maksymalny prąd płynący przez wyświetlacz. Ich wartość dobieramy w zależności od wymagań stosowanego wyświetlacza oraz z uwzględnieniem możliwości portu mikrokontrolera (470 1k). Czasami zdarza się tak, że wydajność prądowa portu wykorzystywanego mikrokontrolera jest niewystarczająca do bezpośredniego dołączenia wyświetlacza, wówczas jedynym wyjściem z sytuacji jest zastosowanie pośredniczącego układu wzmacniającego, mogącego obsłużyć kilka niezależnych linii. Obsługa pojedynczego statycznego wyświetlacza 7segmentowego pociąga za sobą konieczność rezerwacji ośmiu linii portu mikrokontrolera. Jeżeli stosowany mikrokontroler ma niewiele wyprowadzeń lub też jest wykorzystywany w bardzo rozbudowanym systemie, może się okazać, że nie jest możliwe gospodarowanie takiej liczby wyprowadzeń. Rozwiązaniem tego problemu jest układ wyświetlacza statycznego sterowanego przy użyciu trzech linii, z możliwością regulacji jasności świecenia. Układem pośredniczącym może być wówczas rejestr szeregowo równoległy 74LS164, który realizuje przekształcenie wyświetlanej informacji z postaci szeregowej, przesyłanej z mikrokontrolera linią DATA w takt zegara CLK, do postaci równoległej, wymaganej przez wyświetlacz. Układ ten nie jest w pełni statyczny, w skutek chwilowego wygaszania wyświetlacza za pomocą tranzystora, co umożliwia wprowadzenie dodatkowej cechy funkcjonalnej. Jest nią możliwość sterowania w sposób programowy jasnością świecenia wyświetlacza. Regulację jasności można uzyskać poprzez dobór czasów włączania i wyłączania wyświetlacza. W rozwiązaniu standardowym wyłączanie wyświetlacza następuje na niezbędny do zapisania rejestru czas, co w praktyce jest nierozróżnialne dla oka. Jeżeli jednak z odpowiednio dużą częstotliwością: 30 40Hz generowalibyśmy na wyprowadzeniu ON przebieg prostokątny o zmieniającym się wypełnieniu, to uzyskalibyśmy efekt ciągłego świecenia wyświetlacza o jasności zależnej właśnie od wypełnienia przebiegu sterującego. Wyświetlacze multipleksowane (dynamiczne) Zasada ich działania polega na współdzieleniu wyprowadzeń mikrokontrolera przez połączone w grupy wyświetlacze siedmiosegmentowe i dołączeniu dodatkowych układów sterujących zasilaniem poszczególnych grup. Odpowiednio szybkie zapalenie i gaszenie 20

21 kolejnych grup oraz bezwładność ludzkiego wzroku dają w efekcie złudzenie świecenia całego wyświetlacza. Rys. 10. Układ wyświetlacza multipleksowanego Do portu mikrokontrolera zostają dołączone równolegle (za pośrednictwem rezystorów ograniczających prąd) cztery jednakowe wyświetlacze siedmiosegmentowe ze wspólną anodą. W przypadku sterowania statycznego (anody dołączone bezpośrednio do plusa zasilania) działanie takiego układu byłoby co najmniej dyskusyjne polegałoby na wyświetlaniu tej samej informacji na wszystkich wyświetlaczach. Sytuacja taka nie będzie jednak mieć miejsca, gdyż anody poszczególnych wyświetlaczy są dołączone do zasilania za pośrednictwem niezależnych tranzystorów T1 T4, sterowanych czterema liniami mikrokontrolera W1 W4. Włączenie napięcia zasilania konkretnego wyświetlacza (wraz z wyłączeniem pozostałych) następuje wyłącznie wtedy, gdy na linie portu D0 D7 są wystawiane dane przeznaczone dla danego wyświetlacza. Sposób postępowania: 1. włączamy 1-szy wyświetlacz 2. wyświetlamy cyfrę tysięcy 3. wyłączamy 1-szy wyświetlacz 4. włączamy 2-gi wyświetlacz 5. wyświetlamy cyfrę setek 6. wyłączamy 2-gi wyświetlacz 7. włączamy 3-ci wyświetlacz 8. wyświetlamy cyfrę dziesiątek 9. wyłączamy 3-ci wyświetlacz 10. włączamy 4-ty wyświetlacz 11. wyświetlamy cyfrę jedności 12. wyłączamy 4-ty wyświetlacz Gdy czas wyświetlania będzie odpowiednio krótki (rzędu kilku, kilkunastu milisekund) będziemy mogli zobaczyć wszystkie 4 cyfry na raz, ponieważ ludzkie oko nie jest w stanie zaobserwować tak szybkich zmian Obsługa wszystkich pozycji następuje cyklicznie. Czas trwania pojedynczego cyklu powinien być tak dobrany, aby częstotliwość świecenia każdego wyświetlacza nie była mniejsza niż Hz (aby przekroczyć możliwość rejestrowania zmian przez ludzkie oko). Najlepszą sytuacją jest gdy częstotliwość ta wynosi 100Hz, co pozwala na wyświetlanie informacji pozbawione efektu migotania znanego z ekranów monitorów i telewizorów. Dalsze zwiększanie częstotliwości odświeżania nie poprawia już jakości wyświetlania, powoduje za 21

22 to wzrost zakłóceń radioelektrycznych generowanych przez wyświetlacz oraz niepotrzebnie marnuje moc obliczeniową mikrokontrolera. W układzie wyświetlacza dynamicznego ważny jest dobór wartości rezystorów ograniczających. Najłatwiej jest przyjąć wartości czterokrotnie mniejsze niż w statycznym układzie sterowania takiego wyświetlacza. Często jednak taki wybór daje w efekcie zbyt jasne, oślepiające wręcz świecenie wyświetlaczy. Spowodowane jest to, tym, że chociaż teoretycznie prąd płynący przez wyświetlacz ma czterokrotnie większa wartość i płynie czterokrotnie krócej, dając taką samą wartość średnią jak przy sterowaniu statycznym, to jednak efektywność wyświetlaczy LED pracujących przy większych prądach jest dużo wyższa (więcej energii jest zamienianej na światło). W praktyce okazuje się, że wartość rezystorów należy zwiększyć o %, aby uzyskana jasność była porównywalna z jasnością świecenia wyświetlacza przy sterowaniu statycznym. Cechy multipleksowanego sterowania wyświetlaczy: Zalety: - niewielka liczba wykorzystywanych wyprowadzeń mikrokontrolera - duża jasność świecenia z możliwością regulacji - prosty układ połączeń i łatwe projektowanie płytki drukowanej Wady: - konieczność zarezerwowania ciągłej mocy obliczeniowej mikrokontrolera do obsługi takiego układu i znaczna komplikacja oprogramowania - generacja zakłóceń radioelektrycznych związana z przełączaniem pozycji wyświetlacza, co sprawia, że konfiguracja ta jest niezbyt chętnie stosowana w urządzeniach zawierających precyzyjne podzespoły analogowe o dużej czułości Ćwiczenie 11 Temat: Obsługa wyświetlacza 7-segmentowego. Zadanie: 1) Uruchomić wyświetlacz 7-segmentowy i wyświetlić stałą wartość. 2) Zmieniać wartość (np. inkrementacja) wyświetlaną na wyświetlaczu 7-segmentowym poprzez wciśnięcie przycisku SW0. Język: C Zasoby: port PB0, port P - P... 22

23 Wstęp teoretyczny do ćwiczenia 12 Najpopularniejszymi magistralami do podłączania urządzeń peryferyjnych w systemach mikroprocesorowych są magistrale Serial Peripherial Interface (SPI) oraz I2C. Najczęściej spełniają one podobne funkcje i wykorzystywane są jako platforma komunikacji mikrokontrolerów z urządzeniami peryferyjnymi. Może być również wykorzystana przy komunikacji pomiędzy np. modułami bardziej rozbudowanego systemu. Mikrokontrolery z rodziny AVR posiadają wbudowaną obsługę magistrali I2C. Ponieważ nazwa I2C jest zastrzeżona przez firmę Philips, inni producenci często stosują inne nazwy. Firma Atmel używa nazwy Two Wire (serial) Interface (TWI). Część sprzętowa magistrali I2C Magistrala I2C składa się jedynie z dwóch dwukierunkowych linii: Serial Data Line (SDL) oraz Serial Clock Line (SCL). Linie te są wspólne dla wszystkich urządzeń podłączonych do magistrali. W przeciwieństwie do SPI, nie jest konieczne prowadzenie dodatkowych linii adresujących, ponieważ w I2C urządzenia są wybierane poprzez adresy nadawane liniami danych. Do linii SDL i SCL muszą być podłączone rezystory podciągające. Podobnie jak w przypadku SPI, tutaj również urządzenia dzielone są na master i slave. W jednej chwili tylko jedno urządzenie może spełniać rolę mastera. Urządzenia mogą jednak zmieniać swoją rolę. Magistrala ta nie pozwala na jednoczesne nadawanie i odbieranie. Magistrala może pracować z różnymi prędkościami. Należy więc sprawdzić w dokumentacji użytych podzespołów jaka jest ich maksymalna dopuszczalna prędkość zegara na magistrali. Rys. 11. Przykładowy system oparty na magistrali I2C Protokół I2C Rys. 12. Przykładowa transmisja Master generuje warunek startu. Następnie nadawany jest adres urządzenia, które ma się komunikować z masterem. Po adresie występuje bit informujący, czy master zamierza do slave'a zapisywać czy go odpytywać. Następnie slave generuje bit ACK, który informuje o tym, że adres został poprawnie odebrany i slave jest gotowy do wykonania transmisji. Następnie wysyłane są bity danych. Po każdym bajcie nadawany jest przez odbiornik bit ACK. Transmisja kończona jest w momencie, kiedy podczas wysokiego stanu na linii zegara wystąpi zbocze narastające na linii danych. 23

24 Programowanie interfejsu I2C Do konfiguracji interfejsu I2C w mikrokontrolerach AVR służą rejestry: 1. TWBR - liczba zapisana w tym rejestrze używana jest do obliczenia prędkości transmisji. 2. TWCR - w tym rejestrze znajdują się bity odpowiedzialne za: Uaktywnienie interfejsu TWI (TWEN) Generację bitu ACK (TWEA) Generację sekwencji startu (TWSTA) Generację sekwencji stopu (TWSTO) Informowanie o zakończeniu transmisji i wywołujące przerwanie (TWINT) Informujące o kolizji na magistrali (TWWC) Uaktywniające przerwanie (TWIE) 3. TWSR - w tym rejestrze znajdują sęi bity informujące o statusie interfejsu TWI oraz ustawiające preskaler częstotliwości. 4. TWAR - w tym rejestrze przechowywany jest adres slave mikrokontrolera. Dane znajdują się w rejestrze TWDR. Porównanie interfejsów SPI i I2C Poniżej przedstawione są ważniejsze zalety obu interfejsów. Magistrala SPI Transmisja w trybie Full-Duplex Większa przepustowość niż w I2C Duża możliwość dopasowania protokołu do własnych potrzeb Możliwość przesyłania danych o dowolnej długości (nie tylko 8-bit) Mały pobór mocy Przy rozbudowanym systemie zabiera dużo pinów na sygnały Chip select Brak potwierdzeń i kontroli poprawności transmisji Tylko jeden master w systemie Magistrala I2C Używa tylko dwóch linii Każe urządzenie może być masterem Sprzętowe sprawdzanie poprawności transmisji Ćwiczenie 12 Temat: Obsługa RTC (zegar czasu rzeczywistego) Zadanie: 1) Wysyłać datę / czas na wyświetlacz 7-segmentowy. 2) Rozszerzyć ppkt 1 o funkcję ustawiania czasu. Język: C Zasoby: port PC0, port PC1 24

Programowanie mikrokontrolerów. 15 stycznia 2008

Programowanie mikrokontrolerów. 15 stycznia 2008 Programowanie mikrokontrolerów Marcin Engel Marcin Peczarski 15 stycznia 2008 RS232 Jeden z najstarszych interfejsów szeregowych Pierwotne przeznaczenie to łączenie terminali znakowych z komputerem, często

Bardziej szczegółowo

Wbudowane układy komunikacyjne cz. 1 Wykład 10

Wbudowane układy komunikacyjne cz. 1 Wykład 10 Wbudowane układy komunikacyjne cz. 1 Wykład 10 Wbudowane układy komunikacyjne UWAGA Nazwy rejestrów i bitów, ich lokalizacja itd. odnoszą się do mikrokontrolera ATmega32 i mogą być inne w innych modelach!

Bardziej szczegółowo

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

Mikroprocesory i mikrosterowniki Wydział Elektroniki Mikrosystemów i Fotoniki Politechniki Wrocławskiej Ćwiczenie nr 4 1 Ćwiczenie nr 4 Program ćwiczenia: Interfejs szeregowy SPI obsługa sterownika ośmiopozycyjnego, 7-segmentowego wyświetlacza LED Interfejs szeregowy USART, komunikacja mikrokontrolera z komputerem PC.

Bardziej szczegółowo

Komunikacja w mikrokontrolerach Laboratorium

Komunikacja w mikrokontrolerach Laboratorium Laboratorium Ćwiczenie 4 Magistrala SPI Program ćwiczenia: konfiguracja transmisji danych między mikrokontrolerem a cyfrowym czujnikiem oraz sterownikiem wyświetlaczy 7-segmentowych przy użyciu magistrali

Bardziej szczegółowo

Komputerowe Sterowanie w Elektronice Przemysłowej

Komputerowe Sterowanie w Elektronice Przemysłowej Autor: Rafał Kotas LABORATORIUM Komputerowe Sterowanie w Elektronice Przemysłowej Niniejsza instrukcja nie jest kompletnym źródłem informacji niezbędnych do wykonania zaproponowanych ćwiczeń. Zawarte są

Bardziej szczegółowo

ZL15AVR. Zestaw uruchomieniowy dla mikrokontrolerów ATmega32

ZL15AVR. Zestaw uruchomieniowy dla mikrokontrolerów ATmega32 ZL15AVR Zestaw uruchomieniowy dla mikrokontrolerów ATmega32 ZL15AVR jest uniwersalnym zestawem uruchomieniowym dla mikrokontrolerów ATmega32 (oraz innych w obudowie 40-wyprowadzeniowej). Dzięki wyposażeniu

Bardziej szczegółowo

TECHNIKA MIKROPROCESOROWA

TECHNIKA MIKROPROCESOROWA LABORATORIUM TECHNIKA MIKROPROCESOROWA Port transmisji szeregowej USART ATmega Opracował: Tomasz Miłosławski 1. Cel ćwiczenia Celem ćwiczenia jest zapoznanie się ze sposobami komunikacji mikrokontrolera

Bardziej szczegółowo

Instytut Teleinformatyki

Instytut Teleinformatyki Instytut Teleinformatyki Wydział Fizyki, Matematyki i Informatyki Politechnika Krakowska Systemy Czasu Rzeczywistego Zastosowanie interfejsów SPI i I2C do komunikacji laboratorium: 02 autor: mgr inż. Paweł

Bardziej szczegółowo

Mikroprocesory i Mikrosterowniki Magistrala szeregowa I2C / TWI Inter-Integrated Circuit Two Wire Interface

Mikroprocesory i Mikrosterowniki Magistrala szeregowa I2C / TWI Inter-Integrated Circuit Two Wire Interface Mikroprocesory i Mikrosterowniki Magistrala szeregowa I2C / TWI Inter-Integrated Circuit Two Wire Interface Wydział Elektroniki Mikrosystemów i Fotoniki dr inż. Piotr Markowski Na prawach rękopisu. Na

Bardziej szczegółowo

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

Wydział Elektryczny. Katedra Automatyki i Elektroniki. Instrukcja. do ćwiczeń laboratoryjnych z przedmiotu: SYSTEMY CYFROWE 1. Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki Instrukcja do ćwiczeń laboratoryjnych z przedmiotu: SYSTEMY CYFROWE 1 PAMIĘCI SZEREGOWE EEPROM Ćwiczenie 3 Opracował: dr inŝ.

Bardziej szczegółowo

Programowanie mikrokontrolerów. 8 listopada 2007

Programowanie mikrokontrolerów. 8 listopada 2007 Programowanie mikrokontrolerów Marcin Engel Marcin Peczarski 8 listopada 2007 Alfanumeryczny wyświetlacz LCD umożliwia wyświetlanie znaków ze zbioru będącego rozszerzeniem ASCII posiada zintegrowany sterownik

Bardziej szczegółowo

Mikroprocesory i Mikrosterowniki Laboratorium

Mikroprocesory i Mikrosterowniki Laboratorium Laboratorium Ćwiczenie 4 Magistrala SPI Program ćwiczenia: konfiguracja transmisji danych między mikrokontrolerem a cyfrowym czujnikiem oraz sterownikiem wyświetlaczy 7-segmentowych przy użyciu magistrali

Bardziej szczegółowo

STM32Butterfly2. Zestaw uruchomieniowy dla mikrokontrolerów STM32F107

STM32Butterfly2. Zestaw uruchomieniowy dla mikrokontrolerów STM32F107 Zestaw uruchomieniowy dla mikrokontrolerów STM32F107 STM32Butterfly2 Zestaw STM32Butterfly2 jest platformą sprzętową pozwalającą poznać i przetestować możliwości mikrokontrolerów z rodziny STM32 Connectivity

Bardziej szczegółowo

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

1.2 Schemat blokowy oraz opis sygnałów wejściowych i wyjściowych Dodatek A Wyświetlacz LCD. Przeznaczenie i ogólna charakterystyka Wyświetlacz ciekłokrystaliczny HY-62F4 zastosowany w ćwiczeniu jest wyświetlaczem matrycowym zawierającym moduł kontrolera i układ wykonawczy

Bardziej szczegółowo

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

Zaliczenie Termin zaliczenia: Sala IE 415 Termin poprawkowy: > (informacja na stronie: Zaliczenie Termin zaliczenia: 14.06.2007 Sala IE 415 Termin poprawkowy: >18.06.2007 (informacja na stronie: http://neo.dmcs.p.lodz.pl/tm/index.html) 1 Współpraca procesora z urządzeniami peryferyjnymi

Bardziej szczegółowo

ZL27ARM. Zestaw uruchomieniowy dla mikrokontrolerów STM32F103

ZL27ARM. Zestaw uruchomieniowy dla mikrokontrolerów STM32F103 ZL27ARM Zestaw uruchomieniowy dla mikrokontrolerów STM32F103 Zestaw ZL27ARM jest uniwersalnym zestawem uruchomieniowym dla mikrokontrolerów STM32F103. Dzięki wyposażeniu w szeroką gamę zaawansowanych układów

Bardziej szczegółowo

Komunikacja w mikrokontrolerach. Magistrala szeregowa I2C / TWI Inter-Integrated Circuit Two Wire Interface

Komunikacja w mikrokontrolerach. Magistrala szeregowa I2C / TWI Inter-Integrated Circuit Two Wire Interface Komunikacja w mikrokontrolerach Magistrala szeregowa I2C / TWI Inter-Integrated Circuit Two Wire Interface Wydział Elektroniki Mikrosystemów i Fotoniki dr inż. Piotr Markowski Na prawach rękopisu. Na podstawie

Bardziej szczegółowo

Wstęp...9. 1. Architektura... 13

Wstęp...9. 1. Architektura... 13 Spis treści 3 Wstęp...9 1. Architektura... 13 1.1. Schemat blokowy...14 1.2. Pamięć programu...15 1.3. Cykl maszynowy...16 1.4. Licznik rozkazów...17 1.5. Stos...18 1.6. Modyfikowanie i odtwarzanie zawartości

Bardziej szczegółowo

dokument DOK 02-05-12 wersja 1.0 www.arskam.com

dokument DOK 02-05-12 wersja 1.0 www.arskam.com ARS3-RA v.1.0 mikro kod sterownika 8 Linii I/O ze zdalną transmisją kanałem radiowym lub poprzez port UART. Kod przeznaczony dla sprzętu opartego o projekt referencyjny DOK 01-05-12. Opis programowania

Bardziej szczegółowo

2. Architektura mikrokontrolerów PIC16F8x... 13

2. Architektura mikrokontrolerów PIC16F8x... 13 Spis treści 3 Spis treœci 1. Informacje wstępne... 9 2. Architektura mikrokontrolerów PIC16F8x... 13 2.1. Budowa wewnętrzna mikrokontrolerów PIC16F8x... 14 2.2. Napięcie zasilania... 17 2.3. Generator

Bardziej szczegółowo

PRZETWORNIK ADC w mikrokontrolerach Atmega16-32

PRZETWORNIK ADC w mikrokontrolerach Atmega16-32 Zachodniopomorski Uniwersytet Technologiczny WYDZIAŁ ELEKTRYCZNY Katedra Inżynierii Systemów, Sygnałów i Elektroniki LABORATORIUM TECHNIKA MIKROPROCESOROWA PRZETWORNIK ADC w mikrokontrolerach Atmega16-32

Bardziej szczegółowo

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

ZL16AVR. Zestaw uruchomieniowy dla mikrokontrolerów ATmega8/48/88/168 ZL16AVR Zestaw uruchomieniowy dla mikrokontrolerów ATmega8/48/88/168 ZL16AVR jest uniwersalnym zestawem uruchomieniowym dla mikrokontrolerówavr w obudowie 28-wyprowadzeniowej (ATmega8/48/88/168). Dzięki

Bardziej szczegółowo

ZL15AVR. Zestaw uruchomieniowy dla mikrokontrolerów ATmega32

ZL15AVR. Zestaw uruchomieniowy dla mikrokontrolerów ATmega32 ZL15AVR Zestaw uruchomieniowy dla mikrokontrolerów ATmega32 ZL15AVR jest uniwersalnym zestawem uruchomieniowym dla mikrokontrolerów ATmega32 (oraz innych w obudowie 40-wyprowadzeniowej). Dzięki wyposażeniu

Bardziej szczegółowo

Edukacyjny sterownik silnika krokowego z mikrokontrolerem AT90S1200 na płycie E100. Zestaw do samodzielnego montażu.

Edukacyjny sterownik silnika krokowego z mikrokontrolerem AT90S1200 na płycie E100. Zestaw do samodzielnego montażu. E113 microkit Edukacyjny sterownik silnika krokowego z mikrokontrolerem AT90S1200 na płycie E100 1.Opis ogólny. Zestaw do samodzielnego montażu. Edukacyjny sterownik silnika krokowego przeznaczony jest

Bardziej szczegółowo

Programowanie Mikrokontrolerów

Programowanie Mikrokontrolerów Programowanie Mikrokontrolerów Wyświetlacz alfanumeryczny oparty na sterowniku Hitachi HD44780. mgr inż. Paweł Poryzała Zakład Elektroniki Medycznej Alfanumeryczny wyświetlacz LCD Wyświetlacz LCD zagadnienia:

Bardziej szczegółowo

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki ĆWICZENIE Nr 10 (3h) Implementacja interfejsu SPI w strukturze programowalnej Instrukcja pomocnicza do laboratorium z przedmiotu

Bardziej szczegółowo

Komunikacja w mikrokontrolerach Laboratorium

Komunikacja w mikrokontrolerach Laboratorium Laboratorium Ćwiczenie 3 Magistrala I 2 C Program ćwiczenia: konfiguracja transmisji danych między mikrokontrolerem a cyfrowym czujnikiem przy użyciu magistrali I 2 C. Zagadnienia do przygotowania: podstawy

Bardziej szczegółowo

Instytut Teleinformatyki

Instytut Teleinformatyki Instytut Teleinformatyki Wydział Fizyki, Matematyki i Informatyki Politechnika Krakowska Mikroprocesory i Mikrokontrolery Zastosowanie przetwornika analogowo-cyfrowego do odczytywania napięcia z potencjometru

Bardziej szczegółowo

ZL29ARM. Zestaw uruchomieniowy dla mikrokontrolerów STM32F107

ZL29ARM. Zestaw uruchomieniowy dla mikrokontrolerów STM32F107 ZL29ARM Zestaw uruchomieniowy dla mikrokontrolerów STM32F107 Zestaw ZL29ARM jest platformą sprzętową pozwalającą poznać i przetestować możliwości mikrokontrolerów z rodziny STM32 Connectivity Line (STM32F107).

Bardziej szczegółowo

ZL4PIC. Uniwersalny zestaw uruchomieniowy dla mikrokontrolerów PIC

ZL4PIC. Uniwersalny zestaw uruchomieniowy dla mikrokontrolerów PIC ZL4PIC uniwersalny zestaw uruchomieniowy dla mikrokontrolerów PIC (v.1.0) ZL4PIC Uniwersalny zestaw uruchomieniowy dla mikrokontrolerów PIC 1 Zestaw jest przeznaczony dla elektroników zajmujących się aplikacjami

Bardziej szczegółowo

LABORATORIUM - ELEKTRONIKA Układy mikroprocesorowe cz.2

LABORATORIUM - ELEKTRONIKA Układy mikroprocesorowe cz.2 LABORATORIUM - ELEKTRONIKA Układy mikroprocesorowe cz.2 1. Cel ćwiczenia Celem ćwiczenia jest pokazanie budowy systemów opartych na układach Arduino. W tej części nauczymy się podłączać różne czujników,

Bardziej szczegółowo

Programowanie w językach asemblera i C

Programowanie w językach asemblera i C Programowanie w językach asemblera i C Mariusz NOWAK Programowanie w językach asemblera i C (1) 1 Dodawanie dwóch liczb - program Napisać program, który zsumuje dwie liczby. Wynik dodawania należy wysłać

Bardziej szczegółowo

Uniwersalny zestaw uruchomieniowy ZL4PIC

Uniwersalny zestaw uruchomieniowy ZL4PIC Uniwersalny zestaw uruchomieniowy ZL4PIC Uniwersalny zestaw uruchomieniowy ZL4PIC przeznaczony jest testowania aplikacji realizowanych na bazie mikrokontrolerów PIC. Jest on przystosowany do współpracy

Bardziej szczegółowo

AVREVB1. Zestaw uruchomieniowy dla mikrokontrolerów AVR. Zestawy uruchomieniowe www.evboards.eu

AVREVB1. Zestaw uruchomieniowy dla mikrokontrolerów AVR. Zestawy uruchomieniowe www.evboards.eu AVREVB1 Zestaw uruchomieniowy dla mikrokontrolerów AVR. 1 Zestaw AVREVB1 umożliwia szybkie zapoznanie się z bardzo popularną rodziną mikrokontrolerów AVR w obudowach 40-to wyprowadzeniowych DIP (układy

Bardziej szczegółowo

Instytut Teleinformatyki

Instytut Teleinformatyki Instytut Teleinformatyki Wydział Fizyki, Matematyki i Informatyki Politechnika Krakowska Mikroprocesory i Mikrokontrolery Dostęp do portów mikrokontrolera ATmega32 język C laboratorium: 10 autorzy: dr

Bardziej szczegółowo

ZL30ARM. Zestaw uruchomieniowy dla mikrokontrolerów STM32F103

ZL30ARM. Zestaw uruchomieniowy dla mikrokontrolerów STM32F103 ZL30ARM Zestaw uruchomieniowy dla mikrokontrolerów STM32F103 Zestaw ZL30ARM jest uniwersalnym zestawem uruchomieniowym dla mikrokontrolerów STM32F103. Dzięki wyposażeniu w szeroką gamę układów peryferyjnych

Bardziej szczegółowo

Technika Mikroprocesorowa

Technika Mikroprocesorowa Technika Mikroprocesorowa Dariusz Makowski Katedra Mikroelektroniki i Technik Informatycznych tel. 631 2648 dmakow@dmcs.pl http://neo.dmcs.p.lodz.pl/tm 1 System mikroprocesorowy? (1) Magistrala adresowa

Bardziej szczegółowo

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

Organizacja pamięci VRAM monitora znakowego. 1. Tryb pracy automatycznej Struktura stanowiska laboratoryjnego Na rysunku 1.1 pokazano strukturę stanowiska laboratoryjnego Z80 z interfejsem częstościomierza- czasomierz PFL 21/22. Rys.1.1. Struktura stanowiska. Interfejs częstościomierza

Bardziej szczegółowo

Wyświetlacz alfanumeryczny LCD zbudowany na sterowniku HD44780

Wyświetlacz alfanumeryczny LCD zbudowany na sterowniku HD44780 Dane techniczne : Wyświetlacz alfanumeryczny LCD zbudowany na sterowniku HD44780 a) wielkość bufora znaków (DD RAM): 80 znaków (80 bajtów) b) możliwość sterowania (czyli podawania kodów znaków) za pomocą

Bardziej szczegółowo

Komunikacja w mikrokontrolerach Laboratorium

Komunikacja w mikrokontrolerach Laboratorium Laboratorium Ćwiczenie 2 Magistrala UART Program ćwiczenia: konfiguracja transmisji danych między komputerem PC a mikrokontrolerem przy użyciu magistrali UART. Zagadnienia do przygotowania: podstawy programowania

Bardziej szczegółowo

Podstawowe urządzenia peryferyjne mikrokontrolera ATmega8 Spis treści

Podstawowe urządzenia peryferyjne mikrokontrolera ATmega8 Spis treści Podstawowe urządzenia peryferyjne mikrokontrolera ATmega8 Spis treści 1. Konfiguracja pinów2 2. ISP..2 3. I/O Ports..3 4. External Interrupts..4 5. Analog Comparator5 6. Analog-to-Digital Converter.6 7.

Bardziej szczegółowo

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

1. Wprowadzenie Programowanie mikrokontrolerów Sprzęt i oprogramowanie... 33 Spis treści 3 1. Wprowadzenie...11 1.1. Wstęp...12 1.2. Mikrokontrolery rodziny ARM...13 1.3. Architektura rdzenia ARM Cortex-M3...15 1.3.1. Najważniejsze cechy architektury Cortex-M3... 15 1.3.2. Rejestry

Bardziej szczegółowo

Programowanie mikrokontrolerów 2.0

Programowanie mikrokontrolerów 2.0 Programowanie mikrokontrolerów 2.0 Sterowanie podczerwienią, zaawansowane tryby liczników Marcin Engel Marcin Peczarski Instytut Informatyki Uniwersytetu Warszawskiego 8 grudnia 2016 Sterowanie podczerwienią

Bardziej szczegółowo

Mikrokontrolery AVR techniczne aspekty programowania

Mikrokontrolery AVR techniczne aspekty programowania Andrzej Pawluczuk Mikrokontrolery AVR techniczne aspekty programowania Białystok, 2004 Mikrokontrolery rodziny AVR integrują w swojej strukturze między innymi nieulotną pamięć przeznaczoną na program (pamięć

Bardziej szczegółowo

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

MODBUS RTU wersja M1.14 protokół komunikacyjny wyświetlaczy LDN MODBUS RTU wersja M1.14 protokół komunikacyjny do wyświetlaczy SEM 04.2010 Str. 1/5 MODBUS RTU wersja M1.14 protokół komunikacyjny wyświetlaczy LDN W wyświetlaczach LDN protokół MODBUS RTU wykorzystywany

Bardziej szczegółowo

Magistrala I 2 C. Podstawy systemów mikroprocesorowych. Wykład nr 5 Interfejsy szeregowe c.d.

Magistrala I 2 C. Podstawy systemów mikroprocesorowych. Wykład nr 5 Interfejsy szeregowe c.d. Magistrala I 2 C Podstawy systemów mikroprocesorowych Wykład nr 5 Interfejsy szeregowe c.d. dr Piotr Fronczak http://www.if.pw.edu.pl/~agatka/psm.html Inter-integrated circuit bus TWI Two-wire Serial Interface

Bardziej szczegółowo

Układ transmisji szeregowej AVR

Układ transmisji szeregowej AVR Układ transmisji szeregowej AVR Transmisja szeregowa/równoległa porównanie: w transmisji szeregowej dane wysyłane są bit po bicie, mniej przewodów niż w transmisji równoległej (dwa przewody elektryczne

Bardziej szczegółowo

Sprawozdanie z projektu MARM. Część druga Specyfikacja końcowa. Prowadzący: dr. Mariusz Suchenek. Autor: Dawid Kołcz. Data: r.

Sprawozdanie z projektu MARM. Część druga Specyfikacja końcowa. Prowadzący: dr. Mariusz Suchenek. Autor: Dawid Kołcz. Data: r. Sprawozdanie z projektu MARM Część druga Specyfikacja końcowa Prowadzący: dr. Mariusz Suchenek Autor: Dawid Kołcz Data: 01.02.16r. 1. Temat pracy: Układ diagnozujący układ tworzony jako praca magisterska.

Bardziej szczegółowo

MOBOT-RCR v2 miniaturowe moduły radiowe Bezprzewodowa transmisja UART

MOBOT-RCR v2 miniaturowe moduły radiowe Bezprzewodowa transmisja UART MOBOT-RCR v2 miniaturowe moduły radiowe Bezprzewodowa transmisja UART Własności MOBOT-RCR v2a: - pasmo komunikacji: ISM 433MHz lub 868MHz - zasięg 50m 300m * - zasilanie: z USB, - interfejs wyjściowy:

Bardziej szczegółowo

Badanie układów średniej skali integracji - ćwiczenie Cel ćwiczenia. 2. Wykaz przyrządów i elementów: 3. Przedmiot badań

Badanie układów średniej skali integracji - ćwiczenie Cel ćwiczenia. 2. Wykaz przyrządów i elementów: 3. Przedmiot badań adanie układów średniej skali integracji - ćwiczenie 6. Cel ćwiczenia Celem ćwiczenia jest zapoznanie się z podstawowymi układami SSI (Średniej Skali Integracji). Przed wykonaniem ćwiczenia należy zapoznać

Bardziej szczegółowo

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

Systemy wbudowane. Uniwersytet Łódzki Wydział Fizyki i Informatyki Stosowanej. Witold Kozłowski Uniwersytet Łódzki Wydział Fizyki i Informatyki Stosowanej Systemy wbudowane Witold Kozłowski Zakład Fizyki i Technologii Struktur Nanometrowych 9-236 Łódź, Pomorska 49/53 https://std2.phys.uni.lodz.pl/mikroprocesory/

Bardziej szczegółowo

Stanowisko laboratoryjne dla mikrokontrolera ATXmega32A4 firmy Atmel

Stanowisko laboratoryjne dla mikrokontrolera ATXmega32A4 firmy Atmel Katedra Metrologii i Optoelektroniki Wydział Elektroniki, Telekomunikacji i Informatyki Politechnika Gdańska LABORATORIUM MIKROKONTROLERY I MIKROSYSTEMY Stanowisko laboratoryjne dla mikrokontrolera ATXmega32A4

Bardziej szczegółowo

ZL5PIC. Zestaw uruchomieniowy dla mikrokontrolerów PIC16F887

ZL5PIC. Zestaw uruchomieniowy dla mikrokontrolerów PIC16F887 ZL5PIC Zestaw uruchomieniowy dla mikrokontrolerów PIC16F887 ZL5PIC jest uniwersalnym zestawem uruchomieniowym dla mikrokontrolerów PIC16F887 (oraz innych w obudowie 40-wyprowadzeniowej). Dzięki wyposażeniu

Bardziej szczegółowo

2.1 Porównanie procesorów

2.1 Porównanie procesorów 1 Wstęp...1 2 Charakterystyka procesorów...1 2.1 Porównanie procesorów...1 2.2 Wejścia analogowe...1 2.3 Termometry cyfrowe...1 2.4 Wyjścia PWM...1 2.5 Odbiornik RC5...1 2.6 Licznik / Miernik...1 2.7 Generator...2

Bardziej szczegółowo

Opis procedur asemblera AVR

Opis procedur asemblera AVR Piotr Kalus PWSZ Racibórz 10.05.2008 r. Opis procedur asemblera AVR init_lcd Plik: lcd4pro.hvr Procedura inicjuje pracę alfanumerycznego wyświetlacza LCD za sterownikiem HD44780. Wyświetlacz działa w trybie

Bardziej szczegółowo

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

ZL8AVR. Płyta bazowa dla modułów dipavr ZL8AVR Płyta bazowa dla modułów dipavr Zestaw ZL8AVR to płyta bazowa dla modułów dipavr (np. ZL7AVR z mikrokontrolerem ATmega128 lub ZL12AVR z mikrokontrolerem ATmega16. Wyposażono ją w wiele klasycznych

Bardziej szczegółowo

ZL2AVR. Zestaw uruchomieniowy z mikrokontrolerem ATmega8

ZL2AVR. Zestaw uruchomieniowy z mikrokontrolerem ATmega8 ZL2AVR Zestaw uruchomieniowy z mikrokontrolerem ATmega8 ZL2AVR jest uniwersalnym zestawem uruchomieniowym dla mikrokontrolerów ATmega8 (oraz innych w obudowie 28-wyprowadzeniowej). Dzięki wyposażeniu w

Bardziej szczegółowo

ZL28ARM. Zestaw uruchomieniowy dla mikrokontrolerów AT91SAM7XC

ZL28ARM. Zestaw uruchomieniowy dla mikrokontrolerów AT91SAM7XC ZL28ARM Zestaw uruchomieniowy dla mikrokontrolerów AT91SAM7XC Zestaw ZL28ARM jest uniwersalnym zestawem uruchomieniowym dla mikrokontrolerów AT91SAM7XC. Dzięki wyposażeniu w szeroką gamę układów peryferyjnych

Bardziej szczegółowo

TECHNIKA MIKROPROCESOROWA II

TECHNIKA MIKROPROCESOROWA II Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział IEiT Katedra Elektroniki TECHNIKA MIKROPROCESOROWA II LAB 6 Moduł UART - współpraca z komputerem poprzez BlueTooth Mariusz Sokołowski

Bardziej szczegółowo

SML3 październik

SML3 październik SML3 październik 2005 16 06x_EIA232_4 Opis ogólny Moduł zawiera transceiver EIA232 typu MAX242, MAX232 lub podobny, umożliwiający użycie linii RxD, TxD, RTS i CTS interfejsu EIA232 poprzez złącze typu

Bardziej szczegółowo

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

ZL9AVR. Płyta bazowa dla modułów ZL7AVR (ATmega128) i ZL1ETH (RTL8019) ZL9AVR Płyta bazowa dla modułów ZL7AVR (ATmega128) i ZL1ETH (RTL8019) ZL9AVR to płyta bazowa umożliwiająca wykonywanie różnorodnych eksperymentów związanych z zastosowaniem mikrokontrolerów AVR w aplikacjach

Bardziej szczegółowo

MultiTool instrukcja użytkownika 2010 SFAR

MultiTool instrukcja użytkownika 2010 SFAR MultiTool instrukcja użytkownika 2010 SFAR Tytuł dokumentu: MultiTool instrukcja użytkownika Wersja dokumentu: V1.0 Data: 21.06.2010 Wersja urządzenia którego dotyczy dokumentacja: MultiTool ver. 1.00

Bardziej szczegółowo

Kod produktu: MP01105

Kod produktu: MP01105 MODUŁ INTERFEJSU KONTROLNO-POMIAROWEGO DLA MODUŁÓW Urządzenie stanowi bardzo łatwy do zastosowania gotowy interfejs kontrolno-pomiarowy do podłączenia modułów takich jak czujniki temperatury, moduły przekaźnikowe,

Bardziej szczegółowo

STM32 Butterfly. Zestaw uruchomieniowy dla mikrokontrolerów STM32F107

STM32 Butterfly. Zestaw uruchomieniowy dla mikrokontrolerów STM32F107 Zestaw uruchomieniowy dla mikrokontrolerów STM32F107 STM32 Butterfly Zestaw STM32 Butterfly jest platformą sprzętową pozwalającą poznać i przetestować możliwości mikrokontrolerów z rodziny STM32 Connectivity

Bardziej szczegółowo

MIKROPROCESORY architektura i programowanie

MIKROPROCESORY architektura i programowanie Struktura portów (CISC) Port to grupa (zwykle 8) linii wejścia/wyjścia mikrokontrolera o podobnych cechach i funkcjach Większość linii we/wy może pełnić dwie lub trzy rozmaite funkcje. Struktura portu

Bardziej szczegółowo

Płytka ewaluacyjna z ATmega16/ATmega32 ARE0021/ARE0024

Płytka ewaluacyjna z ATmega16/ATmega32 ARE0021/ARE0024 Płytka ewaluacyjna z ATmega16/ATmega32 ARE0021/ARE0024 Płytka idealna do nauki programowania mikrokontrolerów i szybkiego budowanie układów testowych. Posiada mikrokontroler ATmega16/ATmega32 i bogate

Bardziej szczegółowo

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

Wizualizacja stanu czujników robota mobilnego. Sprawozdanie z wykonania projektu. Wizualizacja stanu czujników robota mobilnego. Sprawozdanie z wykonania projektu. Maciek Słomka 4 czerwca 2006 1 Celprojektu. Celem projektu było zbudowanie modułu umożliwiającego wizualizację stanu czujników

Bardziej szczegółowo

Charakterystyka mikrokontrolerów. Przygotowali: Łukasz Glapiński, Mateusz Kocur, Adam Kokot,

Charakterystyka mikrokontrolerów. Przygotowali: Łukasz Glapiński, Mateusz Kocur, Adam Kokot, Charakterystyka mikrokontrolerów Przygotowali: Łukasz Glapiński, 171021 Mateusz Kocur, 171044 Adam Kokot, 171075 Plan prezentacji Co to jest mikrokontroler? Historia Budowa mikrokontrolera Wykorzystywane

Bardziej szczegółowo

MCAR Robot mobilny z procesorem AVR Atmega32

MCAR Robot mobilny z procesorem AVR Atmega32 MCAR Robot mobilny z procesorem AVR Atmega32 Opis techniczny Jakub Kuryło kl. III Ti Zespół Szkół Zawodowych nr. 1 Ul. Tysiąclecia 3, 08-530 Dęblin e-mail: jkurylo92@gmail.com 1 Spis treści 1. Wstęp..

Bardziej szczegółowo

Poradnik programowania procesorów AVR na przykładzie ATMEGA8

Poradnik programowania procesorów AVR na przykładzie ATMEGA8 Poradnik programowania procesorów AVR na przykładzie ATMEGA8 Wersja 1.0 Tomasz Pachołek 2017-13-03 Opracowanie zawiera opis podstawowych procedur, funkcji, operatorów w języku C dla mikrokontrolerów AVR

Bardziej szczegółowo

LITEcompLPC1114. Zestaw ewaluacyjny z mikrokontrolerem LPC1114 (Cortex-M0) Sponsorzy:

LITEcompLPC1114. Zestaw ewaluacyjny z mikrokontrolerem LPC1114 (Cortex-M0) Sponsorzy: LITEcompLPC1114 Zestaw ewaluacyjny z mikrokontrolerem LPC1114 (Cortex-M0) Bezpłatny zestaw dla Czytelników książki Mikrokontrolery LPC1100. Pierwsze kroki LITEcompLPC1114 jest doskonałą platformą mikrokontrolerową

Bardziej szczegółowo

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

Zagadnienia zaliczeniowe z przedmiotu Układy i systemy mikroprocesorowe elektronika i telekomunikacja, stacjonarne zawodowe Zagadnienia zaliczeniowe z przedmiotu Układy i systemy mikroprocesorowe elektronika i telekomunikacja, stacjonarne zawodowe System mikroprocesorowy 1. Przedstaw schemat blokowy systemu mikroprocesorowego.

Bardziej szczegółowo

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

Projekt MARM. Dokumentacja projektu. Łukasz Wolniak. Stacja pogodowa Projekt MARM Dokumentacja projektu Łukasz Wolniak Stacja pogodowa 1. Cel projektu Celem projektu było opracowanie urządzenia do pomiaru temperatury, ciśnienia oraz wilgotności w oparciu o mikrokontroler

Bardziej szczegółowo

Kurs Elektroniki. Część 5 - Mikrokontrolery. www.knr.meil.pw.edu.pl 1/26

Kurs Elektroniki. Część 5 - Mikrokontrolery. www.knr.meil.pw.edu.pl 1/26 Kurs Elektroniki Część 5 - Mikrokontrolery. www.knr.meil.pw.edu.pl 1/26 Mikrokontroler - autonomiczny i użyteczny system mikroprocesorowy, który do swego działania wymaga minimalnej liczby elementów dodatkowych.

Bardziej szczegółowo

2.1 Przesył danych między procesorem a tabelą zmiennych

2.1 Przesył danych między procesorem a tabelą zmiennych 1 Wstęp...1 2 Jak aplikacja obsługuje procesory?...2 2.1 Przesył danych między procesorem a tabelą zmiennych...2 2.2 Polecenia wysyłane do procesorów...2 3 Podstawowe peryferia procesora HallChip...3 3.1

Bardziej szczegółowo

Mikrokontroler AVR ATmega32 - wykład 9

Mikrokontroler AVR ATmega32 - wykład 9 SWB - Mikrokontroler AVR ATmega32 - wykład 9 asz 1 Mikrokontroler AVR ATmega32 - wykład 9 Adam Szmigielski aszmigie@pjwstk.edu.pl SWB - Mikrokontroler AVR ATmega32 - wykład 9 asz 2 CechyµC ATmega32 1.

Bardziej szczegółowo

Interfejsy komunikacyjne pomiary sygnałów losowych i pseudolosowych. Instrukcja do ćwiczenia laboratoryjnego

Interfejsy komunikacyjne pomiary sygnałów losowych i pseudolosowych. Instrukcja do ćwiczenia laboratoryjnego Interfejsy komunikacyjne pomiary sygnałów losowych i pseudolosowych Instrukcja do ćwiczenia laboratoryjnego opracował: Łukasz Buczek 05.2015 rev. 05.2018 1 1. Cel ćwiczenia Doskonalenie umiejętności obsługi

Bardziej szczegółowo

Wbudowane układy peryferyjne cz. 3 Wykład 9

Wbudowane układy peryferyjne cz. 3 Wykład 9 Wbudowane układy peryferyjne cz. 3 Wykład 9 Komparator analogowy Komparator analogowy 2 Komparator analogowy Pozwala porównać napięcia na wejściu dodatnim i ujemnym Przerwanie może być wywołane obniżeniem

Bardziej szczegółowo

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

Uniwersalny sterownik silnika krokowego z portem szeregowym RS232 z procesorem AT90S2313 na płycie E200. Zestaw do samodzielnego montażu. microkit E3 Uniwersalny sterownik silnika krokowego z portem szeregowym RS3 z procesorem AT90S33 na płycie E00. Zestaw do samodzielnego montażu..opis ogólny. Sterownik silnika krokowego przeznaczony jest

Bardziej szczegółowo

Podstawy systemów mikroprocesorowych. Interfejs USART. Interfejsy szeregowe w mikrokontrolerach AVR

Podstawy systemów mikroprocesorowych. Interfejs USART. Interfejsy szeregowe w mikrokontrolerach AVR Podstawy systemów mikroprocesorowych Wykład nr 4 Interfejsy szeregowe dr Piotr Fronczak http://www.if.pw.edu.pl/~agatka/psm.html Komputery przesyłają dane na dwa sposoby: równolegle: Kilka bitów danych

Bardziej szczegółowo

Architektura Systemów Komputerowych. Transmisja szeregowa danych Standardy magistral szeregowych

Architektura Systemów Komputerowych. Transmisja szeregowa danych Standardy magistral szeregowych Architektura Systemów Komputerowych Transmisja szeregowa danych Standardy magistral szeregowych 1 Transmisja szeregowa Idea transmisji szeregowej synchronicznej DOUT Rejestr przesuwny DIN CLK DIN Rejestr

Bardziej szczegółowo

Systemy Wbudowane. Arduino - rozszerzanie. Podłączanie wyświetlacza LCD. Podłączanie wyświetlacza LCD. Podłączanie wyświetlacza LCD

Systemy Wbudowane. Arduino - rozszerzanie. Podłączanie wyświetlacza LCD. Podłączanie wyświetlacza LCD. Podłączanie wyświetlacza LCD Wymagania: V, GND Zasilanie LED podswietlenia (opcjonalne) Regulacja kontrastu (potencjometr) Enable Register Select R/W (LOW) bity szyny danych Systemy Wbudowane Arduino - rozszerzanie mgr inż. Marek

Bardziej szczegółowo

Interfejsy systemów pomiarowych

Interfejsy systemów pomiarowych Interfejsy systemów pomiarowych Układ (topologia) systemu pomiarowe może być układem gwiazdy układem magistrali (szyny) układem pętli Ze względu na rodzaj transmisji interfejsy możemy podzielić na równoległe

Bardziej szczegółowo

ZL2ARM easyarm zestaw uruchomieniowy dla mikrokontrolerów LPC2104/5/6 (rdzeń ARM7TDMI-S)

ZL2ARM easyarm zestaw uruchomieniowy dla mikrokontrolerów LPC2104/5/6 (rdzeń ARM7TDMI-S) ZL2ARM easyarm zestaw uruchomieniowy dla mikrokontrolerów LPC2104/5/6 (rdzeń ARM7TDMI-S) ZL2ARM Zestaw uruchomieniowy dla mikrokontrolerów LPC2104/5/6 (rdzeń ARM7TDMI-S) 1 Zestaw ZL2ARM opracowano z myślą

Bardziej szczegółowo

Układy czasowo-licznikowe w systemach mikroprocesorowych

Układy czasowo-licznikowe w systemach mikroprocesorowych Układy czasowo-licznikowe w systemach mikroprocesorowych 1 W każdym systemie mikroprocesorowym znajduje zastosowanie układ czasowy lub układ licznikowy Liczba liczników stosowanych w systemie i ich długość

Bardziej szczegółowo

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 (v.1.0) Uniwersalny zestaw uruchomieniowy dla mikrokontrolerów PIC 1 ZL4PIC Uniwersalny zestaw uruchomieniowy dla mikrokontrolerów PIC Zestaw jest przeznaczony dla elektroników zajmujących się aplikacjami mikrokontrolerów PIC. Jest on przystosowany do współpracy z mikrokontrolerami

Bardziej szczegółowo

Zestaw uruchomieniowy z mikrokontrolerem LPC1114 i wbudowanym programatorem ISP

Zestaw uruchomieniowy z mikrokontrolerem LPC1114 i wbudowanym programatorem ISP Zestaw uruchomieniowy z mikrokontrolerem LPC1114 i wbudowanym programatorem ISP ZL32ARM ZL32ARM z mikrokontrolerem LPC1114 (rdzeń Cotrex-M0) dzięki wbudowanemu programatorowi jest kompletnym zestawem uruchomieniowym.

Bardziej szczegółowo

Wyświetlacze graficzne : 162x64 z kontrolerem S1D x60 z kontrolerem S1D15710

Wyświetlacze graficzne : 162x64 z kontrolerem S1D x60 z kontrolerem S1D15710 S1D15705 Wyświetlacze graficzne : 162x64 z kontrolerem S1D15705 219x60 z kontrolerem S1D15710 S1D15710 Wyświetlacze S1D15705/S1D15710 są graficznymi wyświetlaczami ciekłokrystalicznymi. Wyposażone są w

Bardziej szczegółowo

Szkolenia specjalistyczne

Szkolenia specjalistyczne Szkolenia specjalistyczne AGENDA Programowanie mikrokontrolerów w języku C na przykładzie STM32F103ZE z rdzeniem Cortex-M3 GRYFTEC Embedded Systems ul. Niedziałkowskiego 24 71-410 Szczecin info@gryftec.com

Bardziej szczegółowo

LEKCJA TEMAT: Zasada działania komputera.

LEKCJA TEMAT: Zasada działania komputera. LEKCJA TEMAT: Zasada działania komputera. 1. Ogólna budowa komputera Rys. Ogólna budowa komputera. 2. Komputer składa się z czterech głównych składników: procesor (jednostka centralna, CPU) steruje działaniem

Bardziej szczegółowo

interfejs szeregowy wyświetlaczy do systemów PLC

interfejs szeregowy wyświetlaczy do systemów PLC LDN SBCD interfejs szeregowy wyświetlaczy do systemów PLC SEM 08.2003 Str. 1/5 SBCD interfejs szeregowy wyświetlaczy do systemów PLC INSTRUKCJA OBSŁUGI Charakterystyka Interfejs SBCD w wyświetlaczach cyfrowych

Bardziej szczegółowo

Laboratorium mikroinformatyki. Szeregowe magistrale synchroniczne.

Laboratorium mikroinformatyki. Szeregowe magistrale synchroniczne. Laboratorium mikroinformatyki. Szeregowe magistrale synchroniczne. Transmisja szeregowa charakteryzująca się niewielką ilością linii transmisyjnych może okazać się użyteczna nawet w wypadku zastosowania

Bardziej szczegółowo

ZL4PIC. Uniwersalny zestaw uruchomieniowy dla mikrokontrolerów PIC

ZL4PIC. Uniwersalny zestaw uruchomieniowy dla mikrokontrolerów PIC ZL4PIC uniwersalny zestaw uruchomieniowy dla mikrokontrolerów PIC (v.1.0) ZL4PIC Uniwersalny zestaw uruchomieniowy dla mikrokontrolerów PIC 1 Zestaw jest przeznaczony dla elektroników zajmujących się aplikacjami

Bardziej szczegółowo

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

Opis czytnika TRD-FLAT CLASSIC ver. 1.1. Naścienny czytnik transponderów UNIQUE w płaskiej obudowie TRD-FLAT CLASSIC Naścienny czytnik transponderów UNIQUE w płaskiej obudowie Podstawowe cechy : zasilanie od 3V do 6V 4 formaty danych wyjściowych POWER LED w kolorze żółtym czerwono-zielony READY LED sterowany

Bardziej szczegółowo

Instrukcja do oprogramowania ENAP DEC-1

Instrukcja do oprogramowania ENAP DEC-1 Instrukcja do oprogramowania ENAP DEC-1 Do urządzenia DEC-1 dołączone jest oprogramowanie umożliwiające konfigurację urządzenia, rejestrację zdarzeń oraz wizualizację pracy urządzenia oraz poszczególnych

Bardziej szczegółowo

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

Sterownik Spid Pant 8 i Ant 8. Podręcznik użytkowania Sterownik Spid Pant 8 i Ant 8 Podręcznik użytkowania Spis treści Spis treści...2 Wprowadzenie...3 Komplet...3 Dane techniczne...3 Panel sterujący...4 Panel tylny...5 Obsługa sterownika...6 Zmiana trybu

Bardziej szczegółowo

Kod produktu: MP01611-ZK

Kod produktu: MP01611-ZK ZAMEK BEZSTYKOWY RFID ZE ZINTEGROWANĄ ANTENĄ, WYJŚCIE RS232 (TTL) Moduł stanowi gotowy do zastosowania bezstykowy zamek pracujący w technologii RFID dla transponderów UNIQUE 125kHz, zastępujący z powodzeniem

Bardziej szczegółowo

WPROWADZENIE Mikrosterownik mikrokontrolery

WPROWADZENIE Mikrosterownik mikrokontrolery WPROWADZENIE Mikrosterownik (cyfrowy) jest to moduł elektroniczny zawierający wszystkie środki niezbędne do realizacji wymaganych procedur sterowania przy pomocy metod komputerowych. Platformy budowy mikrosterowników:

Bardziej szczegółowo

Programowalne Układy Cyfrowe Laboratorium

Programowalne Układy Cyfrowe Laboratorium Zdjęcie opracowanej na potrzeby prowadzenia laboratorium płytki przedstawiono na Rys.1. i oznaczono na nim najważniejsze elementy: 1) Zasilacz i programator. 2) Układ logiki programowalnej firmy XILINX

Bardziej szczegółowo

Mikrokontroler ATmega32. System przerwań Porty wejścia-wyjścia Układy czasowo-licznikowe

Mikrokontroler ATmega32. System przerwań Porty wejścia-wyjścia Układy czasowo-licznikowe Mikrokontroler ATmega32 System przerwań Porty wejścia-wyjścia Układy czasowo-licznikowe 1 Przerwanie Przerwanie jest inicjowane przez urządzenie zewnętrzne względem mikroprocesora, zgłaszające potrzebę

Bardziej szczegółowo