Grzegorz Cygan. Wstęp do programowania mikrosterowników w języku C



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

Język ludzki kod maszynowy

Wykład 1

PROGRAMOWANIE w C prolog

Programowanie strukturalne język C - wprowadzenie

Materiały. Języki programowania II (Java+AVR-GCC) Literatura

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

Wstęp do programowania 1

Programowanie strukturalne i obiektowe

1. Brian W. Kernighan, Dennis M. Ritchie, Język ANSI C, WNT, Warszawa 1998.

Język C - podstawowe informacje

Typy złożone. Struktury, pola bitowe i unie. Programowanie Proceduralne 1

1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość

wykład I uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Wstęp do języka C wykład I dr Jarosław Mederski Spis Ogólne informacje

Programowanie mikrokontrolerów AVR

Programowanie Proceduralne

Języki i metody programowania. Omówienie języków C, C++ i Java

Programowanie niskopoziomowe. dr inż. Paweł Pełczyński

Wykład VII. Programowanie. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik

Microsoft IT Academy kurs programowania

Programowanie niskopoziomowe

Języki programowania - podstawy

Temat 1: Podstawowe pojęcia: program, kompilacja, kod

Na ekranie monitora zostaną wyświetlone w dwu liniach teksty Pierwsza linia Druga linia

Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych.

Podstawy Programowania. Wykład 1

wykład III uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C - zarządzanie pamięcią, struktury,

Podstawy programowania

Programowanie obiektowe

Techniki Programowania

Podstawy Informatyki. Kompilacja. Historia. Metalurgia, I rok. Kompilatory C++ Pierwszy program. Dyrektywy preprocesora. Darmowe:

Podstawy Informatyki. Metalurgia, I rok. Wykład 6 Krótki kurs C++

Podstawy programowania. Wykład 2 Zmienne i obsługa wejścia/wyjścia. Krzysztof Banaś Podstawy programowania 1

ECLIPSE wnioski z dwóch pierwszych laboratoriów

Pytania sprawdzające wiedzę z programowania C++

Spis treści WSTĘP CZĘŚĆ I. PASCAL WPROWADZENIE DO PROGRAMOWANIA STRUKTURALNEGO. Rozdział 1. Wybór i instalacja kompilatora języka Pascal

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

Szkolenia specjalistyczne

Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych.

Krótki kurs programowania w języku C mikrosterowników standardu MCS-51 z wykorzystaniem systemu DSM-51 i kompilatora SDCC

Podstawy programowania w języku C

Programowanie strukturalne i obiektowe : podręcznik do nauki zawodu technik informatyk / Adam Majczak. Gliwice, cop

Podstawy programowania. Wykład Co jeszcze... Przypomnienia, uzupełnienia. Krzysztof Banaś Podstawy programowania 1

Projekt współfinansowany przez Unię Europejską ze środków Europejskiego Funduszu Społecznego

1 Podstawy c++ w pigułce.

Program w C. wer. 10 z drobnymi modyfikacjami! Wojciech Myszka :28:

Spis treści

Podstawy programowania. Wykład: 5. Instrukcje sterujące c.d. Stałe, Typy zmiennych c.d. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Wstęp do programowania

Wstęp do programowania

Funkcje. Spotkanie 5. Tworzenie i używanie funkcji. Przekazywanie argumentów do funkcji. Domyślne wartości argumentów

MIKROKONTROLERY I MIKROPROCESORY

Kompilator języka C na procesor 8051 RC51 implementacja

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta Strona 1 z 26. Powrót. Full Screen. Zamknij.

Języki programowania obiektowego Nieobiektowe elementy języka C++

Poradnik programowania procesorów AVR na przykładzie ATMEGA8

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h]

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

Podstawowe elementy proceduralne w C++ Program i wyjście. Zmienne i arytmetyka. Wskaźniki i tablice. Testy i pętle. Funkcje.

Schemat blokowy architektury AVR

( wykł. dr Marek Piasecki )

MIKROKONTROLERY AVR JĘZYK C WYDAWNICTWO ATNEL PODSTAWY PROGRAMOWANIA. Miros aw Kardaś. Szczecin Mojej Żonie Kasi

1 Podstawy c++ w pigułce.

KURS C/C++ WYKŁAD 1. Pierwszy program

Zadanie 04 Ktory z ponizszych typow danych w jezyku ANSI C jest typem zmiennoprzecinkowym pojedynczej precyzji?

Programowanie niskopoziomowe

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016

Krótki kurs programowania w języku C mikrosterowników standardu MCS-51 z wykorzystaniem systemu DSM-51 i kompilatora SDCC

Język programowania C51 dla mikroprocesorów rodziny MCS51

Co nie powinno być umieszczane w plikach nagłówkowych:

Metody i algorytmy pomiarów przedmiotów metodami optycznymi.

Wstęp do programowania

Opis efektów kształcenia dla modułu zajęć

PROGRAMOWANIE NISKOPOZIOMOWE. Adresowanie pośrednie rejestrowe. Stos PN.04. c Dr inż. Ignacy Pardyka. Rok akad. 2011/2012

Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 10 Kurs C++

Zmienne, stałe i operatory

Wstęp do Programowania 2

Podstawy języka C++ Marek Pudełko

Wprowadzenie do języka Java

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44

1.1 Co to jest USBasp? Parametry techniczne Obsługiwane procesory Zawartość zestawu... 4

Bardzo szybkie podsumowanie: wykład 1 wer. 6 z drobnymi modyfikacjami!

Podstawy programowania C. dr. Krystyna Łapin

Program w C. wer. 12 z drobnymi modyfikacjami! Wojciech Myszka :59:

Standardy programowania protokołów komunikacyjnych Laboratorium nr 5 komunikacja multicastowa IPv6

Programowanie I C / C++ laboratorium 02 Składnia pętli, typy zmiennych, operatory

Programator AVR USBasp

Języki C i C++ Wykład: 2. Wstęp Instrukcje sterujące. dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD

Programowanie Obiektowe i C++

Przeciążenie (przeładowanie nazw) funkcji

Programowanie - wykład 4

Techniki mikroprocesorowe i systemy wbudowane

20. Pascal i łączenie podprogramów Pascala z programem napisanym w C

Zofia Kruczkiewicz, Programowanie obiektowe - java, wykład 2 1

Podstawy programowania - 1

ROZDZIAŁ 2. Operatory

Programowanie strukturalne język C

Zaawansowane programowanie w języku C++ Podstawy programowania w C++

Wykład 2 Wybrane konstrukcje obiektowych języków programowania (1)

Transkrypt:

Grzegorz Cygan Wstęp do programowania mikrosterowników w języku C

Mikrosterownik Inne nazwy: Microcontroler (z języka angielskiego) Ta nazwa jest powszechnie używana w Polsce. Mikrokomputer jednoukładowy ta nazwa wiele wyjaśnia: mikrosterownik zawierea procesor (rdzeń) pamięć ROM, pamięć RAM i układy wejścia-wyjścia (porty, interfejsy szeregowe, układy czasowo-licznikowe i wiele innych).

Przykładowe zastosowania mikrosterowników Urządzenia RTV i AGD, Urządzenia techniki komputerowej (klawiatura, drukarka, skaner, modem,...) Zabawki, Urządzenia mobilne (komórki, tablety I...) Automaty (do kawy, ciasteczek,...) Urządzenia sieciowe (rutery, przełączniki,...) Sterownik dzwonka w naszej szkole.

Wybrane mikrosterowniki Rodzina Producenci i przykładowe typy MCS-51 Intel 80C51, Atmel AT89C4051 AVR Atmel AT90S2313, Atmel ATMEGA 8 AMR NXP LPC1768

Założenia do kursu programowania Uczestnik zna obsługę systemu operacyjnego Windows i(lub) Linux (korzystanie z systemowego edytora plików tekstowych i wiersza poleceń) Korzystamy wyłącznie z darmowego oprogramowania. Uczymy się na pięćdziesiątcejedynce, ale poznajemy zagadnienia wspólne dla wszystkich mikrosterowników.

Języki programowania

Język maszynowy To język procesora Program składa się ze słów rozkazowych (liczb). Pisanie programów za pomocą liczb jest bardzo niewygodne Adresy słowa rozkazowe 0000 10 0001 98 0002 02 0003 80 0004 FB 0005 85

Asembler Adresy komórek pamięci zastąpione są etykietami. Słowa rozkazowe są przedstawione za pomocą mnemoników, np. jbc oraz argumentów rozkazów, np. RI,koniec Adresy słowa rozkazowe Etykiety rozkazy argumenty _rs232rcvbyte: jbc RI,koniec sjmp _rs232rcvbyte koniec: mov dpl,sbuf ret

Język C #include <8051.h> char rs232rcvbyte (void) { while (!RI); RI = 0; return SBUF; }

Fragment złożonego programu void WriteFrame_EMAC(unsigned short Data) { *tptr++ = Data; } void CopyToFrame_EMAC(void *Source, unsigned int Size) { unsigned short * pisource; unsigned int idx; pisource = Source; Size = (Size + 1) & 0xFFFE; //round Size while (Size > 0) { WriteFrame_EMAC(*piSource++); Size -= 2; } idx = LPC_EMAC->TxProduceIndex; if (++idx == NUM_TX_FRAG) idx = 0; LPC_EMAC->TxProduceIndex = idx; }

Słowa kluczowe języka C (według norm ANSI C z roku 1989 oraz ISO C z roku 1990) auto break case char const continue default do double else enum extern float for goto if Typy złożone Biblioteki

Słowa kluczowe języka C (według norm ANSI C z roku 1989 oraz ISO C z roku 1990) int long register return short signed sizeof static struct switch typedef union Procedury i funkcje Biblioteki, Typy złożone Typy złożone Typy złożone unsigned void volatile while Wskaźniki

Jaki język jest najlepszy? Zależy do czego. Pisząc duży program można korzystać z kilku języków. Na zajęciach napiszemy programy w C i Asemblerze.

Program źródłowy W języku C (c) kompilator sdcc Program źródłowy w Asemblerze (a51) asembler sdas8051 Moduł Relokowalny (rel) Program (ihx) Moduł Relokowalny (rel) dsm51run DSM-51 Konsolidator sdcc

Na poprzednim slajdzie pokazano proces tworzenia programu składającego się z dwóch modułów: jeden moduł napisany jest w języku Asemblera, drugi w języku C (nazwy języków zaczynamy wielką literą). Program tłumaczący z Asemblera nazywamy asemblerem, a program tłumaczący z C kompilatorem języka C. Program łączący poszczególne moduły to konsollidator (linker) Na następnym slajdzie pokazano plik konfiguracyjny dla programu make, który służy do przeprowadzenia procesu asemblacji, kompilacji i konsolidacji

Plik Makefile main.ihx: main.rel dsm.rel sdcc $^ main.rel: main.c sdcc -c $< dsm.rel: dsm.a51 sdas8051 -l -o $< run: main.ihx dsm51run $<

Test Co to jest mikrosterownik? Wymień nazwy co najmniej sześciu języków programowania. Do czego służy kompilator? Do czego służy konsolidator? Co to jest asembler? Co to jest Asembler? Wymień 10 słów kluczowych języka C Wymień funkcje typowego programatora układów scalonych

Dziękuję za uwagę.