Symulacja mikrokontrolerów. System modelowania ISIS Proteus. Szybki start Rezystor cyfrowy Proteus

Teraz, gdy już wybraliśmy elementy, musimy przejść do kolejnej rzeczy - umieszczenia ich w obszarze rysowania - w oknie edycji. Zacznijmy od najprostszego - bufora pokazanego w lewym górnym rogu schematu ręcznego. Jest to pokazane bardziej szczegółowo poniżej:

Gotowy widok pierwszego bloku schematu,
zostać narysowanym.

Upewnij się, że jesteś w element (czyli co jest zaznaczone ikona elementu ) i zacznij od kliknięcia 741 w selektorze obiektów. Będziesz musiał zobaczyć te okna Przegląd powyżej przełącznik zmieniony na okno zapowiedź wybrane urządzenie. Poniższe zrzuty ekranu pokazują stan selektora obiektów i okna przeglądu po wybraniu pozycji 741.

· Okno podglądu pokazuje nie tylko podgląd urządzenia, ale także jego aktualną orientację. Kiedy obracasz lub odwracasz element (za pomocą ikon Obrót i odbicie ), urządzenie zostanie przerysowane, aby wyświetlić podgląd jego nowej orientacji. Podgląd urządzenia pozostaje w oknie do czasu jego umieszczenia lub wykonania innego polecenia lub akcji.

Teraz przesuń wskaźnik myszy na środek okna edycji i kliknij lewy przycisk. Kontur wzmacniacza operacyjnego pojawi się pod wskaźnikiem myszy i będzie podążał za nim podczas poruszania się po oknie edycji. Po ponownym naciśnięciu lewego przycisku element zostanie umieszczony na diagramie i całkowicie narysowany. Spróbuj tego, umieszczając wzmacniacz operacyjny gdzieś pośrodku okna edycji.


Zarys elementu cały czas się porusza.
za wskaźnikiem myszy w trybie umieszczania.

Wybierz urządzenie MINRES1K i umieść jeden rezystor nad wzmacniaczem operacyjnym, jak pokazano na powyższym schemacie. Naciśnij raz lewy przycisk na ikonie obrotu w kierunku przeciwnym do ruchu wskazówek zegara (pokazanej poniżej); zauważ, że podgląd rezystora w oknie przeglądu pokazuje, że jest on obrócony o 90°. Na koniec umieść drugi (pionowy) rezystor R2.


Ikony rotacji
(wybrany obrót w lewo).

Jeśli nie masz wystarczającego doświadczenia, prawdopodobnie nie umieścisz elementów tak, jak jest to potrzebne za pierwszym razem, więc spójrzmy, jak je przenieść. Obiekty w ISIS są wybierane do dalszej edycji poprzez „wybór”. Istnieje kilka sposobów na wybranie obiektu w ISIS:


Kontener alokacji, który otacza ID.

W ten sam sposób możesz usunąć zaznaczenie (lub zestaw zaznaczeń), klikając lewym przyciskiem myszy puste miejsce lub klikając prawym przyciskiem myszy puste miejsce i wybierając elementWyczyść zaznaczenie(Wyczyść zaznaczenie ) w wyświetlonym menu kontekstowym.


Odznacz wszystkie obiekty
poprzez menu kontekstowe.

Gdy element jest zaznaczony, można go przesunąć, przytrzymując lewy przycisk myszy nad elementem (lub w prostokącie zaznaczenia, jeśli używasz tej metody), przesuwając mysz w żądane miejsce i puszczając lewy przycisk myszy. Kursor myszy zmieni się, wskazując, że element można przesunąć, jak pokazano poniżej.


Przenoszenie wybranego systemu operacyjnego.

Alternatywnie możesz kliknąć kliknij prawym przyciskiem myszy na obiekcie i użyj akcji przeciągania i upuszczania na obiekcie z wyświetlonego menu kontekstowego.

Wszystko powyższe może wydawać się mylące przy pierwszym czytaniu, ale w praktyce okazuje się niezwykle proste. Chociaż wydaje nam się, że mechanizm selekcji niemodalnej jest najłatwiejszy w obsłudze, należy wybrać sposób pracy w oparciu o własne preferencje. Poniższe proste eksperymenty pomogą Ci zapoznać się z różnymi dostępne metody i rozwiej wątpliwości:

Ta metoda jest zarówno prosta, jak i intuicyjna i należy ją wybrać w celu dalszego pozycjonowania i obracania urządzeń w ISIS. Aby utrwalić powyższe, poeksperymentuj trochę z ponownym renderowaniem schematu, aby obiekty zostały umieszczone w taki sam sposób, jak na zrzucie ekranu na początku tej sekcji.

Jeśli chcesz szybko złożyć prosty obwód i sprawdzić jego działanie, możesz to zrobić na przykład w symulatorze, takim jak . W tym krótkim artykule przedstawię główne funkcje tego programu.

Zalety Proteusa
Proteus to idealny program dla początkujących, którzy niedawno rozpoczęli naukę mikrokontrolerów. Program ma wiele urządzenia pomiarowe: Generatory sygnałów, oscyloskopy, analizator magistrali i2c i wiele więcej. Te urządzenia pozwolą Ci szybko debugować program dla MK. W przeciwieństwie do prawdziwego sprzętu, wymiana rezystora w obwodzie to kwestia 4 sekund! Interfejs jest intuicyjny i łatwy do zrozumienia. ma prawie wszystkie potrzebne modele (osobiście nie miałem wystarczająco dużo modelu wyświetlacza z Nokii 3310, ale potem go znalazłem). Nawiasem mówiąc, możesz sam tworzyć modele, ale nie zagłębiałem się w szczegóły, jak to się robi. Wraz z programem symulacyjnym elektroniczne obwody, w zestawie program do układania PCB - ARES. Prawdopodobnie najwygodniejszy, jaki kiedykolwiek widziałem. Schemat narysowany w Proteusie można łatwo przenieść do ARES. Dosłownie za dotknięciem przycisku. W ARES jest autodystrybutor desek, ale nie używam go, bo jest taki sobie. Krótko mówiąc zalet jest sporo, ale warto dodać muchę w maści.

Wady Proteusa
Niestety, nic nie jest idealne, w tym. Proteus strasznie symuluje obwody analogowe! Dlatego jeśli multiwibrator nie działa w twoim proteusie, wcale nie oznacza to, że nie będzie działał w prawdziwym sprzęcie. Odwrotność też jest prawdziwa. Jeśli działa w symulatorze, to jest szansa, że ​​w sprzęcie nic nie będzie działać. Dlatego nie powinieneś angażować się w symulatory. Jeśli naprawdę chcesz symulować obwody analogowe, to do usług multisym. Dla niego jest dokładnie odwrotnie. Całkiem dobrze symuluje układy analogowe, ale układy cyfrowe nie są w porządku (głównie z powodu braku niezbędnych modeli mikrokontrolerów). Kolejną wadą Proteusa jest jego opłacenie i cena.

Jak zbudować obwód w Proteusie

Najpierw musimy dodać do projektu potrzebne nam elementy. W demie postaramy się zbudować światła do jazdy na mikrokontrolerze Tiny2313. Do tego projektu będziemy potrzebować:

  • mikrokontroler tiny2313
  • Osiem diod LED
  • osiem rezystorów ograniczających prąd 220 omów,

Aby dodać, kliknij przycisk na pasku narzędzi po lewej stronie. Po naciśnięciu przycisku P po lewej stronie napisu URZĄDZENIA. Otworzy się okno, w którym należy wybrać potrzebny nam element. Wyszukiwanie można przeprowadzić na dwa sposoby: po prostu wybierz element z żądanej kategorii Mikroprocesorowe układy scalone -> Rodzina AVR -> ATTINY2313 lub możesz to zrobić łatwiej, po prostu wpisując żądaną nazwę w pasku wyszukiwania u góry. Powinno się okazać coś takiego:

Po dodaniu elementu jego nazwa pojawi się na liście URZĄDZENIA. Dodaj rezystor (słowo wyszukiwania RES) i diodę LED (LED-zielona) w ten sam sposób. Po dodaniu zacznijmy łączyć elementy w obwód. Z listy URZĄDZENIA wybierz mikrokontroler i umieść go w obszarze roboczym. Następnie w ten sam sposób dodajemy 8 diod LED i 8 rezystorów. Rezystory mają domyślną rezystancję 10 kOhm, a my potrzebujemy 220. Aby zmienić rezystancję, kliknij dwukrotnie rezystor i w oknie, które się otworzy, znajdź pole „Rezystancja” i wprowadź tam liczbę 220. Katody diod LED będzie musiał być podłączony do ziemi. Aby uzyskać wyjście „Uziemienie”, należy kliknąć przycisk i wybrać z listy „ZIEMIA”. W podobny sposób można uzyskać wyjście +5 V (POWER). Teraz, gdy ziemia została dodana, połączymy części zgodnie z poniższym schematem:

Teraz musisz "flashować" wirtualny mikrokontroler. Aby to zrobić, kliknij go dwukrotnie i znajdź pole wprowadzania tekstu o nazwie Plik programu. Musisz podać w nim ścieżkę do pliku HEX. Również w tym oknie można ustawić częstotliwość sterownika, zawartość pamięci EEPROM, bezpieczniki itp. Oprogramowanie sprzętowe tego demo można pobrać. Teraz, gdy wszystko jest gotowe, możesz przejść do najciekawszej części - uruchomienia symulacji! Naciśnij przycisk Play od dołu (trójkąt skierowany w prawo), po czym diody LED powinny się po kolei włączyć! Podobnie inne układy są montowane na mikrokontrolerach. Wszystkie pytania dotyczące proteusa można zadać w komentarzach.

odmieniec to uniwersalny program, za pomocą którego można tworzyć różne wirtualne urządzenia elektroniczne i je symulować. Zawiera ogromną bibliotekę mikroukładów analogowych i cyfrowych, czujników, elementów dyskretnych: rezystorów, kondensatorów, diod, tranzystorów itp. Istnieje również szeroka gama elementów optoelektronicznych: wyświetlacze, diody LED, transoptory itp.

Główna zaleta i różnica między Proteusem a innymi podobnymi programami do symulacji pracy obwody elektryczne, to możliwość symulowania pracy mikroprocesorów i mikrokontrolerów (MC). Biblioteka Proteus zawiera następujące główne typy MK: AVR, ARM, PIC, Cortex.

Jak w każdym innym podobnym oprogramowaniu przeznaczonym do symulacji działania obwodów elektrycznych, to oprogramowanie posiada szereg wirtualnych przyrządów pomiarowych: amperomierze, woltomierze, watomierze, oscyloskopy, analizatory logiczne, liczniki itp.

Proteus posiada również wbudowane narzędzia do automatycznego opracowywania obwodów drukowanych i tworzenia ich modeli 3D.

Aby zasymulować nasz pierwszy program, potrzebujemy tylko mikrokontrolera ATmega8, rezystora i diody LED z biblioteki.

Ustawienie odmieniec 8.4

Każda konfiguracja zaczyna się od uruchomienia. W wyświetlonym oknie kliknij ikonę diody z kondensatorem Przechwytywanie schematu(Obwód).

Otworzy się okno z pustym polem.

Dodajmy teraz mikrokontroler ATmega8, rezystor i diodę LED.

Domyślnie ustawiony jest odpowiedni tryb. Tryb komponentowy dlatego, aby przejść do menu wyboru elementów elektronicznych i innych, wystarczy kliknąć przycisk P znajdujący się na panelu URZĄDZENIE(urządzenie). Następnie otworzy się okno, w którym musisz wybrać z menu Kategoria(Kategorie) Mikroprocesorowe układy scalone(mikroprocesory), w Podkategoria(Podkategorie) – Rodzina AVR. Dalej w oknie Wyniki znajdź i wybierz MK ATMEGA8. Klikamy na przycisk OK.

Następnie pojawi się w menu okna URZĄDZENIE i można go już przeciągnąć myszą do obszaru roboczego.

Dodaj rezystor i diodę LED w ten sam sposób.

Diody LED należą do kategorii Optoelektronika(Optoelektronika) i dalej w podkategorii diody LED. W ten przykład jest zaznaczony na zielono LED-ZIELONY.

Teraz montujemy obwód, jak pokazano na poniższym rysunku. Rezystor R1 podłączamy do wyjścia MK PC0, które podłączamy do anody diody LED D1. Podłącz katodę diody LED do uziemienia. Element "ziemia" znajduje się w menu zakładki Tryb terminala.

Aby zmienić wartość rezystancji rezystora R1, kliknij go dwukrotnie. W oknie, które się otworzy, ustaw 300 omów na linię Opór(opór).

Należy pamiętać, że piny mikrokontrolera w Proteuse są dla wygody połączone w oddzielne grupy według portów. Nie odpowiada to jednak ich lokalizacji w prawdziwym MK. Ponadto nie ma wniosków, do jakiego napięcia dostarczane jest zasilanie MK. Ta funkcja jest ustawiona domyślnie.

Zapisanie programu do pamięci mikrokontrolera

Teraz pozostaje napisać nasz kod do wirtualnego MK. Kliknij go dwukrotnie myszą i w nowym, który się pojawi, określ ścieżkę do pliku z kodem. Znajdź lokalizację pliku, klikając ikonę w formularzu Otwórz folder w kolejce Plik programu.

Znajdź folder w folderze projektu odpluskwić i w nim wybieramy plik z rozszerzeniem KLĄTWA. Następnie naciśnij przycisk otwarty.

Ogólnie istnieje wiele systemów do modelowania obwodów elektronicznych. Ze wszystkich rzeczy, które widziałem, podobało mi się najbardziej Multisim oraz ISIS Proteusz. Multisim ma bardzo przyjazny interfejs użytkownika i wygodnie jest w nim debugować urządzenia analogowe, ponieważ. pozwala na użycie wirtualnych (czyli sam określasz parametry) tranzystorów i wzmacniaczy, ale w ogóle nie obsługuje złożone systemy, jak mikrokontrolery czy różnego rodzaju sterowniki. Dokładniej podtrzymuje, ale niezwykle ociężale. Dopiero niedawno otrzymał wsparcie od starożytnych. AT89C2051 i kilka FOTKA‘ov

Przeciwko, odmieniec umie wspaniale pracować z kontrolerami, ale ogranicza go biblioteka rzeczywistych elementów, więc nie wiedząc, jakich szczegółów potrzebujesz, niewiele możesz tam zrobić, a do tego ma po prostu nędzny interfejs, ale to najlepszy system modeling, jaki kiedykolwiek widziałem. Dlatego opiszę to.

W archiwum waży około trzydziestu metrów, najnowsza wersja, o której wiem, to 7.2. Pamiętaj o tym zakrzywiona wersja Proteusa czasami działa bardzo dziwnie, na przykład widzisz kod procesora, ale debugowanie nie jest kontynuowane, a lewe wartości w rejestrach. Dlatego szukaj uważnie ;))))

Proponuję od razu wziąć byka za rogi i szybko zasymulować jakiś prosty układ na mikrokontrolerze. Wyjaśnij, gdzie będę w trakcie tego procesu.

Biegać odmieniec, beżowe, kropkowane okno powinno natychmiast się otworzyć. To jest pole pracy. Tutaj zbudujemy nasz schemat. Na przykład spawmy obwód na moim ulubionym kontrolerze AT89С51 nie zrobi nic wartościowego, po prostu wyśle ​​listy do okna terminala, naciskając przyciski dołączone do portów kontrolera.

Aby dodać komponent, musisz najpierw wybrać czarna Strzała w lewym górnym rogu, a następnie kliknij przycisk z szkło powiększające i trójkąt znajduje się na górnym pasku narzędzi pośrodku.

Ogromna lista przedmiotów, o których wie, że się otworzy. odmieniec. Biblioteki są stale uzupełniane i aktualizowane, więc przeszukuj Internet w poszukiwaniu nowych szczegółów.
Znajdź kontroler na liście AT89С51 aby nie zadzierać, skorzystaj z wyszukiwania według słowa kluczowe- po prostu wybierz " AT89» zobacz całą rodzinę MSC-51 słynny odmieniec.

Wybierz ten, który chcesz i kliknij OK”. Następnie umieść żeton w dogodnym dla siebie miejscu. Zaraz zrobię rezerwację, że modele procesów w odmieniec nieco uproszczone, więc nie wymagają obecności kwarcu w obwodzie wirtualnym, systemu resetowania (pullup RESETOWANIE do pożądanego poziomu), obecność sygnału do użycia pamięć wewnętrzna(+5 na EA, funkcja procesu C51 kto może pracować z zewnątrz? ROM) i nie powinniśmy o tym zapominać, gdy w końcu wykonamy prawdziwy obwód, w przeciwnym razie poszukiwanie przyczyny niedziałającego obwodu może zająć bardzo dużo czasu.

Chociaż nie są one potrzebne, nadal dodamy szczegóły zestawu body. Ponownie szturchnij szkło powiększające z trójkątem i poszukaj tam kwarcu, burżuazja nazywają to " kryształ"tutaj i umieść to na schemacie obok wniosków XTAL.

Główna nędzność interfejsu odmieniec w ten sposób zawsze prawym przyciskiem najpierw wybiera, a następnie usuwa składnik, a lewy wstawia nowy. Strasznie denerwujące, Multisim wszystko odbywa się wielokrotnie wygodniej i tradycyjnie, ale niestety Multisim nie tak potężny.

Teraz najedź na pin kwarcowy i połącz go z pinem XTAL1 procesor, zrób to samo z drugą nogą kwarcu, tylko na XTAL2. Teraz potrzebujemy ochrony, znowu wejdź do biblioteki i tam zajrzyj Kondensatory. Będzie ogromna lista prawdziwych conderów, wybierz kilka SMT kondensator zamówienia 33pF. W górnym oknie po prawej stronie widnieje jego oznaczenie na schemacie, a pod nim wymiary gabarytowe, a raczej styki do jego uszczelnienia.

Przy okazji spójrz na okno tuż pod paskiem wyszukiwania. Czy widzisz tam linię? Modelowanie prymitywne? Tutaj są wirtualne prymitywne. Nie mają więc przypadku, gdy okablowanie płytka drukowana wyskoczy z błędem, ale jeśli nie zamierzasz hodować płytki, ale chcesz tylko modelować obwód, weź go lepiej - możesz zmienić jego wartości w dowolny sposób.

Przyklej kilka konderów obok kwarcu i zawieś je na nogach kwarcu jednym ołowiem, a drugi połącz i zawieś na ziemi. Gdzie zdobyć ziemię?? Dobre pytanie:). Poszukaj w lewym pasku narzędzi tych dwóch błędów, które wyglądają jak znaczniki, nazywa się to tryb terminala. Wbij się w niego, otworzy się zaraz obok, po lewej stronie, panel, w którym musisz wybrać linię GRUNT to jest ziemia. Zainstaluj go gdziekolwiek chcesz. moc w tym samym miejscu znajduje się napięcie zasilania obwodu. Zwykle jest to powszechne, ale czasami mogą wystąpić problemy z tym, że obwód ma wiele zasilaczy (jak np. w komputerze są 5 i 12 i 3,3 V i ogólnie ciemność różnych napięć).

Następnie musisz zmontować obwód resetowania. Proteus tego nie potrzebuje, i tak będzie działać dobrze, ale prawdziwy obwód tego potrzebuje. Odbywa się to po prostu. Umieszczamy rezystor i kondensator. Po włączeniu, gdy kondensator nie jest naładowany, jego rezystancja wynosi zero, a wyjście RST Dostarczane jest +5 woltów, tj. logiczne 1, a jak tylko ładowarkę zostanie naładowane, stanie się to za kilka milisekund, wtedy noga przez rezystor będzie leżała na ziemi, a to już jest prawdziwe logiczne zero, a procent rozpocznie się w trybie normalnym.

Zrób wszystko jak na obrazku i zacznij dołączać przyciski do naszego urządzenia. Lepiej rozłączyć się na porcie 1. Dlaczego? Nie są potrzebne żadne dodatkowe rezystory. Faktem jest, że port C51 0 jest wykonany z możliwością pracy na magistrali danych, co oznacza, że ​​ma tzw. stan Z. To wtedy na wyjściu nie jest 1 lub 0, wysoka rezystancja (impedancja), prawie przerwa, ale port może w tym czasie podsłuchiwać szynę pod kątem lecących tam wartości, nie zdradzając się i nie ingerując w inne urządzenia.

Port 3 jest zawieszony z różnego rodzaju dodatkowymi urządzeniami peryferyjnymi, a port 2 nie jest zbyt dogodnie zlokalizowany w modelu Proteus. Dlatego używamy portu 1 :))))))). Poszukaj jakiegoś przełącznika lub przycisku w bibliotece. Podoba mi się składnik przycisku, dlatego go używam. Położę cztery przyciski i powieszę je na pinach P1.0, P1.2, P1.4, P1.6, a pozostałe piny przycisku położę razem na ziemi. Jak to będzie działać?

Tak, proste! Najpierw przynoszę do portu jednostkę, aby uzyskać wszystkie wnioski. Nogi od wewnątrz są natychmiast podciągane do jednostki logicznej. Teraz aby odczytać dane wystarczy pobrać wartość z rejestru portu P1 i jeśli wciśniemy któryś z przycisków, to ta noga mocno wyląduje na ziemi, obezwładniając wewnętrzne podciąganie do jednego. Tych. wciśnięty przycisk daje zero na swoim bicie w porcie. To zasada określania naciśnięcia przycisku we wszystkich mikrokontrolerach. Gorąco polecam również bocznikowanie przycisków kondensatorami 40pF - nie będzie fałszywych alarmów z szumu impulsowego.

Ale to tylko w prawdziwych urządzeniach, w Proteuza to i tak nie ma znaczenia, ale dodam. To wszystko, wprowadzanie danych jest gotowe. Teraz musimy wyciągnąć wnioski. Na wyjściu można głupio powiesić wirtualne diody LED na nogach, a także wirtualnie je mrugać, ale to złe maniery, chociaż nie twierdzę, że często pomaga to w debugowaniu programu.

Wolę rozpieszczać ukochaną UART om. Innymi słowy, terminal. Wchodzimy do sekcji instrumentów wirtualnych. Poszukaj ikony na lewym pasku narzędzi z narysowanym urządzeniem wskazującym i wejdź tam. Będziesz mieć listę wszystkich śmieci, których możesz użyć. Tutaj masz woltomierz, amperomierz i oscyloskop, analizator cyfrowy i różne wysoce wyspecjalizowane gadżety, takie jak monitor protokołu SPI lub I2C. Dla zabawy weź oscyloskop ( oscyloskop) i powiesić go jednym kanałem na wyjściu TxD. Nadal potrzebujemy Wirtualny Terminal. Wybierz go i wklej na diagramie. A teraz połącz jego wyjścia z wyjściami procesora na krzyż. Rx z Tx, Tx z Rx.

Gotowy! Cóż, dla pełnego szczęścia umieść kolejną diodę LED na porcie R2. Jak podłączyć diody LED do portów procesora? Tak, bardzo proste! Zawieszasz plus diody LED dla zasilania, a minus dla rezystora, a ten rezystor jest już na wyjściu procesora. Aby zapalić diodę trzeba dać tej nodze 0.

Wtedy różnica napięć między napięciem zasilania a napięciem zerowym na nodze będzie maksymalna i dioda się spali. Szukaj w komponentach DOPROWADZIŁO Cóż, trzymaj to tak, jak ci powiedziałem. Zapewne już zauważyłem, że częściej definiujemy zdarzenie lub ustawiamy je przez zero, a nie przez jeden. Wynika to z faktu, że zero łatwiej jest uzyskać na siłę niż podciągnąć nogi. Ale nie zawsze tak jest, na przykład w przypadku kontrolerów rodzinnych AVR wiedzą, jak mocno posadzić nogi i do zera i do napięcia zasilania, żeby tam dioda mogła się zapalić o jeden. Aby to zrobić, konieczne będzie odwrócenie go i powieszenie drugim końcem przez nie włączony rezystor moc, ale na ziemi.

Tak więc narysowaliśmy sprzęt. Czas rozpocząć konfigurację i debugowanie.

Wybierz mikrokontroler i kliknij go dwukrotnie, otworzy się okno właściwości.
Pakiet PCB- jest to rodzaj opakowania, ma to znaczenie przy układaniu płytki drukowanej. Niech to będzie kosztować DIL40

Plik programu- to jest rzeczywisty plik oprogramowania układowego. Tutaj musisz wpisać ścieżkę do pliku szesnastkowego.

częstotliwość zegara- częstotliwość, z jaką będzie pracował procesor.

W rzeczywistości częstotliwość zależy od kwarcu lub wbudowanego generatora zegara. W odmieniec ona jest wysłana tutaj. Nie zapomnij ustawić go poprawnie, ponieważ wartości domyślne często różnią się od tych, których będziesz używać.
Ustaw żądaną częstotliwość procesora i zapisz ścieżkę do oprogramowania układowego, co kończy konfigurację obwodu. Możesz rozpocząć debugowanie.

Kliknij przycisk z ikoną bawić się jak na magnetofonie. Wszystko jest proste, bez komplikacji. Zaznaczę tylko, że tryb krokowy to tylko przerywany start z małym opóźnieniem czasowym. Do debugowania musisz debugować kod.

Teraz twój schemat działa. Możesz obserwować zachodzące w nim procesy. Jeśli wybierzesz woltomierz na pasku narzędzi, zobaczysz napięcie lub możesz zmierzyć prąd, jeśli używasz amperomierza. Kolorowe kwadraty, które zapalają się na nogach procesora, są poziomami logicznymi. Niebieski - zero, on jest ziemią. Czerwony to logiczny, a szary to wysoka impedancja, czyli Hi-Z.

W zasadzie to już wystarczy do debugowania pracy urządzenia. A co, debugujemy program w Keil uVision(jeśli mówimy o C51) lub in Studio AVR , skompiluj i zobacz, co się stanie. Działa to świetnie na prostych urządzeniach z jednym głównym kontrolerem i uprzężą.

Ale kiedy w twoim systemie działa kilka mikrokontrolerów lub kontroler i jakieś bardzo inteligentne urządzenie, na przykład klucz Dallas, nie zaczynają się słabe hemoroidy, ponieważ trudno powiedzieć, w którym momencie który z kontrolerów robi co. W takiej sytuacji z pomocą przyjdzie nam wewnętrzny debugger. odmieniec, co pozwala na debugowanie programu z kodu źródłowego bez wychodzenia z symulacji.

Dodawanie źródła.
Przejdź do menu i poszukaj tam pozycji Źródło i śmiało szturchać go niezachwianą ręką. wybierać Dodaj/usuń źródło i dodaj źródło. Od razu radzę, aby kompilator się nie tępił, kody źródłowe były wbijane prostymi ścieżkami, bez spacji i rosyjskich liter. Na przykład jak mój: d:\kodowanie\C51\hack_2.asm” Dodając źródło, nie zapomnij określić kompilatora, który będzie musiał je skompilować. W tym przypadku w „Narzędzia do generowania kodu” musi wskazywać " ASEM51”, czyli kompilator architektury MCS-51.

Kliknij OK i w menu Źródło pojawi się jeszcze jedna pozycja - dodany plik źródłowy, wybierając który edytor otworzy się automatycznie i szybko poprawisz tekst programu.

Ustawienie kompilatora.
Wróć do menu Źródło i poszukaj tam przedmiotu Zdefiniuj narzędzia do generowania kodu” to opcje kompilatora. Początkowo są skonfigurowane krzywo - w sekcji „ Ustal zasady"szturchać na linii" wiersz poleceń i wyrzuć wszystkie śmieci, które tam są. Zostaw tylko “%1 " bez cytatów. ASEM51 sprytna infekcja, doda niezbędne pliki z opisami rejestrów i zmiennych, zwłaszcza że cała rodzina MCS-51 wszystkie adresy są takie same.

Kompilacja
Kliknij to samo menu Źródło ustęp Zbuduj wszystko i uzyskaj wynik plik szesnastkowy, ale już lokalna produkcja. W tym samym miejscu będzie migać okno kompilatora, w którym będą informacje o błędach oraz szereg danych serwisowych.

początek
Uruchom schemat przyciskiem bawić się na dolnym panelu i natychmiast naciśnij albo pauzę, albo tryb krok po kroku. Okno z kodem programu powinno się natychmiast otworzyć, tak jak w debugerze, który już znasz. Jeśli się nie otworzy, możesz go znaleźć w menu Debugowanie -> 8051CPU -> Kod źródłowy - U1

Nie zabraknie też wielu innych przydatnych rzeczy, takich jak zawartość rejestrów procesora czy pamięć programu/danych.

czerwony biegnący koleś- uruchomienie kodu do wykonania.
Noga przeskakująca przez figovinę– wykonanie z pominięciem procedur
Noga ze strzałką w dół– wykonaj jedną instrukcję, zrób krok.
Noga ze strzałką w górę– wyjść z podprogramu.
Stopa i strzałka do przodu– wykonaj do kursora.
Koła ze strzałkami- ustawianie/usuwanie/wyłączanie breakpointów BreakPoint. Punkt przerwania to miejsce w programie, w którym Twój program zatrzyma się w martwym punkcie i pójdzie dalej tylko za Twoją zgodą - nieodzowna rzecz w debugowaniu.


Przy dodawaniu do projektu drugiego procesora jego kod, rejestry i pamięć będą w tym samym miejscu, ale zostanie wywołany Kod źródłowy-U2 i tak dalej.
Ponadto w katalogu odmieniec jest folder PRÓBKI jest w nim wiele różnych przykładów, bardzo rozbudowanych, pokazujących możliwości systemu ISIS Proteusz.

Z.Y.
Napisałem ten artykuł dla magazynu Hacker. W nieco innej formie (nieco bardziej szczegółowej) ukazał się w grudniowym magazynie.

Z pewnością wielu czytelników tej strony chciałoby samodzielnie opracować i zmontować jakieś urządzenie na AVR MK. Ale może być wiele powodów, dla których trudno jest to zrobić sprzętowo. Na przykład mieszkanie na wsi, gdzie nie ma sklepów radiowych z dużym wyborem komponentów radiowych. Chociaż w tym przypadku, jak zawsze, z pomocą przychodzi serwis Ali Express. Lub ograniczony budżet. Dotyczy to zwłaszcza uczniów i studentów, którzy nie mają jeszcze stałego źródła dochodu.

Co więc zrobić w takim przypadku? Tutaj z pomocą przychodzą nam specjalne programy symulacyjne stworzone specjalnie do debugowania obwodów.

Jedną z nich, Proteus w wersji 7.7, przeanalizujemy w tym artykule w odniesieniu do naszego projektu.

Co daje nam ten program? Początkujący pomyślą, że jest to zbyt trudne do opanowania. Nie, nie jest. Po prostu nie wykorzystamy wszystkich funkcji programu podczas emulacji naszych pierwszych projektów. Naprawdę można opanować jego podstawy w jeden lub dwa wieczory. Co nam daje w nauce pracy z mikrokontrolerami? Tam na przykład znajduje się wizualna reprezentacja działania diod LED, wyświetlaczy czasu rzeczywistego. Możesz wybrać emulację wielu typów AVR MK, w tym tych, na których będą oparte nasze lekcje: Tiny2313 i Mega8. Co to oznacza i jak to się robi? Piszemy nasz kod oprogramowania układowego, kompilujemy go, pobieramy plik HEX, którego potrzebujemy i wirtualnie flashujemy nasz MK w programie Proteus. Co więcej, możemy również zmienić bity bezpieczników naszego wirtualnego MK.

Przyjrzyjmy się, jakie działania musimy podjąć, aby samodzielnie zmontować ten układ na polu roboczym i naśladować go.

Oto okno, które otwiera się zaraz po uruchomieniu programu (kliknij, aby powiększyć):


Następnie musimy wybrać z biblioteki te części radiowe, które są nam potrzebne do projektu i umieścić je na liście części. Następnie możemy je wybrać i zainstalować na polu roboczym. W naszym projekcie użyjemy Attiny2313 MCU, żółtej LED-ŻÓŁTEJ (dobrze świeci w Proteusie) i rezystora RES, aby ograniczyć prąd przepływający przez diodę LED. W przeciwnym razie my, bez względu na to, jak śmiesznie to zabrzmi, „spalimy” wirtualną diodę LED :-).

Aby wybrać te elementy radiowe, musimy kliknąć literę „P”:

Po kliknięciu pojawi się następujące okno:


W polu „Maska” jeździmy tym, co chcemy znaleźć, czyli naszym MK, LED i rezystorem


Wpisujemy „Tiny2313” w polu Mask i klikamy MC, który znaleźliśmy w kolumnie „Wyniki (1)”:


Następnie powtarzamy to samo z rezystorem. Jeździmy w "res":


i w ten sam sposób szukamy diody LED:


Cóż, teraz wszystkie te trzy elementy powinny być wyświetlane w kolumnie „Urządzenia”:

Teraz klikamy czarną strzałkę, a następnie wybieramy z listy potrzebny nam element radia:

Po lewej stronie w pionowej kolumnie widzimy ikonę „Terminal”. Interesują nas tam dwie linie: Power i Ground. Jest to odpowiednio w naszym obwodzie zasilanie +5 woltów i masa. Zasilanie MK nie jest konieczne, jest ono zasilane automatycznie. W przypadku obwodu bierzemy tylko ikonę „ziemi”.

Wyciągamy wszystkie elementy radiowe na polu roboczym


Następnie musimy je połączyć przewodem połączeniowym, po czym nie będziemy się przejmować, że są połączone przewodem np. tor na płytce lub okablowanie


Muszę od razu powiedzieć, że nie próbuj instalować jednego wyjścia części blisko drugiego lub nawet nakładać się na siebie, bez użycia linii połączeniowych. Program nie zrozumie tego jako połączenia i obwód nie będzie działał.

Musimy również zmienić wartość rezystora. Domyślnie nie nadaje się do naszego schematu. Jak to zrobić?

Kliknij prawym przyciskiem myszy rezystor, wybierz Edytuj właściwości


A następnie zmień wartość na 200 omów. Wystarczy, że nasza wirtualna dioda LED nie jest martwa)


Czasami nasze pole robocze próbuje wydostać się z ekranu, wtedy musimy za pomocą przewijanego kółka myszy zmienić skalę i kliknąć, ustawiając zieloną ramkę w lewym górnym rogu tak, aby cały nasz projekt był w nim

Przy okazji chcę od razu powiedzieć, że jeśli popełniliśmy jakieś błędne działanie, wystarczy kliknąć przycisk „Anuluj” i ostatnia akcja zostanie anulowany. Myślę, że wiele osób o tym wie programy stron trzecich, ale prawie).

Więc stworzyliśmy diagram. Teraz musimy wgrać firmware do naszego mikrokontrolera i zobaczyć jak wygląda w działaniu. Aby to zrobić, musimy kliknąć kliknij prawym przyciskiem myszy na MK i kliknij ikonę z obrazem żółtego folderu w kolumnie Program Files. Nawiasem mówiąc, tutaj w razie potrzeby możesz również ustawić bezpieczniki (kliknij, aby powiększyć zdjęcie):


Następnie należy wybrać plik oprogramowania z rozszerzeniem *.HEX i kliknąć „Otwórz”. Wszystko gotowe, możesz emulować projekt.

(kliknij na zdjęcie, aby powiększyć)


Aby rozpocząć emulację, musisz nacisnąć przycisk „trójkąt” w lewym dolnym rogu programu „Proteus”:


Zaczniemy emulację. Zobaczymy, jak miga dioda LED. W pewnym momencie zaświeci się nasza dioda LED. Zobacz jak jasno pali się na żółto :-)


A potem znowu zniknie:


Teraz możemy opcjonalnie zapisać nasz projekt pod dowolną nazwą wybierając „Zapisz projekt jako”, a także jeśli potrzebujemy otworzyć gotowy plik innego projektu wybierając „Otwórz projekt”

Tak wygląda ikona zapisanego projektu na pulpicie:

Mam nadzieję, że wy, czytelnicy, nie będzie trudno samodzielnie zmontować ten projekt, aw przyszłości, po napompowaniu swoich umiejętności, z łatwością będziecie mogli samodzielnie złożyć bardziej złożony projekt. Załączyłem gotowy projekt do programu Proteus 7.7 i firmware w archiwum.

OK, już po wszystkim! Poniżej znajduje się film z działania obwodu, a także wszystkich etapów emulacji: