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

Wielkość: px
Rozpocząć pokaz od strony:

Download "Krótki kurs programowania w języku C mikrosterowników standardu MCS-51 z wykorzystaniem systemu DSM-51, kompilatora SDCC i środowiska MIDE-51"

Transkrypt

1 Grzegorz Cygan Krótki kurs programowania w języku C mikrosterowników standardu MCS-51 z wykorzystaniem systemu DSM-51, kompilatora SDCC i środowiska MIDE-51 wydanie 2

2 1.Spis treści 1. Przygotowanie komputera do pracy z DSM Pierwszy program dla systemu DSM-51 z wykorzystaniem MIDE Zmienne Typy proste Typy złożone Organizacja pamięci mikrosterownika Instrukcje zmieniające przebieg wykonywania programu Pętle for i while Typowe zastosowania pętli for Wybrane funkcje z biblioteki stdio Funkcja putchar dla wyświetlacza LCD Funkcja putchar dla sygnalizatora dźwiękowego Funkcja printf Programowanie wyświetlacza LCD systemu DSM Wyświetlanie znaków bez korzystania z podprogramów systemu DSM Korzystanie z instrukcji sterujących sterownika HD Programowanie układów wewnętrznych mikrosterownika Programowanie portów Programowanie układu transmisji szeregowej SIO Programowanie sterownika przerwań Miernik refleksu Programowanie zewnętrznych układów peryferyjnych Przetwornik A/C Silnik krokowy Wyświetlacz siedmiosegmentowy Dodatak A - Wybrane rejestry mikrosterownika Rejestr konfiguracyjny układów czasowo-licznikowych TCON - drugi rejestr układów czasowo-licznikowych Rejestr konfiguracyjny układu transmisji szeregowej Rejestr sterowania poborem mocy Rejestr sterownika przerwań Dodatek B - Niezbędne pliki Plik nagłówkowy DSM Koder morse'a dla MCS Miernik refleksu...25 Grzegorz Cygan Krótki kurs programowania... 2

3 1 Przygotowanie komputera do pracy z DSM-51 Do wykonania ćwiczeń potrzebny będzie komputer z kompilatorem języka C generujący kod w języku maszynowym mikrosterowników standardu MCS-51. Wszystkie programy zostały sprawdzone kompilatorem sdcc, który jest rozpowszechniany na licencji Open Source. Niezbędne jest także oprogramowanie systemu DSM-51. W systemie operacyjnym musi być zdefiniowana zmienna Path ze ścieżkami dostępu do programów wykonywalnych kompilatora, aby możliwe było korzystanie z kompilatora z wiersza poleceń. Ćwiczenie 1 1. Połącz komputer z systemem DSM-51 poprzez port COM1 i włącz zasilanie systemu DSM Uruchom systemu Windows i zaloguj się na swoje konto. 3. Sprawdź czy jest zainstalowane oprogramowanie systemu DSM-51 oraz środowisko programistyczne MIDE Sprawdź, czy w katalogu C:\MIDE\sdcc\bin znajduje się plik dsm51run.exe. 5. Uruchom wiersz poleceń cmd i wydaj w nim polecenie sdcc. Komunikat podobny do takiego: Nazwa 'sdcc' nie jest rozpoznawana jako polecenie wewnętrzne lub zewnętrzne, program wykonywalny lub plik wsadowy. świadczy, że albo nie zainstalowano wymienionych programów, albo nie ma ustawionej zmiennej środowiskowej Path. Zmienna ta powinna zawierać ścieżkę do kompilatora C:\MIDE\sdcc\bin. 6. W swoim folderze domowym utwórz folder KursC przeznaczony na pliki tworzone podczas zajęć. Skopiuj do tego folderu pliki: dms51.h i mors.asm. 2 Pierwszy program dla systemu DSM-51 z wykorzystaniem MIDE-51 MIDE-51 to środowisko programistyczne, które posiada edytor tekstu z kolorowaniem składni. Środowisko MIDE-51 musi zostać skonfigurowane. W tym celu należy: wcisnąć F12 i w zakładce Programmer, w polu Execute file wpisać lub wskazać C:\MIDE\sdcc\bin\dsm51run.exe należy także zaznaczyć opcje ShortPathname 8.3 format oraz Output with.hex Extension. Rysunek 1: Okno konfiguracji środowiska MIDE-51 Grzegorz Cygan Krótki kurs programowania... 3

4 Po napisaniu programu wystarczy nacisnąć Ctrl+F9, aby program został skompilowany i uruchomiony w systemie DSM-51. Program źródłowy zostaje poddany kompilacji, w wyniku której otrzymujemy plik wynikowy (z rozszerzeniem ihx lub hex). Plik wynikowy jest przesyłany do systemu DSM-51 za pomocą programu dsm51run.exe. Rysunek 2 pokazuje, co się dzieje po wciśnięciu Ctrl+F9. Program źródłowy Kompilacja (sdcc) Program wynikowy Uruchomienie (dsm51run) DSM-51 Ćwiczenie 2 1. Uruchom MIDE-51. Rysunek 2: Proces tworzenia programu dla systemu DSM Przepisz program z listingu 1 i zapisz go w pliku z rozszerzeniem c. Pamiętaj o zapisywaniu w folderze KursC. Listing 1 #include <8051.h> P1_7 = 0; 3. Uruchom program skrótem Ctrl+F9. Program składa się tylko z funkcji main (program główny), która ustawia stan niski na porcie P1.7. Dyrektywa #include dołącza plik nagłówkowy zawierający deklarację portu P1_7. 3 Zmienne Zmienne służą do przechowywania danych (liczb, tekstu). Każda zmienna ma określony typ. Do kodowania zmiennych stałoprzecinkowych używa się najczęściej naturalnego kodu dwójkowego NBC lub kodu uzupełnień do dwóch U2. Liczby zmiennoprzecinkowe kodowane są zgodnie ze standardem IEEE754. Do kodowania znaków korzysta się z kodu ASCII. Każda zmienna musi zostać zadeklarowana. Podczas deklaracji podaje się typ i nazwę zmiennej. 3.1 Typy proste Niestety w C nie określono rozmiaru poszczególnych typów. Wiadomo jedynie, że rozmiar typu char jest mniejszy lub równy rozmiarowi typu short, short int jest mniejszy lub równy int, itp. Można to zapisać, za pomocą operatora sizeof i operatorów relacji włąściwych dla języka C, Grzegorz Cygan Krótki kurs programowania... 4

5 następująco: sizeof char <= sizeof short <= sizeof int <= sizeof long Rozmiary poszczególnych typów używane w kompilatorze sdcc, którego będziemy używać na zajęciach, przedstawiono w tabeli. Dla porównania podano także rozmiary typów w języku Java, w którym są one zdefiniowane. Tabela 1: Porównanie typów prostych w języku C i Java i i ich rozmiar Nazwa typu bit Rodzaj Język C (kompilator sdcc) Język Java 1 Nie występuje char 8 16 byte Nie występuje 8 stałoprzecinkowy short int long float zmiennoprzecinkowy double Liczba bitów decyduje oczywiście o zakresie dopuszczalnych wartości. Jeżeli np. typ jest 16 bitowy liczby mogą być z zakresu od ( ) do (2 15-1), czyli od do Modyfikator unsigned zmienia zakres typu int na liczby dodatnie z zakresu od 0 do (65535). W języku Java modyfikator unsigned nie występuje. Typ char w języku C ma najczęściej 8 bitów więc jest używany do przechowywania bajtów (odpowiednik typu byte z języka Java). Warto wiedzieć, że procesor 8-bitowy będzie pracował najefektywniej na liczbach 8- bitowych. Dlatego pisząc programy dla systemu DSM-51 do zapisu liczb będzie często używany typ char, jeśli zakres od -128 do 127 jest wystarczający. Do przechowywania liczb dodatnich będziemy korzystali z typu unsigned char, którego zakres wartości wynosi od 0 do Typy złożone Typy złożone składają się z typów prostych, są to struktury, unie, tablice, a także pola bitowe. Tych ostatnich nie polecam! Ze względu na to, że niniejsza publikacja to tylko "krótki kurs programowania", nie będę omawiał struktur oraz unii. Tak deklarujemy tablicę o nazwie napis, w której można przechowywać 10 zmiennych typu char. char napis[10]; Tablice przechowujące zmienne typu char pełnią w języku C ważną rolę, ponieważ służą do przechowywania napisów (stringów). W tablicy 10-elementowej można przechowywać napis 9- literowy, bo na końcu napisu musi się znaleźć element o wartości 0 (NUL) oznaczający koniec napisu. 3.3 Organizacja pamięci mikrosterownika W komputerach PC do przechowywania zmiennych służy pamięć operacyjna. W systemach z mikrosterownikami MCS-51 nie ma pamięci operacyjnej. Wyróżnia się tu oddzielną pamięć dla danych i dla programów. Ponadto pamięć danych składa się z kilku niezależnych przestrzeni adresowych, które wynieniono poniżej: Tabela 2: Przestrzenie adresowe mikrosterowników standardu MCS-51 Przestrzeń Opis rozmiar sfr rejestry specjalnego przeznaczenia Obszar nieciągły (omówienie wybranych Grzegorz Cygan Krótki kurs programowania... 5

6 data wewnętrzna pamięć danych o dostępie bezpośrednim 128 B idata wewnętrzna pamięć danych o dostępie pośrednim 128 B pdata xdata zewnętrzna pamięć danych (dostęp za pomocą indeksowania rejestrami Ri) zewnętrzna pamięć danych (dostęp za pomocą indeksowania rejestrem DPTR) rejestrów w dodatku A) maks. 256 B* w jednym banku maks. 64 KiB = B * code pamięć programu maks. 64 KiB = B * * - poza mikrosterownikiem, rozmiar zależy od zastosowanych ukłądów pamięciowych Zmienne mogą być przechowywane we wszystkich wymienionych przestrzeniach, kompilator decyduje o przeznaczeniu poszczególnych przestrzeni adresowych. Programista może wpływać na decyzje kompilaltora umieszczając przed deklaracjami zmiennych słowa kluczowe: sfr, data, idata, pdata, xdata, code. Zauważ, że nazwy zaczynają się od dwóch znaków podkreślenia, dlatego że nie są to standardowe słowa języka C. Kompilator w miarę możliwości będzie korzystał rejestrów roboczych zlokalizowanych w przestrzeni data. Przestrzeń ta jest najbardziej cenna, ponieważ dostęp do niej jest najszybszy. Jeżeli w programie występują tzw stałe, czyli "zmienne", których wartość nie zmienia się, należy korzystać z modyfikatora const. Dla zilustrowania tego zagadnienia przedstawiam program, w którym jedna linia decyduje o wykorzystaniu poszcególnych obszarów pamięci. Zadaniem programu jest wyświetlenie tekstu, którego treść się nie zmienia w czasie działania programu. Przy nieumiejętnym zadeklarowaniu zmiennej napis: char napis[] = "Ala ma kota, a Ola ma psa."; treść napisu (łącznie 27 bajtów) zostanie umieszczona w cennej pamięci wewnętrznej. Wystarczy użyć modyfikatora const, aby systuację poprawić. const char napis[] = "Ala ma kota, a Ola ma psa."; Ćwiczenie 3 1. Uruchom program przykładowy. 2. Po każdej zmianie deklaracji zmiennej napis sprawdzaj wykorzystanie poszcególnych przestrzeni adresowych, zaglądając do odpowiednich plików mem. Wypróbuj kolejno: 1. char napis[] = "Ala ma kota, a Ola ma psa."; 2. const char napis[] = "Ala ma kota, a Ola ma psa."; 3. const char * napis = "Ala ma kota, a Ola ma psa."; 4. const char * const napis = "Ala ma kota, a Ola ma psa."; 3. Odpowiedź znajduje się w tabeli 2. Tabela 3: Zajętość pamięci dla programu z listingu 2 w zależności od sposobu delaracji zmiennej (informacje uzyskane z plku z rozszerzeniem mem) Deklaracja stringu Przestrzeń data (Internal RAM) Zajętość pamięci Przestrzeń code (ROM/EPROM/ FLASH) char napis[] = "Ala ma kota, a Ola ma psa."; const char napis[] = "Ala ma kota, a Ola ma psa."; const char * napis = "Ala ma kota, a Ola ma psa."; const char * const napis = "Ala ma kota, a Ola ma psa."; Grzegorz Cygan Krótki kurs programowania... 6

7 Listing 2 #include <stdio.h> #include <ctype.h> char napis[] = "Ala ma kota, a Ola ma psa."; void putchar (char c) if (isprint (c)) WRITE_DATA (c); LCD_CLR; puts (napis); 4 Instrukcje zmieniające przebieg wykonywania programu Instrukcje if, else, switch, while, do, for, continue, break i goto umożliwiają wykonanie fragmentu programu w zależności od spełnienia określonego warunku, np wciśnięcie klawisza. Możliwe jest także wielokrotne powtórzenie fragmentu, itp. Rysunek 3a pokazuje działanie instrukcji if. Rysunek 3b przedstawia działanie pętli. Do budowy pętli wykorzystujemy instrukcje for i while. W algorytmie przedstawionym na rysunku 3b sprawdzanie warunku odbywa się na początku (przed wykonaniem pętli), ale możliwe jest także sprawdzenie warunku na końcu pętli za pomocą pętla do... while. Fragment poprzedzający warunek Fragment poprzedzający pętlę Warunek Blok instrukcji wykonane warunkowo Warunek Blok instrukcji wykonane warunkowo Dalsza część programu Dalsza część programu a) b) Rysunek 3: Algorytm programu a) z instrukcją warunkową, b) z pętlą. Grzegorz Cygan Krótki kurs programowania... 7

8 4.1 Pętle for i while Dla omówienia poszczególnych instrukcji warunkowych wykonajmy zadanie polegające na wydrukowaniu kolejny liczb. Najlepiej do tego zadania nadaje się pętla for, ale dla porównania zastosojemy także pętlę while. Po słowie kluczowym for w nawiasie podaje się 3 wyrażenia oddzielone średnikami. Listing 3 unsigned char i; WRITE_INSTR (1); for (i = 0; i < 5; i++) WRITE_DATA (i + '0'); Pierwsze wyrażenie (i = 0) służy do inicjalizacji zmiennej, czyli nadania zmiennej początkowej wartości. Drugie wyrażenie (i < 5), to warunek wykonania pętli. Trzecie wyrażenie mówi co należy po każdym wykonaniu pętli. W tym przykładzie i++ to postinkrementacja, czyli zwiększenie wartości zmiennej o jeden. Pętla while, podobnie jak for, umożliwia wielokrotne powtórzenie fragmentu programu. Po słowie kluczowym while w nawiasie podaje się jedno wyrażenie - warunek wykonania pętli. Można osiągnąć taki sam efekt, jak w przypadku pętli for, ale inicjalizację zmiennej trzeba wykonać przed pętlą, a inkrementację zmiennej wewnątrz pętli. Listing 4 unsigned char i = 0; WRITE_INSTR (1); while (i < 5) WRITE_DATA (i + '0'); i++; 4.2 Typowe zastosowania pętli for W ćwiczeniu pokazano dwa typowe zastosowania pętli for: do zbudowania pętli nieskończonej i do wygenerowania zwłoki czasowej. Listing 5 #include <8051.h> unsigned int i; for ( ; ; ) for (i = 0; i < 65535; i++) P1_7 =!P1_7; Grzegorz Cygan Krótki kurs programowania... 8

9 Pętla nieskończona (for ( ; ; )) nie zawiera ani inicjalizacji zmiennej, ani warunku, ani inkrementacji zmiennej. Pętlę nieskończoną można zrealizować także za pomocą instrukcji while (1). W języku C każda wartość niezerowa, np. 1, oznacza prawdę, dlatego pętla nigdy się nie kończy. Pętla generująca opóźnienie (for (i = 0; i < 65535; i++)) nie zawiera żadnych instrukcji, ponieważ chodzi tylko o zajęcie procesorowi czasu. Oczywiście jest to swoiste marnowanie mocy obliczeniowej, ale jest to zarazem najprostszy sposób osiągnięcia zwłoki czasowej. Ponieważ, jak już wspomniałem, pętla nie zawiera instrukcji (nawiasy klamrowe są puste) można pętlę zapisać krócej tak: for (i = 0; i < 65535; i++); Ćwiczenie 4 1. Przetestuj program przykładowy. 2. Spróbuj zwiększyć dziesięciokrotnie wartość zwłoki. 3. Zastąp zęwnętrzną pętlę for pętlą while. 5 Wybrane funkcje z biblioteki stdio Program w języku C składa się z pewnej (praktycznie nieograniczonej) liczby funkcji. Funkcja main jest uruchamiana jako pierwsza, czyli jest programem głównym. Z funkcji main można wywołać inne funkcje. Można samodzielnie pisać funkcje, albo korzystać z funkcji bibliotecznych. Aby skorzystać z funkcji bibliotecznych należy dołaczyć odpowiedni plik nagłówkowy. Aby korzystać z biblioteki stdio dołączamy plik stdio.h w taki sposób: #include <stdio.h> Funkcję puts można wykorzystywać do drukowania napisów na różnego typu urządzeniach. W komputerze PC jest to zwykle monitor, a w mikrosterownikach wyświetlacz i interfejs szeregowe wystarczy napisać odpowiednią funkcję putchar. 5.1 Funkcja putchar dla wyświetlacza LCD Ćwiczenie 5 1. Uruchom następujący program. 2. Poeksperymentuj z programem usuwając linie, których działanie chcesz sprawdzić. Zamiast usuwania lepiej te linie zakomentować, czyli poprzedzić je dwoma ukośnikami. W zasadzie taki typ komentarza pojawił się dopiero w języku C++, ale występują we wszystkich nowych kompilatorach języka C. W środowisku MIDE komentarze są oznaczone kolorem zielonym. Poniżej przedstawiono przykład zastosowania komentarza. // WRITE_DATA (c); Listing 6 #include <stdio.h> #include <ctype.h> void putchar (char c) if (isprint (c)) WRITE_DATA (c); Grzegorz Cygan Krótki kurs programowania... 9

10 LCD_CLR; puts ("CENTRUM EDUKACJI ZAWODOWEJ"); Dyrektywy include powodują dołączenie plików nagłówkowych (z rozszerzeniem h). W plikach nagłówkowych znajdują się deklaracje funkcji bibliotecznych, np.: w pliku stdio.h są zadeklarowane funkcje putchar i puts, w ctype.h funkcja isprint. W pliku dsm51.h zdefiniowano makroinstrukcje LCD_CLR i LCD_DATA. Zauważ, że nazwy makroinstrukcji, w odróżnieniu od funkcji, piszemy wielkimi literami. Nagłówek funkcji putchar informuje, że funkcja zwraca typ void, oraz że funkcja przyjmuje jeden argument typu char. Funkcja putchar wywołuje funkcję isprint, aby sprawdzić, czy znak da się wydrukować. Do drukowania poszczególnych znaków wykorzystuje się makroinstrukcję WRITE_DATA, która z kolei wywołuje odpowiedni podprogram systemu DSM-51. Nagłówek funkcji main informuje, że funkcja ta, ani nie przyjmuje, ani nie zwraca argumentów. Do drukowania napisu korzystamy z funkcji puts, ta korzysta z putchar, aby drukować poszczególne litery. 5.2 Funkcja putchar dla sygnalizatora dźwiękowego Ćwiczenie 6 1. Podobnie jak poprzednio utwórz następujący plik z programem w języku C. Możesz skorzystać z edytora środowiska MIDE-51, notatnika lub innego. Zauważ, że program jest podobny do poprzedniego. Zapisz program w pliku hellomors.c. 2. Druga część programu napisana jest w języku Asemblera w pliku mors.asm. 3. Teraz należy skompilować program, który jest napisany w języku C, zasemblować program w języku Asemblera, połączyć obie części w cały program za pomocą konsolidatora i wysłać do systemu DSM-51, wykonując poniższe polecenia: sdcc -c hellomors.c sdas8051 -l -o mors.asm sdcc hellomors.rel mors.rel dsm51run hellomors.ihx 4. Zapoznaj się z plikami wygenerowanymi w poszczególnych etapach tworzenia pliku wynikowego. Listing 7 /* Ten program sklada sie z dwoch plikow: hellomors.c i mors.a51 Program nalezy kompilowac z wiersza polecen: sdcc -c hellomors.c sdas8051 -l -o mors.asm sdcc hellomors.rel mors.rel dsm51run hellomors.ihx */ #include <stdio.h> #include <ctype.h> #include <8051.h> extern void mors_putchar (char); void putchar (char c) if (isprint (c)) WRITE_DATA (c); Grzegorz Cygan Krótki kurs programowania... 10

11 mors_putchar (c); void main () for (;;) puts ("CENTRUM EDUKACJI ZAWODOWEJ"); 5.3 Automatyzacja procesu tworzenia programu przy użyciu make Zarządzanie budową programu składającego się z kilku plików omówimy na przykładzie programu składającego sie z dwóch plików źródłowych, napisanych w dwóch językach: w języku C hellomors.c i w Asemblerze mors.asm. Proces tworzenia pliku wynikowego hellomors.ihx przedstawia rysunek.na rysunku wymieniono polecenia, które należy wydać z wiersza poleceń. hellomors.c mors.asm Kompilacja sdcc -c hellomors.c Asemblacja sdas8051 -l -o mors.asm hellomors.rel mors.rel Konsolidacja sdcc hellomors.rel mors.rel hellomors.ihx Uruchomienie dsm51run hellomors.ihx Po dokonaniu zmian w pliku hellomors.c należy ponownie skompilować ten plik, następnie skonsolidować i uruchomić program. Polecenia można zapisać w pliku z rozszerzeniem cmd. Oto zawartość pliku: sdcc -c hellomors.c if errorlevel 1 goto stop sdas8051 -l -o mors.asm if errorlevel 1 goto stop sdcc hellomors.rel mors.rel dsm51run hellomors.ihx :stop pause Pracę znacznie usprawnia program make, który sprawdza, w których plikach dokonano zmian i wykonuje odpowiednie polecenia. Program czyta plik Makefile, którego zawartosć może być następująca: hellomors.ihx : hellomors.rel mors.rel sdcc hellomors.rel mors.rel hellomors.rel : hellomors.c sdcc -c hellomors.c Grzegorz Cygan Krótki kurs programowania... 11

12 mors.rel : mors.asm sdas8051 -l -o mors.asm run : hellomors.ihx dsm51run hellomors.ihx W pliku zapisane są nastęujące cele: hellomors.ihx, hellomors.rel, mors.rel oraz sztuczny cel run. Po nazwie celu umieszczony jest dwukropek, po którym wymienione są warunki budowy celu. Czyli, aby zbudować hellomors.ihx musi być plik hellomors.rel i mors.rel. W następnych liniach znajdują sie polecenia budowy celu poprzedzone tabulatorem. Uruchomienie programu make następuje przez wydania polecenia make. Sztuczny cel run umożliwia uruchomienie programu w systemie DSM-51. Należy po prostu wywołać program make z nazwą tego celu, czyli napisać w wierszu poleceń, czyli: make run Ćwiczenie 7 1. Zbuduj program "koder morse'a" korzystając z make. 2. Dodaj sztuczny cel o nazwie clean, który usunie wszystkie niepotrzebne pliki powstałe podczas tworzenia programu wynikowego. 5.4 Funkcja printf Standardową funkcja wyjścia printf jest dużo bardziej uniwersalna od funkcji puts. Oprócz statycznych napisów można za jej pomocą drukować wartości zmiennych w różnych systemach liczbowych. Podobnie jak puts funkcja printf korzysta z funkcji putchar do drukowania poszczególnych znaków. Siła funkcji polega na zastosowaniu specyfikatorów formatowania (z prefiksem %), które można umieszczać w dowolnym miejscu stringu formatującego. Każdemu specyfikatorowi odpowiada jedna zmienna lub wyrażenie na liście argumentów funkcji printf. Poniżej przedstawiono wybrane specyfikatory przydatne zwłaszcza w programach dla mikrosterowników. %d wartość zmiennej w postaci dziesiętnej ze znakiem; %u wartość zmiennej w postaci dziesiętnej bez znaku; %x wartość zmiennej w postaci szesnastkowej; %c znak o kodzie ASCII równym wartość zmiennej ośmiobitowej; %04.3f wartość liczby zmiennoprzecinkowej typu float w polu o szerokości 4 znaków części całkowitej i 3 - części ułamkowej. Wolne pola poprzedzające będą wypełnione zerami. %s string; Listing 8 #include <stdio.h> #include <ctype.h> void putchar (char c) if (isprint (c)) WRITE_DATA (c); char wiek = 25; LCD_CLR; printf ("Mam %d lat%c", wiek, (wiek < 5)? 'a' : ' '); W przykładowym programie %d formatuje sposób wyświetlania wartości zmiennej wiek, %c pokazuje wartość wyrażenia (wiek < 5)? 'a' : ' ', którego wynikiem jest zmienna typu char przyjmująca wartości a (kod ASCII litery a ) lub kod spacji. Grzegorz Cygan Krótki kurs programowania... 12

13 Ćwiczenie 8 1. Zamień specyfikator %d na %u, a następnie na %x. Zastanów się dlaczego takie a nie ine wartość są wyświetlane. 2. Napisz program korzystający i innych specyfikatorów. 6 Programowanie wyświetlacza LCD systemu DSM-51 Na pierwszych zajęciach korzystaliśmy z wyświetlacza LCD, ale używaliśmy do tego gotowego podprogramu z pamięci stałej systemu DSM-51. W systemie DSM-51 zastosowano wyświetlacz z popularnym sterownikiem HD Sterownik ten ma cztery rejestry, które w systemie DSM-51 są widziane w przestrzeni adresowej PDATA pod następującymi adresami. Tabela 4: Rejestry wyświetlacza LCD Adres Nazwa rejestru Kierunek Operacji 80H LCDWC wpis rozkazów 81H LCDWD wpis danych 82H LCDRC odczyt stanu 83H LCDRD odczyt danych 6.1 Wyświetlanie znaków bez korzystania z podprogramów systemu DSM-51 Użycie makroinstrukcji WRITE_DATA, WRITE_INSTR oznacza wykorzystanie podrogramów z systemu DSM-51. Jeśli piszemy program dla własnego systemu, to nie mamy żadnych gotowych podprogramów. W tym rozdziale nauczysz się jak obsłużyć wyświetlacz LCD bezpośrednio przez rejestry wyświetlacza. Ćwiczenie 9 1. Uruchom program przykładowy. 2. Zmodyfikuj go tak, aby wyświetlić więcej znaków. Listing 9 pdata at(0x81) unsigned char LCDWD; void main () LCDWD = 'a'; W zadaniu pierwszym pojawi się problem gubienia znaków. Wynika to z tego, że znaki będą drukowane poza obszarem widocznym na wyświetlaczu. Po prostu program LCD_DATA automatycznie przenosi kursor na początek. Zatem trzeba skasować wyświetlacz wpisując rozkaz o kodzie 1 (Clear display) do rejestru rozkazów. Pewnie zauważysz, że nadal nie są drukowane wszystkie znaki wyświetlacz nie nadąża. Najprostszym rozwiązaniem będzie zastosowanie pętli opóźniającej for. 3. Zamiast pętli opóźniającej dokonaj odczytu rejestru stanu. Najstarszy bit w tym rejestrze informuje, że wyświetlacz jest zajęty. Tabela 5: Instrukcje sterujące sterownika HD44780 (HITACHI) Nazwa oryginalna Opis kod Clear display Kasuj wyświetlacz Grzegorz Cygan Krótki kurs programowania... 13

14 Return home Ustaw kursor na początku X Entry mode set Ustawienie tryb wprowadzania danych I/D S Display ON/OFF control Cursor and display shift Sterowanie włączaniem i wyłączaniem D C B Przesunięcie kursora i (lub) wyświetlacza S/C R/L X X Function set Ustawienie funkcji wyświetlacza DL N F X X Set CG_RAM address Ustawienie adresu generatora znaków 0 1 A5 A4 A3 A2 A1 A0 Set DD_RAM address Ustawienie adresu danych 1 A6 A5 A4 A3 A2 A1 A0 Przed każdym wpisaniem danych LCDWD lub rozkazów LCDWC należy sprawdzać bit BYSY, jest to najstarszy bit w rejestrze LCDRC. Jeśli ten bit jest ustawiony, to oznacza, że wyświetlacz jest zajęty. Listing 10 void main () while (LCDRC & 0x80); LCDWC = 1; while (LCDRC & 0x80); LCDWD = 'D'; while (LCDRC & 0x80); LCDWD = '-'; //Pokaz znak - //Czekaj na gotowosc wyswietlacza //Clear display //Pokaz litere 'D' 6.2 Korzystanie z instrukcji sterujących sterownika HD44780 W poprzednim ćwiczeniu korzystaliśmy tylko z instrukcji sterującej Clear Display. Program przykładowy z listingu??? pokazuje zastosowanie rozkazu Cursor and display shift. Program jest zmodyfikowaną wersją programu z listingu 9. Na końcu dodano pętlę w której następuje przesuwanie napisu. Ćwiczenie Uruchom program przykładowy. 2. Zamień rozkaz Cursor and display shift na rozkaz Display ON/OFF control. Wartość bitu D powinna się zmianiać tak, aby napis migał. Listing 11 #include <stdio.h> #include <ctype.h> void putchar (char c) if (isprint (c)) WRITE_DATA (c); unsigned int i; LCD_CLR; Grzegorz Cygan Krótki kurs programowania... 14

15 puts ("CENTRUM EDUKACJI ZAWODOWEJ"); for (;;) for (i = 0; i < 50000; i++); //Zwloka czasowa WRITE_INSTR (0x18); //Cursor and display shift 7 Programowanie układów wewnętrznych mikrosterownika Mikrosterownik to coć więcej niż procesor (inna nazwa mikrosterownika to komputer jednoukładowy). Każdy mikrosterownik zawiera szereg układów sprzętowych, które wykonują określone zadania niezależnie od procesora. Wyjaśnię to na przykładzie licznika. Po zaprogramowaniu trybu pracy licznika i uruchomieniu, licznik zlicza impulsy doprowadzone do wejścia, na przykład zlicza impulsy z czujnika położenia wału korbowego w samochodzie. Praca licznika jest niezależna od pracy procesora, który może w tym czasie wykonywać na przykład obliczenie prędkości. 7.1 Programowanie portów Mikrosterowniki posiadają porty umożliwiające bezpośrednie sterowania elementów wykonawczymi, np. włączenia żarówki, przekaźnika, diody LED. Mikrosterownik 8051 posiada cztery porty ośmiobitowe, więc można sterować na przykład 32 diodami LED. Włączanie elementu sterowanego z portu odbywa się przez podanie zera na wymagany bit w porcie, co w języku Asemblera może wyglądać tak CRL P1.7 Po ludzku rozkaz ten mówi wyzeruj (clear) bit 7 portu P1. W systemie DSM-51 do tego portu dołączona jest dioda TEST. Niestety w języku C rozwiązanie nie jest równie proste. Asembler to język procesora, dlatego Asembler wie co co to P1.7. Programowanie portów nie jest zdefiniowane w standardzie języka C. Oczywiście kompilator SDCC posiada odpowiednie instrukcje umożliwiające wykonanie zadania. Instrukcje takie zaczynają się dwoma znakami '_'. Program przykładowy pokazuje jak zadeklarować zmienną specjalnego typu sbit. Po słowie at w nawiasie podaje się adres portu. Podobny program uruchamiałeś na pierwszym ćwiczeniu, ale zamiast deklaracji bitu dołączaliśmy plik nagłówkowy 8051.h, w którym ta deklaracja występuje. Listing 12 sbit at (0x97) P1_7; void main () P1_7 = 0; Sześciopozycyjny wyświetlacz siedmiosegmentowy sterowany jest z portów zewnętrznych znajdujących się w przestrzeni adresowej PDATA mikrosterownika, pod adresami 30 oraz 38. Włączeniem całego wyświetlacza steruje port P1.6. Listing 13 sbit at (0x96) P1_6; pdata at(0x30) unsigned char CSDS; pdata at(0x38) unsigned char CSDB; void main () unsigned char i; P1_6 = 0; while (1) Grzegorz Cygan Krótki kurs programowania... 15

16 CSDS = 0x01; CSDB = 0x7f; for(i = 0; i < 200; i++); CSDS = 0x02; CSDB = 0x06; for(i = 0; i < 200; i++); CSDS = 0x04; CSDB = 0x07; for(i = 0; i < 200; i++); 7.2 Programowanie układu transmisji szeregowej SIO Układ transmisji szeregowej umożliwia współpracę systemu DSM-51 z komputerem PC poprzez fizyczny port szeregowy RS-232 lub poprzez wirtualny port szeregowy, połączony fizycznie, np łączem USB, LAN, bluetooth. Zastosowania potru są praktycznie nieograniczone. Warto jeszcze wspomnieć o interfejsie MIDI, który jest stosowany w elektronicznych instrumentach muzycznych. Ćwiczenie Uruchom program przykładowy. 2. Uruchom program program Putty i ustaw następujące parametry transmisji: prędkość v BR = b/s, 8 bitów danych, 1 bit stopu. 3. Zmień ustawienia szybkości transmisji i wypróbuj działanie programu. Listing 14 #include <stdio.h> #include <8051.h> void putchar (char c) while (!TI); TI = 0; SBUF = c; Grzegorz Cygan Krótki kurs programowania... 16

17 void main () unsigned char i; TMOD = 0x20; SCON = 0x52; PCON = 0x80; TH1 = 253; TR1 = 1; for (i = 0; ; i++) DELAY_100MS (20); printf ("Minela wlasnie %u\r", i); Instrukcja Omówienie TMOD = 0x20 T1: 8 bitowy czasomierz bez bramkowania. SCON = 0x52 REN=1, SM0=1, TI=1. Tryb 1 asynchroniczny, 8 bitów danych, szybkość regulowana układem T1 PCON = 0x80 SMOD = 1 TH1 = 253 TH1=256 f OSC 2 SMOD ( 1 ) 384v BR Częstotliwość zegarową f OSC można odczytać z rezonatora kwarcowego systemu DSM-51lub z dokumentacji. TR1 = 1 Uruchom układ czasowo-licznikowy T1 7.3 Programowanie sterownika przerwań Systemu przerwań umożliwia zrealizowanie systemu wielozadaniowego. W programie przykładowym w funkcji main w pętli while (1) następuje naprzemienne zapalanie i gaszenie diody TEST. Drugie (niezależne) zadanie włączanie i wyłączanie brzęczyka, wykonywane jest w programie obsługi przerwania od układu czasowo licznikowego. Dla przypomnienia program główny to funkcja main. Programy obsługi przerwania (ang. interrupt service routine, isr) mają w nagłówku funkcji słowo interrupt. Po nim podaje się numer układu, np. T0 ma numer 1. Nazwa ISR może być dowolna, ale dobrze jeśli coś mówi. Słowo using określa numer banku rejestrów. Ze wzoru można obliczyć czas, co jaki będzie się uruchamiał program obsługi przerwania od układu czasowego. bitow 12 2liczba T = = f OSC 11,0592MHz =71,1ms ( 2 ) Listing 15 #include <8051.h> //Program glowny TMOD = 0x01; //Konfiguracja ukladow czasowo-licznikowych TR0 = 1; //Uruchomienie ukladu czasowo-licznikowego T0 ET0 = 1; //Wlaczenie zezwolenia na przerwania od T0 EA = 1; //Wlaczenie zezwolenia ogolnego while (1) P1_7 =!P1_7; DELAY_100MS(5) //Program z pamieci EPROM systemu DSM-51 Grzegorz Cygan Krótki kurs programowania... 17

18 //Program obslugi przerwania od ukladu czasowo-licznikowego T0 void t0_isr () interrupt 1 using 1 P1_5 =!P1_5; 7.4 Miernik refleksu Na podsumowanie przedstawiam gotowy program (listing znajduje się w dodatku B), w którym wykorzystano wszystkie układy wewnętrzne mikrosterownika omawiane w tym rozdziale. Miernik wykorzystuje złącze ISOLATED I/O, do którego dołączone są niektóre porty mikrosterownika. Port P3.4 do dołączenia "pedału hamulca" i port P1.2 do dołączenia "świateł stop". Rysunek 4: Złącze izolowane galwanicznie (rysunek z dokumenntacji DSM-51) Grzegorz Cygan Krótki kurs programowania... 18

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

Krótki kurs programowania w języku C mikrosterowników standardu MCS-51 z wykorzystaniem systemu DSM-51 i kompilatora SDCC Grzegorz Cygan Krótki kurs programowania w języku C mikrosterowników standardu MCS-51 z wykorzystaniem systemu DSM-51 i kompilatora SDCC wydanie 3 1.Spis treści 1. Wprowadzenie do programowania systemu

Bardziej szczegółowo

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

Grzegorz Cygan. Wstęp do programowania mikrosterowników w języku C 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

Bardziej szczegółowo

Start Bity Bit Stop 1 Bit 0 1 2 3 4 5 6 7 Par. 1 2. Rys. 1

Start Bity Bit Stop 1 Bit 0 1 2 3 4 5 6 7 Par. 1 2. Rys. 1 Temat: Obsługa portu komunikacji szeregowej RS232 w systemie STRC51. Ćwiczenie 2. (sd) 1.Wprowadzenie do komunikacji szeregowej RS232 Systemy bazujące na procesorach C51 mogą komunikować się za pomocą

Bardziej szczegółowo

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

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02 METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE Wykład 02 NAJPROSTSZY PROGRAM /* (Prawie) najprostszy przykład programu w C */ /*==================*/ /* Między tymi znaczkami można pisać, co się

Bardziej szczegółowo

4 Transmisja szeregowa na przykładzie komunikacji dwukierunkowej z komputerem PC, obsługa wyświetlacza LCD.

4 Transmisja szeregowa na przykładzie komunikacji dwukierunkowej z komputerem PC, obsługa wyświetlacza LCD. 13 4 Transmisja szeregowa na przykładzie komunikacji dwukierunkowej z komputerem PC, obsługa wyświetlacza LCD. Zagadnienia do przygotowania: - budowa i działanie interfejsu szeregowego UART, - tryby pracy,

Bardziej szczegółowo

MIKROPROCESORY architektura i programowanie

MIKROPROCESORY architektura i programowanie Systematyczny przegląd. (CISC) SFR umieszczane są w wewnętrznej pamięci danych (80H 0FFH). Adresowanie wyłącznie bezpośrednie. Rejestry o adresach podzielnych przez 8 są też dostępne bitowo. Adres n-tego

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce. 1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,

Bardziej szczegółowo

Programowanie strukturalne i obiektowe

Programowanie strukturalne i obiektowe Programowanie strukturalne i obiektowe Język C część I Opracował: Grzegorz Flesik Literatura: A. Majczak, Programowanie strukturalne i obiektowe, Helion, Gliwice 2010 P. Domka, M. Łokińska, Programowanie

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce. 1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,

Bardziej szczegółowo

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

ĆWICZENIE 5. TEMAT: OBSŁUGA PORTU SZEREGOWEGO W PAKIECIE KEILuVISON WYSYŁANIE PORTEM SZEREGOWYM ĆWICZENIE 5 TEMAT: OBSŁUGA PORTU SZEREGOWEGO W PAKIECIE KEILuVISON WYSYŁANIE PORTEM SZEREGOWYM Wiadomości wstępne: Port szeregowy może pracować w czterech trybach. Tryby różnią się między sobą liczbą bitów

Bardziej szczegółowo

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

petla:... ; etykieta określa adres w pamięci kodu (docelowe miejsce skoku) DJNZ R7, petla Asembler A51 1. Symbole Nazwy symboliczne Symbol jest nazwą, która może być użyta do reprezentowania wartości stałej numerycznej, wyrażenia, ciągu znaków (tekstu), adresu lub nazwy rejestru. Nazwy symboliczne

Bardziej szczegółowo

Szkolenia specjalistyczne

Szkolenia specjalistyczne Szkolenia specjalistyczne AGENDA Programowanie mikrokontrolerów w języku C na przykładzie STM32F103ZE z rdzeniem Cortex-M3 GRYFTEC Embedded Systems ul. Niedziałkowskiego 24 71-410 Szczecin info@gryftec.com

Bardziej szczegółowo

2 Przygotował: mgr inż. Maciej Lasota

2 Przygotował: mgr inż. Maciej Lasota Laboratorium nr 2 1/7 Język C Instrukcja laboratoryjna Temat: Wprowadzenie do języka C 2 Przygotował: mgr inż. Maciej Lasota 1) Wprowadzenie do języka C. Język C jest językiem programowania ogólnego zastosowania

Bardziej szczegółowo

Informatyka, Ćwiczenie 1. 1. Uruchomienie Microsoft Visual C++ Politechnika Rzeszowska, Wojciech Szydełko. I. ZałoŜenie nowego projektu

Informatyka, Ćwiczenie 1. 1. Uruchomienie Microsoft Visual C++ Politechnika Rzeszowska, Wojciech Szydełko. I. ZałoŜenie nowego projektu Informatyka, Ćwiczenie 1 1. Uruchomienie Microsoft Visual C++ I. ZałoŜenie nowego projektu Wybieramy menu: File>New>Files jak na rys. poniŝej Zapisujemy projekt pod nazwą LAN, w katalogu d:\temp\lab typu

Bardziej szczegółowo

Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane

Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane Stałe Oprócz zmiennych w programie mamy też stałe, które jak sama nazwa mówi, zachowują swoją wartość przez cały czas działania programu. Można

Bardziej szczegółowo

Wstęp. do języka C na procesor 8051. (kompilator RC51)

Wstęp. do języka C na procesor 8051. (kompilator RC51) Wstęp do języka C na procesor 8051 (kompilator RC51) Kompilator języka C Kompilator RC51 jest kompilatorem języka C w standardzie ANSI Ograniczeń w stosunku do ANSI jest niewiele głównie rzadkie operacje

Bardziej szczegółowo

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

Wykład VII. Programowanie. dr inż. Janusz Słupik. Gliwice, 2014. Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik Wykład VII Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2014 c Copyright 2014 Janusz Słupik Kompilacja Kompilator C program do tłumaczenia kodu źródłowego na język maszynowy. Preprocesor

Bardziej szczegółowo

Microsoft IT Academy kurs programowania

Microsoft IT Academy kurs programowania Microsoft IT Academy kurs programowania Podstawy języka C# Maciej Hawryluk Język C# Język zarządzany (managed language) Kompilacja do języka pośredniego (Intermediate Language) Kompilacja do kodu maszynowego

Bardziej szczegółowo

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

Podstawowe elementy proceduralne w C++ Program i wyjście. Zmienne i arytmetyka. Wskaźniki i tablice. Testy i pętle. Funkcje. Podstawowe elementy proceduralne w C++ Program i wyjście Zmienne i arytmetyka Wskaźniki i tablice Testy i pętle Funkcje Pierwszy program // Niezbędne zaklęcia przygotowawcze ;-) #include using

Bardziej szczegółowo

Wstęp...9. 1. Architektura... 13

Wstęp...9. 1. Architektura... 13 Spis treści 3 Wstęp...9 1. Architektura... 13 1.1. Schemat blokowy...14 1.2. Pamięć programu...15 1.3. Cykl maszynowy...16 1.4. Licznik rozkazów...17 1.5. Stos...18 1.6. Modyfikowanie i odtwarzanie zawartości

Bardziej szczegółowo

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

Wykład 15. Literatura. Kompilatory. Elementarne różnice. Preprocesor. Słowa kluczowe Wykład 15 Wprowadzenie do języka na bazie a Literatura Podobieństwa i różnice Literatura B.W.Kernighan, D.M.Ritchie Język ANSI Kompilatory Elementarne różnice Turbo Delphi FP Kylix GNU (gcc) GNU ++ (g++)

Bardziej szczegółowo

Podstawy programowania C. dr. Krystyna Łapin http://www.mif.vu.lt/~moroz/c/

Podstawy programowania C. dr. Krystyna Łapin http://www.mif.vu.lt/~moroz/c/ Podstawy programowania C dr. Krystyna Łapin http://www.mif.vu.lt/~moroz/c/ Tematy Struktura programu w C Typy danych Operacje Instrukcja grupująca Instrukcja przypisania Instrukcja warunkowa Struktura

Bardziej szczegółowo

Kompilator języka C na procesor 8051 RC51 implementacja

Kompilator języka C na procesor 8051 RC51 implementacja Kompilator języka C na procesor 8051 RC51 implementacja Implementowane typy danych bit 1 bit char lub char signed 8 bitów char unsigned 8 bitów int lub signed int 16 bitów unsigned int 16 bitów long lub

Bardziej szczegółowo

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main. Część XVI C++ Funkcje Jeśli nasz program rozrósł się już do kilkudziesięciu linijek, warto pomyśleć o jego podziale na mniejsze części. Poznajmy więc funkcje. Szybko się przekonamy, że funkcja to bardzo

Bardziej szczegółowo

Jak napisać program obliczający pola powierzchni różnych figur płaskich?

Jak napisać program obliczający pola powierzchni różnych figur płaskich? Część IX C++ Jak napisać program obliczający pola powierzchni różnych figur płaskich? Na początku, przed stworzeniem właściwego kodu programu zaprojektujemy naszą aplikację i stworzymy schemat blokowy

Bardziej szczegółowo

Ćwiczenie 9 Częstościomierz oparty na µc 8051(8052)

Ćwiczenie 9 Częstościomierz oparty na µc 8051(8052) Laboratorium Techniki Mikroprocesorowej Informatyka studia dzienne Ćwiczenie 9 Częstościomierz oparty na µc 8051(8052) Cel ćwiczenia Celem ćwiczenia jest zapoznanie się z możliwościami zastosowania mikrokontrolerów

Bardziej szczegółowo

Wstęp do Programowania, laboratorium 02

Wstęp do Programowania, laboratorium 02 Wstęp do Programowania, laboratorium 02 Zadanie 1. Napisać program pobierający dwie liczby całkowite i wypisujący na ekran największą z nich. Zadanie 2. Napisać program pobierający trzy liczby całkowite

Bardziej szczegółowo

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

Systemy wbudowane. Wprowadzenie. Struktura. Mikrokontrolery AVR. Wprowadzenie do programowania w C Systemy wbudowane Mikrokontrolery AVR Wprowadzenie do programowania w C dr inż. Maciej Piechowiak Wprowadzenie język C jest językiem strukturalnym wysokiego poziomu, jednak działającym blisko sprzętu i

Bardziej szczegółowo

Programowanie mikrokontrolerów AVR

Programowanie mikrokontrolerów AVR Programowanie mikrokontrolerów AVR Czym jest mikrokontroler? Mikrokontroler jest małym komputerem podłączanym do układów elektronicznych. Pamięć RAM/ROM CPU wykonuje program Układy I/O Komunikacje ze światem

Bardziej szczegółowo

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

1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość 1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość 2. Poprawna definicja wskażnika b to: a) float *a, **b = &a; b) float

Bardziej szczegółowo

Język ludzki kod maszynowy

Język ludzki kod maszynowy Język ludzki kod maszynowy poziom wysoki Język ludzki (mowa) Język programowania wysokiego poziomu Jeśli liczba punktów jest większa niż 50, test zostaje zaliczony; w przeciwnym razie testu nie zalicza

Bardziej szczegółowo

Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach?

Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach? Część XVIII C++ Funkcje Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach? Umiemy już podzielić nasz

Bardziej szczegółowo

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

Współpraca mikrokontrolera z wyświetlaczami: ciekłokrystalicznym i siedmiosegmentowym Instrukcja do ćwiczenia: Współpraca mikrokontrolera z wyświetlaczami: ciekłokrystalicznym i siedmiosegmentowym Materiał do samodzielnego opracowania: elementy języka C: typy danych i ich deklarowanie,

Bardziej szczegółowo

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Program, to lista poleceń zapisana w jednym języku programowania zgodnie z obowiązującymi w nim zasadami. Celem programu jest przetwarzanie

Bardziej szczegółowo

Podstawy języka C++ Maciej Trzebiński. Praktyki studenckie na LHC IFJ PAN. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. M. Trzebiński C++ 1/16

Podstawy języka C++ Maciej Trzebiński. Praktyki studenckie na LHC IFJ PAN. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. M. Trzebiński C++ 1/16 M. Trzebiński C++ 1/16 Podstawy języka C++ Maciej Trzebiński Instytut Fizyki Jądrowej Polskiej Akademii Nauk Praktyki studenckie na LHC IFJ PAN 6lipca2015 Uruchomienie maszyny w CC1 M. Trzebiński C++ 2/16

Bardziej szczegółowo

Programowanie I. O czym będziemy mówili. Plan wykładu nieco dokładniej. Plan wykładu z lotu ptaka. Podstawy programowania w językach. Uwaga!

Programowanie I. O czym będziemy mówili. Plan wykładu nieco dokładniej. Plan wykładu z lotu ptaka. Podstawy programowania w językach. Uwaga! Programowanie I O czym będziemy mówili Podstawy programowania w językach proceduralnym ANSI C obiektowym Java Uwaga! podobieństwa w podstawowej strukturze składniowej (zmienne, operatory, instrukcje sterujące...)

Bardziej szczegółowo

Przerwania w architekturze mikrokontrolera X51

Przerwania w architekturze mikrokontrolera X51 Przerwania w architekturze mikrokontrolera X51 (przykład przerwanie zegarowe) Ryszard J. Barczyński, 2009 Politechnika Gdańska, Wydział FTiMS, Katedra Fizyki Ciała Stałego Materiały dydaktyczne do użytku

Bardziej szczegółowo

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

Systemy wbudowane. Uniwersytet Łódzki Wydział Fizyki i Informatyki Stosowanej. Witold Kozłowski 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/

Bardziej szczegółowo

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

Organizacja pamięci VRAM monitora znakowego. 1. Tryb pracy automatycznej Struktura stanowiska laboratoryjnego Na rysunku 1.1 pokazano strukturę stanowiska laboratoryjnego Z80 z interfejsem częstościomierza- czasomierz PFL 21/22. Rys.1.1. Struktura stanowiska. Interfejs częstościomierza

Bardziej szczegółowo

Elementy języka C. ACprogramislikeafastdanceonanewlywaxeddancefloorbypeople carrying razors.

Elementy języka C. ACprogramislikeafastdanceonanewlywaxeddancefloorbypeople carrying razors. Wykład 3 ACprogramislikeafastdanceonanewlywaxeddancefloorbypeople carrying razors. Waldi Ravens J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 75 / 146 deklaracje zmiennych instrukcja podstawienia

Bardziej szczegółowo

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

MIKROKONTROLERY AVR JĘZYK C WYDAWNICTWO ATNEL PODSTAWY PROGRAMOWANIA. Miros aw Kardaś. Szczecin 2013. Mojej Żonie Kasi WYDAWNICTWO ATNEL MIKROKONTROLERY AVR JĘZYK C PODSTAWY PROGRAMOWANIA Miros aw Kardaś Szczecin 2013 Mojej Żonie Kasi Książka przeznaczona jest dla elektroników i hobbystów, którzy chcą szybko, opierając

Bardziej szczegółowo

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy Wykład 3, część 3 1 Język JAVA podstawy Plan wykładu: 1. Konstrukcja kodu programów w Javie 2. Identyfikatory, zmienne 3. Typy danych 4. Operatory, instrukcje sterujące instrukcja warunkowe,

Bardziej szczegółowo

Być może jesteś doświadczonym programistą, biegle programujesz w Javie,

Być może jesteś doświadczonym programistą, biegle programujesz w Javie, Kompendium PHP 01 Być może jesteś doświadczonym programistą, biegle programujesz w Javie, C++, Pythonie lub jakimś innym języku programowania, których jak myślę, powstało już tyle, że chyba nie ma osoby,

Bardziej szczegółowo

Politechnika Warszawska

Politechnika Warszawska Politechnika Warszawska Wydział Elektryczny Laboratorium Podstaw Techniki Mikroprocesorowej Skrypt do ćwiczenia M.43 Obliczanie wartości średniej oraz amplitudy z próbek sygnału język C .Część teoretyczna

Bardziej szczegółowo

Laboratorium Komputerowe Systemy Pomiarowe

Laboratorium Komputerowe Systemy Pomiarowe Jarosław Gliwiński, Łukasz Rogacz Laboratorium Komputerowe Systemy Pomiarowe ćw. Zastosowanie standardu VISA do obsługi interfejsu RS-232C Data wykonania: 03.04.08 Data oddania: 17.04.08 Celem ćwiczenia

Bardziej szczegółowo

interfejs szeregowy wyświetlaczy do systemów PLC

interfejs szeregowy wyświetlaczy do systemów PLC LDN SBCD interfejs szeregowy wyświetlaczy do systemów PLC SEM 08.2003 Str. 1/5 SBCD interfejs szeregowy wyświetlaczy do systemów PLC INSTRUKCJA OBSŁUGI Charakterystyka Interfejs SBCD w wyświetlaczach cyfrowych

Bardziej szczegółowo

Metodyki i Techniki Programowania 1 1 1. MECHANIZM POWSTAWANIA PROGRAMU W JĘZYKU C PODSTAWOWE POJĘCIA

Metodyki i Techniki Programowania 1 1 1. MECHANIZM POWSTAWANIA PROGRAMU W JĘZYKU C PODSTAWOWE POJĘCIA Metodyki i Techniki Programowania 1 1 ZAJ CIA 3. 1. MECHANIZM POWSTAWANIA PROGRAMU W JĘZYKU C PODSTAWOWE POJĘCIA IDE zintegrowane środowisko programistyczne, zawierające kompilator, edytor tekstu i linker,

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Laboratorium 1. Wstęp do programowania w języku Java. Narzędzia 1. Aby móc tworzyć programy w języku Java, potrzebny jest zestaw narzędzi Java Development Kit, który można ściągnąć

Bardziej szczegółowo

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

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta 16.09.2006. Strona 1 z 26. Powrót. Full Screen. Zamknij. Programowanie Sobera Jolanta 16.09.2006 Strona 1 z 26 1 Wprowadzenie do programowania 4 2 Pierwsza aplikacja 5 3 Typy danych 6 4 Operatory 9 Strona 2 z 26 5 Instrukcje sterujące 12 6 Podprogramy 15 7 Tablice

Bardziej szczegółowo

W przeciwnym wypadku wykonaj instrukcję z bloku drugiego. Ćwiczenie 1 utworzyć program dzielący przez siebie dwie liczby

W przeciwnym wypadku wykonaj instrukcję z bloku drugiego. Ćwiczenie 1 utworzyć program dzielący przez siebie dwie liczby Część XI C++ W folderze nazwisko36 program za każdym razem sprawdza oba warunki co niepotrzebnie obciąża procesor. Ten problem można rozwiązać stosując instrukcje if...else Instrukcja if wykonuje polecenie

Bardziej szczegółowo

Funkcja (podprogram) void

Funkcja (podprogram) void Funkcje Co to jest funkcja? Budowa funkcji Deklaracja, definicja i wywołanie funkcji Przykłady funkcji definiowanych przez programistę Przekazywanie argumentów do funkcji Tablica jako argument funkcji

Bardziej szczegółowo

1. Tworzenie nowego projektu.

1. Tworzenie nowego projektu. Załącznik do Instrukcji 1. Tworzenie nowego projektu. Wybieramy opcję z menu głównego New->QNX C Project. Wprowadzamy nazwę przechodzimy do następnego kroku NEXT. Wybieramy platformę docelową oraz warianty

Bardziej szczegółowo

Rozdział 4 KLASY, OBIEKTY, METODY

Rozdział 4 KLASY, OBIEKTY, METODY Rozdział 4 KLASY, OBIEKTY, METODY Java jest językiem w pełni zorientowanym obiektowo. Wszystkie elementy opisujące dane, za wyjątkiem zmiennych prostych są obiektami. Sam program też jest obiektem pewnej

Bardziej szczegółowo

Metody numeryczne Laboratorium 2

Metody numeryczne Laboratorium 2 Metody numeryczne Laboratorium 2 1. Tworzenie i uruchamianie skryptów Środowisko MATLAB/GNU Octave daje nam możliwość tworzenia skryptów czyli zapisywania grup poleceń czy funkcji w osobnym pliku i uruchamiania

Bardziej szczegółowo

Programowanie Proceduralne

Programowanie Proceduralne Programowanie Proceduralne Makefile Bożena Woźna-Szcześniak bwozna@gmail.com Akademia im. Jana Długosza Wykład 14 Co to jest Makefile Makefile jest plikiem reguł dla programu make. Wykorzystywany jest

Bardziej szczegółowo

Podstawy programowania (1)

Podstawy programowania (1) Podstawy programowania (1) doc. dr inż. Tadeusz Jeleniewski Konsultacje pokój 19 Poniedziałki, godz. 9:45 11:20 e-mail: tadeusz.jeleniewski@neostrada.pl Podstawy programowania (1) - wykład 1. Wprowadzenie

Bardziej szczegółowo

Podstawy programowania - 1

Podstawy programowania - 1 Podstawy programowania - 1 doc. dr inż. Tadeusz Jeleniewski Wykład: sobota B, godz. 10.30 12.55 sala 12 Laboratorium: sobota B, godz. 13.00 15.25 sala 2 sobota B, godz. 15.30-17.55 sala 2 e-mail: tadeusz.jeleniewski@pwr.wroc.pl

Bardziej szczegółowo

Funkcje standardowej biblioteki wejść-wyjść do wyświetlania i pobierania danych

Funkcje standardowej biblioteki wejść-wyjść do wyświetlania i pobierania danych Funkcje standardowej biblioteki wejść-wyjść do wyświetlania i pobierania danych Przykłady wykorzystanie funkcji printf i scanf do wyświetlania danych na wyświetlaczu LCD oraz komunikacji sterownika mikroprocesorowego

Bardziej szczegółowo

Programowanie mikrokontrolerów AVR z rodziny ATmega.

Programowanie mikrokontrolerów AVR z rodziny ATmega. Programowanie mikrokontrolerów AVR z rodziny ATmega. Materiały pomocnicze Jakub Malewicz jakub.malewicz@pwr.wroc.pl Wszelkie prawa zastrzeżone. Kopiowanie w całości lub w częściach bez zgody i wiedzy autora

Bardziej szczegółowo

Wprowadzenie do podstaw programowania AVR (na przykładzie mikrokontrolera ATmega 16 / 32)

Wprowadzenie do podstaw programowania AVR (na przykładzie mikrokontrolera ATmega 16 / 32) Wprowadzenie do podstaw programowania AVR (na przykładzie mikrokontrolera ATmega 16 / 32) wersja 0.4 (20 kwietnia 2015) Filip A. Sala W niniejszym, bardzo krótkim opracowaniu, postaram się przedstawić

Bardziej szczegółowo

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

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre) Uwagi dotyczące notacji kodu! Wyrazy drukiem prostym -- słowami języka VBA. Wyrazy drukiem pochyłym -- inne fragmenty kodu. Wyrazy w [nawiasach kwadratowych] opcjonalne fragmenty kodu (mogą być, ale nie

Bardziej szczegółowo

1. Wprowadzanie danych z klawiatury funkcja scanf

1. Wprowadzanie danych z klawiatury funkcja scanf 1. Wprowadzanie danych z klawiatury funkcja scanf Deklaracja int scanf ( const char *format, wskaźnik, wskaźnik,... ) ; Biblioteka Działanie stdio.h Funkcja scanf wczytuje kolejne pola (ciągi znaków),

Bardziej szczegółowo

dokument DOK 02-05-12 wersja 1.0 www.arskam.com

dokument DOK 02-05-12 wersja 1.0 www.arskam.com ARS3-RA v.1.0 mikro kod sterownika 8 Linii I/O ze zdalną transmisją kanałem radiowym lub poprzez port UART. Kod przeznaczony dla sprzętu opartego o projekt referencyjny DOK 01-05-12. Opis programowania

Bardziej szczegółowo

PROGRAMOWANIE w C prolog

PROGRAMOWANIE w C prolog PROGRAMOWANIE w C prolog dr inż. Jarosław Stańczyk Uniwersytet Przyrodniczy we Wrocławiu Wydział Biologii i Hodowli Zwierząt Katedra Genetyki 1 / jaroslaw.stanczyk@up.wroc.pl programowanie w c 17.10.2014

Bardziej szczegółowo

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

1. Cel ćwiczenia. 2. Podłączenia urządzeń zewnętrznych w sterowniku VersaMax Micro 1. Cel ćwiczenia Celem ćwiczenia jest zaprojektowanie sterowania układem pozycjonowania z wykorzystaniem sterownika VersaMax Micro oraz silnika krokowego. Do algorytmu pozycjonowania wykorzystać licznik

Bardziej szczegółowo

INSTRUKCJA OBSŁUGI PRZYSTAWKI PEN-01 DO PENDRIVE A

INSTRUKCJA OBSŁUGI PRZYSTAWKI PEN-01 DO PENDRIVE A INSTRUKCJA OBSŁUGI PRZYSTAWKI PEN-01 DO PENDRIVE A 1. Opis ogólny Przystawka umożliwia zapisywanie danych przesyłanych z urządzenia pomiarowego, np. z wagi, do pamięci typu pendrive (USB). Dane zapisywane

Bardziej szczegółowo

for (i=0; i<10; i=i+1) instrukcja; instrukcja zostanie wykonana 10 razy for (inicjalizacja; test; aktualizacja) instrukcja;

for (i=0; i<10; i=i+1) instrukcja; instrukcja zostanie wykonana 10 razy for (inicjalizacja; test; aktualizacja) instrukcja; Rok akademicki 2014/2015, Pracownia nr 5 2/36 Informatyka 1 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr II, studia niestacjonarne I stopnia Rok akademicki 2014/2015 Pracownia

Bardziej szczegółowo

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

KURS C/C++ WYKŁAD 1. Pierwszy program KURS C/C++ WYKŁAD 1 Pierwszy program Tworzenie programu odbywa sie w dwóch etapach: 1. opracowanie kodu źródłowego 2. generowanie kodu wynikowego Pierwszy etap polega na zapisaniu algorytmu za pomocą instrukcji

Bardziej szczegółowo

Ćwiczenie nr 3. Wyświetlanie i wczytywanie danych

Ćwiczenie nr 3. Wyświetlanie i wczytywanie danych Ćwiczenie nr 3 Wyświetlanie i wczytywanie danych 3.1 Wstęp Współczesne komputery przetwarzają dane zakodowane za pomocą ciągów zerojedynkowych. W szczególności przetwarzane liczby kodowane są w systemie

Bardziej szczegółowo

Powtórka algorytmów. Wprowadzenie do języka Java.

Powtórka algorytmów. Wprowadzenie do języka Java. Powtórka algorytmów. Wprowadzenie do języka Java. Przypomnienie schematów blokowych BEGIN Readln(a); Readln(b); Suma := 0; IF Suma < 10 THEN Writeln( Suma wynosi:, Suma); ELSE Writeln( Suma większa niż

Bardziej szczegółowo

Zgrywus dla Windows v 1.12

Zgrywus dla Windows v 1.12 Zgrywus dla Windows v 1.12 Spis treści. 1. Instalacja programu. 2 2. Pierwsze uruchomienie programu.. 3 2.1. Opcje programu 5 2.2. Historia zdarzeń 7 2.3. Opisy nadajników. 8 2.4. Ustawienia zaawansowane...

Bardziej szczegółowo

ADVANCE ELECTRONIC. Instrukcja obsługi aplikacji. Modbus konfigurator. Modbus konfigurator. wersja 1.1

ADVANCE ELECTRONIC. Instrukcja obsługi aplikacji. Modbus konfigurator. Modbus konfigurator. wersja 1.1 Instrukcja obsługi aplikacji 1 1./ instalacja aplikacji. Aplikacja służy do zarządzania, konfigurowania i testowania modułów firmy Advance Electronic wyposażonych w RS485 pracujących w trybie half-duplex.

Bardziej szczegółowo

PROGRAM TESTOWY LCWIN.EXE OPIS DZIAŁANIA I INSTRUKCJA UŻYTKOWNIKA

PROGRAM TESTOWY LCWIN.EXE OPIS DZIAŁANIA I INSTRUKCJA UŻYTKOWNIKA EGMONT INSTRUMENTS PROGRAM TESTOWY LCWIN.EXE OPIS DZIAŁANIA I INSTRUKCJA UŻYTKOWNIKA EGMONT INSTRUMENTS tel. (0-22) 823-30-17, 668-69-75 02-304 Warszawa, Aleje Jerozolimskie 141/90 fax (0-22) 659-26-11

Bardziej szczegółowo

Electronic Infosystems

Electronic Infosystems Department of Optoelectronics and Electronic Systems Faculty of Electronics, Telecommunications and Informatics Gdansk University of Technology Electronic Infosystems Microserver TCP/IP with CS8900A Ethernet

Bardziej szczegółowo

Ćwiczenie 1. Przygotowanie środowiska JAVA

Ćwiczenie 1. Przygotowanie środowiska JAVA Ćwiczenie 1 Przygotowanie środowiska JAVA 1. Wprowadzenie teoretyczne Instalacja JDK (Java Development Kit) NaleŜy pobrać z java.sun.com środowisko i zainstalować je. Następnie naleŝy skonfigurować środowisko.

Bardziej szczegółowo

JAVA. Platforma JSE: Środowiska programistyczne dla języka Java. Wstęp do programowania w języku obiektowym. Opracował: Andrzej Nowak

JAVA. Platforma JSE: Środowiska programistyczne dla języka Java. Wstęp do programowania w języku obiektowym. Opracował: Andrzej Nowak JAVA Wstęp do programowania w języku obiektowym Bibliografia: JAVA Szkoła programowania, D. Trajkowska Ćwiczenia praktyczne JAVA. Wydanie III,M. Lis Platforma JSE: Opracował: Andrzej Nowak JSE (Java Standard

Bardziej szczegółowo

Modułowy programowalny przekaźnik czasowy firmy Aniro.

Modułowy programowalny przekaźnik czasowy firmy Aniro. Modułowy programowalny przekaźnik czasowy firmy Aniro. Rynek sterowników programowalnych Sterowniki programowalne PLC od wielu lat są podstawowymi systemami stosowanymi w praktyce przemysłowej i stały

Bardziej szczegółowo

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

Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych. Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych. 1. Rodzaje pamięci używanej w programach Pamięć komputera, dostępna dla programu,

Bardziej szczegółowo

Języki skryptowe w programie Plans

Języki skryptowe w programie Plans Języki skryptowe w programie Plans Warsztaty uŝytkowników programu PLANS Kościelisko 2010 Zalety skryptów Automatyzacja powtarzających się czynności Rozszerzenie moŝliwości programu Budowa własnych algorytmów

Bardziej szczegółowo

1.Wstęp. 2.Generowanie systemu w EDK

1.Wstęp. 2.Generowanie systemu w EDK 1.Wstęp Celem niniejszego ćwiczenia jest zapoznanie z możliwościami debuggowania kodu na platformie MicroBlaze oraz zapoznanie ze środowiskiem wspomagającym prace programisty Xilinx Platform SDK (Eclipse).

Bardziej szczegółowo

Pliki. Informacje ogólne. Obsługa plików w języku C

Pliki. Informacje ogólne. Obsługa plików w języku C Pliki Informacje ogólne Plik jest pewnym zbiorem danych, zapisanym w systemie plików na nośniku danych (np. dysku twardym, pendrive, płycie DVD itp.). Może posiadać określone atrybuty, a odwołanie do niego

Bardziej szczegółowo

TWORZENIE PROJEKTU W RIDE

TWORZENIE PROJEKTU W RIDE TWORZENIE PROJEKTU W RIDE Zintegrowane środowisko programistyczne RIDE7 firmy Raisonance umożliwia tworzenie, kompilację i debuggowanie kodu źródłowego na wiele różnych platform sprzętowych. Pakiet oprogramowania

Bardziej szczegółowo

Tworzenie nowego projektu w asemblerze dla mikroprocesora z rodziny 8051

Tworzenie nowego projektu w asemblerze dla mikroprocesora z rodziny 8051 Tworzenie nowego projektu w asemblerze dla mikroprocesora z rodziny 8051 Katedra Automatyki, Wydział EAIiE Akademia Górniczo-Hutnicza w Krakowie Marcin Piątek Kraków 2008 1. Ważne uwagi i definicje Poniższy

Bardziej szczegółowo

ECLIPSE wnioski z dwóch pierwszych laboratoriów

ECLIPSE wnioski z dwóch pierwszych laboratoriów PODSTAWY PROGRAMOWANIA 3-4 WYKŁAD 22-10-2015 ECLIPSE wnioski z dwóch pierwszych laboratoriów Dodanie pliku i konfiguracji startowej (każdy uruchamiany program powinien mieć własna konfigurację startową)

Bardziej szczegółowo

asix4 Podręcznik użytkownika CtMus04 - drajwer do wymiany danych z urządzeniami sterującymi MUS-04 firmy ELEKTORMETAL S.A.

asix4 Podręcznik użytkownika CtMus04 - drajwer do wymiany danych z urządzeniami sterującymi MUS-04 firmy ELEKTORMETAL S.A. asix4 Podręcznik użytkownika CtMus04 - drajwer do wymiany danych z urządzeniami sterującymi MUS-04 firmy ELEKTORMETAL S.A. w Cieszynie Podręcznik użytkownika Dok. Nr PLP4083 Wersja: 23-01-2007 Podręcznik

Bardziej szczegółowo

Temat: Obsługa portu komunikacji szeregowej RS232 w systemie STRC51. Ćwiczenie 2. (sd)

Temat: Obsługa portu komunikacji szeregowej RS232 w systemie STRC51. Ćwiczenie 2. (sd) 1.Wprowadzenie do komunikacji szeregowej RS232 Systemy bazujące na procesorach C51 mogą komunikować się za pomocą standardu RS232 np.: z komputerem PC. Rysunek 1. pokazuje format wymiany danych w fizycznej

Bardziej szczegółowo

1 Wielokrotne powtarzanie tych samych operacji

1 Wielokrotne powtarzanie tych samych operacji 1 Wielokrotne powtarzanie tych samych operacji Zadanie 1. roszę porównać następujące programy(efekt działania każdego z nich jest takisam). rzykład 1 przedstawia najbardziej typowy zapis, powodujący wykonanie

Bardziej szczegółowo

Kurs Podstawowy S7. Spis treści. Dzień 1

Kurs Podstawowy S7. Spis treści. Dzień 1 Spis treści Dzień 1 I System SIMATIC S7 - wprowadzenie (wersja 1401) I-3 Rodzina sterowników programowalnych SIMATIC S7 firmy SIEMENS I-4 Dostępne moduły i ich funkcje I-5 Jednostki centralne I-6 Podstawowe

Bardziej szczegółowo

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

Zadanie 04 Ktory z ponizszych typow danych w jezyku ANSI C jest typem zmiennoprzecinkowym pojedynczej precyzji? Zadanie 01 W przedstawionym ponizej programie w jezyku ANSI C w miejscu wykropkowanym brakuje jednej linii: #include... int main() { printf("tralalalala"); return 0; } A. B. "iostream" C.

Bardziej szczegółowo

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

Metody i algorytmy pomiarów przedmiotów metodami optycznymi. Rozdział 4. Oprogramowanie. Niewątpliwie podstawą poprawnego działania całego układu jest poprawnie napisany program sterujący pracą urządzeń i analizujący wyniki. Oprogramowanie sterujące projektowanym

Bardziej szczegółowo

Informacja o języku. Osadzanie skryptów. Instrukcje, komentarze, zmienne, typy, stałe. Operatory. Struktury kontrolne. Tablice.

Informacja o języku. Osadzanie skryptów. Instrukcje, komentarze, zmienne, typy, stałe. Operatory. Struktury kontrolne. Tablice. Informacja o języku. Osadzanie skryptów. Instrukcje, komentarze, zmienne, typy, stałe. Operatory. Struktury kontrolne. Tablice. Język PHP Język interpretowalny, a nie kompilowany Powstał w celu programowania

Bardziej szczegółowo

ĆWICZENIE. TEMAT: OBSŁUGA PRZETWORNIKA A/C W ukontrolerze 80C535 KEILuVISON

ĆWICZENIE. TEMAT: OBSŁUGA PRZETWORNIKA A/C W ukontrolerze 80C535 KEILuVISON ĆWICZENIE TEMAT: OBSŁUGA PRZETWORNIKA A/C W ukontrolerze 80C535 KEILuVISON Wiadomości wstępne: Wszystkie sygnały analogowe, które mają być przetwarzane w systemach mikroprocesorowych są próbkowane, kwantowane

Bardziej szczegółowo

MODBUS RTU wersja M1.14 protokół komunikacyjny wyświetlaczy LDN

MODBUS RTU wersja M1.14 protokół komunikacyjny wyświetlaczy LDN MODBUS RTU wersja M1.14 protokół komunikacyjny do wyświetlaczy SEM 04.2010 Str. 1/5 MODBUS RTU wersja M1.14 protokół komunikacyjny wyświetlaczy LDN W wyświetlaczach LDN protokół MODBUS RTU wykorzystywany

Bardziej szczegółowo

Wizualizacja stanu czujników robota mobilnego. Sprawozdanie z wykonania projektu.

Wizualizacja stanu czujników robota mobilnego. Sprawozdanie z wykonania projektu. Wizualizacja stanu czujników robota mobilnego. Sprawozdanie z wykonania projektu. Maciek Słomka 4 czerwca 2006 1 Celprojektu. Celem projektu było zbudowanie modułu umożliwiającego wizualizację stanu czujników

Bardziej szczegółowo

SystimPlus. Dokumentacja (FAQ) dla wersji: v1.14.05.12

SystimPlus. Dokumentacja (FAQ) dla wersji: v1.14.05.12 SystimPlus Dokumentacja (FAQ) dla wersji: v1.14.05.12 Spis treści 1.Co to jest SystimPlus?... 1 2.Instalacja i wymagania... 1 3.Jakie drukarki fiskalne obsługuje SystimPlus?... 3 4.Jak połączyć się z drukarką

Bardziej szczegółowo

#include int main( ) { int x = 10; long y = 20; double s; s = x + y; printf ( %s obliczen %d + %ld = %f, Wynik, x, y, s ); }

#include <stdio.h> int main( ) { int x = 10; long y = 20; double s; s = x + y; printf ( %s obliczen %d + %ld = %f, Wynik, x, y, s ); } OPERACJE WEJŚCIA / WYJŚCIA Funkcja: printf() biblioteka: wysyła sformatowane dane do standardowego strumienia wyjściowego (stdout) int printf ( tekst_sterujący, argument_1, argument_2,... ) ;

Bardziej szczegółowo

Struktura i działanie jednostki centralnej

Struktura i działanie jednostki centralnej Struktura i działanie jednostki centralnej ALU Jednostka sterująca Rejestry Zadania procesora: Pobieranie rozkazów; Interpretowanie rozkazów; Pobieranie danych Przetwarzanie danych Zapisywanie danych magistrala

Bardziej szczegółowo

Laboratorium Systemów wbudowanych Wyższa Szkoła Zarządzania i Bankowości, Informatyka studia inżynierskie

Laboratorium Systemów wbudowanych Wyższa Szkoła Zarządzania i Bankowości, Informatyka studia inżynierskie Laboratorium Systemów wbudowanych Wyższa Szkoła Zarządzania i Bankowości, Informatyka studia inżynierskie Ćwiczenie nr l Podstawy programowania mikrokontrolerów rodziny AVR8 opracował dr inż. Wojciech

Bardziej szczegółowo

Programowanie niskopoziomowe

Programowanie niskopoziomowe Programowanie niskopoziomowe Programowanie niskopoziomowe w systemie operacyjnym oraz poza nim Tworzenie programu zawierającego procedury asemblerowe 1 Programowanie niskopoziomowe w systemie operacyjnym

Bardziej szczegółowo

#include void main(void) { int x = 10; long y = 20; double s; s = x + y; printf ( %s obliczen %d + %ld = %f, Wynik, x, y, s ); }

#include <stdio.h> void main(void) { int x = 10; long y = 20; double s; s = x + y; printf ( %s obliczen %d + %ld = %f, Wynik, x, y, s ); } OPERACJE WEJŚCIA / WYJŚCIA Funkcja: printf() biblioteka: wysyła sformatowane dane do standardowego strumienia wyjściowego (stdout) int printf ( tekst_sterujący, argument_1, argument_2,... ) ;

Bardziej szczegółowo