Liczniki, rejestry lab. 09 Mikrokontrolery 8051 cz. 1

Podobne dokumenty
Liczniki, rejestry lab. 08 Mikrokontrolery WSTĘP

Mikrokontrolery 8 bit - wprowadzenie

START: ; start programu od adresu 0100H ; zerowanie komórek od 01H do 07FH ( 1 dec dec)

Programowanie mikrokontrolera 8051

Lista rozkazów mikrokontrolera 8051

Technika Mikroprocesorowa Laboratorium 5 Obsługa klawiatury

Laboratorium 1: Wprowadzenie do środowiska programowego. oraz podstawowe operacje na rejestrach i komórkach pamięci

Lista rozkazów mikrokontrolera 8051 część pierwsza: instrukcje przesyłania danych, arytmetyczne i logiczne

Liczniki, rejestry lab. 07 Układy sekwencyjne cz. 1

Pracownia elektryczno-elektroniczna klasa IV

petla:... ; etykieta określa adres w pamięci kodu (docelowe miejsce skoku) DJNZ R7, petla

Architektura komputerów. Asembler procesorów rodziny x86

Architektura systemów komputerowych Laboratorium 13 Symulator SMS32 Operacje na bitach

Spis treœci. Co to jest mikrokontroler? Kody i liczby stosowane w systemach komputerowych. Podstawowe elementy logiczne

Programowanie mikrokontrolerów (CISC)

Ćwiczenie 2. Siedmiosegmentowy wyświetlacz LED

Programowanie w językach asemblera i C

imei Instytut Metrologii, Elektroniki i Informatyki

DSM51 operacje przesylania danych i operacje arytmetyczne strona 1

CYKL ROZKAZOWY = 1 lub 2(4) cykle maszynowe

Asembler - język maszynowy procesora

Przedmiot : Programowanie w języku wewnętrznym. Ćwiczenie nr 4

2. Architektura mikrokontrolerów PIC16F8x... 13

imei Instytut Metrologii, Elektroniki i Informatyki

MIKROKONTROLERY I MIKROPROCESORY

Programowanie i techniki algorytmiczne

Ćwiczenie nr 3. Wyświetlanie i wczytywanie danych

Lista instrukcji procesora 8051 część 2 Skoki i wywołania podprogramów, operacje na stosie, operacje bitowe

CPU ROM, RAM. Rejestry procesora. We/Wy. Cezary Bolek Uniwersytet Łódzki Wydział Zarządzania Katedra Informatyki

Ćwiczenie MMLogic 002 Układy sekwencyjne cz. 2

Struktura programu w asemblerze mikrokontrolera 8051

Technika Cyfrowa i Mikroprocesorowa

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

Architektura systemów komputerowych Laboratorium 14 Symulator SMS32 Implementacja algorytmów

architektura komputerów w 1 1

Instytut Teleinformatyki

MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW

Architektura komputerów

Przerzutniki RS i JK-MS lab. 04 Układy sekwencyjne cz. 1

Instytut Teleinformatyki

Organizacja pamięci VRAM monitora znakowego. 1. Tryb pracy automatycznej

przedmiot kilka razy, wystarczy kliknąć przycisk Wyczaruj ostatni,

1. Cel ćwiczenia. 2. Podłączenia urządzeń zewnętrznych w sterowniku VersaMax Micro

Przykładowe pytania DSP 1

Ćwiczenie 3. Konwersja liczb binarnych

Sprzęt i architektura komputerów

Ćwiczenie Digital Works 003 Układy sekwencyjne i kombinacyjne

Ćwiczenie 01 - Strona nr 1 ĆWICZENIE 01

Wstęp do informatyki- wykład 2

Bezpieczeństwo informacji oparte o kryptografię kwantową

12. Wprowadzenie Sygnały techniki cyfrowej Systemy liczbowe. Matematyka: Elektronika:

Algorytm mnożenia sekwencyjnego (wariant 1)

Schematy blokowe I. 1. Dostępne bloki: 2. Prosty program drukujący tekst.

ARCHITEKTURA PROCESORA,

Logiczny model komputera i działanie procesora. Część 1.

TMiK Podstawy Techniki Mikroprocesorowej. Lidia Łukasiak

Cwiczenie nr 1 Pierwszy program w języku C na mikrokontroler AVR

Temat 20. Techniki algorytmiczne

Instytut Teleinformatyki

Mikrokontroler ATmega32. Język symboliczny

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka

Struktura i działanie jednostki centralnej

OPTIMA PC v Program konfiguracyjny dla cyfrowych paneli domofonowy serii OPTIMA ELFON. Instrukcja obsługi. Rev 1

Wstęp do informatyki. Maszyna RAM. Schemat logiczny komputera. Maszyna RAM. RAM: szczegóły. Realizacja algorytmu przez komputer

Pośredniczy we współpracy pomiędzy procesorem a urządzeniem we/wy. W szczególności do jego zadań należy:

Instrukcja do ćwiczenia P4 Analiza semantyczna i generowanie kodu Język: Ada

Notatka Aplikacyjna NA 03006PL Maj 2016

CoDeSys 3 programowanie w języku drabinkowym LD

Politechnika Warszawska

Architektura komputera. Cezary Bolek. Uniwersytet Łódzki. Wydział Zarządzania. Katedra Informatyki. System komputerowy

Instytut Teleinformatyki

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

Tworzenie nowego projektu w asemblerze dla mikroprocesora z rodziny 8051

Programowanie niskopoziomowe

Projektowanie układów VLSI-ASIC techniką od ogółu do szczegółu (top-down) przy użyciu pakietu CADENCE

Wydział Mechaniczny. Instrukcja do zajęć laboratoryjnych. Numer ćwiczenia: 4. Laboratorium z przedmiotu: Technika cyfrowa i mikroprocesorowa

Adresowanie obiektów. Adresowanie bitów. Adresowanie bajtów i słów. Adresowanie bajtów i słów. Adresowanie timerów i liczników. Adresowanie timerów

Sprzęt i architektura komputerów

Mikrooperacje. Mikrooperacje arytmetyczne

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

1.1. Pozycyjne systemy liczbowe

Technika mikroprocesorowa I Wykład 2

Wstęp do informatyki. System komputerowy. Magistrala systemowa. Architektura komputera. Cezary Bolek

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

Instrukcja do ćwiczeń nr 4 typy i rodzaje zmiennych w języku C dla AVR, oraz ich deklarowanie, oraz podstawowe operatory

Ćwiczenie Technika Mikroprocesorowa komputery 001 Układy sekwencyjne cz. 1

Programowanie w języku Python. Grażyna Koba

Magistrala systemowa (System Bus)

Architektura typu Single-Cycle

etrader Pekao Podręcznik użytkownika Strumieniowanie Excel

1. ISE WebPack i VHDL Xilinx ISE Design Suite 10.1 VHDL Tworzenie projektu Project Navigator Xilinx ISE Design Suite 10.1 File

MIKROPROCESORY architektura i programowanie

Ćwiczenie SIB-C2. System automatyki budynkowej standardu KNX - funkcje podstawowe wej/wyj, funkcje czasowe, załączanie/wyłączanie, topologia sieci

Kurs SIMATIC S7-300/400 i TIA Portal - Podstawowy. Spis treści. Dzień 1. I System SIEMENS SIMATIC S7 - wprowadzenie (wersja 1503)

Rejestry procesora. Nazwa ilość bitów. AX 16 (accumulator) rejestr akumulatora. BX 16 (base) rejestr bazowy. CX 16 (count) rejestr licznika

1 Podstawy c++ w pigułce.

PRYWATNA WYŻSZA SZKOŁA BUSINESSU, ADMINISTRACJI I TECHNIK KOMPUTEROWYCH S Y L A B U S

Opis układów wykorzystanych w aplikacji

Architektura Systemów Komputerowych, Wydział Informatyki, ZUT

Transkrypt:

Liczniki, rejestry lab. 09 Mikrokontrolery 8051 cz. 1 PODSTAWY TECHNIKI CYFROWEJ I MIKROPROCESOROWEJ EIP KATEDRA ENERGOELEKTRONIKI I AUTOMATYKI SYSTEMÓW PRZETWARZANIA ENERGII WWW.KEIASPE.AGH.EDU.PL AKADEMIA GÓRNICZO-HUTNICZA WWW.AGH.EDU.PL Temat: Narzędzia: Mikrokontrolery rodzina 8051 cz. 1 Programowanie obsługa danych Pakiet MCU 8051 IDE Cele ćwiczenia Poznanie zasad organizacji programów w języku Assembler Zdobycie umiejętności programowania mikrokontrolerów 8-bitowych proste aplikacje obsługi danych i operacji arytmetycznych Symulacja działania aplikacji mikrokontrolerów 8-bitowych Poznanie najważniejszych rozkazów i dyrektyw języka Assembler Aplikacja 002 W pakiecie MCU 8051 IDE utworzyć nowy plik i zapisać go w katalogu EiP (w katalogu Student). Do pliku skopiować i odpowiednio uporządkować zapis kodu programu 002. Prog002 prosty program dodawanie dwóch liczb: START: END MOV A,#10 ; pierwsza dana liczba do akumulatora MOV 10H,#02H ; druga dana liczba do komórki 10H MOV R0, #30H ; zadanie parametru początkowego adresu wyników ADD A,10H ; dodawanie dana 1 i dana2 MOV @R0,A ; zapamiętanie wyniku LJMP START Wykonać kompilację pliku i uruchomić pracę krokową, analizując SAMODZIELNIE w grupie zajęciowej działanie poszczególnych komend i całego algorytmu. Po analizie i obserwacji działania programu aplikacji 002, w kodzie programu dokonać kolejno modyfikacji według zapisanych dalej wskazówek: - modyfikacja 1 po zakończeniu pierwszego dodawania i umieszczeniu wyniku w komórce wskazanej przez rejestr R0, wstawić nową etykietę DODAJ2: w ramach tej etykiety, zwiększyć liczby dodawane (dane z początku) o 1 zastosować rozkaz INC w odniesieniu do komórek pamięci (rejestrów) w których są dane. --- >>> Zobaczyć znaczenie i sposób użycia rozkazu INC w pliku ze skróconym opisem komend - rozkazy_ksero.pdf dostępnym na stronie WWW prowadzącego. Dodać te liczby i wynik umieść tam gdzie pokazuje zwiększona o 1 zawartość rejestru R0 na końcu umieścić rozkaz skoku do etykiety START: plik zapisać pod osobną nazwą np.-002-1 KATEDRA ENERGOELEKTRONIKI I AUTOMATYKI SYSTEMÓW PRZETWARZANIA ENERGII 1/5

F. Logiczne Dzielenie Mnożenie Dodawanie Wyświetl dane Podstawy Techniki Cyfrowej i Mikroprocesorowej - modyfikacja 2 wprowadzić rozwiązanie, aby algorytm powtarzał dodawanie zwiększonych o 1 liczb w nieskończoność (LJMP do dodatkowej etykiety np. REPLAY gdzieś pośrodku kodu zastanowić się w którym miejscu). Zmian tych dokonać w utworzonym poprzednio pliku 002-1. - modyfikacja 3 w pliku poprzednim wprowadzić pod koniec programu komendę DJNZ (przed LJMP) tak, aby program powtarzał dodawanie z inkrementacją określoną liczbę razy. Zastanowić się nad zasadą użycia komendy DJNZ w programie. Podanie parametru liczby powtórzeń w jednym z rejestrów Rr (zobaczyć zasadę użycia komendy DJNZ i rejestrów Rr w pliku ze skróconym opisem komend - rozkazy_ksero.pdf). Skorzystać z wyjaśnień prowadzącego. Aplikacja 003 W pakiecie MCU 8051 IDE utworzyć nowy plik i zapisać go w katalogu EiP (w katalogu Student). Do pliku skopiować i odpowiednio uporządkować zapis kodu programu 003. Aplikacja dla Prog 003 ma realizować następujące funkcje i działania (wcześniej odpowiednie wyjaśnienia prowadzącego): wpisanie dwóch danych 4 bitowych (młodsza i starsza połowa bajtu zadanego na porcie) z portu P0 do pamięci RAM port P3 (ostatni) jest portem sterująco-monitorującym programu zależnie od bitów Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 zależnie od wyboru bitu w P3 aplikacja wykona działanie: o wyświetlenie dwóch liczb danych na porcie P1 o dodawanie dwóch liczb 4 bitowych o mnożenie dwóch liczb 4 bitowych o dzielenie dwóch liczb 4 bitowych o operację AND i OR na dwóch liczbach 4 bitowych zależnie od wybranego działania, wynik pokaże się na portach P1 i P2 zawsze na koniec program powraca do początku, czekając na wpisanie danych na porcie P0 >>> WAŻNE INFORMACJE DODATKOWE >>> W programie wykorzystać kilka nowych rozkazów, dyrektyw i procedur programowych. Dyrektywy: EQU trwałe przypisanie wartości/wyrażenia symbolowi. Pozwala na przykład zastąpić adres komórki pamięci lub danego rejestru nazwą-symbolem, na potrzeby danego programu i potem KATEDRA ENERGOELEKTRONIKI I AUTOMATYKI SYSTEMÓW PRZETWARZANIA ENERGII 2/5

w programie używa się już tej nazwy zamiast adresu. Umożliwia też zastąpienie dowolnego wyrażenia, symbolem/nazwą, przyjazną dla programisty. Przykłady: Rozkazy: ANL funkcja AND na słowach 8-bitowych często wykorzystywana jako tzw. filtr bitowy SWAP zamiana miejscami połówek bajtu w rejestrze 8 bitowym JZ skok warunkowy, jeżeli akumulator A =0 (ACC-druga nazwa akumulatora), to skok do etykiety, jeżeli nie wykonuje kolejny rozkaz JB skok warunkowy od bitu gdy dany byt ustawiony na 1 skok do etykiety, jeżeli nie wykonuje kolejny rozkaz MUL AB, DIV AB mnożenie i dzielenie liczb zawsze na rejestrach A (akumulator) i B (akumulator pomocniczy) --- UWAGA: W mnożeniu wynik zawsze dwubajtowy młodszy baj wyniku w A, starszy w B (informacje odnośnie działania wszystkich tych rozkazów patrz również: info w pliku ze skróconym opisem komend - rozkazy_ksero.pdf dostępny na str. WWW prowadzącego) UWAGA: Do obsługi portów P0 (zadającego dane 4 bitowe) oraz P3 (sterującego), wykorzystać narzędzie portów wirtualnych, dostępne w symulatorze w opcji: Virtual HV/Simple Keypad. Można takich klawiatur otworzyć kilka. W okienku klawiatury wybrać opcję Windows always on top oraz odznaczyć opcję Radio Buttons. Patrz rysunek 1: Rysunek 1 Porty wirtualne w pakiecie MCU 8051 IDE. Zwrócić uwagę, że przy uruchomieniu programu w symulatorze, aby na porcie były same zera, należy zewrzeć wszystkie. Rozwarcie przycisku będzie wystawiać jedynkę na danym bicie. W oknie w ustawieniach bitów wybrać odpowiednie numery portów (0 i 3) oraz kolejne bity od prawej strony najmłodsze i potem ku coraz starszym. KATEDRA ENERGOELEKTRONIKI I AUTOMATYKI SYSTEMÓW PRZETWARZANIA ENERGII 3/5

Aby klawiatury były uwzględniane przez symulator po uruchomieniu programu, przycisnąć przycisk OFF zmieni się na ON. --- PROSZĘ SAMODZIELNIE OPANOWAĆ OBSŁUGĘ PORTÓW I KLAWIATUR SIMPLE. --- NAJLEPIEJ TESTUJĄC POSZCZEGÓLNE USTAWIENIA I OBSERWUJĄC REAKCJĘ UKŁADU--- Proponowana ogólna struktura programu: (wyjaśnienia prowadzącego) ;deklaracje dyrektyw i warunków początkowych jeżeli są DANA1 EQU 31H ;zdefiniowanie komorek na dane wejsciowe DANA2 EQU 32H GORA EQU 11110000B DOL EQU 00001111B DANE: MOV 30H,P0 MOV A,30H ANL A,#GORA ;MASKOWANIE AND logiczny SWAP A ;zamiana połówek bajtu w rejestrze między sobą MOV DANA1,A ;dana 4 bitowa ma być w młodszej połówce bajtu MOV A,30H ANL A,#DOL MOV DANA2,A START: MOV A,P3 ;sprawdzenie protu P3 sterującego jakie działanie na danych JZ DANE ; jeżeli nie ma działania pętla do DANE wpis danych DATA_DISP: JB ACC.1, DODAJ ; spr. Bitu 1 w akumulatorze z portu P3 sterującego JB ACC.2, MUL ; spr. Bitu 2 w akumulatorze z portu P3 sterującego MOV P1,DANA1 MOV P2,DANA2 DODAJ: JB ACC.0, DATA_DISP JB ACC.2, MUL MOV A,DANA1 ADD A,DANA2 MOV P1,A ;wyświetlenie wyniku na porcie P1 MUL: JB ACC.0, DATA_DISP JB ACC.1, DODAJ MOV A,DANA1 MOV B,DANA2 ; wykorzystanie akumulatora pomocniczego B MUL AB ; WAZNE nie ma przecinka miedzy A i B!!! XCH A,B MOV P1,A ; młodszy bajt wyniku na port P1 MOV P2,B ; starszy bajt wyniku na port P2 END - Modyfikacja 1 --- Po mnożeniu dodać etykietę DZIEL: i bazując na konstrukcji algorytmu mnożenia, zapisać algorytm dzielenia rozkaz DIV AB --- (UWAGA: po operacji dzielenia w akumulatorze A jest wynik dzielenia, zaś w akumulatorze pomocniczym B reszta z dzielenia!!!) KATEDRA ENERGOELEKTRONIKI I AUTOMATYKI SYSTEMÓW PRZETWARZANIA ENERGII 4/5

- Modyfikacja 2 --- według poznanego kanonu i wzoru realizacji różnych działań na danych w programie, dopisać procedurę przeprowadzenia operacji logicznych AND i OR na dwóch danych 4 bitowych. Wynik operacji AND pokazać na porcie P1, wynik operacji OR na porcie P2. PODSUMOWANIE Po zajęciach Student powinien: znać podstawowe rozkazy i dyrektywy jeżyka Assembler mikrokontrolerów 8-birtowych umieć zbudować strukturę aplikacji dla mikrokontrolera w języku Assembler etykiety, skoki wykorzystywać rozkazy skoków warunkowych i obsługiwać porty wejścia/wyjścia danych bajtowych w mikrokontrolerach 8-bitowych posługiwać się podstawowymi trybami adresowania pamięci danych w Assemberze mikrokontrolerów rodziny 8051 KATEDRA ENERGOELEKTRONIKI I AUTOMATYKI SYSTEMÓW PRZETWARZANIA ENERGII 5/5