uC51 mikrokontrolery atmel at89c51 | programowanie | asembler | c | elektronika

8lut/100

Co to są przerwania (część 1 z 3)

To jest pierwszy z serii trzech tekstów na temat przerwań. Moim zamiarem jest objąć w tej serii podstawowe informacje o przerwaniach (część 1), konfigurację systemu przerwań (część 2) i procedury obsługi przerwań (część 3). W pierwszej części gościnnie wystąpią Demotywatory.

W dziedzinie mikroprocesorów przerwania są to sygnały kontrolujące wykonywanie programu przez procesor. Wystąpienie przerwania powoduje, że procesor przestaje wykonywać swoje obecne czynności i przeskakuje do procedury obsługi przerwania. Gdy uC zakończy obsługę przerwania, wraca do miejsca, w którym przerwał wykonywanie programu.

program ----> przerwanie -----|
^------------------------------

Można to sobie wyobrazić na przykładzie sytuacji z życia wziętej. Zaprosiłeś znajomych i oglądacie film na kompie.

Źródło: http://demotywatory.pl/10911/Jest-kompot

Nieźle się zapowiada, ale nie o to nam chodziło

Hmmm....

Źródło: http://demotywatory.pl/109392/--Pijcie-pijcie-bedziecie-latwiejsze.

O wiele lepiej

Oglądacie film, a w kuchni szykuje się żarełko. No, powiedzmy niech będą frytki w piekarniku. Co, nie mogą być? Oczywiście, że mogą, bo pasują do tego przykładu. Nie chcesz, żeby się przypaliły, więc nastawiasz sobie budzik w komórce na odpowiednią godzinę i problem z głowy.

Komóra dzwoni, ty wciskasz pauzę. I to jest właśnie przerwanie, no bo w końcu coś przerwało wam oglądanie filmu. Robisz chwilę przerwy, żeby zająć się frytkami i jak skończysz, wracasz do znajomych z pełnymi talerzami - to się zowie obsługą przerwania. Teraz wciskasz play i już możecie kontynuować oglądanie filmu, a dodatkowo jest smaczna przekąska - innymi słowy powrót z przerwania w dobrym stylu.

Proste, nie?

3 typy przerwań w uC51

Przerwania zewnętrzne. Jeśli pamiętasz oznaczenia nóżek AT89C51 i kompatybilnych układów, to przypomnij sobie dwie nóżki portu P3, oznaczone INT0# i INT1#. Te dwie nóżki mogą służyć do wysyłania sygnałów o przerwaniu zewnętrznym. # (negacja) oznacza, że podanie 0 na nóżkę wywoła przerwanie. Tego rodzaju przerwanie możesz zatem wygenerować sam, w dowolnym momencie.

Przerwania z timera. Timer działa na zasadzie zliczania impulsów generowanych przez mikrokontroler w każdym cyklu. Zliczanie odbywa się na rejestrze 8- lub 16-bitowym i gdy rejestr osiągnie wartość maksymalną, wywołane zostaje przerwanie (po czym timer zaczyna liczenie od początku).

Przerwania z portu szeregowego. Port szeregowy generuje przerwanie gdy odbierze lub wyśle 8 bitów (czyli pełny bajt). Przerwanie to oznacza, że coś trzeba zrobić w sprawie portu szeregowego: albo wysłać kolejny bajt, albo zrobić coś z bajtem przed chwilą odebranym.

W następnej części będę pisał o konfiguracji systemu przerwań. Aby otrzymać informację o pojawieniu się nowego artykułu, sugeruję zapisanie się na newsletter lub kanał RSS.

30sty/100

Jaki jest według ciebie najlepszy zasilacz do projektów?

Mój zasilacz, który wykorzystuję do zasilania projektów z uC51 to standardowy zasilacz komputerowy ATX o mocy 300W. Prawdę mówiąc, aż tak dużej mocy nigdy nie potrzebowałem, ale trudno było dostać coś słabszego w podobnej cenie :)

Zasilacze komputerowe ATX mają kilka ważnych zalet, które sprawiły, że taki właśnie sposób zasilania wybrałem.

1. Daje kilka najbardziej przydatnych napięć. Dwa najważniejsze napięcia, jakie otrzymujemy, to +5V i +12V. Ale to nie wszystko. Dostarczane są także napięcia +3.3V i -12V. Można je łączyć i z łatwością osiągać także 17V, 24V i inne.

2. Napięcia dawane przez zasilacz są niezwykle stabilne. Muszą przecież zasilić procesor komputera, który ma o wiele większe wymagania niż Atmele.

3. Ma dużą moc. Zapas mocy wystarcza do zasilenia kilkuset Atmeli i podłączonych do nich układów.

4. Można go kupić tanio na Allegro. Zasilacze tego typu chodzą po około 50zł i w sumie nawet te najtańsze mogą być w porządku. Ja kupiłem mało używany.

5. Obudowę zasilacza łatwo zamocować w dostępnym miejscu w naszym warsztacie. Grube przewody powodują, że ten zasilacz nie stoi stabilnie na stole. Posiada jednak punkty mocujące, więc jeśli trzeba, można go przykręcić do blatu.

Zasilacz ATX nie daje niestety regulowanych napięć, więc nie nadaje się dla kogoś, kto takich potrzebuje.

Kolory przewodów w zasilaczu ATX

Jeśli chcesz w swoim warsztacie stosować tego typu zasilacz, to podaję tutaj objaśnienia kolorów przewodów. Często jest ich po kilka tego samego koloru, ale wszystkie mają to samo napięcie.

Czarne: GND (masa)
Czerwone: +5V
Żółte: +12V
Pomarańczowe: +3.3V
Niebieski: -12V
Fioletowy: +5V (standby, napięcie obecne cały czas)
Biały: -5V (nie zawsze obecny)

Uruchomienie zasilacza ATX

Zasilacz ATX nie działa od razu po włączeniu zasilania czy przełączeniu przycisku na obudowie. Trzeba jeszcze zewrzeć zielony przewód (POWER_ON#) do masy. Dopiero wtedy na pozostałych przewodach (z wyjątkiem fioletowego) pojawią się napięcia.

Typowy zasilacz posiada jeszcze kilka białych 4-pinowych wtyków typu Molex. Kolory przewodów i napięcia są na nich te same co w głównej wtyczce zasilającej.

Inne opcje zasilaczy

Można stosować także proste zasilacze transformatorowe z prostownikiem i stabilizatorem napięcia na układach serii 78xx.

Innym wyborem są regulowane zasilacze laboratoryjne, dające szeroki zakres napięć. Można taki zasilacz kupić już gotowy, złożyć kupiony zestaw lub zaprojektować i zbudować samodzielnie.

A jakich wy używacie zasilaczy?

25sty/102

Witam w nowej odsłonie uC51!

Zdziwiona/y? Jeżeli szukasz poprzedniej strony, to jest ona nadal dostępna pod adresem http://www.uc51.pl/v1.0/

Odświeżony serwis uC51 będę od tej chwili prowadził w postaci bloga.

Serwis uC51 istnieje od listopada 2008 roku. Od tamtego czasu odwiedziło go prawie 6.000 osób. I to właśnie wam chciałbym podziękować za dotychczasowe zainteresowanie moją stroną i przesyłanie dalej informacji o niej. To był okres obfitujący w bardzo pozytywne wydarzenia!

Dotychczas na stronie (v1.0) opublikowałem około 100 tekstów. Niektóre z nich to długie artykuły, inne to krótkie opisy, np. strony z opisami poszczególnych instrukcji asemblera.

Co planuję na 2010 rok

Przede wszystkim zamierzam część czasu poświęcić na tworzenie kursów programowania: zarówno w asemblerze, jak i w języku C.

Będę także starał się na różnych przykładach wniknąć w szczegóły działania mikrokontrolerów i mikroprocesorów. Interesuje mnie budowa komputerów, więc nieco miejsca poświęcę zapewne tematyce architektury. Wcielimy się w role twórców pierwszych komputerów i będziemy próbowali ożywić stare płytki od 286 poukrywane w piwnicach.

W planach jest też tworzenie i realizowanie projektów, które będę krok po kroku śledził z kamerką w ręce i publikował na tym blogu moje poczynania.

Wymiana wiedzą i spostrzeżeniami

Przede wszytkim mam nadzieję, że formuła bloga i możliwość komentowania będzie sprzyjała wymianie informacji.

Jak być na bieżąco z nowym blogiem?

Istnieją w tej chwili dwa sposoby zapisania się na kanał z najnowszymi artykułami: można zapisać się za pomocą czytnika RSS lub podając swój adres e-mail w panelu po prawej stronie.

Użytkowników Blipa zapraszam do śledzenia kanału ^paulpela.

Użytkownicy Facebooka mogą zostać fanami bloga i tą drogą otrzymywać informacje o najnowszych wpisach, wystarczy kliknąć tutaj.