- Nazwa przedmiotu:
- Programowanie mikrokontrolerów w języku C
- Koordynator przedmiotu:
- Sławomir SZOSTAK
- Status przedmiotu:
- Fakultatywny ograniczonego wyboru
- Poziom kształcenia:
- Studia I stopnia
- Program:
- Elektronika
- Grupa przedmiotów:
- Przedmioty techniczne
- Kod przedmiotu:
- PMIK
- Semestr nominalny:
- 6 / rok ak. 2019/2020
- Liczba punktów ECTS:
- 5
- Liczba godzin pracy studenta związanych z osiągnięciem efektów uczenia się:
- 60h zajęć + 25h (przygotowanie do realizacji projektu) + 10h (udział w konsultacjach) + 30h (przygotowanie dokumentacji wstępnej, prezentacji, dokumentacji końcowej) = 125h
- Liczba punktów ECTS na zajęciach wymagających bezpośredniego udziału nauczycieli akademickich:
- Język prowadzenia zajęć:
- polski
- Liczba punktów ECTS, którą student uzyskuje w ramach zajęć o charakterze praktycznym:
- Formy zajęć i ich wymiar w semestrze:
-
- Wykład15h
- Ćwiczenia0h
- Laboratorium30h
- Projekt15h
- Lekcje komputerowe0h
- Wymagania wstępne:
- Zaliczenie przedmiotu Podstawy techniki mikroprocesorowej (TMIK)
- Limit liczby studentów:
- 80
- Cel przedmiotu:
- Celem przedmiotu jest pogłębienie umiejętności programowania mikrokontrolerów w języku C, jak również pokazanie możliwości łączenia języka C i asemblera oraz zapoznanie studentów
z metodami projektowania i uruchamiania oprogramowania systemów cyfrowych.
- Treści kształcenia:
- Treść wykładu:
Zastosowanie mikrokontrolerów (2h) - schemat blokowy systemu wbudowanego, architektury wybranych typów mikrokontrolerów – ich porównanie i analiza pod kątem wydajności programowania w języku C. Kryteria wyboru mikrokontrolera do wybranych aplikacji.
Konfigurowanie mikrokontrolerów (1h) - konfigurowanie zasobów wewnętrznych mikrokontrolera (liczniki, interfejsy komunikacyjne, przetworniki, itd.), komunikacja z urządzeniami zewnętrznymi.
Wprowadzenie do języka C (2h) - różnice w stosunku do standardu ANSI C, nowe typy zmiennych, przestrzenie danych w pamięci i ich deklaracje, definiowanie funkcji, przekazywanie parametrów do funkcji, obsługa przerwań.
Programowanie w C (3h) - dobór optymalnych typów danych, przerwania, priorytety przerwań, preprocesor, pliki nagłówkowe, makra, struktura projektu wieloplikowego, struktura programu, systemy operacyjne.
Środowiska programistyczne (1h) – konfiguracja i możliwości zintegrowanych narzędzi
do tworzenia, symulowania i analizy oprogramowania, opcje projektu (na przykładzie oprogramowanie µVision Keil i AVR Studio).
Techniki uruchamiania programu (1h) - debuggowanie programu przy użyciu symulatora programowego, symulacja urządzeń I/O, podglądanie zmiennych, rejestrów, zawartości pamięci, pułapki, praca krokowa, analiza pliku *.m51, debuggowanie z wykorzystaniem systemów dostępnych w laboratorium.
Wybrane zagadnienia programowania (2h) - optymalizacja kodu, łączenie języka c i asemblera, uniezależnianie kodu od rozwiązań sprzętowych (częstotliwości zegara, liczby cykli maszynowych), autotestowanie oprogramowania, umieszczenie kodu wynikowego w wyznaczonych miejscach pamięci, techniki wykonywania modyfikacji oprogramowania.
Mikrokontrolery w zastosowaniach niskomocowych (1h), sposoby minimalizowania poboru mocy, dobór częstotliwości pracy układu, wykorzystywanie trybów energooszczędnych.
Przykładowe rozwiązania (2h) – obsługa wyświetlaczy LCD, bufor cyrkulacyjny do obsługi portu szeregowego, auto baud rate, przetwornik C/A z wykorzystaniem PWM, interfejs IIC.
Zakres laboratorium:
W ramach laboratorium student otrzymuje jedno zadanie polegające na napisaniu oprogramowania wielozadaniowego systemu mikroprocesorowego oraz uruchomieniu go np. w oparciu o bazę sprzętową laboratorium. Elementy oprogramowywanego systemu mikroprocesorowego, to m.in.: wyświetlacze LCD, LED, klawiatura, przetworniki analogowo-cyfrowe i cyfrowo-analogowe, komunikacja za pomocą magistrali I2C bus (EEPROM, zegar czasu rzeczywistego), komunikacja szeregowa, moduł wagowy, moduł GPS i GSM, moduł radiowy.
W ramach projektu studenci uzgadniają z prowadzącym sposób realizacji zadania oraz w dokonują krótkiej prezentacji przyjętych założeń, napotkanych problemów i sposobów ich rozwiązania.
- Metody oceny:
- zaliczenie projektu
ocena prezentacji
analiza dokumentacji wstępnej
analiza dokumentacji końcowej
- Egzamin:
- nie
- Literatura:
- Intel, "MCS 51 Microcontroller Family User's Manual"
Keil Software, “C51 Compiler – optimizing 8051 C Compiler and Library Reference”
Keil Software, “Macro Assembler and Utilities”
T. Starecki, “Mikrokontrolery jednoukładowe rodziny 51”, NOZOMI, Warszawa 1996.
J. Bogusz, „Programowanie mikrokontrolerów 8051 w języku C w praktyce”, BTC, 2005
Andrzej Witkowski, „Mikrokontrolery AVR programowanie w języku C przykłady zastosowań”, Pracownia Komputerowa Jacka Skalmierskiego, 2006
Tomasz Francuz, "Język C dla mikrokontrolerów AVR Od podstaw do zaawansowanych aplikacji", Helion, 2011
Krzysztof Paprocki, "Mikrokontrolery STM32 w praktyce", BTC, 2011
- Witryna www przedmiotu:
- http://www.pmik.imio.pw.edu.pl
- Uwagi:
Efekty uczenia się
Profil ogólnoakademicki - wiedza
- Charakterystyka PMIK_W01
- Zna aktualne trendy rozwoju mikrokontrolerów
Weryfikacja: zaliczenie projektu
Powiązane charakterystyki kierunkowe:
K_W13
Powiązane charakterystyki obszarowe:
- Charakterystyka PMIK_W02
- Zna kryteria i metodykę doboru architektury mikrokontrolera do konkretnego zastosowania
Weryfikacja: zaliczenie projektu
Powiązane charakterystyki kierunkowe:
K_W09, K_W12, K_W15
Powiązane charakterystyki obszarowe:
- Charakterystyka PMIK_W03
- Zna zasady tworzenia oprogramowania dla systemów mikroprocesorowych
Weryfikacja: zaliczenie projektu
Powiązane charakterystyki kierunkowe:
Powiązane charakterystyki obszarowe:
- Charakterystyka PMIK_W04
- Zna podstawowe techniki uruchamiania oprogramowania
Weryfikacja: zaliczenie projektu
Powiązane charakterystyki kierunkowe:
K_W04
Powiązane charakterystyki obszarowe:
Profil ogólnoakademicki - umiejętności
- Charakterystyka PMIK_U01
- potrafi przeanalizować potrzeby sprzętowe i programowe aplikacji oraz zaproponować architekturę mikrokontrolera do jej realizacji
Weryfikacja: zaliczenie projektu
Powiązane charakterystyki kierunkowe:
K_U08, K_U16, K_U17, K_U19
Powiązane charakterystyki obszarowe:
- Charakterystyka PMIK_U02
- Potrafi skonfigurować i korzystać ze środowiska programistycznego dedykowanego dla wybranego mikrokontrolera
Weryfikacja: zaliczenie projektu
Powiązane charakterystyki kierunkowe:
K_U04, K_U08, K_U11, K_U19
Powiązane charakterystyki obszarowe:
- Charakterystyka PMIK_U03
- potrafi skonfigurować wybrane układy wewnętrzne mikrokontrolera (np. porty wejścia/wyjścia, liczniki, kontroler przerwań, UART, DMA) oraz napisać funkcje realizujące komunikację z wybranymi układami zewnętrznymi (np. klawiaturą, wyświetlaczem, przetwornikami A/C i C/A)
Weryfikacja: zaliczenie projektu
Powiązane charakterystyki kierunkowe:
K_U04, K_U08, K_U16, K_U17, K_U18, K_U19
Powiązane charakterystyki obszarowe:
- Charakterystyka PMIK_U04
- Potrafi stworzyć strukturę projektu wieloplikowego poprzez podział zadania na odrębne bloki funkcjonalne i napisać oprogramowanie z wykorzystaniem różnego typu struktur danych i systemu przerwań mikrokontrolera
Weryfikacja: zaliczenie projektu
Powiązane charakterystyki kierunkowe:
K_U08, K_U18, K_U19, K_U04
Powiązane charakterystyki obszarowe:
- Charakterystyka PMIK_U05
- potrafi napisać i uruchomić na wybranym systemie mikroprocesorowym oprogramowanie wykonujące ustalone z prowadzącym i zapisane w dokumentacji wstępnej projektu minimum funkcjonalności
Weryfikacja: zaliczenie projektu
Powiązane charakterystyki kierunkowe:
K_U04, K_U18, K_U19
Powiązane charakterystyki obszarowe:
- Charakterystyka PMIK_U06
- potrafi przygotować dokumentajcę wstępną projektu zawierającą opis funkcji realizowanych w projekcie, wykaz wykorzystywanych zasobów sprzętowych, harmonogram prac i ich podział w przypadku pracy zespołowej
Weryfikacja: analiza dokumentacji wstępnej
Powiązane charakterystyki kierunkowe:
K_U06, K_U08
Powiązane charakterystyki obszarowe:
- Charakterystyka PMIK_U07
- potrafi przygotować i wygłosić prezentację zawierającą opis wykonywanego projektu, stopień zaawansowania prac i dyskusję napotkanych problemów
Weryfikacja: ocena prezentacji
Powiązane charakterystyki kierunkowe:
K_U07, K_U08, K_U10
Powiązane charakterystyki obszarowe:
- Charakterystyka PMIK_U08
- potrafi przygotować dokumentację końcową projektu zawierającą opis zrealizowanych funkcji, wykaz wykorzystywanych zasobów sprzętowych i algorytm działania programu
Weryfikacja: analiza dokumentacji końcowej i zaliczenie projektu
Powiązane charakterystyki kierunkowe:
K_U06, K_U10
Powiązane charakterystyki obszarowe: