Systemy wbudowane. Uniwersytet Łódzki Wydział Fizyki i Informatyki Stosowanej. Witold Kozłowski



Podobne dokumenty
Wstęp Podstawy programowania QBASIC Budowa mikroprocesora Zestaw uruchomieniowy Porty wejścia/wyjścia...

Programowanie mikrokontrolerów - laboratorium

Systemy wbudowane. Uniwersytet Łódzki Wydział Fizyki i Informatyki Stosowanej. Witold Kozłowski

start Program mikroprocesorowego miernika mocy generowanej $crystal = deklaracja

Programowanie mikrokontrolerów - laboratorium

Listing_ $crystal = deklaracja

Systemy wbudowane. Uniwersytet Łódzki Wydział Fizyki i Informatyki Stosowanej. Witold Kozłowski

Systemy wbudowane. Uniwersytet Łódzki Wydział Fizyki i Informatyki Stosowanej. Witold Kozłowski

BASCOM BASIC AVR. Wersja

Synteza częstotliwości na układzie PLL LM7001

Podstawy programowania w BASCOM BASIC AVR

Mikrokontrolery AVR Wprowadzenie

Poradnik programowania procesorów AVR na przykładzie ATMEGA8

Systemy wbudowane. Uniwersytet Łódzki Wydział Fizyki i Informatyki Stosowanej. Witold Kozłowski

2. Architektura mikrokontrolerów PIC16F8x... 13

Podstawowe urządzenia peryferyjne mikrokontrolera ATmega8 Spis treści

Laboratorium Programowania Kart Elektronicznych

Mikrokontroler ATmega32. Język symboliczny

KURS BASCOM 8051 INDEX:

BASCOM BASIC AVR. Wersja

Laboratorium Programowania Kart Elektronicznych

Inż. Kamil Kujawski Inż. Krzysztof Krefta. Wykład w ramach zajęć Akademia ETI

KOMUNIKACJA Z OTOCZENIEM MIKROKONTROLERA

Niektóre piny mogą pełnić różne role, zależnie od aktualnej wartości sygnałów sterujących.

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

W O J S K O W A A K A D E M I A T E C H N I C Z N A im. Jarosława Dąbrowskiego

Nadajnik Nokton NR4 MAXIM przeróbka do zastosowań APRS MHz

Instytut Teleinformatyki

Zestaw Edukacyjny Atmega-8 (AJAWe-0711) Porty wejścia-wyjścia.

KURS Bascom'a. Autor Paweł Klaja. Korekta. v1.5

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

Programowanie Mikrokontrolerów

1. Wstęp Różnice pomiędzy mikrokontrolerami ST7 a ST7LITE Rdzeń mikrokontrolerów ST7FLITE... 15

Programowanie mikrokontrolerów AVR

Wyświetlacz alfanumeryczny LCD zbudowany na sterowniku HD44780

Zawody II stopnia etap II - ćwiczenia laboratoryjne Grupa Elektroniczna

Uwaga: dioda na wyjściu 13 świeci gdy na wyjście podamy 0.

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

Dalmierze firmy SHARP na przykładzie 2D120XJ100F

Programowanie mikrokontrolerów AVR z rodziny ATmega.

Mikrokontroler AVR ATmega32 - wykład 9

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

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

1 Podstawy c++ w pigułce.

Mikrokontroler ATmega32. System przerwań Porty wejścia-wyjścia Układy czasowo-licznikowe

Wstęp Architektura... 13

Szkolenia specjalistyczne

Zastosowanie procesorów AVR firmy ATMEL w cyfrowych pomiarach częstotliwości

Systemy wbudowane. Wprowadzenie. Struktura. Mikrokontrolery AVR. Wprowadzenie do programowania w C

Pascal typy danych. Typy pascalowe. Zmienna i typ. Podział typów danych:

Elementy oprogramowania sterowników. Instrukcje podstawowe, funkcje logiczne, układy czasowe i liczenia, znaczniki

Ćwiczenie nr 43 Mikrokontroler

Podstawy techniki mikroprocesorowej

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

Instytut Teleinformatyki

/* dołączenie pliku nagłówkowego zawierającego deklaracje symboli dla wykorzystywanego mikrokontrolera */ #include <aduc834.h>

Ćwiczenie 5 Zegar czasu rzeczywistego na mikrokontrolerze AT90S8515

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

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

