Przeszukaj forum
Pokazywanie wyników dla tagów 'mikokontrolery'.
Znaleziono 2 wyniki
-
Kiedy dam Ci zadanie: dodaj do siebie 3 i 6 i podaj wynik, to na 90% podasz automatyczną odpowiedź 9. Względnie proste operacje matematyczne są dla nas naturalne do rozwiązania, bo niemal codziennie takie rozwiązujemy. Natomiast ciężej jest z operacją 11+1, bo odpowiedzią nie musi być 12. Co gorsza odpowiedź do pierwszego przykładu nie musi wynosić 9! W języku mówionym każda wypowiedź jest zależna od kontekstu. Mówiąc zamek możemy mieć na myśli budynek lub zapięcie od kurtki. Tak samo jest z liczbami. Wynik zależy od kontekstu, w jakim dokonujemy obliczeń, a taki kontekst nazywamy systemem - ogólnie systemem liczbowym. Jednym z najpopularniejszych systemów liczbowych jest system binarny. Źródło zdjęcia. Innymi słowy, system liczbowy jest zbiorem reguł, według którego zapisywane są liczby. Jego nazwa definiuje, ile znaków służy do zapisu liczb. Przykładowo system czwórkowy korzysta z liczb od 0 do 3, czyli korzysta z 4 cyfr. Ludzie korzystają z systemu dziesiętnego, który jest systemem pozycyjnym. Oznacza to, że cyfry w liczbie określają ilość jedności, dziesiątek, setek itp. Te jedności, dziesiątki nazwiemy wagami. Przykładowo: liczba 375, to tak naprawdę: 3 setki, 7 dziesiątek i 5 jedności, 3 * 100 + 7 * 10 + 5 * 1, 3 * 102 + 7 * 101 + 5 * 100. Zauważmy, że wagi określa się jako potęgi liczby definiującej system liczbowy do pozycji liczby od prawej strony zaczynając od zera. Istnieją różne systemy liczbowe. Najpopularniejsze z nich to: Dwójkowy (binarny): np. 1011 (dziesiętnie: 11), do zapisu liczb używa się 0 i/lub 1. Czwórkowy: np. 3102 (dziesiętnie: 210), używa się cyfr 0-3. Ósemkowy (oktalny): np. 75 (dziesiętnie 61), używa się cyfr 0-7. Dziesiętny (decymalny): np. 599, używa się cyfr 0-9. Szesnastkowy (heksadecymalny): np. 6F (dziesiętnie 95), używa się cyfr 0 - F. Występują tutaj dodatkowe symbole dla liczb większych od 9: A = 10, B = 11, C = 12, itd. do F = 15. W tym artykule skupimy się na systemie dwójkowym, czyli jednym z najważniejszych systemów w informatyce, elektronice i ogólnie technice Dlaczego systemu binarnego używa się w informatyce i elektronice? Tak naprawdę jest to spowodowane wygodą przesyłania informacji. Pojawienie się napięcia może oznaczać 1, a jego brak 0. Wprowadzenie większej ilości wartości, takich jak różne poziomy napięcia, wprowadza dodatkową złożoność takiego systemu, ponieważ wymaga interpretacji różnych wartości, co może stanowić wyzwanie. We wczesnym etapie rodzenia się komputerów binarność nie była oczywista, co potwierdza skonstruowanie komputera ENIAC, który był komputerem wykorzystującym system dziesiątkowy. Komputery jakie znamy obecnie to cud techniki, którym początki dał m.in. ENIAC. Źródło zdjęcia. Konwersja liczb binarnych i dziesiętnych Jak już wcześniej zostało wspomniane, liczba binarna składa się z samych zer i jedynek. Abyśmy mogli ją zrozumieć po naszemu, czyli jako liczbę dziesiętną, należy dokonać kilku obliczeń - konwersji. Poniżej przedstawiam kilka sposobów na przekształcanie liczb. Tabela powyżej przedstawia liczby dziesiętne i odpowiadające im liczby binarne. Źródło zdjęcia. a) Zamiana przy użyciu operacji modulo (dec → bin) Ta metoda jest wolna i bardzo algorytmiczna. Liczbę dzieli się całkowicie przez 2 i zapisuje się resztę z dzielenia. Powtarza się to do momentu, aż w wyniku dzielenia znajdzie się 0. Wynik odczytywany jest od końca. Zgodnie z powyższą grafiką za każdym razem dzielimy wyższą liczbę. Wynik dzielenia całkowitego zapisujemy w lewej kolumnie a resztę z dzielenia po prawej. Wynik, czyli liczbę binarną, odczytuje się od dołu do góry. Tę metodę można zastosować do jakiegokolwiek systemu liczbowego. Gdyby 22 zacząć dzielić całkowicie przez np. 8, to reszty z dzielenia wskazałyby nam liczbę ósemkową. b) Zapełnianie potęgami (dec → bin) Jest to zdecydowanie szybsza i prostsza metoda. Zamienianą liczbę dziesiętną nazwijmy x. Rozpisz potęgi dwójki (20, 21, 22…) od prawej do lewej, do ostatniej liczby, która jest mniejsza lub równa x. Zapełnianie zacznij od lewej strony, czyli od najwyższej potęgi. Pierwsza potęga mieści się w x, dlatego zapisz pod nią 1. Przejdź od lewej do prawej strony zapisując jedynkę pod tymi potęgami, które w sumie z poprzednimi pod którymi znajduje się 1 nie przekracza x. Wpisz 0 pod tymi potęgami, które już nie mieszczą się w x. Wynik przeczytaj od lewej do prawej. c) Konwersja za pomocą wag (bin → dec) W tej metodzie korzystamy z definicji systemu liczbowego, która została przedstawiona wcześniej. Każda cyfra na konkretnej pozycji definiuje wagę tej pozycji. Uwaga: aby podkreślić w zapisie liczby w jakim systemie jest ona zapisana, pisze się w indeksie dolnym w nawiasach podstawę systemu danej liczby. Przeliczmy liczbę 10110(2): Podstawą systemu w liczbie binarnej jest 2. Cyfra na ostatniej pozycji ma wagę 20, przedostatnia 21, kolejna 22 itp. Mnożymy wagi przez cyfry na ich pozycjach. Każdy iloczyn dodajemy. Zauważ, że wstępie w przykładzie z liczbą 375(10) dokonaliśmy tak naprawdę zamiany liczby dziesiętnej na dziesiętną korzystając z powyżej metody d) Ręczne dodawanie już obliczonych wag (binarna → dziesiętna) Wiemy już, że wagi są przedstawiane jako potęgi, więc gdy nadchodzi potrzeba przeliczenia liczby binarnej na kartce, to możemy dodawać tylko te wagi przy których stoi jedynka. Jest to uproszczenie poprzedniej metody. Animacja przedstawiająca zamianę liczby decymalnej na postać binarną. Źródło animacji. Zastosowania logiki binarnej i liczb binarnych 1) Tranzystor jako element binarny Jeżeli wykorzystamy tranzystor jako włącznik (klucz), to możemy powiedzieć, że działa on w logice binarnej. Gdy wymusimy odpowiednio duży przepływ prądu bazy tranzystora NPN, to doprowadzimy tranzystor do stanu nasycenia, czyli popłynie prąd przez kolektor. Ten prąd możemy traktować jako wyjście i jego przepływ jako logiczne 1. Brak tego prądu to 0. Działanie tranzystora NPN jako klucz. 2) Bramka logiczna NAND Wykorzystując wiedzę z poprzedniego punktu, możemy zacząć konstruować tak zwane bramki logiczne, czyli układy, których kombinacja wejść da nam jakieś wyjście. NAND jest bardzo ważną bramką logiczną, bo dzięki niej można zbudować układ realizujący dowolną funkcję logiczną. Wykonajmy ją używając tranzystorów bipolarnych NPN! Schemat bramki NAND. Jako wejścia interpretujemy bazy tranzystorów, a wyjściem jest prąd kolektora pierwszego tranzystora. Potocznie mówi się, że prąd płynie najkrótszą i najprostszą drogą, więc załączenie dwóch tranzystorów powinno skutkować praktycznie zwarciem kolektora wyższego tranzystora z masą źródła. Co za tym idzie prąd wybierze tę drogę zamiast diody (wyjście y) i dioda przestanie świecić - na wyjściu pojawi się 0. Tablica prawdy dla układu NAND. Działanie bramki NAND skonstruowanej z tranzystorów. Dzięki tranzystorom i traktowaniu ich jako elementów binarnych możemy manipulować sygnałem i budować elementy cyfrowe, które działają w logice binarnej. To wszystko dzięki działaniom na liczbach binarnych i wykorzystaniu algebry Boole’a. 3) Tranzystory w procesorze W procesorze raczej nie stosuje się tranzystorów bipolarnych. Współczesne procesory są zbudowane w technologii CMOS (Complementary Metal-Oxide-Semiconductor). Są one używane do budowy bramek logicznych, które z kolei formują układy logiczne odpowiedzialne za operacje arytmetyczne, logiczne i sterujące w procesorze. Procesory są praktycznie stworzone z tranzystorów i bazują na ich działaniu. W jednym procesorze może być ich aż 17 miliardów! To nie są oczywiście tranzystory w obudowie typu TO-92. Ich konstrukcja jest dużo bardziej złożona i szerokość takiego elementu może wynosić 100 nanometrów. Współczesne procesory mają ogromną liczbę tranzystorów na pojedynczym układzie scalonym, co pozwala na wykonywanie bardzo skomplikowanych obliczeń w bardzo krótkim czasie. Miniaturyzacja postępuje zgodnie z prawem Moore’a, co pozwala na zwiększenie gęstości integracji i poprawę wydajności procesora. Cała ta złożoność mikroarchitektury procesora jest ukierunkowana na efektywne wykonywanie instrukcji programu zgodnie z zasadami logiki binarnej. Najmniejsze elementy współczesnych procesorów nie da się zobaczyć ludzkim okiem. Potrzeba do tego bardzo dobrego mikroskopu. Źródło zdjęcia. 4) Programowanie mikrokontrolerów Mikrokontroler to układ scalony, który zachowuje się jak mały komputer. Możemy dołączyć do niego wejścia i wyjścia takie jak: przyciski, czujniki i diody. Dzięki wgranemu programowi może on interpretować wejścia i sterować wyjściami. Z mikrokontrolerami wiążą się rejestry - pamięci wewnętrzne, które służą do przechowywania danych tymczasowych. Dzięki takiemu rejestrowi możemy zdefiniować, że jedna nóżka mikrokontrolera będzie wejściem, a druga wyjściem. Co więcej, dzięki tej pamięci możemy sprawić, że LED dołączony do wyjścia układu scalonego zapali się. Na razie zapamiętaj, że: Rejestr DDRx odpowiada za ustawienie kierunku przepływu danych. Innymi słowy dajemy informację mikrokontrolerowi, że dany pin jest wejściem lub wyjściem. W miejscu x wpisuje się port, który chcemy skonfigurować, np. A, B, C. W danym bicie wpisuje się 0 jeżeli pin ma być wejściem i 1 jeżeli ma być wyjściem. Rejestr PORTx służy do ustawiania stanów na konkretnych pinach. Jeżeli chcemy ustawić stan wysoki na jakimś pinie to należy ustawić na odpowiednim bicie 1. 0 ustawi stan niski. Rejestry portu B mikrokontrolera Atmega16. Jak w taki rejestr wpisać informację? Tutaj możemy skorzystać z liczb binarnych! Przykład a) Ustawić w rejestrze DDRB jedynkę na bitach 0 i 3. b) Ustawić w rejestrze PORTB jedynkę na bitach 0, 4, 5 i 7. Jest kilka sposobów na wykonanie tego zadania. Zapis za pomocą liczby binarnej Aby w języku C zapisać liczbę binarną należy dodać prefiks 0b. Możemy wykorzystać liczby binarne, aby wpisać dane w rejestr, ponieważ rejestry interpretuje się za pomocą bitów. Zapis za pomocą liczby dziesiętnej Aby to zrobić musimy przeliczyć liczbę binarną na dziesiętną. Bardziej doświadczeni programiści pewnie będą to w stanie zrobić szybko w głowie 🙂 a) 0b00001001(2) = 00001001(2) = 1001(2) = 9(10) DDRB = 9; b) 0b10110001(2) = 10110001(2) = 177(10) PORTB = 177; Ten zapis może być nieczytelny, ale jest jeden wyjątek, gdzie warto go stosować. Jeżeli chcemy zapełnić jedynkami cały rejestr, to można wpisać do niego wartość 255, ponieważ 255(10) = 11111111(2). Oczywiście można skorzystać z innych systemów liczbowych, np. hex (0xFF(16) = 255(10)) Jeżeli chcesz dowiedzieć się o zastosowaniu rejestrów, to zapraszam do kursu STM32L4. 5) Sterowniki PLC Używa się je w maszynach przemysłowych i do sterowania liniami produkcyjnymi - ogólnie w przemyśle. Gwarantują one stabilność i ciągłość procesu a ponadto spełniają szereg przepisów. Dzięki nim można projektować układy sterowania dyskretnego, czyli procesy przemysłowe, które działają w logice dwuwartościowej. Przykłady maszyn, którymi sterują sterowniki PLC: windy, prasy hydrauliczne, schody ruchome, układ świateł na skrzyżowaniu. Te układy mogą charakteryzować się binarnością, tzn. do ich działania nie muszą być wykorzystywane elementy, które na swoim wejściu/wyjściu otrzymują/zwracają coś innego niż logiczne 0/1. W algorytmach sterowania takimi obiektami stosuje się operatory logiczne typu: AND, OR, XOR… co potwierdza zastosowanie liczb binarnych i logiki binarnej w tych sterownikach. Podsumowanie System binarny stanowi fundament technologii, elektroniki i informatyki. Jest nie tylko teoretycznym konceptem, ale także praktycznym elementem współczesności. Jego znaczenie sięga od konstrukcji tranzystorów przez układy cyfrowe, aż po programowanie mikrokontrolerów i sterowanie maszynami przemysłowymi. System binarny stanowi nieodłączną część świata, stanowiąc podstawę dla licznych innowacji i osiągnięć technologicznych. Każdy informatyk, elektronik, inżynier powinien się z nim zapoznać i zrobić przynajmniej jedno ćwiczenie z konwersji liczby dziesiętnej na binarną 🙂
- 1 odpowiedź
-
- 6
-
- programowanie
- Elektronika
- (i 2 więcej)
-
Cześć po przejrzeniu szafy mam do sprzedania sporo książek o elektronice, programowaniu w języku C, mikrokontrolerach AVR, PIC itp Odbiór osobisty w Gdańsku lub wysyłka do paczkomatu za 10 zł. Przy większej liczbie kupionych książek proszę pisać na PRIV zrobię rabat 🙂 Mikrokontrolery AVR niezbędnik programisty - Jarosław Doliński - STAN: Jak nowa - CENA: 12 zł - Link Mikrokontrolery AVR. Programowanie w języku C - przykłady zastosowań - Andrzej Witkowski - STAN: Jak nowa - CENA: 20 zł -Link Mikrokontrolery PIC w praktycznych zastosowaniach - Paweł Borkowski - STAN: Jak nowa - CENA: 30 zł - Link Mikrokontrolery AVR ATmega w praktyce - Rafał Baranowski - STAN: Jak nowa - CENA: 40 zł - Link Elektronika dla bystrzaków. Wydanie II - Cathleen Shamieh, Gordon McComb - STAN: Jak nowa - CENA: 14 zł - Link Wyświetlacze graficzne i alfanumeryczne w systemach mikroprocesorowych - Rafał Baranowski - STAN: Jak nowa - CENA: 40 zł - Link Mikrokontrolery AVR ATtiny w praktyce - Rafał Baranowski - STAN: Jak nowa - CENA: 45 zł - Link Mikrokontrolery dla początkujących - Piotr Górecki - STAN: Jak nowa - CENA: 45 zł - Link Język C dla mikrokontrolerów AVR. Od podstaw do zaawansowanych aplikacji. - Tomasz Francuz - STAN: Jak nowa - CENA: 39 zł - Link Teoria mechanizmów i manipulatorów - Józef Knapczyk, Adam Morecki - STAN: Jak nowa - CENA: 25 zł Moduły GSM w systemach mikroprocesorowych - Jacek Bogusz - STAN: Jak nowa - CENA: 45 zł - Link Teoria obwodów elektrycznych Zadania - Stanisław Bolkowski, Wiesław Brociek, Henryk Rawa - STAN: Stan dobry - CENA: 25 zł - Link Podstawy przemian energetycznych - Jacek Marecki - STAN: Stan dobry - CENA: 12 zł - Link
- 1 odpowiedź
-
- książki
- mikokontrolery
-
(i 2 więcej)
Tagi: