Kontrolery Avr. AVR – co to jest? Przypisanie automatycznego wpisu rezerwy. Jak działa AVR?

Źródła dostaw energii elektrycznej nie są całkowicie niezawodne i czasami wyłączają się, co ma negatywny wpływ na towary konsumpcyjne. Jest to niedopuszczalne w przypadku urządzeń krytycznych, dlatego zasilane są one z dwóch lub większej liczby dodatkowych źródeł. Do ich podłączenia wykorzystywane są urządzenia ATS. Co to jest, wyjaśnia dekodowanie skrótu - „automatyczne wprowadzanie rezerwy”. Jest to sposób na zapewnienie nieprzerwanego zasilania odbiornika z dwoma lub większą liczbą wejść zasilania. Zapewnia to automatyczne podłączenie wejścia zapasowego w przypadku utraty głównego.

Obydwa zasilacze można podłączyć jednocześnie. Wadami tej metody są wysokie prądy zwarciowe, duże straty i złożoność zabezpieczeń sieci. Rezerwę wprowadza się zwykle za pomocą urządzenia przełączającego, które wyłącza główne źródło zasilania. Rezerwa mocy musi odpowiadać obciążeniom. Jeśli to nie wystarczy, podłączani są tylko najważniejsi odbiorcy.

Wymagania dla ATS

  • Szybkie wprowadzenie rezerwy po zadziałaniu
  • Włącza się w każdym przypadku awarii zasilania, z wyjątkiem zwarć.
  • Brak reakcji na spadek napięcia podczas uruchamiania dużych obciążeń u odbiorcy.
  • Operacja jednorazowa.

Klasyfikacja

Urządzenia dzielimy ze względu na zasadę działania.

  • Jednostronny. Obwód składa się z dwóch sekcji: zasilającej i rezerwowej. Ten ostatni jest podłączony w przypadku utraty napięcia głównego.
  • Dwustronna. Dowolna z linii może pracować lub zastępować.
  • Odzyskiwalne AVR. Po przywróceniu zasilania głównego następuje automatyczne uruchomienie poprzedniego obwodu i wyłączenie obwodu rezerwowego.
  • Brak automatycznego odzyskiwania. Tryb pracy z głównym źródłem prądu konfiguruje się ręcznie.

Zasada działania AVR

W sieciach niskiego napięcia wygodnie jest stosować specjalne przekaźniki kontrolujące napięcie w obwodach zabezpieczających (obwody ATS itp.). Preferowany jest tutaj ATS, ponieważ nie wszystkie urządzenia wytrzymują częste przełączanie zasilania. Jak wygląda AVR? Co to jest i jak to działa? To urządzenie jest wyraźnie widoczne na każdym prostym schemacie.

  • Przekaźnik EL-11 steruje napięciem trójfazowym, monitoruje asymetrię faz, przerwanie i zmienność.
  • Do łączenia obciążeń służą przekaźniki elektromagnetyczne z mocnymi stykami. W trybie normalnym zasilana jest z niego główna cewka wejściowa, która za pomocą styków KM 1 łączy zasilanie z obciążeniem.
  • W przypadku zaniku napięcia w obwodzie głównym przekaźnik KM 1 zostaje wyłączony i podawane jest napięcie na cewkę przekaźnika KM 2, która łączy wejście rezerwowe.

Ten obwód ATS można stosować w domach prywatnych, budynkach przemysłowych i administracyjnych, gdzie przełączane obciążenie osiąga dziesiątki kilowatów. Wadą tego schematu jest złożoność wyboru przekaźnika dla wysokich prądów. Nadal nadaje się do przełączania odbiorników małej mocy, ale w przypadku dużych obciążeń lepiej jest użyć rozrusznika lub triaka ATS.

Niezbędnymi źródłami dodatkowej mocy są benzyny lub te ostatnie są powszechnie stosowane ze względu na swoją wydajność i większą moc. Na rynku dostępna jest szeroka gama systemów zabezpieczeń przed wysokimi przeciążeniami.

Obsługa AVR-a

Jak działa AVR? Jaki jest stopień niezawodności dostaw energii elektrycznej do odbiorców? Urządzenia są podzielone na 3 kategorie. Zaopatrzenie mieszkań w energię elektryczną należy do najniższych. Jeśli często występują awarie zasilania, lepiej zainstalować w domu rezerwę, ponieważ od tego zależy trwałość urządzeń gospodarstwa domowego, a także komfortowe warunki życia. Systemy zasilania awaryjnego instalowane są w mieszkaniach na bateriach, które wykorzystywane są głównie w sprzęcie elektronicznym. Generatory są najczęściej stosowane jako zapasowe źródła zasilania w domach prywatnych.

W najprostszej formie generator benzynowy jest podłączony do zasilania domu za pomocą przełącznika. Zapobiega to zwarciu w przypadku nieprawidłowego wpisania rezerwy, gdy automatyczne zasilanie domu nie zostanie wyłączone. Przełącznik wybiera się z trzema pozycjami, przy czym środkowa całkowicie odcina prąd.

Możesz samodzielnie zainstalować ATS w trybie automatycznym, jeśli wyposażysz generator w automatyczne urządzenie rozruchowe i sterujesz nim z szafy za pomocą styczników, które również przełączają wejścia. Automatyka działa w oparciu o sterowanie mikroprocesorowe np. na sterownikach przekaźnikowych Easy. Czujniki napięcia służą do wprowadzania rezerwy ATS. Gdy tylko zasilanie zostanie wyłączone, silnik generatora uruchamia się natychmiast. Osiągnięcie trybu pracy zajmuje trochę czasu, po czym SZR przełącza obciążenie na rezerwę. Takie opóźnienia są akceptowalne dla potrzeb krajowych.

Automatyczny moduł rozruchu generatora (BAZG)

AVR to system dla domu prywatnego, który zapewnia uruchomienie i sterowanie generatorem rezerwowym w przypadku awarii zasilania. Ten ostatni wyposażony jest w specjalną jednostkę BAZG, która jest niedrogim rozwiązaniem w przypadku awarii zasilania w sieci głównej. Wykonuje pięć prób uruchomienia w ciągu 5 sekund w każdym odstępie czasu po zaniku głównego napięcia wejściowego. Dodatkowo steruje przepustnicą powietrza zamykając ją w momencie uruchomienia.

Jeżeli na wejściu głównym ponownie pojawi się napięcie, urządzenie ponownie przełączy obciążenie i zatrzyma silnik generatora. Gdy generator jest na biegu jałowym, dopływ paliwa jest odcinany przez zawór elektromagnetyczny.

Cechy AVR prywatnego domu

Najpopularniejszą metodą jest użycie dwóch wejść, przy czym pierwsze ma pierwszeństwo. Po podłączeniu do sieci obciążenia domowe działają głównie na jednej fazie. Jeśli zniknie, nie zawsze wygodnie jest podłączyć generator. Wystarczy podłączyć kolejną linię jako rezerwową. W przypadku wejścia trójfazowego moc jest kontrolowana przez przekaźnik na każdej fazie. Gdy napięcie wyjdzie poza normalny zakres, stycznik fazowy zostanie wyłączony, a dom będzie zasilany z dwóch pozostałych faz. W przypadku awarii innej linii całe obciążenie zostaje rozdzielone na jedną fazę.

W przypadku małego domku lub daczy stosuje się agregat prądotwórczy z silnikiem wysokoprężnym o mocy nie większej niż 10 kW dla panelu pracującego przy mocy 25 kW. Taki generator wystarczy, aby zapewnić domowi niezbędne minimum energii elektrycznej na krótki czas. W przypadku wystąpienia sytuacji awaryjnej przekaźnik kontroli napięcia przełącza magistralę odbiorczą na zasilanie rezerwowe i wysyła sygnał do uruchomienia agregatu prądotwórczego na olej napędowy. Po przywróceniu głównego zasilania przekaźnik przełącza się na niego, po czym generator zatrzymuje się.

Rozszerzenie funkcji ATS

Do sterowania wybranymi algorytmami wykorzystywane są programowalne sterowniki logiczne (PLC). Zawierają już program ATS, który należy jedynie skonfigurować w celu wdrożenia tego lub innego trybu pracy. Zastosowanie sterownika PLC, np. sterownika AC500, pozwala na uproszczenie obwodów elektrycznych, choć na pierwszy rzut oka urządzenie wydaje się skomplikowane. Sterowanie SZR może być umieszczone na drzwiach rozdzielnicy w postaci zestawu przełączników, przycisków i wskaźników.

Standardowe rozwiązanie zawiera już oprogramowanie. Jest on zainstalowany w sterowniku PLC.

Wniosek

Awarie zasilania mogą prowadzić do różnych negatywnych zjawisk dla konsumentów. Większość użytkowników ma jedynie mgliste pojęcie o ATS. Wiele osób nawet nie wie co to jest i myli je z urządzeniem przeznaczonym do zupełnie innych celów. Ze względu na wysokie koszty sprzętu elektrycznego ważny jest wybór odpowiedniego automatycznego przełącznika zasilania. Będzie to wymagało specjalistycznej porady. ATS pozwala poprawić wydajność urządzeń gospodarstwa domowego i obiektów, dla których ważne jest stałe zasilanie.

Mikrokontrolery (zwane dalej MK) mocno wkroczyły w nasze życie, w Internecie można znaleźć wiele ciekawych obwodów wykonywanych na MK. Czego nie można zamontować na MK: różne wskaźniki, woltomierze, sprzęt gospodarstwa domowego (urządzenia zabezpieczające, urządzenia przełączające, termometry...), wykrywacze metali, różne zabawki, roboty itp. Lista może zająć bardzo dużo czasu. Pierwszy obwód mikrokontrolera zobaczyłem 5-6 lat temu w czasopiśmie radiowym i niemal natychmiast przewróciłem stronę, myśląc sobie: „Nadal nie dam rady tego złożyć”. Rzeczywiście, w tamtym czasie MK były dla mnie bardzo skomplikowanym i niezrozumiałym urządzeniem, nie miałem pojęcia, jak działają, jak je flashować i co z nimi zrobić w przypadku nieprawidłowego oprogramowania. Ale około rok temu po raz pierwszy zmontowałem swój pierwszy obwód na MK; był to obwód woltomierza cyfrowego oparty na wskaźnikach 7-segmentowych i mikrokontrolerze ATmega8. Tak się złożyło, że przez przypadek kupiłem mikrokontroler, kiedy stałem w dziale podzespołów radiowych, facet przede mną kupował MK, i ja też zdecydowałem się go kupić i spróbować coś złożyć. W moich artykułach opowiem Ci o Mikrokontrolery AVR, nauczę Cię jak z nimi pracować, przyjrzymy się programom do oprogramowania, stworzymy prosty i niezawodny programator, przyjrzymy się procesowi oprogramowania i, co najważniejsze, problemom, które mogą się pojawić, nie tylko dla początkujących.

Podstawowe parametry niektórych mikrokontrolerów rodziny AVR:

Mikrokontroler

Pamięć flash

pamięć RAM

Pamięć EEPROM

Porty we/wy

Moc

Dodatkowe parametry AVR mega MK:

Temperatura pracy: -55…+125*С
Temperatura przechowywania: -65…+150*С
Napięcie na pinie RESET względem masy: max 13V
Maksymalne napięcie zasilania: 6,0 V
Maksymalny prąd linii we/wy: 40 mA
Maksymalny prąd zasilania VCC i GND: 200mA

Pinouty modelu ATmega 8X

Pinouty dla modeli ATmega48x, 88x, 168x

Układ pinów dla modeli ATmega8515x

Układ pinów dla modeli ATmega8535x

Układ pinów dla modeli ATmega16, 32x

Układ pinów dla modeli ATtiny2313

Na końcu artykułu załączono archiwum z arkuszami danych niektórych mikrokontrolerów.

Bity FUSE instalacyjne MK AVR

Pamiętaj, że zaprogramowany bezpiecznik to 0, niezaprogramowany to 1. Należy zachować ostrożność podczas ustawiania bezpieczników, gdyż źle zaprogramowany bezpiecznik może spowodować zablokowanie mikrokontrolera. Jeśli nie jesteś pewien, który bezpiecznik chcesz zaprogramować, lepiej za pierwszym razem flashować MK bez bezpieczników.

Najpopularniejszymi mikrokontrolerami wśród radioamatorów są ATmega8, w dalszej kolejności ATmega48, 16, 32, ATtiny2313 i inne. Mikrokontrolery sprzedawane są w pakietach TQFP i DIP, dla początkujących polecam zakup w DIP. Jeśli kupisz TQFP, trudniej będzie je flashować; będziesz musiał kupić lub przylutować płytkę, ponieważ ich nogi znajdują się bardzo blisko siebie. Radzę instalować mikrokontrolery w pakietach DIP na specjalnych gniazdach, jest to wygodne i praktyczne, nie trzeba wylutowywać MK, jeśli chcesz go przeflashować lub wykorzystać do innego projektu.

Prawie wszystkie nowoczesne MK mają możliwość programowania w obwodzie ISP, tj. Jeśli Twój mikrokontroler jest wlutowany do płytki, to w celu zmiany oprogramowania nie będziemy musieli wylutowywać go z płytki.

Do programowania służy 6 pinów:
RESETOWANIE- Zaloguj się MK
VCC- Plus zasilanie, 3-5V, w zależności od MK
GND- Przewód wspólny, minus moc.
MOSI- wejście MK (sygnał informacyjny w MK)
MISO- wyjście MK (sygnał informacyjny z MK)
SCK- wejście MK (sygnał zegarowy w MK)

Czasami używają także pinów XTAL 1 i XTAL2; do tych pinów podłączony jest kwarc, jeśli MK jest zasilany przez zewnętrzny oscylator; w ATmega 64 i 128 piny MOSI i MISO nie są używane do programowania ISP; zamiast tego piny MOSI są podłączony do pinu PE0, a MISO do pinu PE1. Podłączając mikrokontroler do programatora, przewody łączące powinny być jak najkrótsze, a kabel biegnący od programatora do portu LPT również nie powinien być zbyt długi.

Oznaczenie mikrokontrolera może zawierać dziwne litery z cyframi, np. Atmega 8L 16PU, 8 16AU, 8A PU itp. Litera L oznacza, że ​​MK pracuje na niższym napięciu niż MK bez litery L, zwykle 2,7V. Liczby po myślniku lub spacji 16PU lub 8AU wskazują częstotliwość wewnętrzną generatora znajdującego się w MK. Jeżeli bezpieczniki są ustawione na pracę z zewnętrznego kwarcu, kwarc należy ustawić na częstotliwość nie przekraczającą maksymalnej zgodnie z arkuszem danych, jest to 20 MHz dla ATmega48/88/168 i 16 MHz dla innych atmegas.

Załóżmy, że otrzymałeś zadanie - sprawić, by dioda LED zaczęła migać.
Porozmawiajmy o tym, jak rozwiązać ten problem:

Opcja 1 jest najprostsza, weź przełącznik/przycisk, umieść obok niego niewolnika, który będzie włączał/wyłączał diodę LED za pomocą przełącznika. Zwykle w Rosji większość problemów rozwiązuje się w ten sposób. A co miga?)))
Opcja 2 - zmontuj multiwibrator. Już bardziej interesujące. Do mrugnięcia jedna dioda jest całkiem dobrym rozwiązaniem. Ponadto jest prosty, tani i niezawodny.
Opcja 3 - montaż na mikrokontrolerze. Droższe niż montaż multiwibratora, ale moim zdaniem łatwiejsze. Napisałem program, uruchomiłem go i otrzymałem wynik. Brak konfiguracji. Oczywiście jest to przypadek idealny.