Architektury Komputerów - Laboratorium Informatyka III rok studia dzienne

2.1 Przesył danych między procesorem a tabelą zmiennych

Mikroprocesory i Mikrosterowniki

Zmienne, stałe i operatory

LibreOffice Calc VBA

Wprowadzenie do programowania w VBA

Język C. Wykład 9: Mikrokontrolery cz.2. Łukasz Gaweł Chemia C pokój 307

Algorytmika i Programowanie VBA 1 - podstawy

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

Podstawowe urządzenia peryferyjne mikrokontrolera ATmega8 Spis treści

Laboratorium 10 Temat: Zaawansowane jednostki testowe. Operacje na plikach. Funkcje.

Instytut Teleinformatyki

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

Uczeń/Uczennica po zestawieniu połączeń zgłasza nauczycielowi gotowość do sprawdzenia układu i wszystkich połączeń.

Mikroprocesory i Mikrosterowniki

1 Podstawy c++ w pigułce.

Programowanie. Projektowanie funkcje programu tworzenie algorytmu i struktur danych. Programowanie implementacja algorytmu kompilacja programu

Instrukcja do programu BASIC PR-02

Wbudowane układy peryferyjne cz. 1 Wykład 7

Instytut Teleinformatyki

Pascal - wprowadzenie

MIKROKONTROLERY I MIKROPROCESORY

ĆWICZENIE 5. TEMAT: OBSŁUGA PORTU SZEREGOWEGO W PAKIECIE KEILuVISON WYSYŁANIE PORTEM SZEREGOWYM

PASCAL Kompendium. Środowisko TURBO PASCAL Skróty klawiaturowe. Edycja kodu Pomoc spis treści. Skopiowanie zaznaczonego bloku do schowka

2 Przygotował: mgr inż. Maciej Lasota

SML3 październik

Wykład 15. Literatura. Kompilatory. Elementarne różnice. Preprocesor. Słowa kluczowe

Mikroprocesory i mikrosterowniki

LabVIEW PLATFORMA EDUKACYJNA Lekcja 6 LabVIEW i Arduino programy wykorzystujące wyświetlacz LCD, czujnik temperatury, PWM i diodę LED

Język ludzki kod maszynowy

Kurs Elektroniki. Część 5 - Mikrokontrolery. 1/26

Technika Mikroprocesorowa

Wykład 4. Środowisko programistyczne

Programowanie strukturalne i obiektowe

Podstawy programowania skrót z wykładów:

MCAR Robot mobilny z procesorem AVR Atmega32

GND(VSS) i VCC - masa i zasilanie. V0 - regulacja kontrastu

PRACOWNIA MIKROKPROCESOROWA

Współpraca mikrokontrolera z wyświetlaczami: ciekłokrystalicznym i siedmiosegmentowym

Wydział Zarządzania AGH. Katedra Informatyki Stosowanej. Procedury i funkcje. Programowanie komputerowe

XMEGA. Warsztaty CHIP Rok akademicki 2014/2015

Transkrypt:

Uniwersytet Łódzki Wydział Fizyki i Informatyki Stosowanej Systemy wbudowane Witold Kozłowski Zakład Fizyki i Technologii Struktur Nanometrowych 90-236 Łódź, Pomorska 149/153 https://std2.phys.uni.lodz.pl/mikroprocesory/

Systemy wbudowane Kierunek: Informatyka PRACOWNIA DYDAKTYCZNA Uwaga!!! Proszę o wyłączenie telefonów komórkowych na wykładzie i laboratorium

Systemy wbudowane Kierunek: Informatyka PRACOWNIA DYDAKTYCZNA Wykład 2. Język Bascom Basic AVR Obsługa portów I/O

Zestaw znaków Zestaw znaków BASCOM obejmuje znaki podstawowego alfabetu, liczby oraz znaki specjalne. W skład liczb języka BASCOM wchodzą liczby z zakresu 0 do 9 a także zapis w postaci binarnej i szesnastkowej: Zapis szesnastkowy powinien być poprzedzony przedrostkiem - &H zapis bitowy powinien być poprzedzony przedrostkiem - &B Za pomocą znaków podstawowego alfabetu możemy definiować stałe i zmienne oraz przydzielać im wartości: STAŁE ZMIENNE Const nazwa = liczba Const nazwa = tekst Przykład: Const nazwa = wyrażenie x=5 - zmienna x jest typu Byte Przykład: X = 5.1 - zmienna x jest typu Single Const H = 5 - definicja stałej liczbowej x = witaj - zmienna x jest typu String Const B = witaj - definicja stałej tekstowej x = X+6 Const X = (H+6)+2 - definicja stałej obliczonej - zmiennej przypisano wynik operacji matematycznej

W języku BASCOM BASIC zdefiniowano kilka podstawowych typów danych: Bit 1/8 bajta Bit może przyjmować tylko dwie wartości: 0 i 1. Byte 1 bajt Bajt może przechowywać dowolną dodatnią liczbę całkowitą z zakresu od 0 do 255. Word 2 bajty Typ Word może przechowywać dowolną dodatnią liczbę całkowitą z zakresu od 0 do 65535. Integer 2 bajty Typ Integer może przechowywać dowolną liczbę całkowitą z zakresu 32768 do +32767. Long 4 bajty Typ Long może przechowywać dowolną liczbę całkowitą z zakresu -232 do 232-1 -4294967296 do 4294967295 Single 4 bajty Typ Single może przechowywać dowolną liczbę stało lub zmiennoprzecinkową. String 254 bajt. max. 254 bajty Typ String przechowuje dowolny ciąg znaków o długości nie większej niż znaki. Ciąg ten zakończony jest zawsze znakiem 0. Każdy znak to jeden Tak więc tekst o długości 10 znaków zajmuje 11 bajtów.

Zestaw znaków Poniżej zestawiono znaki które posiadają szczególne znaczenie w programach w języku BASCOM BASIC: ENTER Oznacza koniec linii (Znak ten w nomenklaturze ASCII nazywa się CR) Pusty (lub spacja) znak rozdzielający ' Apostrof oznacza początek komentarza * Gwiazdka znak operacji mnożenia + Plus znak operacji dodawania, Przecinek znak rozdzielający argumenty instrukcji - Minus znak operacji odejmowania. Kropka oddziela część całkowitą od ułamkowej / Kreska ukośna znak operacji dzielenia : Dwukropek rozdziela instrukcje zapisane w jednej linii " Cudzysłów rozpoczyna i kończy dane tekstowe ; Średnik rozdziela argumenty instrukcji wejścia/wyjścia < Mniejszy niż znak operacji porównywania = Znak równości występuje w operacjach przypisania oraz porównywania > Większy niż znak operacji porównywania \ Odwrotna kreska ukośna znak dzielenia dla liczb całkowitych

Słowa zastrzeżone: Lista dyrektyw kompilatora $ASM $LCDPUTDATA $BAUD $LCDVFO $BAUD1 $LIB $BGF $MAP $BOOT $NOINIT $CRYSTAL $NORAMCLEAR $DATA $PROG $DBG $REGFILE $DEFAULT $ROMSTART $EEPLEAVE $SERIALINPUT $EEPROM $SERIALINPUT1 $EEPROMHEX $SERIALINPUT2LCD $EXTERNAL $SERIALOUTPUT $INC $SERIALOUTPUT1 $INCLUDE $SIM $LCD $TINY $LCDRS $XRAMSIZE $LCDPUTCTRL $XRAMSTART

Słowa zastrzeżone: Lista instrukcji CONFIG CONFIG 1WIRE CONFIG PIN CONFIG ACI CONFIG PORT CONFIG ADC CONFIG PS2EMU CONFIG ATEMU CONFIG RC5 CONFIG BCCARD CONFIG SCL CONFIG CLOCK CONFIG SDA CONFIG COM1 CONFIG SERIALIN CONFIG COM2 CONFIG SERIALIN1 CONFIG DATE CONFIG SERIALOUT CONFIG DEBOUNCE CONFIG SERIALOUT1 CONFIG GRAPHLCD CONFIG SERVOS CONFIG I2CDELAY CONFIG SPI CONFIG I2CSLAVE CONFIG TCPIP CONFIG INTx CONFIG TIMER0 CONFIG KBD CONFIG TIMER1 CONFIG KEYBOARD CONFIG TIMER2 CONFIG LCD CONFIG WAITSUART CONFIG LCDBUS CONFIG WATCHDOG CONFIG LCDMODE CONFIG X10 CONFIG LCDPIN Określają parametry kompilacji

Słowa zastrzeżone: 1WRESET 1WWRITE ALIAS BAUD BCCALL BCDEF BCRESET BITWAIT BYREF, BYVAL CALL CIRCLE CLS CLOSE CLOSESOCKET CONST CURSOR DATA DBG DEBOUNCE DECR DECLARE SUB DECLARE FUNCTION DEFBIT, DEFBYTE, DEFINT, DEFWORD DEFLCDCHAR DELAY DIM DISABLE DISPLAY DO - LOOP DTMFOUT ECHO Lista instrukcji ELSE ENABLE END EXIT FLUSH FOR - NEXT FOURTHLINE FUNCTION GET GLCDCMD GLCDDATA GOSUB GOTO HOME I2CINIT I2CRECEIVE I2CSEND I2CSTART, I2CSTOP, I2CRBYTE, I2CWBYTE IDLE IF - THEN - ELSE - END IF INCR INITLCD INPUTBIN INPUTHEX INPUT KILL LCD LCDAT LCDCONTRAST LINE LINE INPUT LOAD LOADADR LOADLABEL LOCATE LOCAL LOOKUPSTR() LOWERLINE ON INTERRUPT ON VALUE OPEN OUT POKE POPALL POWERDOWN POWERSAVE PRINT PRINTBIN PS2MOUSEXY PSET PULSEIN PULSEOUT PUSHALL PUT RC5SEND RC6SEND READ READEEPROM READMAGCARD REM RESET RESTORE RETURN ROTATE SEEK

Słowa zastrzeżone: 1WIRECOUNT() 1WREAD() 1WSEARCHFIRST() 1WSEARCHNEXT() 1WVERIFY() ABS() ACOS() ASC() ASIN() ATN() ATN2() BASE6DEC() BCD() BIN() BINVAL() BIN2GREY() CHECKSUM() CHR() COS() COSH() CPEEK() CPEEKH() CRC8() CRC16() DEG2RAD() DIR() DISKFREE() DISKSIZE() DRIVECHECK() DRIVEGETIDENTITY() DRIVEINIT() DRIVEREADSECTOR() Lista funkcji DRIVERESET() DRIVERESET() DRIVEWRITESECTOR() EOF() EXP() FIX() FILEATTR() FILEDATE() FILEDATETIME() FILELEN() FILETIME() FRAC() FREEFILE() FUSING() GETADC() GETATKBD() GETDSTIP() GETDSTPORT() GETKBD() GETRC() GETRC5() GETSOCKET() GREY2BIN() HEX() HEXVAL() HIGH() HIGHW() INITFILESYSTEM() INKEY() INP() INSTR() INT() IP2STR() ISCHARWAITING() LCASE() LEFT() LEN() LOC() LOF() LOG() LOG10() LOOKUP() LOOKUPSTR() LOOKDOWN() LOW() LTRIM() MAKEBCD() MAKEDEC() MAKEINT() MAX() MID() MIN() PEEK() POWER() RAD2DEG() RIGHT() RND() ROUND() RTRIM() SEEK() SGN() SIN() SINH() SPACE() SPC() SPIMOVE() SQR() STR() STRING() TAN() TANH() TRIM() UCASE() VAL() VARPTR() WAITKEY() X10DETECT() SELECT CASE END SELECT SENDSCAN SENDSCANKBD SERIN SEROUT SET SETFONT SETTCP SHIFT SHIFTCURSOR SHIFTIN, SHIFTOUT SHIFTLCD SHOWPIC SHOWPICE SOUND SONYSEND SPIIN SPIINIT SWAP SPIOUT START STOP SUB THIRDLINE TOGGLE UPPERLINE VARPTR() WAIT WAITMS WAITUS WHILE - WEND WRITE WRITEEEPROM X10SEND

Podstawy języka struktura pliku źródłowego Pisanie programu w Baskom Basicu nie jest trudne ale aby zwiększyć jego przejrzystość programu można podzielić go na bloki: Dyrektywy dla kompilatora $regfile = "m8def.dat" 'informuje kompilator o pliku dyrektyw wykorzystywanego mikrokontrolera $crystal = 8000000 '... 'informuje kompilator o częstotliwości oscylatora taktującego mikrokontroler '... Instrukcje konfiguracji peryferiów oraz urządzeń zewnętrznych Config Watchdog = 2048 'konfiguracja Watchdoga Config Timer0 = Timer, Prescale = 1024 'konfiguracja Timer0 Config Portc = Output '... 'konfiguracja portu C '...

Podstawy języka struktura pliku źródłowego Deklaracje nagłówków funkcji oraz procedur a także instrukcji konfigurujących przerwania Declare Sub Inkrementuj(liczb As Byte) Procedura inkrementacji Declare Function Dodaj(c As Integer, D As Integer) funkcja dodawania On Timer0 prze_licz... 'przerwanie od przepełnienia Timer0... Definicje zmiennych, stałych i aliasów Dim Liczba As Byte 'definicja zmiennej typu Byte Dim A As Integer, B As Integer 'definicje zmiennych typu Integer Dim Wynik As Integer Const X = 5 W Alias A... 'definicja zmiennej typu Integer 'definicja stałej X 'definicja aliasu, W wskazuje na zmienną A...

Podstawy języka struktura pliku źródłowego Program główny A = 100 'przypisanie zmiennej A wartości 100 B = 80 'przypisanie zmiennej B wartości 80 Liczba = 5 Call Inkrementuj(liczba) Print Liczba Wynik = Dodaj(a, B) Print Wynik...... 'przypisanie zmiennej Liczba wartości 5 'wywołanie procedury Inkrementacji 'wyświetlenie wartości zmiennej liczba (wartość 6) 'wywołanie funkcji Dodaj 'wyświetlenie wartości zmiennej Wynik (wartość 180) End 'Koniec programu głównego

Podstawy języka struktura pliku źródłowego Definicje wcześniej zadeklarowanych funkcji oraz procedur Sub Inkrementuj(liczb As Byte) Incr Liczb End Sub 'Treść procedury inkrementującej wartość parametru Liczb 'inkrementacja zmiennej Liczb 'koniec procedury Function Dodaj(c As Integer, D As Integer) As Integer 'Treść funkcji dodającej wartości parametrów C i D Dodaj = C + D End Function... 'instrukcja dodaje wartości 'koniec funkcji... Pozostałe procedury lub funkcje użytkownika Dodatkowo w tej części programu mogą znajdować się podprogramy, podprogramy obsługi przerwań oraz tablice stałych.

Podstawy języka struktura pliku Dyrektywy dla kompilatora Instrukcje konfiguracji peryferiów oraz urządzeń zewnętrznych Deklaracje nagłówków funkcji oraz procedur a także instrukcji konfigurujących przerwania Definicje zmiennych, stałych i aliasów Program główny Definicje wcześniej zadeklarowanych funkcji oraz procedur Pozostałe procedury lub funkcje użytkownika Dodatkowo w tej części programu mogą znajdować się podprogramy, podprogramy obsługi przerwań oraz tablice stałych.

Konfiguracja portów Każdy mikrokontroler wyposażony jest w porty służące do komunikowania się mikrokontrolera z otoczeniem. Liczba dostępnych portów jest różna i zależna od typu mikrokontrolera. Port składa się z kilku linii, nie więcej niż 8. Porty w mikrokontrolerze AVR są dwukierunkowe, tzn. mogą być wejściami albo wyjściami. W przestrzeni adresowej rejestrów specjalnych są aż trzy rejestry do obsługi portu: PORTx - wartość wpisana do tego rejestru jest dostępna na zewnętrznych liniach portu DDRx - rejestr ten służy do konfigurowania linii portu jako wejścia lub wyjścia PINx - rejestr ten odwzorowuje bezpośrednio stan logiczny wyprowadzeń danego portu Gdzie x nazwa portu B,C,D...

Rejestry specjalne mikrokontrolera Atmega 8 PortB PortC PortD

Konfiguracja portów DDBn PORTBn Tryb pracy Podciąganie Komentarz 0 0 Wejście Nie Trójstanowe (Hi-Z) 0 1 Wejście Tak Z linii PBn może wypływać prąd, gdy końcówka będzie ściągnięta do masy. 1 0 Wyjście Nie Stopień wyjściowy typu Push-Pull, stan 0 1 1 Wyjście Nie Stopień wyjściowy typu Push-Pull, stan 1 Wyjście typu "Push-Pull" - PP Wyjście typu Push-Pull posiada dwa stany aktywne. W stanie załączenia na wyjście podawane jest napięcie zasilania (+VCC), a w stanie wyłączenia na wyjście podawany jest sygnał masy (GND).

Konfiguracja portów Wyjście +5V +5V Atmega8 Atmega8 +5V PB0 PB0 I Wyjście ustawione na stan 1 Wyjście ustawione na stan 0 Port PB (i inne) może także bezpośrednio sterować diodami LED, gdyż prąd wpływający (linia portu na poziomie niskim) może mieć wartość nawet do 20mA. Uwaga: Łączna obciążalność prądowa portów mikrokontrolera AVR nie powinna przekraczać 200mA, gdyż może nastąpić jego uszkodzenie

Wejście Konfiguracja portów Atmega8 +5V Na porcie występuje stan wysoki 1 PB0 Prąd I Wszystkie końcówki portów (B,C,D) posiadają rezystory podciągające, które mogą być włączane osobno dla każdego wyprowadzenia. Gdy końcówki np. portu PB pracując jako wejścia i są zewnętrznie ściągnięte do masy, to przy włączonym wewnętrznym podciąganiu będą źródłem prądu wypływającego.

Konfiguracja portów w Bascom Basic Ustawia kierunek działania portu. Składnia: Config Portx = tryb Config Pinx.y = tryb gdzie: x nazwa porty (B,C,D) y numer lini portu (0...7) tryb - możliwe jest podanie: INPUT - gdy port (końcówka) ma być wejściem OUTPUT - gdy port (końcówka) ma być wyjściem.

Konfiguracja portów w Bascom Basic Przykład: Konfiguracja całego portu jako wejścia lub wyjścia: Config Portb = Input - wszystkie linie portu B ustanowione jako wejścia Config Portd = Ouput - wszystkie linie portu D ustanowione jako wyjścia Konfigurowanie poszczególnych linii portów: Config Pinb.0 = Input - linia 0 portu B ustawiona jako wejście Config Pinb.0 = 0 - zapis równorzędny powyższemu Config Pinb.2 = Ouput - linia 2 portu B ustawiona jako wyjście Config Pinb.2 = 1 - zapis równorzędny powyższemu Instrukcja Config Portx umożliwia także selektywne ustawienie linii portów: Config Portd = &B0001111 - linie 7...4 portu D będą wejściami - linie 3...0 portu D będą wyjściami

Program 0

Cel ćwiczenia 1. Analiza pracy Programu 0 przy użyciu symulatora programowego i sprzętowego 2. Badanie zależności czasowych wykonywanych instrukcji (Set i Reset) Programu 0 podczas symulacji i rzeczywistej pracy mikrokontrolera 3. Wyznaczenie powyższych wartości wykorzystując przyrządy pomiarowe (oscyloskop i analizator stanów logicznych) 4. Określenie ilości cykli pracy mikrokontrolera przypadających na wykonywane instrukcje 5. Zaprogramowanie mikrokontrolera programem napisanym w asemblerze realizującym to samo zadanie co program 0 napisany w języku wysokiego poziomu w Bascom Basic 6. Porównanie zależności czasowych sterowania portem Pb0 realizowanych programem napisanym w asemblerze i Bascom Basic 7. Określenie ilości cykli pracy mikrokontrolera przypadających na wykonywane instrukcje wysłania do port PB0 stanu wysokiego 1 oraz niskiego 0 realizowanych za pomocą dwóch programów: napisanych w asemblerze i Bascom Basic

Program 0 Napisanie programu Zapisanie programu w własnym katalogu Przeprowadzenie kompilacji Poprawienie błędów składniowych i ponowne przeprowadzenie kompilacji Przeprowadzenie symulacji programowej i sprzętowej Zaprogramowanie mikrokontrolera

Program 0 Schemat połączenia diody LED do linii PB0 portu B mikrokontrolera +5V

Program 0 informuje kompilator o pliku dyrektyw mikrokontrolera informuje kompilator o częstotliwości oscylatora taktującego mikrokontroler linia PB0 jako wyjściowa początek pętli ustaw wyjście portu PB0 na 1 ustaw wyjście portu PB0 na 0 koniec pętli głównej programu koniec programu

Program 0 Symulacja programowa Czerwone diody dotyczą stanów linii portów wyjściowych

Program 0 Symulacja sprzętowa a8 eg m At TXD RXD PD0 PD1 RS232 Wpisanie programu monitora do pamięci Flash ROM

Program 0 Schemat połączenia diody LED 0raz przyrządów pomiarowych RS232 do komputera PC

Program 0 Zaprogramowanie mikrokontrolera docelowym programem 0 8 ga e m At Wpisanie do pamięci Flash ROM Programu0

Program 0 Przebadanie zależności czasowych podczas rzeczywistej pracy mikrokontrolera realizującego program0 i porównanie ich z praca podczas symulacji sprzętowej RS232 do komputera PC

Program 0 Przebadanie zależności czasowych podczas rzeczywistej pracy mikrokontrolera realizującego program0 i porównanie ich z praca podczas symulacji sprzętowej

Program 1 Instrukcja Toggle zmieniająca stan portu na przeciwny. Jest równoznaczna dwom instrukcją Set i Reset

Program 1 Schemat połączenia diody LED do linii PB0 portu B mikrokontrolera +5V Instrukcja Toggle zmieniająca stan portu na przeciwny.

Program 1 informuje kompilator o pliku dyrektyw mikrokontrolera informuje kompilator o częstotliwości oscylatora taktującego mikrokontroler linia PB0 jako wyjściowa początek pętli zmień na przeciwny stan linii PB0 portu B mikrokontrolera koniec pętli głównej programu koniec programu

Program 2 - Asembler Zaprogramowanie mikrokontrolera programem napisanym w asemblerze realizującym to samo zadanie co Program 0 8 ga e m At Wpisanie do pamięci Flash ROM Programu asemblera

Program 2 - Asembler Zaprogramowanie mikrokontrolera programem napisanym w asemblerze realizującym to samo zadanie co Program 0

Program 2- Asembler Przebadanie zależności czasowych podczas rzeczywistej pracy mikrokontrolera realizującego program napisany w asemblerze i porównanie ich z pracą programu 0 napisanego w Bascom Basic RS232 do komputera PC

Cel ćwiczenia 0-2 1. Celem przeprowadzonych ćwiczeń jest zapoznanie się z generowaniem impulsów o określonym czasie trwania. Program0 - Bascom instrukcje Set, Reset Program2 - asembler Program1 Bascom Instrukcja Toggle Czas trwania stanu 0 na wyjściu portu PB0 Czas trwania stanu 1 na wyjściu portu PB0 T okres f częstotliwość T 1 Częstotliwość sygnału f = 1/T 0

Konfiguracja portów +5V Atmega8 Stan 1 +5V dioda nie świeci PB0 Stan 0 0V dioda świeci Porty PB, PC, PD mogą bezpośrednio sterować diodami LED, gdyż prąd wpływający (linia portu na poziomie niskim) może mieć wartość tylko do 20mA!!! Uwaga: Łączna obciążalność prądowa portów mikrokontrolera AVR nie powinna przekraczać 200mA, gdyż może nastąpić jego uszkodzenie

Przyrządy używane na pracowni

Przyrządy używane na pracowni Oscyloskop cyfrowy Możemy rejestrować przebiegi napięć zmienne w czasie oraz zapisywać je w pamięci wewnętrznej oscyloskopu

Przyrządy używane na pracowni Analizator Stanów Logicznych Możemy rejestrowane w czasie stany logiczne ( 0, 1 ) oraz zapamiętywać je w pamięci wewnętrznej analizatora

Przyrządy używane na pracowni Analizator Stanów Logicznych ASL - 2016 Połączenie analizatora z komputerem Port drukarkowy LPT1 Adres 378H Tryb pracy portu EPP

Analizator Stanów Logicznych ASL - 2016

Analizator Stanów Logicznych ASL - 2016

Analizator Stanów Logicznych ASL - 2016

Na koniec Program 1 dodatkowy wąż świetlny

Program 1 dodatkowy Schemat dołączenia diod LED do mikrokontrolera +5V

Program węża świetlnego sterującego 8-mioma diodami LED dołączonymi do portu D mikrokontrolera informuje kompilator o pliku dyrektyw mikrokontrolera informuje kompilator o częstotliwości oscylatora taktującego mikrokontroler linia PB0 jako wyjściowa wartość początkowa wpisana do portu wyjściowego D, dziesiętnie = 85,hex = 55 początek pętli przesuwaj wpisane wartości do portu D w lewo opóźnienie przesunięć o 200 ms koniec pętli głównej programu koniec programu