Programarea în avr studio de 5 de la început
![Programarea în avr studio de 5 de la început ( Programarea în avr studio de 5 de la început](https://webp.images-on-off.com/27/320/434x155_2r15xcd2p7q4t4wwi667.webp)
Scrierea primului program!
Cele mai multe începe cu LED-uri intermitente, iar noi nu fac excepție. În cazul în care microcontroler, chiar și cel mai rapid, nu „comunică“ cu lumea exterioară, valoarea sa este redusă la zero. Avem nevoie de microcontroler informațiile primite prelucrate de un anumit algoritm și ieșiri rezultatul într-un mod ușor de înțeles pentru noi.
Algoritmul. (În numele matematicianului persan al-Khwarizmi) - exact setul de instrucțiuni care descriu procedura de artist pentru a obține rezultatul de a rezolva problema de ceva timp.
Pentru a scrie în mod corespunzător programe trebuie să înțeleagă modul în care microcontroler, pe care o vom face cu, iar acum parte a primului program în limbaj de asamblare.
![Programarea în avr studio de 5 de la început (EEPROM) Programarea în avr studio de 5 de la început](https://webp.images-on-off.com/27/320/250x192_5bhs4yroeu8a1xgx7wn2.webp)
Înainte de a începe, scrie ceva, ia în considerare directivele de asamblare microcontrolere AVR.
Înainte de fiecare directivă pune capăt:
Descrierea completa a comenzilor și a directivelor de asamblare în traducere română Ruslan Shimkevich pot fi găsite aici:
▼ Atmel-AVR-assembler.7z | 397,28 fișier Kb este descărcat de 233 ori.
Am nevoie de un fișier la articol?
Alegeți opțiunea un acces complet la „Journal of Practice Electronics Datagor“.
Nu ne întoarcem la directivele de asamblare, iar acum încercați să scrie un text scurt al programului, care va include LED-uri.
Pentru comoditate, vom alege ATtiny2313A microcontroler. Dacă cineva va merge mai departe și va experimenta în „fier“, acest controler este una dintre cele mai accesibile, foarte des utilizate într-o varietate de modele care pot fi găsite în marea rețea.
Noțiuni de bază cu programul Proteus
Pentru început nu stai, diagrame, am pus proiectul finit.
▼ attiny2313_led.rar | 27.18 Kb fișier descărcat de 179 ori.
Am nevoie de un fișier la articol?
Alegeți opțiunea un acces complet la „Journal of Practice Electronics Datagor“.
Trebuie doar să despachetați și porniți-l (cu condiția ca Proteus este deja instalat).
Ar trebui să vedeți aici este o imagine:
![Programarea în avr studio de 5 de la început (program) Programarea în avr studio de 5 de la început](https://webp.images-on-off.com/27/320/250x192_r5qr2p1vcyhl64li3n32.webp)
Compilați-l făcând clic pe butonul F7
În fereastra de ieșire va compila informațiile deținute în cele din urmă ar trebui să fie Build inscripție a reușit, ceea ce confirmă cu succes fișierul de asamblare Hex.
![Programarea în avr studio de 5 de la început (să fie) Programarea în avr studio de 5 de la început](https://webp.images-on-off.com/27/320/250x192_hj06m2op7602pbbfemul.webp)
Acest fișier este localizat în mod implicit în Documentele mele, proiectul AVR Studio 5.
Du-te la Proteus. click pe imaginea operatorului și introduceți calea, în cazul în care fișierul să fie Hex:
![Programarea în avr studio de 5 de la început (director) Programarea în avr studio de 5 de la început](https://webp.images-on-off.com/27/320/250x192_649x37fzy1dxwqw1kvis.webp)
![Programarea în avr studio de 5 de la început (studio) Programarea în avr studio de 5 de la început](https://webp.images-on-off.com/27/320/250x192_ieqopjj842337lt1f6md.webp)
![Programarea în avr studio de 5 de la început (Sensitive) Programarea în avr studio de 5 de la început](https://webp.images-on-off.com/27/320/250x191_y2jnesyfn0pof0bqzhu8.webp)
![Programarea în avr studio de 5 de la început (program) Programarea în avr studio de 5 de la început](https://webp.images-on-off.com/27/320/250x192_0700uru0mnibei3v63d8.webp)
Porniți software-ul de emulare.
După apăsarea rezultatelor începe să vedeți!
![Programarea în avr studio de 5 de la început (posibil) Programarea în avr studio de 5 de la început](https://webp.images-on-off.com/27/320/250x192_2ostsl417ff4c58iv27v.webp)
![Programarea în avr studio de 5 de la început (Sensitive) Programarea în avr studio de 5 de la început](https://webp.images-on-off.com/27/320/250x192_on44eg6d5mw5ah4esd0x.webp)
Pentru a opri emularea - ne faceți clic pe Stop.
În cazul în care schema de Flash microcontroler programator și de a construi, rezultatul va fi același.
Încercați să dau seama cu programul:
Pentru comoditate, am numit numele temp registru r16, aceasta înseamnă că, în orice punct din program, atunci când scrie un program de temperatură cuvânt va avea acces la registru R16.
Ce este acest registru - r16?
Ea face parte din registrele de uz general, care sunt desemnate ca R0 ... .r31, adică ele sunt doar 32 la 8 biți. A doua jumătate a scopului general înregistrează r16 ... R31 îndeplini funcția de stocare temporară a informațiilor (ca bateriile, pot primi și pot oferi informații pentru comparație - controler PIC doar o baterie W). 6 registre de uz general sunt combinate în trei 16 biți:
Vă rugăm să rețineți că cel mai semnificativ octet este scris înainte, Jr. mai târziu.
R27: R26 registru se numește X,
R29: R28 registru se numește Y,
R31: registru r30 numit Z
Programul va lucra, de asemenea, în cazul în care temperatura de cuvânt este atribuit oricărui alt registru cu scop general de la exemplul R31 r16 la .def temp = r20. După (F7 apăsați în AVR Studio 5) compilare, diferența în programul de lucru, nu, nu.
(O puteți încerca, acum știi cum să o faci!)
AVR Studio 5 Prezenta directivă este înregistrată în mod implicit.
Microcontrolerele AVR aloca zona de memorie diferite pentru stocarea de cod de program și date în memorie non-volatilă sau EEPROM, există directoare pentru a se referi la acest domeniu:
.CSEG - segment de program
.dseg - segmentul de date
.eseg - segment EEPROM
Programul începe cu o linie a acestei directive .org, iar la final va reveni la ea.
Aceasta este o echipa pe trecerea la eticheta de pornire.
Programul este executat secvențial de sus în efluentul de jos. Dacă vrei să mergi la o altă zonă a programului este folosit echipa rjmp
comandă ser este executat cu registrele ... r16 R31, și comanda CLR pot fi executate la toate registrele, inclusiv registre și intrări-ieșiri (registre de funcții speciale). Scopul acestor registre vor fi luate în considerare mai târziu.
Ldi zapisyvet comandă în registru temp număr binar 11001100 (nu este o eroare în cazul în care în loc să scrie 0b11001100 204 sau SB, într-un caz, în formă zecimală într-un alt hexazecimal)
out ieșiri de comandă temp valoare înregistrați pentru a înregistra portul DDRB.
Care este portul, și cum funcționează?
Dacă simplificată la un nivel minim, portul poate fi descris ca un picior de retragere a microcontrolerului, care, în modul de ieșire, puteți aplica în mod liber de tensiune sau a dezactiva, și în modul de intrare pentru a determina dacă tensiunea furnizată din exterior sau nu.
Există trei moduri de port: este de ieșire, intrare și o stare off.
Portul de control înregistrează PinX, PortX, DDRX.
X - este un port, executați aceste registre.
DDRX înregistrare controale moduri de intrare-ieșire, ca un releu - activat (scrie 1) - conectat la linia de ieșire deconectată (înregistrată 0) - pornit pe linia de intrare (implicit).
![Programarea în avr studio de 5 de la început (a) Programarea în avr studio de 5 de la început](https://webp.images-on-off.com/27/320/250x189_1oi0g2285htlggcjr2t3.webp)
Pentru date de ieșire din portul X trebuie să se înregistreze DDRX comuta modul de ieșire (registru 1), iar datele sunt transmise la registrul PortX.
Citește Port valoarea X poate, în cazul în care registru DDRX comuta modul de intrare (înregistrare 0) de înregistrare PinX. Pentru a conecta un rezistor pull-up în modul de introducere, este necesar să se trimită date către PortX.
rezistențe pull-up ne scuti de necesitatea de a conecta rezistențe externe pe sârmă pozitiv, și cu o singură comandă se alimentează la intrarea unei unități logice.
Citiți în partea următoare!
Data viitoare te uiți la modul de a calcula timpul de întârziere de care este un controler, încercați să faceți LED-urile noastre clipesc.