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