Teraz skomplikujmy zadanie. Przykładowo 5 diod LED i 5 opcji ich migania (zmienia się prędkość i kolejność migania). Pierwsza opcja natychmiast znika, można wykonać metodę 2, ale rozmiar urządzenia gwałtownie wzrośnie. Opcja 3 pozostanie mniej więcej tego samego rozmiaru, wystarczy dodać kilka linii kodu. Dlatego są różne przypadki, w których jest to niemożliwe bez mikrokontrolera, i w których jest to zbędne. Dlatego zawsze oszacuj koszty pracy, czas i koszty finansowe.

Mikrokontroler pozwala więc elastycznie zarządzać systemami, procesami itp., ma niewielkie wymiary, a pod względem funkcjonalności jest minikomputerem. Mikrokontrolery są produkowane przez różne firmy. Jedna z odmian mikrokontrolerów AVR firmy Atmel. Dlaczego oni? Można je dość łatwo znaleźć w sklepie, łatwo znaleźć przykłady gotowego kodu, wbudowana funkcjonalność pozwala na rozwiązywanie nawet skomplikowanych problemów.

Aby mikrokontroler zrozumiał, czego od niego oczekujemy, musimy wgrać do niego firmware – sekwencję czynności, które musi wykonać. Oprogramowanie układowe to ciąg jedynek i zer. Aby było to wygodniejsze, wymyślono języki programowania. Przykładowo piszemy turn on, a kompilator sam konwertuje to na ciąg jedynek i zer zrozumiały dla mikrokontrolera. Rysunek przedstawia oprogramowanie sprzętowe HEX po otwarciu go za pomocą notatnika.

Mikrokontrolery są zwykle programowane w języku C lub asemblerze. W zasadzie nie ma różnicy w tym, o czym pisać. Ze względu na dużą liczbę gotowych przykładów zdecydowałem się na C. Ponadto istnieje kilka programów, które umożliwiają pisanie w języku C. Na przykład bezpłatne, markowe AVR Studio, CodeVision, WinAVR itp. Mimo że piszę w CodeVision, bardzo aktywnie wykorzystuję AVR Studio jako debugger.

Mam nadzieję, że przynajmniej część z tego stała się dla Ciebie jasna. Moim zdaniem najtrudniej jest zrobić pierwszy krok. Ten, kto to zrobi, pokona swój strach i lenistwo, z pewnością osiągnie rezultaty. Powodzenia w nauce mikrokontrolerów.

Wszystko do nauki i praktycznego programowania mikrokontrolerów AVR: literatura, oprogramowanie, obwody, projekty

Dzień dobry, drodzy radioamatorzy!
Witamy na stronie internetowej „”

Ta część serwisu jest poświęcona mikrokontrolery. Ze względu na osobiste preferencje (i nie tylko) główny nacisk zostanie położony na amatorskie urządzenia radiowe z mikrokontrolerami Rodzina AVR Tiny i Mega od ATMEL-a. Choć mikrokontrolery ATMEL nie są najpopularniejsze, posiadają kilka istotnych zalet, które wyróżniają je na tle innych mikrokontrolerów. Ponadto rodzina mikrokontrolerów AVR, ze względu na prostotę i uniwersalność urządzeń, ciągłość struktury dla różnych typów sterowników oraz prostotę konstrukcji obwodów, doskonale nadaje się dla początkujących radioamatorów. W przyszłości na stronie planowane jest opublikowanie serii artykułów skierowanych głównie do początkujących radioamatorów, zawierających szczegółowe badanie struktury i cech obwodów mikrokontrolerów AVR z rodzin Tiny i Mega, wykorzystanie ich głównych możliwości i programowanie w asemblerze.

Mikrokontrolery jednoukładowe są szeroko stosowane w wielu różnych obszarach: od przyrządów pomiarowych, aparatów fotograficznych i kamer wideo, drukarek, skanerów i kopiarek po produkty elektronicznej rozrywki i wszelkiego rodzaju sprzęt AGD.

Od czasu wprowadzenia pierwszych mikroprocesorów w latach 70. XX wieku ich złożoność stale wzrasta wraz z wprowadzaniem nowych rozwiązań sprzętowych i dodawaniem nowych instrukcji mających na celu rozwiązywanie nowych problemów. W ten sposób stopniowo rozwijała się architektura, która później otrzymała nazwę CISC (Complete Order Set Computers – komputery ze złożonym zestawem instrukcji). Następnie wyłonił się inny kierunek, który aktywnie się rozwijał: architektura RISC (Computers o zmniejszonym zestawie instrukcji - komputery ze zredukowanym zestawem instrukcji). To właśnie tej architekturze obejmują mikrokontrolery AVR firmy Atmel i PIC firmy Microchip, którym poświęcona jest ta książka.

Główną zaletą procesorów RISC jest to, że są proste, wykonują ograniczony zestaw instrukcji, a co za tym idzie, są bardzo szybkie. Zmniejsza to koszt i złożoność ich programowania.

Minusem architektury RISC była konieczność tworzenia dodatkowych instrukcji w języku asemblera, które są zaimplementowane sprzętowo dla urządzeń CISC. Przykładowo, zamiast po prostu wywołać instrukcję dzielenia, co jest typowe dla urządzeń CISC, projektant zajmujący się procesorem RISC musi zastosować kilka instrukcji odejmowania sekwencyjnego. Jednak tę wadę z nawiązką rekompensuje cena i szybkość urządzeń RISC. Ponadto, jeśli tworzysz programy w C, takie problemy przestają mieć w ogóle jakiekolwiek znaczenie dla programisty, ponieważ rozwiązuje je kompilator, który automatycznie generuje cały brakujący kod asemblera.

U zarania mikroprocesorów tworzenie oprogramowania odbywało się wyłącznie w tym lub innym języku asemblera skupionym na konkretnym urządzeniu. W istocie takie języki były symbolicznymi mnemonikami odpowiednich kodów maszynowych, a tłumaczenie mnemoników na kod maszynowy zostało wykonane przez tłumacza. Jednak główną wadą języków asemblera jest to, że każdy z nich jest powiązany z konkretnym typem urządzenia i logiką jego działania. Poza tym asembler jest trudny do nauczenia, co wymaga sporo wysiłku, aby się go nauczyć, co zresztą okazuje się zmarnowane, jeśli później trzeba będzie przejść na mikrokontrolery innych producentów.

Język C, będący językiem wysokiego poziomu, pozbawiony jest takich mankamentów i można nim zaprogramować dowolny mikroprocesor, dla którego istnieje kompilator C. W języku C wszystkie operacje niskiego poziomu wykonywane przez komputery przedstawiane są w postaci abstrakcyjnych konstrukcji, pozwalając programistom skoncentrować się na programowaniu tylko jednej logiki, nie martwiąc się o kod maszynowy. Kiedy już nauczysz się języka C, będziesz mógł łatwo przechodzić z jednej rodziny mikrokontrolerów do drugiej, poświęcając znacznie mniej czasu na rozwój.


Architektura mikrokontrolera AVR i PIC

Ogólnie rzecz biorąc, wszystkie mikrokontrolery są zbudowane według tego samego schematu. Układ sterujący składający się z licznika programu i układu dekodującego wykonuje instrukcje odczytu i dekodowania z pamięci programu, a urządzenie operacyjne odpowiada za wykonywanie operacji arytmetycznych i logicznych; Interfejs I/O umożliwia wymianę danych z urządzeniami peryferyjnymi; i wreszcie musisz mieć urządzenie pamięci masowej do przechowywania programów i danych (ryc. 1.1).

Ryż. 1.1. Uogólniona struktura mikrokontrolera

Rozważymy mikrokontrolery ogólnie, bez wiązania się z żadnym konkretnym typem mikrokontrolerów AVR, dlatego poniżej rozważymy jedynie cechy architektury pamięci wspólne dla większości mikrokontrolerów, kwestie wejścia/wyjścia, obsługę przerwań, resetowanie itp.

Pamięć mikrokontrolera AVR

W mikrokontrolerach AVR pamięć jest realizowana zgodnie z architekturą Harvarda, co zakłada oddzielenie pamięci instrukcji i danych. Oznacza to, że dostęp do poleceń jest niezależny od dostępu do danych. Zaletą tej organizacji jest zwiększenie szybkości dostępu do pamięci.

Pamięć danych

Pamięć danych przeznaczona jest do zapisu/odczytu danych wykorzystywanych przez programy. Jest niestabilny, co oznacza, że ​​jeśli zasilanie mikrokontrolera zostanie wyłączone, wszystkie zapisane w nim dane zostaną utracone. W mikrokontrolerach AVR pamięć danych ma bardziej rozwiniętą strukturę w porównaniu do mikrokontrolerów PIC, co pokazano na rys. 2.1.


Ryż. 2.1. Struktura pamięci danych w mikrokontrolerach AVR i PIC

Obszar SRAM (Static Random Access Memory) jest pokazany na ryc. 2.1 jest kropkowany, ponieważ nie jest używany przez wszystkie mikrokontrolery AVR (dotyczy to zarówno wewnętrznej, jak i zewnętrznej pamięci SRAM). Jego adres początkowy to 0x060, a górny adres różni się w zależności od urządzenia.

W niektórych mikrokontrolerach AVR można zwiększyć przestrzeń pamięci SRAM, podłączając zewnętrzne bloki pamięci do 64 KB, wymaga to jednak poświęcenia portów A i C, które w tym przypadku służą do przesyłania danych i adresów.

Rejestry ogólnego przeznaczenia

Obszar rejestrów ogólnego przeznaczenia (rejestry robocze) przeznaczony jest do tymczasowego przechowywania zmiennych i wskaźników wykorzystywanych przez procesor do wykonywania programów. W mikrokontrolerach AVR składa się z 32 rejestrów ośmiobitowych (zakres adresów 0x000 - 0x01F). W mikrokontrolerach PIC rejestry ogólnego przeznaczenia są również ośmiobitowe, ale ich liczba i zakres adresów zależą od konkretnego typu urządzenia.

W programach napisanych w C bezpośredni dostęp do rejestrów ogólnego przeznaczenia zwykle nie jest konieczny, chyba że używany jest kod języka asemblerowego.

Rejestry funkcji specjalnych mikrokontrolera PIC

Rejestry funkcji specjalnych są używane w mikrokontrolerach PIC do sterowania różnymi operacjami. Podobnie jak w przypadku rejestrów ogólnego przeznaczenia, ich liczba i adresowanie różnią się w zależności od urządzenia. W programach napisanych w C bezpośredni dostęp do rejestrów funkcji specjalnych zwykle nie jest wymagany, chyba że używane są fragmenty języka asemblerowego.

Obszar we/wy mikrokontrolerów AVR

Obszar I/O mikrokontrolerów AVR zawiera 64 rejestry służące do sterowania lub przechowywania danych z urządzeń peryferyjnych. Dostęp do każdego z tych rejestrów można uzyskać poprzez adres I/O (zaczynając od 0x000) lub poprzez adres SRAM (w takim przypadku do adresu I/O należy dodać 0x020). Programy C zazwyczaj używają konwencjonalnych nazw rejestrów we/wy, a adresy mają znaczenie tylko dla programów w języku asemblera.

Nazwy, adresy I/O i SRAM oraz krótki opis rejestrów z obszaru I/O mikrokontrolerów AVR przedstawiono w tabeli. 2.1. Należy zaznaczyć, że w różnych modelach mikrokontrolerów część z wymienionych rejestrów nie jest wykorzystywana, a adresy nie są wymienione w tabeli. 2.1 są zastrzeżone przez firmę Atmel do wykorzystania w przyszłości.

Tabela 2.1. Opis rejestrów z obszaru I/O

Zarejestruj nazwę Adres we/wy Adres SRAM Opis
ACSR 0x08 0x28 Kontrola komparatora analogowego i rejestr stanu
UBRR 0x09 0x29 Rejestr szybkości transmisji UART
UCR 0x0A 0x2A Rejestr sterujący transceivera UART
USR 0x0V 0x2V Rejestr stanu transceivera UART
UDR 0х0С 0x2С Rejestr danych nadajnika-odbiornika UART
SPCR 0x0D 0x2D Rejestr kontrolny interfejsu SPI
SPSR 0x0E 0x2E Rejestr stanu interfejsu SPI
SPDR 0x0F 0x2F Rejestr we/wy danych SPI
PIND 0x10 0x30 Styki portu D
DDRD 0x11 0x31 Rejestr kierunku danych portu D
PORTD 0x12 0x32 Rejestr danych portu D
PINK 0x13 0x33 Piny portu C
DDRC 0x14 0x34 Rejestr kierunku danych portu C
PORTC 0x15 0x35 Rejestr danych portu C
PINB 0x16 0x36 Styki portu B
DDRB 0x17 0x37 Rejestr kierunku danych portu B
PORTB 0x18 0x38 Rejestr danych portu B
PINA 0x19 0x39 Kołki portu A
DDR 0x1A 0x3A Rejestr kierunku danych portu A
PORTA 0x1V 0x3V Rejestr danych portu A
EKG 0x1С 0x3С Rejestr sterujący pamięcią EEPROM
EEDR 0x1D 0x3D Rejestr danych EEPROM
EEARL 0x1E 0x3E Rejestr adresów pamięci EEPROM (młodszy bajt)
EEARH 0x1F 0x3F Rejestr adresowy pamięci EEPROM (starszy bajt)
WDTCR 0x21 0x41 Rejestr kontrolny timera Watchdog
ICR1L 0x24 0x44
ICR1H 0x25 0x45 Rejestr przechwytujący timera/licznika T/C1 (młodszy bajt)
OCR1BL 0x28 0x48 Rejestr porównawczy B timera T/C1 (młodszy bajt)
OCR1BH 0x29 0x49 Rejestr porównawczy B timera T/C1 (starszy bajt)
OCR1AL 0x2A 0x4A Rejestr porównawczy A timera T/C1 (młodszy bajt)
OCR1AH 0x2V 0x4V Rejestr porównawczy A timera T/C1 (starszy bajt)
TCNT1L 0x2С 0х4С Rejestr zliczający timera/licznika T/C1 (młodszy bajt)
TCNT1H 0x2D 0x4D Rejestr zliczający timera/licznika T/C1 (starszy bajt)
TCCR1B 0x2E 0x4E Rejestr kontrolny B timera/licznika T/C1
TCCR1A 0x2F 0x4F Rejestr kontrolny A timera/licznika T/C1
TCNT0 0x32 0x52 Rejestr zliczający timera/licznika T/C0
TCCR0 0x33 0x53 Rejestr sterujący timerem/licznikiem T/C0
MCUCR 0x35 0x55 Rejestr sterujący mikrokontrolera
TIFR 0x38 0x58 Rejestr flag przerwań timera/licznika
TIMSK 0x39 0x59 Rejestr maskowania przerwań czasowych
GIFR 0x3A 0x5A Ogólny rejestr flag przerwań
GIMSK 0x3V 0x5V Ogólny rejestr maskowania przerwań
SPL 0x3D 0x5D Wskaźnik stosu (młodszy bajt)
SPH 0x3E 0x5E Wskaźnik stosu (starszy bajt)
SREG 0x3F 0x5F Rejestr stanu

Rejestr stanu SREG mikrokontrolerów AVR

Rejestr stanu zawiera flagi stanu mikrokontrolerów AVR i znajduje się w obszarze we/wy pod adresem $3F (adres SRAM to $5F). Po podaniu sygnału resetowania jest on inicjowany do zer.

Kontynuując temat:
Smartfon

Technologia Microsoft SharePoint to bezpłatne rozwiązanie serwerowe, które umożliwia odwiedzającym serwer WWW łatwe, korzystając z wbudowanych możliwości aplikacji,...