ćw 5, SIMR PW, Mechatronika, laboratorium

[ Pobierz całość w formacie PDF ]
//-->LABORATORIUM MECHATRONIKI, DIAGNOSTYKII BEZPIECZEŃSTWA TECHNICZNEGOINSTYTUT POJAZDÓWWYDZIAŁ SAMOCHODÓW I MASZYN ROBOCZYCHPOLITECHNIKA WARSZAWSKAul. Narbutta 84, 02-524 WarszawaTel. (22) 234-8117 do 8119e-mail :sekretariat@mechatronika.net.plLaboratorium - Wprowadzenie do MechatronikiĆwiczenie nr 5Opracował:na podstawie podręcznika „Podstawy programowaniamikrokontrolera 8051” Mikom 2006mgr inż. Jakub LorenckiTemat:Programowanie DSMProgramowanie mikrokontrolera 8051W lekcjach zawartych w tej części instrukcji omawiane są poszczególne zagadnienia związane zprogramowaniem mikrokontrolera 8051. Lekcje zostały ułożone według narastającego stopniatrudności omawianych zagadnień.Lekcje zawierają wiele przykładowych programów, które są przeznaczone do uruchamiania naDydaktycznym Systemie Mikroprocesorowym DSM-51, Dla ułatwienia zrozumienia funkcjonowaniaposzczególnych programów większość przykładów z lekcji 1 oraz wybrane przykłady z innych lekcjisą zilustrowane schematami ich algorytmów.Lekcje 1 i 2 są zdecydowanie najprostsze. Zapoznając się z ich treścią należy równocześnie dążyć donabrania wprawy w posługiwaniu się systemem DSM-51. Dlatego przykłady zawarte w tych lekcjachnależy, w miarę możliwości, uruchomić w systemie DSM-51 zarówno przesyłając je z komputera, jaki wpisując z klawiatury systemu.W kodzie asemblera DSM51ASS.EXE zostały zdefiniowane symbole określające adresypodprogramów i adresy urządzeń wejść/wyjść systemu DSM-51. Pozwoliło to na stosowanie tychsymboli w treści programów przykładowych, bez konieczności definiowania ich wartości dyrektywąEQU.Do uruchamiania programu w systemie DSM-51 w trybie pracy krokowej wykorzystano zewnętrzneprzerwanie INT0. Obsługa tego przerwania umieszczona jest pod adresem 03H. Aby program mógłbyć uruchomiony pod kontrolą monitora zawartego w programie DSM51.EXE, jego kod nie możezajmować trzech kolejnych komórek pamięci programu od adresu 03H do 05H.Z tego powodu wszystkie programy przykładowe rozpoczynają się od sekwencji:LJMP STARTORG 100HSTART:Sekwencja ta powoduje, że w pierwszych trzech bajtach (bajty 00H do 02H) umieszczany jest rozkazskoku do adresu 100H, od którego rozpoczyna się właściwy program. W ten sposób adresywykorzystywane przez obsługę pracy krokowej są omijane.Początek programu wpisywanego z klawiatury systemu DSM-51 (praca bez komputera), jestautomatycznie umieszczany pod adresem 100H. Dlatego przy uruchamianiu przykładowychprogramów z wykorzystaniem wewnętrznego edytora i asemblera systemu DSM-51należy tenfragment programu pominąć.Pamięć EPROM systemu DSM-51 zawiera zestaw prostych podprogramów ułatwiającychpoczątkującemu użytkownikowi posługiwanie się systemem. Przykłady w lekcjach wykorzystująniektóre z nich. Opis podprogramów znajduje się w dodatku C w podręczniku.Szczegółowy opis ograniczeń nakładanych na program uruchamiany w systemie DSM-51 w trybiepracy krokowej lub pod kontrolą monitora programu DSM51.EXE zawarty jest w dodatku G wpodręczniku.Kody źródłowe wszystkich programów przykładowych znajdują się na załączonym dysku CD.Lekcja 1: Linie wejść/wyjść mikrokontroleraLekcja 1 pozwala użytkownikowi zapoznać się z możliwościami sterowania urządzeniamipodłączonymi bezpośrednio do portów mikrokontrolera. Układ 8051 zawiera cztery 8-bitowe portyP0, P1, P2, P3. Wszystkie te porty mogą być adresowane jako całe bajty lub jako poszczególne ichbity. Do dyspozycji programisty pozostają więc 32 linie wejść/wyjść. Ma to jednak miejsce tylkowówczas, gdy program jest wpisany do wnętrza mikrokontrolera. Jeżeli program jest umieszczony wzewnętrznej pamięci EPROM (tak jak w systemie DSM-51) lub jeżeli z innych powodów zostałazorganizowana zewnętrzna szyna mikrokontrolera, to do bezpośredniego sterowania pozostaje tylkoport P1 i 6 linii portu P3.W strukturze wewnętrznej mikrokontrolera porty umieszczone są w obszarze rejestrów specjalnych(SFR - Special Function Registers). Obszar rejestrów specjalnych jest omówiony w lekcji 3. W każdyrejestr można wpisać 1 bajt informacji, czyli 8 bitów. Każdy z bitów jest w stanie 0 lub 1. Wprzypadku portów każdemu bitowi wpisanemu do rejestru portu odpowiada stan jednej linii. Każdyrejestr posiada swój adres, który służy do jego identyfikacji. Rejestry specjalne zajmują wewnętrznyobszar adresów od 128 do 255, czyli od 80H do FFH w zapisie szesnastkowym (zapis ten jestprzedstawiony w lekcji 2).Port mikrokontrolera 8051 ma 8 linii, co odpowiada 8 końcówkom mikroprocesora, do których możnapodłączyć urządzenia zewnętrzne. Sterowanie urządzeń zewnętrznych odbywa się poprzez wpisanieodpowiednio na poszczególne bity stanu niskiego - 0 lub wysokiego - 1 (po sygnale RESET wszystkiebity w portach są w stanie 1). Wpisany stan utrzymuje się, aż do następnej operacji zapisu.Najprostsze urządzenie zewnętrzne, które może być podłączone do portu mikrokontrolera, to diodaświecąca (ang. LED - Light Emitting Diode). W systemie DSM-51 do linii 7 w porcie P1 podłączonajest dioda świecąca TEST, która służy do zobrazowania działania najprostszych programów. Jeśli liniajest w stanie 0, to dioda świeci się, a gdy jest w stanie 1, to nie świeci się (po sygnale RESET diodanie świeci się).Pisanie programu polega na tworzeniu kodu źródłowego programu. Każda linia kodu źródłowegomusi mieć format zgodny z opisem zamieszczonym w poprzednim rozdziale. Dla zachowaniaczytelności programu należy unikać wpisywania rozkazów mikrokontrolera w linii zawierającejetykietę,Kod źródłowy pierwszego przykładu wygląda tak:Przykład ten jest najprostszym programem zapalającym diodę TEST. Ten sam przykład wpisywany zklawiatury systemu DSM-51 będzie wyglądał tak:CLR P1.7L00:LJMP L00. ENDPozornie kod źródłowy bardzo różni się od kodu wpisywanego na komputerze. W rzeczywistości jestto ten sam program a różnice wynikające z ograniczeń wewnętrznego asemblera systemu DSM-51 niemają istotnego znaczenia dla działania programu. Najistotniejsze różnice pojawiające się przytworzeniu kodu źródłowego w wewnętrznym edytorze DSM-51 to:•••brak możliwości wpisania komentarzyautomatyczne umieszczanie programu od adresu 100Hmożliwość użycia jedynie etykiet o nazwach: L00 ... L3F.Przed uruchomieniem programu należy go poddać procesowi asemblacji, czyli tłumaczenia na postaćbinarną. W tym celu należy uruchomić na komputerze program DSM51ASS, podając jako parametrnazwę pliku, w którym jest przechowywany kod źródłowy. W wyniku asemblacji powstaje m.in.listing programu. Listing przykładu l wygląda następująco:Jak widać listing programu to kod źródłowy uzupełniany o pewne informacje tworzone w trakcieasemblacji. Kod źródłowy przykładu l został uzupełniony o:•••numerację liniiadresy, pod którymi w pamięci programu umieszczone są poszczególne rozkazykody rozkazów zapisane szesnastkowo.Listing zawiera najpełniejszą informację o napisanym programie. Dlatego kolejne przykłady sąprezentowane w tej formie.Oprócz listingu, w procesie asemblacji tworzony jest również kod wynikowy w formacie Intel HEX.Oto postać tego pliku dla przykładu 1::03000000020100FA:050l0000C297020l029C:0000000lFFKod wynikowy w formacie Intel HEX jest postacią programu wykorzystywaną przy przesyłaniuprogramu do systemu DSM-51. Może on być również wykorzystany do programowania pamięciEPROM w specjalnych programatorach. W kodzie tym zawarty jest jedynie adres w pamięciprogramu i bajty, które należy tam umieścić.Przy uruchamianiu programów wpisywanych z klawiatury systemu DSM-51 proces asemblacji iumieszczenia kodu wynikowego w odpowiednim miejscu pamięci przebiega automatycznie.Działanie programu z przykładu 1 jest zgodne z algorytmem przedstawionym na schemacie.Zapaleniu diody TEST odpowiada zerowanie linii 7 w porcie P1.Zerowanie pojedynczej linii można zrealizować poprzez rozkaz CLR (clear - zeruj). Za rozkazemnależy podać adres bitu, który ma być zerowany. W tym przypadku chodzi o bit 7 w porcie P1,oznaczany symbolem P1.7. Zawartość portu P1 po sygnale Reset wynosi 11111111B. Wykonanierozkazu: [ Pobierz całość w formacie PDF ]

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • ewunia87.pev.pl