Kada je pin konfiguriran kao izlaz, možemo ga postaviti na logičku 1 (+5 volti) i logičku 0 (0 volti). Ovo se radi upisivanjem u registar PORTx.y. Zatim ćemo detaljno govoriti o I/O portovima. Sada postavljamo sve kako je prikazano na snimku ekrana i kliknemo File->Generate, Save and Exit. Zatim, CodeWizard će od nas zatražiti da spremimo projekat, mi ga spremimo i pogledamo kod:
Kada je pin konfiguriran kao izlaz, možemo ga postaviti na logičku 1 (+5 volti) i logičku 0 (0 volti). Ovo se radi upisivanjem u registar PORTx.y. Zatim ćemo detaljno govoriti o I/O portovima. Sada postavljamo sve kako je prikazano na snimku ekrana i kliknemo File->Generate, Save and Exit. Zatim, CodeWizard će od nas zatražiti da spremimo projekat, mi ga spremimo i pogledamo kod:
Kada je pin konfiguriran kao izlaz, možemo ga postaviti na logičku 1 (+5 volti) i logičku 0 (0 volti). Ovo se radi upisivanjem u registar PORTx.y. Zatim ćemo detaljno govoriti o I/O portovima. Sada postavljamo sve kako je prikazano na snimku ekrana i kliknemo File->Generate, Save and Exit. Zatim, CodeWizard će od nas zatražiti da spremimo projekat, mi ga spremimo i pogledamo kod:
Sada možemo pokrenuti simulaciju našeg kola. Da biste to uradili, kliknite na dugme "Play" u donjem levom uglu prozora Proteus.Dizajniranje električnih šema pomoću mikrokontrolera u softverskom okruženju
Proteus 8.1. dio 2 Implementirano u Proteusu veliki broj funkcije za profesionalni dizajn mikroelektronskih uređaja fokusiranih na najviše savremenim sredstvima
modeliranje. Jedna od ovih funkcija je simulacija rada mikrokontrolera.
U ovom članku se razmatra proces modeliranja kola pomoću mikrokontrolera na primjeru mikrokontrolera 80C51.
Simulacija kola uključujući mikrokontroler i prevod programskog koda.
Da bismo jasno demonstrirali rad programa za inicijalizaciju mikrokontrolera, koristićemo sonde u boji logičkih nivoa 0 i 1. Da biste dodali sondu u radni prostor projekta, potrebno je pozvati prozor Pick Devices (slika 1) i U polju Category izaberite biblioteku alata za otklanjanje grešaka sa liste, u polju Potkategorija izaberite liniju Logic Probes, a u polju Rezultati izaberite liniju LOGICPROBE, a zatim kliknite na OK.
Rice. 1. Odabir sonde logičkog nivoa u prozoru Pick Devices.
Kao rezultat toga, prozor Pick Devices će biti zatvoren, a simbol sonde će biti pričvršćen za kursor miša, uz pomoć kojeg trebate postaviti simbol na željeno mjesto na dijagramu - kliknite na željeno mjesto na dijagram lijevom tipkom miša onoliko puta koliko je potrebno postaviti sonde.
Dodajmo mikrokontroler 80C51 u radni prostor projekta (proces kreiranja novog projekta pomoću mikrokontrolera u Proteusu detaljno je razmotren u prvom dijelu članka) i spojimo sonde na linije porta mikrokontrolera koji se proučavaju. Kao rezultat toga, kada se na izlazu linije porta pojavi logička vrijednost jedan, sonda će biti označena crvenom bojom, a kada se pojavi logička nulta vrijednost, sonda će biti istaknuta plavom bojom. Vrijednosti 0 i 1 su također vizualno prikazane na sondama.
Nakon što je dijagram sastavljen u radnom prostoru projekta (slika 2), a programski kod je unet na kartici Source Code (slika 3), možete započeti simulaciju.
Rice. 2. Demonstracijski sklop koji koristi mikrokontroler i sonde logičkog nivoa u boji.
Proces simulacije se pokreće pomoću dugmeta Pokreni simulaciju, koje se nalazi u donjem levom uglu prozora programa. Da biste privremeno pauzirali proces simulacije, koristite dugme Pauziraj simulaciju ili pokreni u trenutku 0 ako je zaustavljen (dugme se nalazi u donjem levom uglu prozora programa). Simulaciju možete zaustaviti pomoću dugmeta Zaustavi simulaciju.
Kao rezultat toga, ako kompajler ne otkrije greške u listi programa, sljedeće datoteke će se kreirati na disku vašeg računala u radnoj mapi projekta:
Rice. 4. Nex datoteka strojnog koda.
Rice. 5. Fajl sa asemblerskim kodom programa.
Rice. 6. Kartica 8051 CPU Source Code.
Program za inicijalizaciju mikrokontrolera je napisan u programskom jeziku asm51. Ovo je asemblerski jezik koji je posebno dizajniran za pisanje programa za mikrokontrolere porodice x51. Ako su greške otkrivene tokom kompilacije programskog koda za inicijalizaciju mikrokontrolera, kompajler će ih označiti u *.lst datoteci. U ovom slučaju, hex datoteka neće biti generirana dok se greške ne riješe. U datoteci listinga, za svaku otkrivenu grešku, prevodilac ukazuje na uzrok greške i broj reda u kojem je otkrivena. Na slici 7 prikazan je fragment *.lst datoteke, u kojem debugger prijavljuje grešku broj 2 (Nedefinirani identifikator), a to je da je naziv ulaznog/izlaznog porta podataka pogrešno naveden u programskom kodu (mikrokontroler koji se koristi ne imaju port pod nazivom P6).
Rice. 7. Fragment datoteke liste *.lst.
Otklanjanje grešaka u programu za inicijalizaciju se vrši na kartici 8051 CPU Source Code, koja se prikazuje nakon pauziranja procesa simulacije. Da biste privremeno pauzirali simulaciju kola, koristite dugme Pauziraj simulaciju ili pokrenite u trenutku 0 ako je zaustavljeno (dugme se nalazi u donjem levom uglu prozora programa). Izveštaj o greškama primljenim kao rezultat prevođenja programskog koda je prikazan na dnu kartice Izvorni kod u VSM Studio Output panelu (slika 8).
Rice. 8. Izvještaj o greškama primljenim kao rezultat prijevoda programskog koda.
Stanje memorije i registara mikrokontrolera može se videti pomoću sledećih komandi u glavnom meniju programa:
Rice. 9. Status: (a) registara, (b) SFR memorije, (c) interna memorija mikrokontroler.
Meni Debug (Slika 10) je dostupan kada je simulacija kola pauzirana.
Rice. 10. Meni za otklanjanje grešaka.
Analizirajmo rad demonstracionog kola prikazanog na slici 2. Na kartici main.asm (slika 3), koristeći komandu mov, date su instrukcije programu za inicijalizaciju mikrokontrolera da u port P2 upiše sljedeće vrijednosti portova P2.7-P2.0 - “00001111”, a na port P1 - vrijednosti portova P1.7-P1.0 - “01010101”. Nakon pokretanja simulacije pomoću sondi u boji, možemo provjeriti da li program radi ispravno. Kao što se može vidjeti sa slike 2, pinovi portova mikrokontrolera P1 i P2 su zaista kombinacija koju smo naveli u programskom kodu.
Uparivanje mikrokontrolera x51 sa 7-segmentnim indikatorskim čipovima Proteus.
Sistem koji koristi mikrokontroler može ne samo kontrolirati nešto, već i prikazati nešto. Najčešće se indikatori za sintetizaciju znakova koriste kao prikazni čvor u kolu. Ne postoje standardna pravila za uparivanje mikrokontrolera sa indikatorima, a u svakom konkretnom slučaju uparivanje se može izvesti drugačije.
Slika 11 prikazuje primjer povezivanja 7-segmentnog indikatorskog čipa na mikrokontroler. Princip povezivanja mikrokontrolera sa elementima kola je isti kao i za ostale komponente kola.
Rice. 11. Interfejs 7-segmentnog indikatorskog čipa sa mikrokontrolerom.
Da biste prikazali broj, potrebno je da „osvijetlite“ određene segmente indikatora. Kada se koristi u krugu mikrokontrolera, to se može učiniti programski. Različite kombinacije svetlosnih indikatorskih elemenata, obezbeđene eksternim prekidačem, omogućavaju prikaz brojeva od 0 do 9 i decimalne tačke. U prikazanom primjeru elementi indikatora imaju zajedničku katodu.
Za kontrolu 7-segmentnog indikatora, sklop koristi binarno-decimalni dekoder 74HC4511 (domaći analogni 1564ID23). Čip dekodera pretvara binarni kod primljen od mikrokontrolera u cifren kod za dalji prikaz na 7-segmentnom indikatorskom čipu. Čip 74HC4511 je poseban dekoder dizajniran za pretvaranje binarnog koda u kod od sedam segmenata i kontrolu sedmosegmentnih i tečnih kristala ekrana. Ulazi A, B, C, D – informacioni ulazi. Izlazi QA-QG – izlazi na indikator od sedam segmenata. Binarni kodovi i njihove odgovarajuće decimalne cifre prikazani su u tabeli 1.
Tabela 1. Binarni kodovi i njihove odgovarajuće decimalne cifre.
Binarni kod |
Decimalna cifra |
Da biste dodali čip dekodera u radni prostor projekta, potrebno je da otvorite prozor Pick Devices (Sl. 12a) iu njegovom gornjem lijevom dijelu u polju Category izaberite biblioteku serije TTL 74HC sa liste. Ispod polja Kategorija nalazi se polje Potkategorija u kojem je potrebno odabrati stavku Dekoderi. U polju Rezultati izaberite 74HC4511 čip i kliknite na OK. Da bi se dodalo mikrokolo sedmosegmentni indikator With zajednička katoda, izaberite biblioteku Optoelectronics u prozoru Pick Devices (Slika 12b) u polju Category, 7-Segment Displays u polju Sub-category i 7SEG-MPX1-CC u polju Results.
Rice. 12. Odabir komponenti kola u prozoru Pick Devices: (a) dekoder, (b) indikator sa sedam segmenata.
U primeru prikazanom na slici 11, indikator prikazuje broj 3. Da bi se to uradilo, na kartici main.asm (slika 13), koristeći komandu mov, inicijalizacionom programu mikrokontrolera date su instrukcije da zapiše na port P2 sledeće vrijednosti portnih linija P2.7-P2.0 - “ 00000011".
Rice. 13. Upišite binarni kod broja 3 na port P2 mikrokontrolera.
Nakon pokretanja simulacije, možemo provjeriti da li program radi ispravno. Kao što se može vidjeti sa slike 11, pinovi porta mikrokontrolera P2 su zaista kombinacija koju smo naveli u programskom kodu, a indikator prikazuje broj 3.
Programiranje mikrokontrolera x51.
Kada pišete programski kod za x51 mikrokontroler, morate znati sintaksu programskog jezika asm51. Najčešće korišćene asm51 komande su predstavljene u tabeli 2.
Tabela 2. Komandni sistem x51 mikrokontrolera.
Ime tima |
Mnemonički kod |
Prijenos na akumulator iz registra |
|
Prijenos u registar iz akumulatora |
|
Zamjena akumulatora sa registrom |
|
Dodavanje akumulatora u registar |
|
Dodavanje akumulatora sa konstantom |
|
Battery Increment |
|
Registrirajte inkrement |
|
Smanjenje baterije |
|
Dekrement registra |
|
Logički I akumulator i registar |
|
Logički OR akumulatora i registra |
|
Resetovanje baterije |
|
Inverzija baterije |
|
Prijelaz ako baterija jednaka nuli(mt je oznaka u programskom kodu) |
|
Skoči ako akumulator nije nula (mt je oznaka u programskom kodu) |
|
Prazna operacija koja se može koristiti kao kašnjenje od 1µs |
|
Izlazak iz potprograma |
Proteus
- Ovo univerzalni program, sa kojim možete kreirati razne virtuelne elektronskih uređaja i izvode njihovu simulaciju. Sadrži ogromnu biblioteku analognih i digitalni čipovi, senzori, diskretni elementi: otpornici, kondenzatori, diode, tranzistori, itd. Postoji i širok spektar optoelektronskih komponenti: displeji, LED diode, optokapleri, itd.
Glavna prednost i razlika između Proteusa i drugih sličnih programa za simulaciju rada električna kola, je sposobnost simulacije rada mikroprocesora i mikrokontrolera (MCU). Proteus biblioteka sadrži sljedeće glavne tipove mikrokontrolera: AVR, ARM, PIC, Cortex.
Kao i kod bilo kojeg drugog sličnog softvera dizajniranog da simulira rad električnih kola, ovaj softver ima niz virtuelnih merni instrumenti: ampermetri, voltmetri, vatmetar, osciloskop, logički analizator, brojač itd.
Proteus takođe ima ugrađene alate za automatizovani razvoj štampane ploče i da kreiraju svoje 3D modele.
Da bismo simulirali naš prvi program, potreban nam je samo ATmega8 mikrokontroler, otpornik i LED dioda iz biblioteke.
Svako podešavanje počinje pokretanjem. U prozoru koji se pojavi kliknite na ikonu diode s kondenzatorom Schematic Capture(Dizajn kola).
Nakon toga će se otvoriti prozor sa praznim poljem.
Sada dodajmo ATmega8 mikrokontroler, otpornik i LED.
Zadani način rada je postavljen na odgovarajući način Component Mode stoga, da biste došli do menija za odabir elektronskih i drugih elemenata, samo kliknite na dugme P koje se nalazi na panelu UREĐAJ(uređaj). Nakon toga, otvorit će se prozor u kojem trebate odabrati iz menija Kategorija(Kategorije) Mikroprocesorske IC-ove(mikroprocesori), in Podkategorija(potkategorije) – AVR porodica. Sledeći u prozoru Rezultati pronađite i odaberite MK ATMEGA8. Kliknite na dugme OK.
Nakon toga će se pojaviti u meniju prozora UREĐAJ i već ga možete prevući mišem u radnu oblast.
Slično tome, dodajte otpornik i LED.
LED diode su u kategoriji Optoelektronika(Optoelektronika) i dalje u podkategoriji LED diode. IN u ovom primjeru odabrano je zeleno LED-ZELENA.
Sada sastavljamo krug, kao što je prikazano na donjoj slici. Otpornik R1 povezujemo na pin MK PC0, koji je spojen na anodu LED D1. Spajamo LED katodu na masu. Element "zemlja" nalazi se u meniju kartica Terminals Mode.
Da biste promijenili vrijednost otpora otpornika R1, potrebno je dvaput kliknuti na njega. U prozoru koji se otvori postavite 300 Ohma u liniji Otpor(otpor).
Imajte na umu da su pinovi mikrokontrolera u Proteuse-u grupirani u zasebne grupe prema portovima radi praktičnosti. Međutim, to ne odgovara njihovoj lokaciji u pravom MK-u. Osim toga, ne postoje terminali na koje se dovodi napon za napajanje MK. Ova funkcija je standardno instalirana.
Sada ostaje samo da upišemo naš kod u virtuelni MK. Dvaput kliknite na njega mišem i u novom koji se pojavi naznačite putanju do datoteke sa kodom. Pronađite lokaciju datoteke klikom na ikonu u obrascu otvori folder u redu Program File.
U fascikli projekta nalazimo fasciklu Otklanjanje grešaka i u njemu izaberite datoteku sa ekstenzijom HEX. Nakon toga pritisnite dugme Otvori.