Mikrokontrolery

Firma Philips jako pierwsza opracowała, lub zaadaptowała, standard RC5 dla swoich nadajników – odbiorników podczerwieni do zastosowań w sprzęcie domowego użytku. Stosowano w nim stały czas trwania i liczbę bitów. Za każdym razem, gdy użytkownik naciska przycisk w nadajniku zdalnego sterowania, pracującym zgodnie ze specyfikacją Philips, wysyła on ciąg 14 bitów o czasie trwania 1,728 ms każdy. Jeśli klawisz pozostaje naciśnięty, to cała transmisja powtarzana jest, co 130 ms. W artykule opisano sposób budowy odbiornika transmisji kodowanej zgodnie z RC5 za pomocą mikrokontrolera 8051. czytaj więcej
Port równoległy jest do dziś jednym z najpowszechniej stosowanych interfejsów drukarkowych. Celem artykułu jest przedstawienie przykładu sposobu, w jaki można podłączyć drukarkę do systemu wyposażonego w mikrokontroler z rdzeniem 8051/8052. Obecnie port równoległy wypierany jest z zastosowań przez dużo wygodniejszy w użyciu interfejs USB. Stale jednak stanowi podstawowe wyposażenie komputerów PC, a w sklepach czy na rynku podzespołów wtórnych, bez większych kłopotów można kupić drukarkę wyposażoną w złącze równoległe. Jej przeznaczenie w systemie z mikrokontrolerem może być różne i zależy od potrzeb i inwencji konstruktora czy programisty. Ciekawy dla elektroników amatorów wydaje się być zwłaszcza rynek wtórny, gdzie za niewielką cenę można nabyć drukarkę igłową czy atramentową, wyposażoną w ten rodzaj interfejsu i dołączyć ją do własnego urządzenia. czytaj więcej
W artykule prezentowany jest przykład aplikacji, która opisuje sposób podłączenia telefonu GSM do systemu z mikrokontrolerem. Napisany dla mikrokontrolera program, to rodzaj alarmu z powiadomieniem, który może zostać zainstalowany na przykład w samochodzie. Jednak opisywaną aplikację bardziej należy traktować jako pewną sugestię, co do wykonania części sprzętowej i interfejsu łączącego mikrokontroler z telefonem GSM, aniżeli gotowe do wykorzystania urządzenie. czytaj więcej
Początki nauki nie są zbyt pasjonujące. Ale tak to już jest, że aby zacząć biegać, trzeba się nauczyć chodzić. Niestety, początki są na „czworaka”. W tym odcinku kursu dołożymy kolejny klocek: odczyt stanu przycisku. Następnie połączymy tę funkcję z poznaną wcześniej, służącą do wyświetlenia stanu licznika. Utworzona w ten sposób aplikacja będzie najprostszym licznikiem zdarzeń. czytaj więcej
W tym odcinku kursu nieco odbiegniemy od prezentowanych wcześniej sposobów wykorzystywania zasobów mikrokontrolera. Każda aplikacja musi czasami dodać, odjąć lub porównać jakieś wartości. Tworząc ją w języku wysokiego poziomu wszystko jest proste: deklarujemy typy zmiennych A i B a następnie prosty zapis A+B rozwiązuje problem. W asemblerze nie jest niestety tak łatwo. czytaj więcej
Podczas lektury poprzedniego odcinka kursu poznaliśmy podstawy organizacji pamięci oraz wykorzystania zasobów mikrokontrolera AT90S8515. Nauczyliśmy się w jaki sposób skonfigurować linie portów mikrokontrolera, jak odczytać stan portu wejściowego i jak zaświecić diodę LED dołączoną do wyprowadzenia mikrokontrolera. Poznaliśmy też sposób użycia przerwania zewnętrznego do realizacji licznika. Dziś posuniemy się o krok dalej. Do mikrokontrolera dołączymy cyfrę LED i nauczymy się nią sterować. Wszystko na przykładzie prostej aplikacji licznika. czytaj więcej
Najprostszą metodą konwersji liczb szesnastkowych na dziesiętne jest liczenie ile razy dana waga dziesiętna „zmieści się” w liczbie szesnastkowej. W języku asembler operację tę przeprowadza się najczęściej przez odejmowanie wagi dziesiętnej i liczenie ilości operacji odejmowania do momentu ustawienia flagi przeniesienia C (Carry bit).   czytaj więcej
Pierwszy rzut oka na instrukcję programowania mikrokontrolera z rodziny AVR w języku asembler nieco przeraża. Dziesiątki zupełnie niezrozumiałych poleceń to dla wielu przeszkoda nie do przebycia. Niestety – taki jest urok programowania w asemblerze. Tutaj proste z pozoru operacje dodawania czy mnożenia muszą zawierać się w kilku czy kilkunastu poleceniach. Cykl artykułów będzie próbą wprowadzenia Czytelnika w świat programowania w języku asemblera AVR. Będzie też próbą pokazania, że nie taki diabeł straszny... czytaj więcej
Jednym z największych „pożeraczy” czasu i energii programisty, obok uruchomienia programu, jest tak zwany interfejs użytkownika. Mikrokontroler nie potrzebuje do pracy wyświetlacza, klawiatury, diod świecących LED i temu podobnych elementów, o ile nie jest to ściśle związane z operacjami zapisu lub odczytu danych. Wszystkie te drobiazgi są potrzebne nam, ludziom, abyśmy mogli wprowadzać parametry i poznać rezultat wykonania przez mikrokontroler określonego programu. Te przykłady programowania to jeden z elementów interfejsu użytkownika. Są to jedno- i dwupoziomowe menu, wyświetlane na wyświetlaczu LCD 4 linie po 20 znaków. czytaj więcej
Pisząc program w języku C czasami warto zadać sobie pytanie: czy naprawdę muszę tworzyć funkcję dokonującą konwersji wartości dziesiętnej na szesnastkową? Przecież chociażby biblioteka o nazwie STDIO zawiera w sobie możliwość formatowania zarówno danych wejściowych, jak i wyjściowych. Czy nie ma możliwości skorzystania z czyjejś pracy i zaoszczędzenia własnego czasu? czytaj więcej