Technika Cyfrowa i Mikroprocesorowa Prowadzący przedmiot: Ćwiczenia laboratoryjne: dr inż. Andrzej Ożadowicz dr inż. Andrzej Ożadowicz dr inż. Jakub Grela Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej Katedra Energoelektroniki i Automatyki Systemów Przetwarzania Energii 24.10.2017 TCiM Wydział EAIiIB Katedra EiASPE 1
Organizacja zajęć Prowadzący kontakt: dr inż. Andrzej Ożadowicz dr inż. Jakub Grela Strona WWW: ozadow@agh.edu.pl jgrela@agh.edu.pl http://www.keiaspe.agh.edu.pl/~ozadow/ Laboratorium AUTBUDNET Automatyki Budynków Paw. C-1, pok. 509 510 24.10.2017 TCiM Wydział EAIiIB Katedra EiASPE 2
Organizacja zajęć Wykłady Obecność sprawdzania na wykładach >>> przy frekwencji ponad 50% 0,5 dodane do oceny końcowej z przedmiotu Wiedza z wykładów obowiązuje również na kolokwiach zaliczeniowych na ćwiczeniach lab. W ciągu semestru 2 kolokwia zaliczeniowe na ćwiczeniach lab. UWAGA wykłady skorelowane z ćwiczeniami laboratoryjnymi Wiedza i przykłady z wykładu wykorzystane na kolejnych terminach ćwiczeń lab. Laboratoria Obecność na zajęciach laboratoryjnych obowiązkowa Dopuszcza się jedną nieobecność bez usprawiedliwienia - wiedza z ćwiczenia obowiązuje jak przy obecności egzekwowana na kolokwium Z wybranych ćwiczeń według informacji na stronie WWW przedmiotu oraz prowadzących ćwiczenia obowiązuje wykonanie sprawozdania 1 sprawozdanie na grupę ćwiczeniową 24.10.2017 TCiM Wydział EAIiIB Katedra EiASPE 3
Organizacja zajęć Strona WWW przedmiotu Najważniejsze informacje Materiały dydaktyczne Wykład, literatura, pomoce Instrukcje do ćwiczeń labor. Materiały pomocnicze 24.10.2017 TCiM Wydział EAIiIB Katedra EiASPE 4
Wykłady Część 1 Dane i informacje cyfrowe Zapis i Kodowanie Informacje cyfrowe systemy liczbowe zapis liczb ze znakiem Kody cyfrowe podstawy Działania na liczbach binarnych rejestry przetwarzające liczby i dane cyfrowe zasada działania Część 2 Funkcje logiczne układy kombinacyjne i sekwencyjne Zapis funkcji logicznych układ funkcjonalnie pełny Arytmetyka Bool a najważniejsze aksjomaty i tożsamości Minimalizacja funkcji logicznych Układy kombinacyjne realizacja funkcji logicznych w układach cyfrowych Układy sekwencyjne i układy iteracyjne - grafy stanów 24.10.2017 TCiM Wydział EAIiIB Katedra EiASPE 5
Wykłady Część 3 Mikroprocesory i mikrokontrolery w aplikacjach sterowania Rodzina mikrokontrolerów 8051 stare/nowe ale jare!!! Assembler programowanie niemal maszynowe język programowania niskiego poziomu podstawowe operacje procesora Rodzina mikrokontrolerów AVR nowe, wydajne, popularne, tanie Programowanie w języku C++ - język programowania wysokiego poziomu wprowadzenie podstawowych pojęć i funkcji porównanie z Assemblerem Część 4 Nowoczesne układy mikrokontrolerów i mikrokomputerów Uniwersalne moduły mikrokontrolerowe moduły rozwojowe i platformy programistyczne Systemy modułowe, rozproszone wsparcie systemów sieciowych Uniwersalność, standaryzacja, integracja rozwój systemów Internetu Rzeczy 24.10.2017 TCiM Wydział EAIiIB Katedra EiASPE 6
Część 1 Dane i informacje cyfrowe Zapis i Kodowanie 24.10.2017 TCiM Wydział EAIiIB Katedra EiASPE 7
Dane cyfrowe Informacja cyfrowa bit >>> co to i dlaczego? Dlaczego wymyślono bit? >>> Układy elektryczne-elektroniczne dwa stany napięcia: 0 brak lub bardzo niskie poniżej 10% stanu wysokiego 1 ustalone napięcie np. 5 V, 12 V itp. lub na poziomie powyżej 90% tej wartości BIT >>> Najmniejsza ilość informacji potrzebna do określenia, który z dwóch równie prawdopodobnych stanów przyjął układ. Jednostka logiczna Dane bitowe słowa danych alfabet dwójkowy dwa stany ZERO i JEDEN Wykorzystując alfabet dwójkowy można utworzyć 2^n słów dwójkowych o długości n Dla n=3 >>> można utworzyć 8 słów: 000 100 001 101 010 110 011 111 4 bity tetrada 8 bitów bajt 24.10.2017 TCiM Wydział EAIiIB Katedra EiASPE 8
Dane cyfrowe Informacja cyfrowa bit >>> co to i dlaczego? Jednostki danych cyfrowych z otoczenia??? Pamięci: bajty B; >>> kb, MB, GB, TB PB (peta), EB (eksa) Transmisja danych: bity bit; kbit/sek; Mbit/sek, Gbit/sek Dane bitowe słowa danych przekaz informacji Do przekazania liczby dziesiętne Do przekazania informacje tekstowe litery Do przekazania grafika i obrazy wideo Długie słowa danych konieczność wykorzystania różnych systemów liczbowych i kodów 24.10.2017 TCiM Wydział EAIiIB Katedra EiASPE 9
Systemy liczbowe w technice cyfrowej Systemy liczbowe >>> co to i dlaczego? Systemy liczbowe sposoby zapisu liczb Pozycyjne wagowe Niepozycyjne niewagowe System pozycyjny wagowy wartość cyfry w liczbie zależy od pozycji (miejsca) tej cyfry w zapisanej liczbie Np. system dziesiętny waga 10 system dwójkowy waga 2 system ósemkowy waga 8 system szesnastkowy waga 16 24.10.2017 TCiM Wydział EAIiIB Katedra EiASPE 10
Systemy liczbowe w technice cyfrowej Systemy liczbowe >>> co to i dlaczego? Alfabety dla systemów liczbowych sposoby zapisu liczb Np. system dziesiętny waga 10 cyfry: 0,1,2,,9 system dwójkowy waga 2 cyfry: 0,1 system ósemkowy waga 8 system szesnastkowy waga 16 cyfry: 0,1,2,,7 cyfry: 0,1,2,,9,A,B,C,D,E,F 24.10.2017 TCiM Wydział EAIiIB Katedra EiASPE 11
Systemy liczbowe w technice cyfrowej Konwersja systemów liczbowych Po co konwersja? Jak konwertować liczba dziesiętna do innego systemu? Część całkowitą liczby dzieli się przez podstawę/wagę systemu do którego konwertuje się liczbę. Reszty kolejnych dzieleń to cyfry od najmłodszej do najstarszej liczby po konwersji. Część ułamkową liczby mnoży się przez podstawę/wagę systemu do którego konwertuje się liczbę. Części całkowite z kolejnych mnożeń to cyfry od najstarszej do najmłodszej liczby po konwersji 24.10.2017 TCiM Wydział EAIiIB Katedra EiASPE 12
Systemy liczbowe w technice cyfrowej Konwersja systemów liczbowych 24.10.2017 TCiM Wydział EAIiIB Katedra EiASPE 13
Systemy liczbowe w technice cyfrowej Konwersja systemów liczbowych Konwersja między systemem 10-tnym, 2-kowym, 8-kowym i 16-kowym Oczywiście można dzielić przez podstawy systemów ale nie jest to już tak łatwe i intuicyjne >>> DLACZEGO? Inna metoda powiązanie miedzy wagami/podstawami systemów 2, 8, 16 Kolejne potęgi liczby 2 24.10.2017 TCiM Wydział EAIiIB Katedra EiASPE 14
Systemy liczbowe w technice cyfrowej Konwersja systemów liczbowych Konwersja między systemem 10-tnym, 2-kowym, 8-kowym i 16-kowym Korelacja między Systemami 2, 4, 8, 16 24.10.2017 TCiM Wydział EAIiIB Katedra EiASPE 15
Systemy liczbowe w technice cyfrowej Konwersja systemów liczbowych Konwersja między systemami kolejne potęgi podstawy/wagi Korelacja między Systemami 3, 9, 27 24.10.2017 TCiM Wydział EAIiIB Katedra EiASPE 16
Liczby binarne technika cyfrowa Liczby binarne dodatnie i ujemne Pokaz działań na słowach binarnych kalkulator programisty Windows 10 Sposoby zapisu liczb ujemnych: ZNAK MODUŁ >>> naturalny, intuicyjny zapis liczb binarnych ze znakiem Konieczność ustalenia długości słowa bitowego podstawowa jednostka, długość BAJT WADY, ZALETY - Bez ustalenia długości słowa: (-3) 10 = (111) 2 (-9) 10 = (11001) 2 - Po ustaleniu długości słowa: (-3) 10 = (10000011) 2 (-9) 10 = (10001001) 2 24.10.2017 TCiM Wydział EAIiIB Katedra EiASPE 17
Liczby binarne technika cyfrowa Liczby binarne dodatnie i ujemne Sposoby zapisu liczb ujemnych: KOD UZUPEŁNIEŃ DO 2 >>> naturalny, intuicyjny z punktu widzenia działania układów cyfrowych, zwłaszcza arytmetycznych, zwłaszcza mikrokontrolerów Co to jest UZUPEŁNIENIE DANEJ LICZBY w jakimś kodzie, systemie zapisu? Co to jest Kod Uzupełnień do 2? WADY, ZALETY - Wzór ogólny: U = w n - L w-waga systemu liczbowego N liczba pozycji w zapisie L moduł danej liczby - Dla systemu 2-kowego: U = 2 n - L 24.10.2017 TCiM Wydział EAIiIB Katedra EiASPE 18
Liczby binarne technika cyfrowa Liczby binarne dodatnie i ujemne Sposoby zapisu liczb ujemnych: KOD UZUPEŁNIEŃ DO 2 >>> naturalny, intuicyjny z punktu widzenia działania układów cyfrowych, zwłaszcza arytmetycznych, zwłaszcza mikrokontrolerów Zgodny z zasadami pracy rejestrów liczników binarnych WAŻNE ustalona, stała długość słowa danych (-128) 10 = (10000000) U2 (127) 10 = (01111111) ZM (2) 10 = (00000010) ZM (1) 10 = (00000001) ZM (0) 10 = (00000000) ZM (-1) 10 = (11111111) U2 (-2) 10 = (11111110) U2 (-128) 10 = (10000000) U2 24.10.2017 TCiM Wydział EAIiIB Katedra EiASPE 19
Liczby binarne technika cyfrowa Arytmetyka liczb binarnych Dodawanie, odejmowanie, mnożenie liczby bez znaku (11) 10 + (6) 10 = (17) 10 1011 + 110 10001 (11) 10 - (6) 10 = (5) 10 1011-110 101 (25) 10 - (7) 10 = (18) 10 11001-111 10010 b. ważne >>> wyjaśnić pożyczki (21) 10 * (5) 10 = (105) 10 10101 * 101 10101 + 1010100 1101001 24.10.2017 TCiM Wydział EAIiIB Katedra EiASPE 20
Liczby binarne technika cyfrowa Arytmetyka liczb binarnych Dodawanie, odejmowanie liczby ze znakiem KONIECZNIE przyjąć stałą długość słowa liczby >>> w mikrokontrolerach 8 bitowych to 8 bit, czyli bajt (-16) 10 + (35) 10 = (19) 10 11110000 U2 + 00100011 ZM (1)00010011 ZM (-16) 10 + (35) 10 = (19) 10 16 >>> (10000) 2-16 >>> (10010000) ZM 1101111 (NOT) + 1 11110000 U2 35 >>> (100011) 2 35 >>> (00100011) ZM -35 >>> (10100011) ZM 1011100 (NOT) + 1 (-16) 10 - (35) 10 = (-51) 10 11110000 U2-00100011 ZM 11001101 U2 0110010 (NOT) + 1 10110011 ZM UWAGA: Dobrze jest wykonywać zawsze dodawanie, a wcześniej odpowiednio przygotować argumenty działania znak, zapis liczby ze znakiem. (-16) 10 + (-35) 10 = (-51) 10 11110000 U2 + 11011101 U2 (1)11001101 U2 (16) 10 - (35) 10 = (16) 10 + (-35) 10 = (-19) 10 00010000 ZM + 11011101 U2 11001101 U2 11011101 U2 24.10.2017 TCiM Wydział EAIiIB Katedra EiASPE 21
Liczby binarne technika cyfrowa Kody binarne i dwójkowo-dziesiętne Przykładowe kody binarne Cyfry 10-tne BCD 8421 Gray Aiken 2421 Wagowy Niewagowy Niedetekcyjne różna liczba 1-ek, 0-er 2 z 5 7 segment abcdefg 0 0000 0000 0000 00011 1111110 1 0001 0001 0001 00101 0110000 2 0010 0011 0010 01001 1101101 3 0011 0010 0011 10001 1111001 4 0100 0110 0100 00110 0110011 5 0101 0111 1011 01010 1011011 6 0110 0101 1100 10010 1011111 7 0111 0100 1101 01100 1110010 8 1000 1100 1110 10100 1111111 9 1001 1101 1111 11000 1111011 Detekcyjny Niewagowy 24.10.2017 TCiM Wydział EAIiIB Katedra EiASPE 22
Liczby binarne technika cyfrowa Kod Grey a Kolejne pozycje cyfry i liczby w kodzie różnią się: Tylko jednym bitem Bitem o jak najmniejszej wadze Gray 0000 0001 0011 0010 0110 0111 0101 0100 1100 1101 UWAGA: Po co kod Grey a? Kod refleksyjny, odbicie https://pl.wikipedia.org/wiki/kod_graya Zastosowania http://eduinf.waw.pl/inf/alg/006_bin/0025.php 24.10.2017 TCiM Wydział EAIiIB Katedra EiASPE 23
Liczby binarne technika cyfrowa UWAGA: Po co kod BCD? Zastosowania Kod BCD dwójkowo-dziesiętny Kolejne pozycje zapisane na 4 bitach cyfry od 0 do 9 Arytmetyka dodawanie w kodzie BCD BCD 8421 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 UWAGA: Cyfry kodu BCD zapisane na kolejnych tetradach Jeżeli przy dodawaniu odpowiednich tetrad dwóch liczb pojawia się przeniesienie do kolejnej tetrady > wynik nie jest wyrazem z kodu BCD konieczność korekty dodania 6 > 0110 (23) 10 + (54) 10 = (77) 10 0010 0011 BCD + 0101 0100 BCD 0111 0111 BCD Wynik OK!!! (89) 10 + (45) 10 = (134) 10 1000 1001 BCD + 0100 0101 BCD 1100 1110 BCD Wynik nie OK!!!??? 0110 tetrada liczba niewykorzystanych w kodzie BCD kombinacji zer i jedynek z ogólnej ich liczby dla kodu binarnego na słowie 4 bitowym 24.10.2017 TCiM Wydział EAIiIB Katedra EiASPE 24
Liczby binarne technika cyfrowa Kod BCD dwójkowo-dziesiętny Kolejne pozycje zapisane na 4 bitach cyfry od 0 do 9 Arytmetyka dodawanie w kodzie BCD BCD 8421 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 Dodane tetrady Wynik OK!!! 6 1 1 7 4 Wynik nie OK!!!??? Pokazać jeszcze inne przykłady (89) 10 + (45) 10 = (134) 10 1000 1001 BCD + 0100 0101 BCD 1100 1110 BCD + 0110 0110 BCD 1 0011 0100 BCD Podsumowanie części: Liczby, systemy liczbowe, kody Arytmetyka liczb binarnych i kodów 24.10.2017 TCiM Wydział EAIiIB Katedra EiASPE 25
Koniec Części 1 Kontynuacja materiałów wykładowych w pliku cz-2 24.10.2017 TCiM Wydział EAIiIB Katedra EiASPE 26