Instrukcja - IME
Transkrypt
Instrukcja - IME
PODSTAWY TECHNIKI MIKROPROCESOROWEJ Laboratorium Elektrotechnika, studia stacjonarne pierwszego stopnia Temat: Obsługa portu szeregowego w mikrokontrolerach rodziny MCS-51 imei Instytut Metrologii, Elektroniki i Informatyki Ćwiczenie 8 Opracowanie instrukcji: dr inż. Mirosław Kozioł Cel ćwiczenia Celem ćwiczenia jest zapoznanie studentów z obsługą portu szeregowego w mikrokontrolerach rodziny MCS-51 zarówno metodą pollingu, jak również na przerwaniach. Przygotowanie do ćwiczenia Przed przystąpieniem do ćwiczenia należy przygotować odpowiedzi na poniższe pytania. 1. Który rejestr odpowiada za ustawienie trybu pracy portu szeregowego w mikrokontrolerach rodziny MCS-51 i jakie jest znaczenie jego poszczególnych bitów? 2. Który tryb pracy portu szeregowego umożliwia ustawienie 8-bitowej ramki danych i prędkości transmisji 9600, 19200 i 57600 bps? 3. Które z liczników mikrokontrolerów rodziny MCS-51 mogą określać prędkość transmisji portu szeregowego w trybie 1 i 3? 4. W jakim trybie powinien pracować licznik T1, jeśli określa on prędkość transmisji portu szeregowego mikrokontrolera rodziny MCS-51 pracującego w trybie 1 lub 3? 5. Który rejestr odpowiada za ustawienie trybu pracy licznika T1 jakie jest znaczenie jego bitów? 6. Podaj zależność pozwalającą na obliczenie wartości zapisywanej do rejestrów TH1 i TL1 w celu ustawienia odpowiedniej prędkości transmisji portu szeregowego mikrokontrolera, gdy ustalana jest ona za pomocą licznika T1. 7. Które z bitów rejestru T2CON należy ustawić w stan wysoki, aby prędkość transmisji portu szeregowego pracującego w trybie 1 lub 3 była ustalana za pomocą licznika T2? 8. Podaj zależność pozwalającą na obliczenie wartości zapisywanej do rejestrów RCAP2L oraz RCAP2H w celu ustawienia odpowiedniej prędkości transmisji portu szeregowego mikrokontrolera, gdy ustalana jest ona za pomocą licznika T2. 9. Które bity odpowiadają za sterowanie pracą (m.in. strat liczników do zliczania) jednostek czasowo-licznikowych T1 i T2? 10. Jakie jest funkcjonalne znaczenie bitów RI oraz TI rejestru SCON i w jakiej sytuacji bity te są ustawiane w stan jedynki logicznej? 11. Który rejestr odpowiada za uaktywnienie przerwań w mikrokontrolerze i jakie jest znaczenie jego bitów? 12. Który rejestr odpowiada za uaktywnienie przerwań w mikrokontrolerach rodziny MCS-51 i jakie jest znaczenie jego bitów? 13. Który rejestr odpowiada za ustalanie priorytetów przerwań w mikrokontrolerach rodziny MCS-51 i jakie jest znaczenie jego bitów? 14. W jaki sposób w języku C używając kompilatora SDCC dla mikrokontrolerów rodziny MCS-51 oznacza się funkcje, które mają obsługiwać przerwania od określonych źródeł? 38 Program ćwiczenia Wykorzystując makietę dydaktyczną IME-LabTM pracującą pod kontrolą programu monitora PAULMON2 napisz program w języku C implementując kolejno przedstawione poniżej zadania. Podczas pisania programów zastosuj zasady programowania strukturalnego. Zadanie 1 a) Napisz program inicjalizujący port szeregowy mikrokontrolera przy zastosowaniu jednostki czasowo-licznikowej T1 dla następujących parametrów transmisji: prędkość 19200 bitów na sekundę, 8-bitową ramka danych, 1 bit startu i 1 bit stopu oraz zaimplementuj funkcje pozwalające na odbiór i nadawania pojedynczych bajtów informacji. Funkcja odbierająca powinna zwracać odebrany znak, a w przypadku funkcji wysyłającej znak do wysłania powinien być wprowadzany jako jej parametr wejściowy. b) Sprawdź poprawność działania portu szeregowego implementując część główną programu w postaci nieskończonej pętli, w ramach której odbierany jest pojedynczy bajt informacji z portu szeregowego mikrokontrolera, następnie jest on inkrementowany i odsyłany z powrotem przez port szeregowy. c) Sprawdź poprawność działania programu uruchamiając go na makiecie IME-LabTM. W przypadku nieprawidłowego działania programu zlokalizuj i usuń błędy, które takie działanie powodują. Poprawnie działający program zaprezentuj prowadzącemu zajęcia. Zadanie 2 a) Zmodyfikuj program tak, aby odbiór i nadawanie pojedynczych bajtów informacji było realizowane z wykorzystaniem przerwań generowanych przez port szeregowy. b) Wykonaj działania wymienione w punkcie c) zadania 1 w stosunku do bieżącej wersji programu. Zadanie 3 a) Zmodyfikuj program z zadania 2 tak, aby odbierane bajty z portu szeregowane były wyświetlane na wyświetlaczu LCD makiety IME-LabTM. b) Do tworzonego programu dodaj kod pozwalający na obsługę przycisku podłączonego do linii 2 portu P1. Naciśnięcie przycisku powinno spowodować wysłanie bajta informacji w postaci kolejnych kodów ASCII rozpoczynając od znaku !. c) Wykonaj działania wymienione w punkcie c) zadania 1 w stosunku do bieżącej wersji programu. Sprawozdanie z ćwiczenia Sprawozdanie z ćwiczenia powinno być dostarczone prowadzącemu zajęcia w określonej przez niego formie (pisemnej lub elektronicznej) i zawierać: • algorytm działania i opatrzony komentarzami kod źródłowy ostatniej wersji zrealizowanego programu, • opis słowny wyjaśniający działania podjęte podczas realizacji kolejnych zadań. Informacje dotyczące komentowania kodu programu oraz tworzenia schematów blokowych algorytmów pracy programów znajdują się w instrukcji do ćwiczenia 3. 39 Literatura [1] Instrukcja do makiety dydaktycznej IME-LabTM. [2] Wykłady do przedmiotu. [3] Bogusz J.: „Programowanie mikrokontrolerów 8051 w języku C w praktyce”. Wydawnictwo BTC, Warszawa 2005. [4] Kernighan W., Ritchie D.M.: „ANSI C”. WNT, Warszawa 1992. [5] Rydzewski A.: „Mikrokomputery jednoukładowe rodziny MCS-51”. WNT, Warszawa 1992. [6] Starecki T.: „Mikrokontrolery jednoukładowe rodziny 51”. Wydawnictwo NOZOMI, Warszawa 1996. [7] Starecki T.: „Mikrokontrolery 8051 w praktyce”. Wydawnictwo BTC, Warszawa 2003. [8] Majewski J.: „Programowanie mikrokontrolerów 8051 w języku C, pierwsze kroki”. Wydawnictwo BTC, Warszawa 2005. 40