Ćw. 5. Obsługa portu szeregowego UART w mikrokontrolerach 8051.



Podobne dokumenty
Instytut Teleinformatyki

Temat: Obsługa portu komunikacji szeregowej RS232 w systemie STRC51. Ćwiczenie 2. (sd)

Architektura mikrokontrolera MCS51

Architektura mikrokontrolera MCS51

MIKROPROCESORY architektura i programowanie

TECHNIKA MIKROPROCESOROWA

MIKROPROCESORY architektura i programowanie

PERSON Kraków

INSTRUKCJA OBSŁUGI URZĄDZENIA: HC8201

ANALOGOWE UKŁADY SCALONE

Instytut Teleinformatyki

Instrukcja programu PControl Powiadowmienia.

INSTRUKCJA OBS UGI

Przerwania w architekturze mikrokontrolera X51

Budowa systemów komputerowych

Komunikacja w sieci Industrial Ethernet z wykorzystaniem Protokołu S7 oraz funkcji PUT/GET

System Informatyczny CELAB. Przygotowanie programu do pracy - Ewidencja Czasu Pracy

Elementy cyfrowe i układy logiczne

PRZEMYSŁOWY ODTWARZACZ PLIKÓW MP3 i WAV

Jak zaprogramować procesor i. wgrać firmwar-e do yampp3usb. Copyright SOFT COM sp. z o. o.

Tester pilotów 315/433/868 MHz

Oprogramowanie klawiatury matrycowej i alfanumerycznego wyświetlacza LCD

Systemy mikroprocesorowe - projekt

Regulamin Projektów Ogólnopolskich i Komitetów Stowarzyszenia ESN Polska

Programator pamięci EEPROM

CZYTNIK ZBLIŻENIOWY RFID-UR80D

Adapter USB do CB32. MDH-SYSTEM ul. Bajkowa 5, Lublin tel./fax lub kom e mail: info@mdh-system.pl

Tester pilotów 315/433/868 MHz MHz

Opis ogólny AL154SAV5.HT

Start Bity Bit Stop 1 Bit Par Rys. 1

Wykład 2. Interfejsy I 2 C, OneWire, I 2 S

PROCEDURA ROZWIĄZYWANIA PROBLEMÓW Z SYSTEMEM SD-NAVI (wersja 1.00)

VLAN Ethernet. być konfigurowane w dowolnym systemie operacyjnym do ćwiczenia nr 6. Od ćwiczenia 7 należy pracować ć w systemie Linux.

REJESTRATOR RES800 INSTRUKCJA OBSŁUGI

Śrubka zamykająca Uchwyt ścienny Przycisk kontrolny Lampka kontrolna

Spis procedur i programów

Systemy wbudowane Mikrokontrolery

CRUSB Spartan KONWERTER CAN / USB

ad a) Konfiguracja licznika T1 Niech nasz program składa się z dwóch fragmentów kodu: inicjacja licznika T1 pętla główna

Generalnie przeznaczony jest do obsługi systemów klimatyzacyjnych i chłodniczych.

( 5 4 ) Sposób i urządzenie do sterowania dźwigiem, zwłaszcza towarowym,

Hardware mikrokontrolera X51

Instrukcja obsługi zamka. bibi-z50. (zamek autonomiczny z czytnikiem identyfikatora Mifare)

DTR.ZL APLISENS PRODUKCJA PRZETWORNIKÓW CIŚNIENIA I APARATURY POMIAROWEJ INSTRUKCJA OBSŁUGI (DOKUMENTACJA TECHNICZNO-RUCHOWA)

CYFROWY WYŚWIETLACZ POŁOŻENIA TNP 10

ZL11ARM. Uniwersalna płyta bazowa

Opis programu do wizualizacji algorytmów z zakresu arytmetyki komputerowej

tel/fax lub NIP Regon

Badanie bezszczotkowego silnika prądu stałego z magnesami trwałymi (BLDCM)

Pamięci EEPROM w systemach mikroprocesorowych, część 2

Type ETO2 Controller for ice and snow melting

SINAMICS G120C STARTER. Tworzenie nowego projektu w trybie online.

OŚWIETLENIE PRZESZKLONEJ KLATKI SCHODOWEJ

Sterownik Silnika Krokowego GS 600

Rozliczenia z NFZ. Ogólne założenia. Spis treści

Obszar rejestrów specjalnych. Laboratorium Podstaw Techniki Mikroprocesorowej Instytut Mikroelektroniki i Optoelektroniki PW

HiTiN Sp. z o. o. Przekaźnik kontroli temperatury RTT 4/2 DTR Katowice, ul. Szopienicka 62 C tel/fax.: + 48 (32)

GEO-SYSTEM Sp. z o.o. GEO-RCiWN Rejestr Cen i Wartości Nieruchomości Podręcznik dla uŝytkowników modułu wyszukiwania danych Warszawa 2007

raceboard-s Szybki start

architektura komputerów w 1 1

Wtedy wystarczy wybrać właściwego Taga z listy.

Karta adaptacyjna GSM

yoyo ver. 6.0

SKRÓCONA INSTRUKCJA OBSŁUGI ELEKTRONICZNEGO BIURA OBSŁUGI UCZESTNIKA BADANIA BIEGŁOŚCI

ROZDZIAŁ 1 Instrukcja obsługi GRAND HAND VIEW III

Sterownik nagrzewnicy elektrycznej HE

wzór Załącznik nr 5 do SIWZ UMOWA Nr /

Rys 2. Schemat obwodów wejściowo/wyjściowych urządzeń w magistrali I2C

Komuniukacja Komputer-Komputer

Ćwiczenie 7 Liczniki binarne i binarne systemy liczbowe.

Instrukcja obsługi panelu operacyjnego XV100 w SZR-MAX-1SX

Technika Mikroprocesorowa Laboratorium 5 Obsługa klawiatury

Implant ślimakowy wszczepiany jest w ślimak ucha wewnętrznego (przeczytaj artykuł Budowa ucha

EC1000 KATALOG SYSTEMÓW STEROWANIA

OBSŁUGI Konwerter USB-RS

Instalacja programu. Omówienie programu. Jesteś tu: Bossa.pl

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

Generator obrazu transakcji fiskalnych, FG-40

Instrukcja wgrywania synoptyki pola (wersja modelu danych do 634)

Systemy wbudowane. Wprowadzenie. Wprowadzenie. Mikrokontroler 8051 Budowa

Instrukcja obsługi programu MKi-m konfigurator

Audyt SEO. Elementy oraz proces przygotowania audytu. strona

Stypendia USOS Stan na semestr zimowy 2013/14

INTERFEJS RFID WIEGAND - CODIBUS SYSTEMU DSX M2780

LABORATORIUM PRZYRZĄDÓW PÓŁPRZEWODNIKOWYCH

SYSTEM PRZERWA Ń MCS 51

Harmonogramowanie projektów Zarządzanie czasem

INFORMATOR TECHNICZNY GE FANUC. Rezerwacja w sterownikach programowalnych GE Fanuc. Standby Redundancy najprostszy system rezerwacji

Instrukcja Obsługi STRONA PODMIOTOWA BIP

PROGRAM ZAPEWNIENIA I POPRAWY JAKOŚCI AUDYTU WEWNĘTRZNEGO

Pomiar mocy pobieranej przez napędy pamięci zewnętrznych komputera. Piotr Jacoń K-2 I PRACOWNIA FIZYCZNA

Instrukcja obsługi platformy zakupowej e-osaa (klient podstawowy)

Bazy danych. Andrzej Łachwa, UJ, /15

VinCent Office. Moduł Drukarki Fiskalnej

Regulamin Konkursu Start up Award 9. Forum Inwestycyjne czerwca 2016 r. Tarnów. Organizatorzy Konkursu

Ogłoszenie o zwołaniu Zwyczajnego Walnego Zgromadzenia IDM Spółka Akcyjna w upadłości układowej z siedzibą w Krakowie na dzień 30 czerwca 2015 roku

Zintegrowane Systemy Zarządzania Biblioteką SOWA1 i SOWA2 SKONTRUM

WYKŁAD 8. Postacie obrazów na różnych etapach procesu przetwarzania

Elementy składowe komputera. Płyta główna

Architektura Systemów Komputerowych. Sterowanie programem skoki Przerwania

Transkrypt:

Ćw 5 Obsługa portu szeregowego UART w mikrokontrolerach 8051 Opracowanie: mgr inż Michał Lankosz 1 Wprowadzenie Celem ćwiczenia jest poznanie działania układu transmisji szeregowej UART 2 Niezbędne wiadomości Architektura i lista rozkazów 8051, w szczególności: - struktura i działanie układu portu szeregowego - tryby pracy portu szeregowego - rola liczników w pracy portu szeregowego - znaczenie początkowych adresów pamięci programu - działanie przerwań sprzętowych Transmisja szeregowa RS-232 3 Podstawy 31 Układ UART Układ UART jest przeznaczony do prowadzenia asynchronicznej transmisji szeregowej (bit po bicie) Do transmisji szeregowej asynchronicznej potrzebne są dwie linie, które w 8051 są przypisane do konkretnych linii portu P3: nadawcza TxD P31 odbiorcza RxD P30 Format przesyłanych znaków w trybie 1 przedstawiono niżej Znak składa się z bitu startu, ośmiu bitów danej i bitu stopu Pierwszy bit jest bitem najmniej znaczącym Słowo danych do wysłania jest pobierane z rejestru wyjściowego SBUF, a słowo odebrane do rejestru odbiorczego SBUF Mimo występowania tej samej nazwy jak i adresu rejestru SBUF są to jednak dwa osobne rejestry, a wybór odpowiedniego zależy od operacji Szybkość transmisji w trybie 1 wyznacza częstotliwość sygnału przepełnienia licznika T1 W 8052 źródłem taktowania może być także licznik T2, w innych odmianach również dedykowany do transmisji szeregowej licznik Najczęściej licznik T2 pracuje w trybie 2 (8-bitowy licznik TL1 z automatycznym ładowaniem wartości początkowej z TH1) Wartość jaką należy wpisać do TH1 określa się wzorem: 1

gdzie: F XTAL baud lub TH1=256 F XTAL 12 32 baud TH1=256 F XTAL 12 16 baud gdy SMOD = 0 gdy SMOD = 1 częstotliwość rezonatora kwarcowego (11059200 Hz) szybkość transmisji Typowe szybkości transmisji w bodach to: 300, 600, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600, 115200 Wysłanie jednego bajtu polega na wpisaniu wartości do rejestru SBUF Transmisja szeregowa zostaje zainicjowana automatycznie Zakończenie transmisji jest sygnalizowane przez układ ustawieniem flagi TI (bit w rejestrze SCON) Odczytywanie znaku jest inicjowane programowo przez wyzerowanie w rejestrze SCON bitu flagi RI, pod warunkiem ustawienia REN=1 W chwili skompletowania całego bajtu w rejestrze przesuwnym jest on przepisywany do SBUF, a flaga RI zostaje ustawiona Ustawienie flagi RI lub TI jest sygnałem zgłoszenia przerwania z portu szeregowego Przyjęcie tego przerwania (gdy nie jest ono zamaskowane) nie powoduje automatycznego wyzerowania flag, a zatem ich stan może być w programie obsługi odczytany w celu identyfikacji przyczyny przerwania Flagi RI i TI powinny być programowo zerowane odpowiednio po odebraniu i wysłaniu danej Typowa konfiguracja portu szeregowego Zaprogramowanie układu UART do pracy nie jest trudne Należy tylko skonfigurować sam układ portu poprzez wpisanie odpowiedniej wartości do rejestru sterującego SCON oraz licznikatimera 1 TMOD, TCON i TH1 Znaczenie poszczególnych bitów rejestrów jest podane w dodatku W przypadku tego ćwiczenia wykorzystywany jest tylko tryb 1 pracy portu szeregowego, natomiast prędkość transmisji wyznacza licznik-timer 1 pracując w trybie 2 (patrz ćwiczenie nr 4) Podstawy obsługi Przykładowy fragment programu odbierający znak: JNB RI,$ sprawdzenie flagi odbioru MOV A,SBUF czytanie z uarta CLR RI zerowanie flagi odbioru Program jak widać posiada bardzo prostą pętlę oczekującą na nadejście danej z portu szeregowego Taka pętla rzadko występuje ze względu na to, że procesor nie może w tym czasie wykonywać innych zadań (oprócz obsługi przerwań) Przykład wysłania znaku: JNB TI,$ czekanie na opróżnienie bufora nadajnika CLR TI wyzerowanie flagi wysłania MOV SBUF,A zapis do uarta 2

W przypadku wysyłania danych przed wpisaniem wartości do SBUF należy mieć pewność, że poprzednia dana została wysłana Zastosowanie powyższej sekwencji rozkazów spełnia to założenie Przerwania Zdarzenia portu szeregowego mogą być źródłem przerwania Jeśli przerwanie z portu szeregowego zostało odblokowane ustawienie się którejkolwiek flagi RI lub TI powoduje podjęcie obsługi przerwania Z tym portem jest związany adres 23h, od którego zaczyna się procedura obsługi Zatem szkielet programu jest podobny jak dla obsługi innych przerwań: CSEG AT 0 LJMP start CSEG AT 23h LJMP serial_it po resecie wykonujemy skok do początku programu pod adresem 23h z pamięci programu umieszczamy instrukcję skoku do procedury obsługi przerwania CSEG AT 30h start: program główny zaczyna się od adresu 30h (za tablicą wektorów przerwań) MOV SCON, Konfiguracja układu portu szeregowego MOV TMOD, MOV TH1, SETB TR1 podłączenie licznika T1 SETB ES zezwolenie na przerwanie z portu szeregowego SETB EA globalne odblokowanie przerwań loop: główna pętla programu ljmp loop serial_it: PUSH PSW PUSH ACC JBC TI,ser_tx CLR RI MOV,SBUF SJMP ser_end ser_tx: MOV SBUF, ser_end: POP ACC POP PSW RETI procedura obsługi przerwania zapamiętanie ważnych rejestrów na stosie sprawdzenie powodu przerwania odbiór wysyłanie END 32 Komunikacja z PC Mikrokontroler 8051 może poprzez układ szeregowy komunikować się z innymi elementami systemu w tym również z komputerem typu PC Obecnie komputery PC przeważnie nie posiadają już złącza RS232 Jednak standard ten często jest stosowany w urządzeniach przemysłowych i wielu innych komercyjnych zastosowaniach, gdzie prostota implementacji i niezawodność są ważniejsze od wygody i uniwersalności Na potrzeby laboratorium zastosowano przejściówki 3

z USB na RS-232 Od strony mikrokontrolera praktycznie nie wprowadzają one żadnej różnicy Po stronie komputera specjalny sterownik obecny w systemie operacyjnym emuluje obecność portu szeregowego, dzięki czemu programy widzą port jakby był on fizycznie dostępny w systemie W celach uruchomieniowych bardzo przydatny jest terminal, za pomocą którego można wysyłać dane jak i wyświetlać napływające dane W ćwiczeniu użyty zostanie jeden z bezpłatnie dostępnych terminali - Terminal v 19b by Br@y++ Poniżej krótki jego opis: Otwarcie/zamknięcie portu Wybór prędkości transmisji Wybór portu Dane odbierane Okno do wprowadzania danych nadawanych Ponieważ ten sam port jest wykorzystywany do programowania zestawu ZL2MCS51 jak i transmisji szeregowej, programator Flip może blokować dostęp do portu Należy zatem odpowiednio skonfigurować program Flip lub wyłączać go na czas pracy aplikacji Rozpoczęcie pracy z terminalem polega na wybraniu właściwej prędkości transmisji i numeru portu komunikacyjnego Ze względu na specyfikę zestawu laboratoryjnego należy również włączyć sygnał DTR tak, aby kontrolka w aplikacji świeciła na zielono Następnie należy wcisnąć klawisz Connect Każdy wpisany do okna nadawczego znak zostaje natychmiast wysyłany, natomiast dane nadchodzące są wyświetlane w oknie odbiorczym 4

4 Zadanie do wykonania Należy przeanalizować pracę mikrokontrolera poprzez wykonanie symulacji krokowej, a następnie uruchomić program na płytce ZL2MCS51 41 Program cw5p1asm CSEG AT 0 AJMP reset CSEG AT 30h reset: CLR P27 sygnalizacja uruchomienia programu MOV SCON,#50h uart w trybie 1 (8 bit), REN=1 MOV TMOD,#20h licznik 1 w trybie 2 MOV TH1,#0FDh 9600 Bds at 110592MHz SETB TR1 uruchomienie licznika CLR TI wyzerowanie flagi wysłania loop: JNB RI,loop sprawdzenie flagi odbioru MOV A,SBUF czytanie z uarta CLR RI zerowanie flagi odbioru INC A modyfikacja danej MOV SBUF,A zapis do uarta CLR P20 załączenie LED "nadawanie" JNB TI,$ czekanie na opróżnienie bufora nadajnika CLR TI wyzerowanie flagi wysłania SETB P20 wyłączenie LED "nadawanie" AJMP loop END a) Uruchom w symulatorze pracę krokową programu Należy skorzystać z okna UART do wprowadzania i odczytywania znaków, a także podglądać stany flag RI i TI w oknie Serial Channel b) Sprawdź działanie programu w rzeczywistym układzie c) Program jest swego rodzaju koderem informacji, gdyż zamienia każdy znak na znak o kodzie o jeden większym Rozszerz program o dekoder zakodowanej informacji Funkcja ma być przełączana za pomocą przycisków S6 i S7, a tryb pracy sygnalizowany odpowiednio diodami D6 i D7 d) Wykorzystując system przerwań napisz program, który przychodzące dane będzie wpisywał do cyklicznego bufora o długości 16 bajtów umiejscowionego w wewnętrznej pamięci RAM 5

5 Dodatek IT0 EX0 EA INT0 0 1 IE0 ET0 TF0 IT1 EX1 INT1 0 1 IE1 ET1 TF1 ES RI TI Rys1 Schemat blokowy systemu przerwań 8051 Adresy, od których zaczyna się wykonywanie programów obsługi przerwań: 03h 0Bh 13h 1Bh 23h zewnętrzne z wejścia /INT0 licznik T0 układu czasowo-licznikowego zewnętrzne z wejścia /INT1 licznik T1 układu czasowo-licznikowego zdarzenie portu szeregowego 6

Rejestry specjalne znaczenie poszczególnych bitów TCON TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 TFx - znacznik przepełnienia licznika Tx, ustawiany sprzętowo, zerowany przy przyjęciu przerwania TRx - bit sterujący zliczaniem licznika Tx, 1 zapewnia podłączenie sygnału zliczającego do licznika IEx - znacznik zgłoszenia przerwania zewnętrznego /INTx ustawiany sprzętowo, zerowany przy przyjęciu przerwania ITx - bit określający wyzwalanie przerwania poziomem niskim na /INTx 0 lub zboczem 1 IE EA - - ES ET1 EX1 ET0 EX0 EA - bit maski systemu przerwań ES - bit maski przerwania z portu szeregowego ET1 - bit maski przerwania z licznika-czasomierza T1 EX1 - bit maski przerwania zewnętrznego /INT1 ET0 - bit maski przerwania z licznika-czasomierza T0 EX0 - bit maski przerwania zewnętrznego /INT0 bit=1 przerwanie dozwolone bit=0 przerwanie zablokowane SCON SM0 SM1 SM2 REN TB8 RB8 TI RI SM0,SM1 - bity sterujące; określają tryb pracy portu szeregowego SM2 - maskowanie odbioru znaku; zmieniany programowo; gdy SM2=1 ignorowane są odebrane znaki, w których w trybie 2 i 3 dziewiąty bit danych jest zerem, a w trybie 1 nie został wykryty bit stopu; w trybie 0 powinno być SM2=0 REN - uaktywnienie odbiornika, gdy REN=0 nie są odbierane znaki TB8 - dziewiąty bit nadawanego znaku w trybie 2 i 3, ustawiany programowo RB8 - dziewiąty bit odebranego znaku w trybie 2 i 3 TI - flaga wysłania znaku; ustawiana sprzętowo po zakończeniu wysyłania znaku; zerowana tylko programowo; jest sygnałem zgłoszenia przerwania RI - flaga odebrania znaku; ustawiana sprzętowo po odebraniu znaku; zerowana tylko programowo; jest sygnałem zgłoszenia przerwania SM0 SM1 tryb 0 0 0 Transmisja synchroniczna; znaki 8-bitowe; taktowanie zegarem F XTAL /12 0 1 1 Transmisja asynchroniczna; znaki 8-bitowe; szybkość określona programowo 1 0 2 Transmisja asynchroniczna; znaki 9-bitowe; taktowanie zegarem F XTAL /64 lub F XTAL /32 1 1 3 Transmisja asynchroniczna; znaki 9-bitowe; szybkość określona programowo 7

TMOD licznik T1 licznik T0 GATE C/T M1 M0 GATE C/T M1 M0 GATE - uaktywnienie bramkowania licznika GATE=0 - licznik Tx pracuje gdy TRx=1 GATE=1 - licznik Tx pracuje gdy TRx=1 i /INTx=1 C/T - określa funkcję licznika Tx C/T=0 - czasomierz taktowany wewnętrznym zegarem f XTAL /12 C/T=1 - licznik impulsów zewnętrznych z wejścia Tx M1, M0 - tryb pracy licznika Tx M1 M0 tryb 0 0 0 8-bitowy licznik THx taktowany poprzez 5-bitowy dzielnik TLx 0 1 1 16-bitowy licznik THxTLx 1 0 2 8-bitowy licznik TLx z automatycznym wpisywaniem wartości początkowej z THx 1 1 3 T0 dwa niezależne liczniki 8-bit: TL0 sterowany bitami licznika T0 i TH0 sterowany bitami licznika T1; licznik T1 zatrzymany 8