OPROGRAMOWANIE APARATURY POMIAROWEJ - IME
Transkrypt
OPROGRAMOWANIE APARATURY POMIAROWEJ - IME
OPROGRAMOWANIE APARATURY POMIAROWEJ OPROGRAMOWANIE APARATURY µP Zegar czasu rzeczywistego Laboratorium 1. Cel ćwiczenia Podstawowym celem ćwiczenia jest poznanie obsługi portu szeregowego w mikrokontrolerach rodziny MCS-51 oraz realizacji zadań w oparciu o system przerwań tego mikrokontrolera. Wykonanie ćwiczenia laboratoryjnego będzie wymagało znajomości struktury mikroprocesora 8051, jego systemu przerwań, portu szeregowego oraz układów licznikowych. 2. Opis stanowiska laboratoryjnego Stanowisko laboratoryjne składa się z komputera klasy PC oraz makiety dydaktycznej, której schemat ideowy przedstawiono na rys.1. System mikroprocesorowy pracuje z rezonatorem kwarcowym o częstotliwości 12MHz. Częstotliwość ta stanowi podstawę do programowania licznika-zegara współpracującego z wewnętrznym układem UART (asynchronicznym układem transmisji szeregowej) mikrokontrolera. Przedstawiony na rys.1 układ MAX 232 służy do dopasowania sygnałów TTL (linie RxD i TxD mikrokontrolera) do poziomów odpowiednich dla standardu RS-232. Do komunikacji z makietą przez port szeregowy komputera PC wykorzystano program HyperTerminal, który umożliwia z jednej strony przesyłanie programu do makiety (patrz punkt 3), natomiast z drugiej strony pozwala na przesyłanie danych do uruchomionego programu użytkownika oraz wyświetlanie informacji przesyłanych z programu. µP 8051 P0 INSTRUKCJE DANE ROM RAM P1 Rejestr ALE ADRES ADRES P2 OE PSEN MAX232 RS232 WE OE WR TxD RxD RD P3 Rys. 1. Schemat ideowy wykorzystywanego systemu mikroprocesorowego 3. Działanie makiety pod kontrolą programu monitora PAULMON2 jest darmowym programowym monitorem instalowanym w systemach bazujących na mikrokontrolerach rodziny MCS-51. Umieszczenie opisywanego monitora w pamięci ROM mikrokontrolera pozwala na wczytywanie programów do pamięci RAM i wykonywanie ich, co jest znacznie wygodniejsze i szybsze, niż przeprogramowywanie pamięci EPROM. 1 Do komunikacji z programem monitora można wykorzystać dowolny program pozwalający na komunikację za pomocą złącza RS-232, np. HyperTerminal. Po uruchomieniu niniejszego programu na komputerze PC, oraz po wciśnięciu klawisza resetu makiety, monitor wysyła następujący komunikat: Welcome to PAULMON2 v2.1, by Paul Stoffregen See PAULMON2.DOC, PAULMON2.EQU and PAULMON2.HDR for more information. Program Name List Single-Step Memory Editor (VT100) Location 1000 1400 1800 Type External command External command External command a następnie pojawia się znak zachęty PAULMON2 Loc:2000 > _ Wartość 2000 określa adres, na jaki wskazuje wewnętrzny wskaźnik monitora. Jego znajomość jest użyteczna przy wywoływaniu komend operujących na pamięci systemu. Poniżej zostaną przedstawione wybrane komendy monitora. Wielkość liter przy wprowadzaniu poleceń nie ma znaczenia. 3.1. D (ang. Download) – ładowanie programu Polecenie to pozwala na załadowanie do pamięci RAM systemu mikroprocesorowego pliku z programem w formacie Intel Hex. W formacie tym zawarte są informacje o adresie, pod który mają być zapisywane kolejne bajty przesyłanego programu, zatem wewnętrzny wskaźnik pamięci monitora nie jest brany pod uwagę. Załadowanie programu polega na wciśnięciu klawisza [D], co powoduje wyświetlenie następującej informacji PAULMON2 Loc:2000 > Download Begin ascii transfer of Intel hex file, or ESC to abort Teraz należy z menu Transfer programu TyperTerminal wybrać Wyślij plik tekstowy..., a w otwartym oknie wskazać miejsce położenia pliku *.hex. Zatwierdzenie wyboru powoduje rozpoczęcie przesyłania danych. Za każdym razem, kiedy monitor odbierze pojedynczą linię z ładowanego pliku *.hex, na ekranie zostaje wyświetlona kropka. Jeśli z jakiś powodów konieczne jest przerwanie ładowania programu należy wtedy wcisnąć klawisz [Esc]. Po zakończeniu ładowania pliku z programem lub gdy ładowanie zostanie przerwane na życzenie użytkownika, na ekranie pojawia się podsumowanie. ................................................................................ ....................................................... Download completed Summary: 135 lines received 2084 bytes received 2084 bytes written No errors detected Jeśli po wykonaniu polecenia wczytania pliku w informacji podsumowującej monitora raportowane są błędy o braku możliwości zapisu Summary: 246 lines received 3834 bytes received 630 bytes written Errors: 3204 bytes unable to write to oznacza, że plik HEX został odebrany poprawnie, jednak obszar pamięci wyspecyfikowany w kolejnych rekordach zawartych w pliku jest tylko do odczytu. W przypadku odebrania przez monitor danych o niepoprawnym formacie zostanie wyświetlone podsumowanie podobne do poniższego. 2 Summary: 3 lines received 62 bytes received 62 bytes written Errors: 1 bad checksums 2 unexpected begin of line 17 unexpected hex digits 2 unexpected non hex digits 3.2. J (ang. Jump) – skocz pod określony adres w pamięci Polecenie to pozwala na przejście do wykonywania wczytanego wcześniej programu użytkownika. Po wciśnięciu klawisza [J] pojawi się napis PAULMON2 Loc:2000 > Jump to memory location Jump to memory location (2000), or ESC to quit: _ W tym momencie należy wprowadzić wartość adresu, od którego został umieszczony program. Po wpisaniu ostatniego (czwartego) znaku na ekranie pojawi się napis running program: _ informując o rozpoczęciu wykonywania programu użytkownika. Przed przejściem pod wyspecyfikowany adres program monitora odkłada na stosie wartość 0000H, zatem programy, które kończą się instrukcją RET powodują ponowne wywołanie programu monitora. Jeśli program działa w nieskończonej pętli, to jedyną możliwością powrotu do programu monitora jest reset mikrokontrolera. 4. Wskazówki do ćwiczenia 4.1. Konfiguracja przestrzeni adresowej monitor EPROM program RAM: dane RAM: obszar wspólny dla programu i danych: 0000h÷0FFFh, 2000h÷F7FFh, 0000h÷F7FFh, 2000h÷F7FFh. 5. Literatura [1] [2] [3] [4] [5] Chwaleba A., Poniński M., Siedlecki A.: „Metrologia elektryczna”. WNT, Warszawa 1994. Rydzewski A.: „Mikrokomputery jednoukładowe”. WNT, Warszawa 1992. Starecki T.: „Mikrokontrolery jednoukładowe rodziny 51”. NOZOMI, Warszawa 1996. Starecki T.: „Mikrokontrolery 8051 w praktyce”. BTC, Warszawa 2003. Majewski, Kardach K.: „Mikrokontrolery jednoukładowe 8051. Programowanie w języku C w przykładach”. Oficyna Wydawnicza Politechniki Wrocławskiej, Wrocław 1995. [6] Kernighan W., Ritchie D.M.: „ANSI C”. WNT, Warszawa 1992. [7] Beach M.: „C51 Primer”, Hitex (UK) Ltd. www.esacademy.com/automation/docs/c51primer/c51prim.htm 3