Assemblerda avr dasturlash. Atmel AVR mikrokontrollerlarini montaj tilida amaliy dasturlash. (3-nashr). Yunoncha uslubdagi elektronika
Shunday qilib, umid qilamanki, vijdonli o'quvchi allaqachon dasturchi, eksperimental taxtani yig'gan, shuningdek, kerakli dasturiy ta'minotni o'rnatgan va sozlagan.
Endi, seriyadagi birinchi maqolani yozganimdan so'ng, men biroz hayajonlanganimni va "yangi boshlanuvchilar uchun" iborasini qo'yib, avvalgilar kabi xato qilganimni tushunaman. “Assembly tilini dasturlashda yangi boshlanuvchilar uchun” mavzusini shakllantirish to'g'riroq bo'lar edi, ya'ni o'quvchi mikrokontroller nima ekanligini hech bo'lmaganda yuzaki tushungan deb o'ylayman, aks holda buning uchun bizga ko'p vaqt kerak bo'ladi. ushbu mavzu bilan tanishing. Ular bilan umuman tanish bo'lmaganlar uchun men S. Ryumikning "AVR Microcontrollers" nomli bir qator maqolalarini tavsiya qilishim mumkin, bu mening fikrimcha, Radioamator jurnalida chop etilgan (2005 yil uchun 1-11-son) mutlaqo ajoyibdir. . Ushbu tsiklda ATmega8 asosiy boshqaruvchi sifatida tanlangan, ammo yuqorida aytib o'tilgan kontroller va ATtiny13 ning umumiy funktsional birliklari deyarli bir xil.
ATtiny13 mikrokontrolleri bilan bevosita tanishish uchun men A.V.ning kitobini tavsiya qilaman. Evstifeeva "Mikrokontrollerlar" AVR oilasi mayda. Foydalanuvchi uchun qo'llanma" (M.: "Dodeka-XXI" nashriyot uyi, 2007. - 432 pp.). Unda kichik oila boshqaruvchilarining butun diapazoni uchun tarjima qilingan va tizimlashtirilgan ma'lumotlar jadvallari mavjud va menimcha, ish stoli bo'lishi kerak. mikrokontrolderlarni dasturlash bilan shug'ullanadiganlar uchun o'qing.
Biroq, hikoya davom etar ekan, men yozma dasturlarda ishlatiladigan boshqaruvchining tugunlari va modullari haqida ba'zi ma'lumotlarni beraman.
Ammo bularning barchasi lirik chekinishdir. Keling, to'g'ridan-to'g'ri hikoyaga qaytaylik.
ATtiny13 kontrolleri, kichik o'lchamiga qaramay, juda yaxshi funktsional xususiyatlarga ega. Va kam sonli pinlar ularning har biri bajaradigan funktsiyalar soni bilan qoplanadi. Pimlarning pinout va tavsifi quyida keltirilgan:
Jadval A.V.ning yuqorida qayd etilgan kitobidan olingan. Evstifeeva.
Ko'rib turganingizdek, har bir pin kamida uchta funktsiyani bajarishi mumkin, hatto undan ham ko'p. Avvaliga biz muqobil funktsiyalarni ko'rib chiqmaymiz, faqat asosiy - raqamli kirish/chiqish.
Rasm va jadvaldan ko'rinib turibdiki, barcha pinlar, quvvat pinlari bundan mustasno, PB nomidan keyin seriya raqamiga ega. Bu qanday ma'nono bildiradi? Barcha kontroller pinlari ular bilan ishlash qulayligi uchun 8 qismga birlashtirilgan va har bir 8 pinli guruhga uchta maxsus kiritish/chiqarish registrlari ajratilgan. Umuman olganda, registrlar tushunchasi kontrollerlar bilan ishlashda, ayniqsa assemblerda asosiy hisoblanadi. Keling, yuqorida qayd etilgan uchta registrning har birini batafsil ko'rib chiqaylik. Ularning barchasi kontroller xotirasidagi bir baytli hujayralardir. Har bir bit tekshirgich chiqishidan biriga mos keladi va registrdagi bit raqami chiqish raqamiga to'g'ri keladi (masalan, 0-bit PB0 chiqishi uchun, 1-bit PB1 chiqishi uchun javob beradi va hokazo). Barcha registrlar o'z nomiga ega bo'lib, ular orqali dasturlarni yozishda foydalaniladi. Bu qanday ismlar?
1. DDRB registri har bir kontroller pinining axborot uzatish yo'nalishi uchun javobgardir. Agar ushbu registrning biron bir biti "0" bo'lsa, tegishli chiqish kirish bo'ladi, agar "1" bo'lsa, u holda chiqish. Bundan tashqari, har bir chiqish alohida va dasturning istalgan joyida sozlangan. Bu shuni anglatadiki, har xil sharoitlarda yoki turli vaqtlarda bir xil pin boshqa pinlardan mustaqil ravishda kirish yoki chiqish sifatida sozlanishi mumkin.
2. PINB registri barcha pinlarning joriy holatini o'z ichiga oladi: agar pinga kuchlanish qo'llanilsa, u holda tegishli bitga mantiqiy "1" yoziladi, agar kuchlanish bo'lmasa, mantiqiy "0" yoziladi. Ushbu registr asosan kirish rejimida bo'lgan pin holatini o'qish uchun ishlatiladi.
3. PORTB registri axborot uzatish yo‘nalishiga qarab ikki tomonlama vazifani bajaradi. Agar pin raqamli chiqish sifatida ishlayotgan bo'lsa, u holda PORTB registrining istalgan bitiga "1" yozish mos keladigan pinda kuchlanish paydo bo'lishiga olib keladi va "0" ni yozish kuchlanishning yo'qolishiga olib keladi. Shunday qilib, chiqish rejimida har bir pinning holatini aniqlaydigan ushbu registrdir. Raqamli kiritish rejimida har qanday bitga mantiqiy "1" yozish, o'rnatilgan tortishish qarshiligini mos keladigan pinga ulashga va uni o'chirish uchun "0" yozishga olib keladi. Bu "tortishuvchi qarshilik" qanday narsa va u nima uchun mo'ljallangan? Agar pin raqamli kirish vazifasini bajarsa, u holda kirish buferining qarshiligi ancha yuqori va kirish oqimi juda kichik. Shuning uchun har qanday elektr aralashuvi chiqishning o'z-o'zidan o'zboshimchalik holatiga o'tishiga olib kelishi mumkin. Bunga yo'l qo'ymaslik uchun kirish va quvvat manbai o'rtasida bir necha o'nlab kilo-ohm qarshilikka ega bo'lgan rezistor ulanadi, kirish potentsialini besleme kuchlanishiga (shuning uchun nomi) "tortadi". Ushbu qarshilik orqali o'tadigan oqim zanjirning qolgan qismiga xalaqit bermaslik uchun etarlicha kichik, lekin pinni tasodifiy almashtirishni oldini olish uchun etarlicha katta. Tugmalar bilan ishlashda biz tez-tez tortuvchi rezistorlardan foydalanamiz, chunki ular bosilmaganda ular bog'langan pinlar asosan havoda "osilib qoladi" va shovqinlarga duchor bo'ladi.
Shuni ta'kidlash kerakki, quvvat yoqilganda barcha registrlar 0 ga qayta o'rnatiladi va har bir pin tortishish qarshiligisiz raqamli kirish vazifasini bajaradi.
Endi biz hech bo'lmaganda kontroller kiritishlari bilan ishlash uchun NIMA kerakligi haqida bir oz tasavvurga egamiz, ular bilan QANDAY ishlashni aniqlash vaqti keldi.
Keling, birinchi yozamiz ish dasturi assemblerda. Birinchidan, men yangi loyiha yaratish uchun to'liq algoritmni beraman, lekin kelajakda men faqat dasturning matniga e'tibor qaratib, uni o'tkazib yuboraman.
1. Asm jildiga o'ting va unda yangi papka yarating. Uni biz uchun qulay nomga o'zgartiring. Aniqroq qilib aytadigan bo'lsak, men ularga qadam raqamimiz bilan murojaat qilaman. Bunday holda, "2-qadam".
2. build.bat faylini sichqonchaning o'ng tugmasi bilan bosing va yangi yaratilgan papkaga ishora qilib, manba faylga yo'lni o'zgartiring (2-qadam). Shundan so'ng mening tarkibim quyidagicha ko'rinadi:
"F:\Prog\AVR\asm\avrasm32 -fI %F:\Prog\AVR\asm\step2\main.asm
pauza"
Arxivni qaerga ochganingizga qarab u siz uchun farq qilishi mumkin.
3. Asmedit jildiga o'ting va ASM_Ed.exe dasturini ishga tushiring
4. Ochilgan oynada dastur matnini yozing. Men bu masalaga batafsil to'xtalib o'taman, chunki bu bizning bugungi darsimizda ham, keyingi darslarda ham asosiysi.
Assembler dasturining matni nima? U ma'lum qoidalarga muvofiq yozilgan bir nechta elementlarni o'z ichiga olishi mumkin:
Ko'rsatmalar sintaksisiga qarab operandli yoki operandsiz yig'ish ko'rsatmalari. Buyruq nomi va birinchi operand o'rtasida bo'sh joy, yorliq yoki ikkalasining istalgan soni bo'lishi kerak. Operandlar vergul bilan ajratiladi, undan oldin yoki keyin ixtiyoriy sonli bo'shliqlar yoki yorliqlar ham qo'yilishi mumkin;
Ko'rsatmalar, ularning har biri "." bilan boshlanadi;
Yorliqlar, bu dasturning foydalanuvchi tomonidan o'zboshimchalik bilan nomlanishi kerak bo'lishi mumkin bo'lgan joylar. Har bir yorliq “:” belgisi bilan tugaydi;
";" bilan boshlanadigan sharhlar. Izoh boshidan satr oxirigacha bo'lgan barcha matn hex faylni yaratishda e'tiborga olinmaydi va butunlay o'zboshimchalik bilan bo'lishi mumkin;
Dasturning tuzilishi va o'qilishi yaxshiroq bo'lishi uchun bo'sh qatorlar.
Har bir satrda bittadan ortiq buyruq bo'lishi mumkin emas. Shu bilan birga, buyruq va izohdan keyingi qatorda bir vaqtning o'zida yorliqning mavjudligiga ruxsat beriladi.
Ushbu qoidalardan foydalanib, biz SB1 tugmasi bosib turganda LED2 ni yoqadigan dastur yozamiz va tugma qo'yib yuborilsa, uni o'chirib qo'yamiz. Dastur matni quyida keltirilgan:
"F:\Prog\AVR\asm\Appnotes\tn13def.inc" ni o'z ichiga oladi.
sbi DDRB, 4 ;RV4 - chiqish (LED2)
sbi PORTB, 2; PB2 dagi tortish rezistorini yoqing (SB1 tugmasi)
sbic PINB, 2 ;Agar PB2=0 boʻlsa (tugma bosilsa), keyingisini oʻtkazib yuboring. chiziq
sbi PORTB, 4; PB4 ni 1da o‘rnatish (LEDni o‘chirish)
sbis PINB, 2 ;Agar PB2=1 (tugma qo'yib yuborilgan) bo'lsa, keyingisini o'tkazib yuboring. chiziq
cbi PORTB, 4 ;PB4 ni 0 ga sozlash (LED yoqilgan)
Keling, buni batafsil ko'rib chiqaylik. Birinchi qatorda yuqoridagi qoidalarga muvofiq boshida nuqta bilan yozilgan "include" direktivasi mavjud. Uning maqsadi dastur matniga uning orqasida ko'rsatilgan faylni kiritishdir. Birinchi bosqichda aytganimdek, bizga "tn13def.inc" fayli kerak bo'ladi. Ushbu qatorda siz kompyuteringizdagi Appnotes papkasining joylashuviga yo'lni o'zgartirishingiz kerak bo'ladi. Nima uchun biz ushbu faylni kiritishimiz kerak? Qiziquvchan o'quvchi uni ko'rib chiqishi va mazmunini o'qishi mumkin, lekin avvaliga u buni juda kam tushunadi. Hozircha men aytamanki, unda assembler sukut bo'yicha bilmagan registrlarning nomlari, ularning nazoratchidagi jismoniy manzillari bilan yozishmalar mavjud.
Quyidagi qatorlar assembler buyruqlaridir. Diqqatli o'quvchi jami to'rt xil buyruq ishlatilganligini sezadi. Keling, har birining maqsadini ko'rib chiqaylik.
sbi ko'rsatmasi ikkita operandga ega: birinchisi - registr nomi, ikkinchisi - bit raqami. Uning bajarilishi natijasida ko'rsatilgan registrdagi ko'rsatilgan bit "1" ga o'rnatiladi.
cbi buyrug'i sintaksis bo'yicha yuqoridagiga o'xshash va to'liq qarama-qarshi funktsiyani bajaradi - ko'rsatilgan registrdagi ko'rsatilgan bitni "0" ga qaytaradi.
Sbis buyrug'i ham yuqoridagiga sintaksisga o'xshaydi. Biroq, ulardan farqli o'laroq, u registrlar bilan hech qanday amallarni bajarmaydi, faqat ko'rsatilgan registrdagi ko'rsatilgan bitning holatini tekshiradi va agar u "1" ga teng bo'lsa, u buyruqdan keyingi qatorni o'tkazib yuboradi. Aks holda, undan keyingi qator ham, undan keyingi barcha boshqa qatorlar ham bajariladi.
sbis buyrug'i sbis buyrug'iga qarama-qarshidir. Belgilangan registr biti "0" bo'lsa, u keyingi qatorni o'tkazib yuboradi.
Endi yuqorida aytilganlarning barchasini umumlashtirib, dasturning algoritmini tushunishga harakat qilaylik. Boshlash uchun men buni tom ma'noda satr satr qilaman.
1 qator. Include direktivasi registr ta'riflarini o'z ichiga olgan tn13def.inc faylini o'z ichiga oladi.
2-qator. sbi buyrug'i DDRB registrining 4-bitida "1" ni o'rnatadi va shu bilan PB4 pinini chiqishga o'tkazadi. Agar siz taxta diagrammasiga qarasangiz (oldingi bosqichning 1-rasm), LED2 bu pinga ulanganligini ko'rishingiz mumkin. Buyruq va belgidan keyin ";" qatorda bajarilgan harakatlarning ma'nosini qisqacha tushuntiruvchi izoh yozildi.
3 qator. Xuddi shu sbi buyrug'i PORTB registrining 2-bitida "1" ni o'rnatadi, ichki tortish rezistorini SB1 tugmasi ulangan PB2 piniga ulaydi. Biz DDRB registrining 2-bit holatini o'zgartirmaganimiz sababli, bu pin kirish bo'lib qoladi, bu bizga aslida kerak bo'lgan narsadir.
4 qator. Sbic buyrug'i PINB registridan foydalangan holda PB2 kirishida mantiqiy "0" mavjudligini tekshiradi. Agar siz diagrammaga diqqat bilan qarasangiz, tugmalar bosilganda, tegishli terminalni umumiy sim bilan yopishini ko'rishingiz mumkin. Bu standart texnikadir, chunki tugma bo'shatilganda, tortishish qarshiligi tufayli chiqishda mantiqiy "1" mavjud va tugma bosilganda, mantiqiy "0" ulanishi tufayli paydo bo'ladi. umumiy simga chiqish. Shunday qilib, agar PB2 pinida mantiqiy "0" bo'lsa, ya'ni tugma bosilsa, keyingi qatorni o'tkazib yuboramiz va tugma qo'yib yuborilsa, biz uni bajaramiz.
5 qator. Unda sbi buyrug'i PORTB registrining 4-bitida mantiqiy "1" ni o'rnatadi va shu bilan LED2 ni o'chiradi. Aqlli o'quvchi, agar biz chiqishga kuchlanish qo'llasak, LED nima uchun o'chayotganiga hayron bo'lishi mumkin. Javob dizaynda yotadi. LED anod bilan quvvat simiga, katod esa kontroller chiqishiga ulanadi. Shuning uchun, agar siz chiqishga kuchlanish qo'llasangiz, anod va katodning potentsiallari teng bo'ladi va LED o'chadi. Agar chiqishga mantiqiy "0" chiqsa, u holda LEDga kuchlanish qo'llaniladi va u yonadi. Shunday qilib, 4 va 5-chi qatorlar juftligi tugma bo'shatilganda LED2 ni o'chiradi.
6 qator. Ma'nosi 4-ga qarama-qarshidir. Sbis buyrug'i PB2 kirishida mantiqiy "1" mavjudligini tekshiradi, ya'ni tugma bo'shatilganligini tekshiradi. Agar tugma qo'yib yuborilsa, keyingi qator o'tkazib yuboriladi va keyingi qator keyingisiga o'tadi. Ammo 7-qator oxirgi bo'lgani uchun 2-qatorga o'tish mavjud. Agar tugma bosilsa, u holda 7-qator bajariladi.
7 qator. 5-ga qarama-qarshi. Cbi buyrug'i PORTB registrining 4-bitini "0" ga tiklaydi va shu bilan LED2ni yoqadi. Shunday qilib, SB1 tugmasi bosilganda, 6 va 7-chi qatorlar juftligi LED2 ni yoqadi.
Ko'rib turganingizdek, biz juda murakkab narsa qilmadik. Faqat 3 ta registr va 4 ta ko'rsatma bilimidan foydalanib, biz birinchi dasturimizni yozdik. Keyin u bilan nima qilish kerak? Agar siz hali esdan chiqmagan bo'lsangiz, biz dastur yaratish algoritmini yozishni davom ettiramiz.
5. Muharrir oynasida dastur matnini yozib, menyuning “Fayl” bandini tanlang va ochilgan ro‘yxatda “Boshqa saqlash...” tugmasini bosing. Faylni saqlash oynasida biz yaratgan 2-qadam papkasini tanlang va "asosiy" fayl nomini belgilang, chunki bu biz "build.bat" faylida ko'rsatilgan nomdir.
Saqlagandan so'ng, dastur oynasi quyidagicha ko'rinishi kerak:
6. Hex fayl yarating. Buning uchun asboblar panelidagi "II" tugmasini bosing. Quyidagi oyna paydo bo'lishi kerak:
U yig'ish xatosiz yakunlanganligi va "main.hex" proshivka fayli 6 so'z, ya'ni 12 bayt hajmda yaratilganligi haqida bizga xabar beradi. Shuni ta'kidlayman shunga o'xshash dastur C tilida ovoz balandligi kamida 5 barobar bo'ladi.
7. Step2 papkasiga o'tib, biz unga yangi yaratilgan main.hex fayli ko'rinishidagi qo'shimchani topamiz, endi uni har qanday dasturchi yordamida tekshirgichga tikish mumkin, bu natijalarni ko'rish uchun bajarilishi kerak. biz yozgan dastur. Tekshirish moslamasini miltillagandan so'ng, agar sxema to'g'ri yig'ilgan bo'lsa, hamma narsa biz ishlab chiqqan algoritmga muvofiq ishlashi kerak: tugmalar qo'yib yuborilganda, LED2 o'chirilgan bo'lishi kerak va SB1 tugmasi ushlab turilganda u yoqilgan bo'lishi kerak.
Keyingi bosqichdan oldin men sizga quyidagi vazifalarni bajarishni taklif qilaman:
1. SB2 tugmachasini teskari algoritm bilan bosish jarayonini dasturga qo'shing: SB2 tugmasi bo'shatilganda LED1 yonishi kerak, bosilganda esa o'chirilgan bo'lishi kerak.
2. Ikkala tugma yordamida LED2 ni boshqarish dasturini yozing. SB1 tugmasi bosilganda, LED yonishi va SB2 tugmasi bosilmaguncha yonib turishi kerak, bu esa SB1ning keyingi bosigacha uni o'chiradi.
Kompilyator tarjima qiladi manba kodlari assembler tilidan obyekt kodiga qadar. Olingan obyekt kodidan ATMEL simulyatorida foydalanish mumkin AVR Studio, yoki ATMEL AVR In-Circuit Emulator-da. Kompilyator, shuningdek, to'g'ridan-to'g'ri AVR mikrokontrollerlariga dasturlashtirilishi mumkin bo'lgan kod ishlab chiqaradi.
Kompilyator ulanishni talab qilmaydigan kodni yaratadi.
Kompilyator ostida ishlaydi Microsoft Windows 3.11, Microsoft Windows95 va Microsoft Windows NT. Bundan tashqari, MS-DOS uchun konsol versiyasi mavjud.
Oilaviy ko'rsatmalar to'plami AVR mikrokontrollerlari Ushbu hujjatda qisqacha tavsiflangan, batafsilroq ko'rsatmalar uchun maxsus mikrokontrolleringiz uchun to'liq ko'rsatmalar va hujjatlarga qarang.
Manba kodlari
Kompilyator ko'rsatmalar, teglar va direktivalarni o'z ichiga olgan manba fayllari bilan ishlaydi. Ko'rsatmalar va ko'rsatmalar odatda bir yoki bir nechta operandlarga ega.
Kod qatori 120 belgidan oshmasligi kerak.
Har qanday satr yorliq bilan boshlanishi mumkin, bu ikki nuqta bilan tugaydigan belgilar qatori. Yorliqlar o'tish paytida boshqaruv o'tkaziladigan joyni ko'rsatish, shuningdek o'zgaruvchilar nomlarini ko'rsatish uchun ishlatiladi.
Kirish satri to'rtta shakldan birini olishi mumkin:
[label:] direktiv [operandlar] [Izoh][label:] ko'rsatma [operandlar] [Izoh]IzohBo'sh qator
Sharh quyidagi shaklga ega:
; [Matn]
Kvadrat qavs ichidagi pozitsiyalar ixtiyoriy. Nuqtali verguldan (;) keyin va satr oxirigacha matn kompilyator tomonidan e'tiborga olinmaydi. Yorliqlar, ko'rsatmalar va ko'rsatmalar quyida batafsilroq tavsiflanadi.
Misollar:
teg: .EQU var1=100 ; var1 ni 100 ga o'rnatadi (Bu direktivdir) .EQU var2=200 ; Var2 ni 200 ga o'rnatadi
test: rjmp testi; Cheksiz halqa (Bu ko'rsatma); Faqat bitta izoh bilan qator
; Izoh bilan boshqa qator
Kompilyator yorliqlar, direktivalar, sharhlar yoki ko'rsatmalar qatorning ma'lum bir ustunida bo'lishini talab qilmaydi.
avr protsessor ko'rsatmalari
Quyida AVR protsessorlari uchun buyruqlar to'plami keltirilgan; ularning batafsil tavsifini AVR ma'lumotlar kitobida topish mumkin.
Arifmetika va mantiqiy ko'rsatmalar
Mnemonika |
Operandlar |
Tavsif |
Operatsiya |
Bayroqlar |
Velosipedlar |
Rd,Rr |
Tashishsiz yig'ish | ||||
Rd,Rr |
Tashish bilan yakunlash |
Rd = Rd + Rr + C | |||
Rd,Rr |
Tashishsiz ayirish | ||||
Rd,K8 |
Konstantani ayirish | ||||
Rd,Rr |
Tashish bilan ayirish |
Rd = Rd - Rr - C | |||
Rd,K8 |
tashish bilan doimiyni ayirish |
Rd = Rd - K8 - C | |||
Rd,Rr |
Mantiqiy VA | ||||
Rd,K8 |
Mantiqiy VA doimiy bilan | ||||
Rd,Rr |
Mantiqiy OR | ||||
Rd,K8 |
Mantiqiy OR doimiy bilan | ||||
Rd,Rr |
Mantiqiy eksklyuziv OR | ||||
Bit inversiyasi | |||||
Belgini o'zgartirish (Qo'shimcha kod) | |||||
Rd,K8 |
Bit(lar)ni registrda o'rnating | ||||
Rd,K8 |
Registrdagi bit(lar)ni tozalash |
Rd = Rd ($FF - K8) | |||
Registr qiymatini oshirish | |||||
Registr qiymatini kamaytirish | |||||
Nol yoki negativlikni tekshirish | |||||
Registrni tozalash | |||||
Registrni o'rnating | |||||
Rdl,K6 |
Doimiy va so'z qo'shing |
Rdh:Rdl = Rdh:Rdl + K6 | |||
Rdl,K6 |
So'zdan doimiyni ayirish |
Rdh:Rdl = Rdh:Rdl - K 6 | |||
Rd,Rr |
Imzosiz raqamlarni ko'paytirish |
R1:R0 = Rd * Rr | |||
Rd,Rr |
Imzolangan raqamlarni ko'paytirish |
R1:R0 = Rd * Rr | |||
Rd,Rr |
Imzolangan raqamni imzosiz raqam bilan ko'paytirish |
R1:R0 = Rd * Rr | |||
Rd,Rr |
Belgilanmagan kasrlarni ko'paytirish |
R1:R0 = (Rd * Rr)<< 1 | |||
Rd,Rr |
Belgilangan kasrlarni ko'paytirish |
R1:R0 = (Rd *Rr)<< 1 | |||
Rd,Rr |
Belgilangan kasrni belgisiz raqam bilan ko'paytirish |
R1:R0 = (Rd * Rr)<< 1 |
Filial ko'rsatmalari
Mnemonika |
Operandlar |
Tavsif |
Operatsiya |
Bayroqlar |
Velosipedlar |
Nisbiy o'tish | |||||
Bilvosita o'tish ( Z) | |||||
kengaytirilgan bilvosita o'tish ( Z) |
STACK = PC+1, PC(15:0) = Z, PC(21:16) = EIND | ||||
Nisbiy subprogramma chaqiruvi |
STACK = PC+1, PC = PC + k + 1 | ||||
Bilvosita qo'ng'iroq ( Z) |
STACK = PC+1, PC = Z | ||||
Kengaytirilgan bilvosita qo'ng'iroq ( Z) |
STACK = PC+1, PC(15:0) = Z, PC(21:16) =EIND | ||||
Subprogrammaga qo'ng'iroq qilish |
STACK = PC+2, PC = k | ||||
Pastki dasturdan qaytish | |||||
Interruptdan qaytish | |||||
Rd,Rr |
Taqqoslang, agar teng bo'lsa, o'tkazib yuboring |
agar (Rd ==Rr) PC = PC 2 yoki 3 | |||
Rd,Rr |
Taqqoslash | ||||
Rd,Rr |
Transfer bilan solishtiring | ||||
Rd,K8 |
Doimiy bilan solishtiring | ||||
Rr,b |
Registrdagi bit tozalangan bo'lsa, o'tkazib yuboring |
if(Rr(b)==0) PC = PC + 2 yoki 3 | |||
Rr,b |
Registrdagi bit o'rnatilgan bo'lsa, o'tkazib yuboring |
if(Rr(b)==1) PC = PC + 2 yoki 3 | |||
P,b |
Portdagi bit tozalangan bo'lsa, o'tkazib yuboring |
agar(I/O(P,b)==0) PC = PC + 2 yoki 3 | |||
P,b |
Port bit o'rnatilgan bo'lsa, o'tkazib yuboring |
agar(I/O(P,b)==1) PC = PC + 2 yoki 3 | |||
s,k |
SREG-dagi bayroq o'chirilsa, o'tish |
if(SREG(s)==0) PC = PC + k + 1 | |||
s,k |
SREG-da bayroq o'rnatilgan bo'lsa, o'ting |
if(SREG(s)==1) PC = PC + k + 1 | |||
Agar teng bo'lsa, boring |
agar(Z==1) PC = PC + k + 1 | ||||
Teng bo'lmasa, o'tkazib yuboring |
agar(Z==0) PC = PC + k + 1 | ||||
Agar uzatish o'rnatilgan bo'lsa, o'ting |
agar(C==1) PC = PC + k + 1 | ||||
Agar transfer o'chirilgan bo'lsa, o'ting |
agar(C==0) PC = PC + k + 1 | ||||
Teng yoki kattaroq bo'lsa sakrash |
agar(C==0) PC = PC + k + 1 | ||||
Agar kamroq bo'lsa, o'tkazib yuboring |
agar(C==1) PC = PC + k + 1 | ||||
Minus bo'lsa o'ting |
agar(N==1) PC = PC + k + 1 | ||||
Agar ortiqcha bo'lsa, o'ting |
agar(N==0) PC = PC + k + 1 | ||||
Agar kattaroq yoki teng bo'lsa, o'tish (imzolangan) |
agar(S==0) PC = PC + k + 1 | ||||
Agar kamroq bo'lsa, o'tish (imzolangan) |
agar(S==1) PC = PC + k + 1 | ||||
Ichki tashish bayrog'i o'rnatilgan bo'lsa, sakrab o'ting |
agar(H==1) PC = PC + k + 1 | ||||
Ichki tashish bayrog'i tozalangan bo'lsa, sakrab o'ting |
agar (H==0) PC = PC + k + 1 | ||||
T bayrog'i o'rnatilgan bo'lsa, o'tish |
agar(T==1) PC = PC + k + 1 | ||||
T bayrog'i tozalangan bo'lsa, sakrab o'ting |
agar(T==0) PC = PC + k + 1 | ||||
Agar to'ldirish bayrog'i o'rnatilgan bo'lsa, o'tish |
agar(V==1) PC = PC + k + 1 | ||||
Agar ortiqcha bayroq tozalansa, sakrab o'ting |
agar(V==0) PC = PC + k + 1 | ||||
Agar uzilishlar yoqilgan bo'lsa, o'ting |
agar(I==1) PC = PC + k + 1 | ||||
Agar uzilishlar o'chirilgan bo'lsa, o'ting |
agar(I==0) PC = PC + k + 1 |
* Ma'lumotlarga kirish operatsiyalari uchun tsikllar soni ichki ma'lumotlar xotirasiga kirishda ko'rsatiladi va tashqi RAM bilan ishlashda to'g'ri emas. CALL, ICALL, EICALL, RCALL, RET va RETI ko'rsatmalari uchun 16 bitdan (dastur xotirasi 128 KB) kompyuterga ega bo'lgan kontrollerlarda har bir kutish uchun uchta sikl va ikkita tsikl qo'shilishi kerak. Dastur xotirasi 128 KB dan ortiq bo'lgan qurilmalar uchun har bir kutish uchun besh tsikl va uchta tsikl qo'shing.
Ma'lumotlarni uzatish bo'yicha ko'rsatmalar
Mnemonika |
Operandlar |
Tavsif |
Operatsiya |
Bayroqlar |
Velosipedlar |
Rd,Rr |
Reestrdan nusxa oling | ||||
Rd,Rr |
Bir nechta registrlardan nusxa oling |
Rd+1:Rd = Rr+1:Rr, r,d juft | |||
Rd,K8 |
Doimiy yuk | ||||
Rd,k | |||||
Rd,X | |||||
Rd,X+ |
Rd = (X), X=X+1 | ||||
Rd,-X |
X=X-1, Rd = (X) | ||||
Rd,Y | |||||
Rd,Y+ |
Rd = (Y), Y=Y+1 | ||||
Rd,-Y |
Y=Y-1, Rd = (Y) | ||||
Rd,Y+q | |||||
Rd,Z | |||||
Rd,Z+ |
Rd = (Z), Z=Z+1 | ||||
Rd,-Z |
Z=Z-1, Rd = (Z) | ||||
Rd,Z+q | |||||
To'g'ridan-to'g'ri saqlash | |||||
X,Rr |
Bilvosita saqlash | ||||
X+,Rr |
(X) = Rr, X=X+1 | ||||
-X,Rr | |||||
Y,Rr |
Bilvosita saqlash | ||||
Y+,Rr |
Keyingi o'sish bilan bilvosita tejash |
(Y) = Rr, Y=Y+1 | |||
-Y,Rr |
Oldindan kamaytirish bilan bilvosita saqlash |
Y=Y-1, (Y) = Rr | |||
Y+q,Rr | |||||
Z,Rr |
Bilvosita saqlash | ||||
Z+,Rr |
Keyingi o'sish bilan bilvosita tejash |
(Z) = Rr, Z=Z+1 | |||
-Z,Rr |
Oldindan kamaytirish bilan bilvosita saqlash |
Z=Z-1, (Z) = Rr | |||
Z+q,Rr |
O'zgartirish bilan bilvosita saqlash | ||||
R0 = ( Z) | |||||
Rd,Z |
Rd = ( Z) | ||||
Rd,Z+ |
Rd = ( Z), Z=Z+1 | ||||
R0 = (RAMPZ: Z) | |||||
Rd,Z |
Rd = (RAMPZ: Z) | ||||
Rd,Z+ |
Rd = (RAMPZ: Z), Z = Z+1 | ||||
Dastur xotirasiga saqlash |
(Z) = R1:R0 | ||||
Dastur xotirasida kengaytirilgan saqlash |
(RAMPZ: Z) = R1:R0 | ||||
Rd,P |
Portni o'qish | ||||
P,Rr |
Portga yozing | ||||
Registrni stekga surish | |||||
Stackdan registrni chiqarish |
* Ma'lumotlarga kirish operatsiyalari uchun tsikllar soni ichki ma'lumotlar xotirasiga kirishda ko'rsatiladi va tashqi RAM bilan ishlashda to'g'ri emas. LD, ST, LDD, STD, LDS, STS, PUSH va POP ko'rsatmalari uchun har bir kutish uchun bitta sikl va bitta tsikl qo'shishingiz kerak.
Bitlar bilan ishlash bo'yicha ko'rsatmalar
Mnemonika |
Operandlar |
Tavsif |
Operatsiya |
Bayroqlar |
Velosipedlar |
Chapga mantiqiy siljish |
Rd(n+1)=Rd(n), Rd(0)=0, C=Rd(7) | ||||
Mantiqiy o'ngga siljish |
Rd(n)=Rd(n+1), Rd(7)=0, C=Rd(0) | ||||
C orqali chapga buriling |
Rd(0)=C, Rd(n+1)=Rd(n), C=Rd(7) | ||||
C orqali o'ngga aylantiring |
Rd(7)=C, Rd(n)=Rd(n+1), C=Rd(0) | ||||
Arifmetik o'ngga siljish |
Rd(n)=Rd(n+1), n=0,...,6 | ||||
Noutbuklarni qayta tartibga solish |
Rd(3..0) = Rd(7..4), Rd(7..4) = Rd(3..0) | ||||
Bayroqni o'rnatish | |||||
Bayroqni tozalash | |||||
P,b |
Portga bitni o'rnating | ||||
P,b |
Portdagi bitni tozalash | ||||
Rr,b | |||||
Rd,b |
Bitni T dan registrga yuklang | ||||
Yuk tashish bayrog'ini o'rnating | |||||
Tashish bayrog'ini tozalang | |||||
Salbiy raqam belgisini o'rnating | |||||
Salbiy raqam belgisini tozalang | |||||
Nolinchi bayroqni o'rnating | |||||
Nolinchi bayroqni tozalang | |||||
Interrupt bayrog'ini o'rnating | |||||
Interrupt belgisini o'chirish | |||||
Imzolangan raqam bayrog'ini o'rnating | |||||
Imzolangan raqam bayrog'ini tozalang | |||||
To'ldirish bayrog'ini o'rnating | |||||
To'ldiruvchi bayroqni tozalang | |||||
T bayrog'ini o'rnating | |||||
T bayrog'ini tozalang | |||||
Ichki tashish bayrog'ini o'rnating | |||||
Ichki tashish bayrog'ini tozalang | |||||
Operatsiya yo'q | |||||
Kutish (energiya sarfini kamaytirish) |
Ko'rsatmalar tavsifiga qarang | ||||
Watchdog taymerini tiklash |
Ko'rsatmalar tavsifiga qarang |
Assembler katta-kichik harflarni sezmaydi.
Operandlar shu turdagi bo'lishi mumkin.
Hammaga xayrli kech! Men "assembler" deb nomlangan shinam dunyodan translyatsiya qilaman. Mavzu AVR mikrokontrollerlariga tegishli ekanligini darhol aniqlab beraman - va bu post assemblerdan boshqa har qanday vazifa uchun foydalanmoqchi bo'lganlar uchun foydali bo'ladimi yoki yo'qligini hali bilmayman. Gap shundaki, bir necha kun oldin men assemblerni noldan o'rganishni boshladim - bitta qurilma yasashim kerak - va men unda hamma narsani o'zim qilishga qaror qildim. Shunday qilib, bir kuni men buni tushunib etdim Assemblerni o'rganish mutlaqo foydasiz! Assambleya tilini faqat tushunish mumkin! Ya'ni, assembler tilida dasturlashmoqchi bo'lganlarning barchasiga mikrokontroller JISMONIY qanday ishlashini batafsil o'rganishingizni va keyin buyruqlarning nozik tomonlarini o'rganishingizni qat'iy tavsiya qilaman.
Shunday qilib, men sizga boshidan aytib beradigan kichik maqolalar seriyasini boshlayman qanday aniq Assembler tilini dasturlashda ba'zi narsalarni tushundim - menimcha, ASM nima ekanligini umuman tushunmaydiganlar uchun men bu masalada juda yaxshi bo'lganlarning tilidan shunday "tarjimon" bo'laman.
Darhol aytamanki, men DIHALT tashabbusi bilan bu mavzuga ozmi-koʻpmi kirganman - shuning uchun bu maqolalar super-duper assembly-mikrokontroller tilidan ko'pchilik uchun tushunarli tilga tarjimaning bir turi bo'ladi. Umid qilamanki, o'yin davom etar ekan, gurular meni tuzatadilar va agar men birdan noto'g'ri tushuntirsam, ular meni tuzatadilar.
Shunday qilib, bir necha kun oldin assembler haqida qilgan birinchi xulosalar meni hayratda qoldirdi - va men soat 23:00 dan ertalabki 5 gacha DI HALT maqolalarini o'qib o'tirdim - shundan so'ng mamnun va xursand bo'lib uxladim. mikrokontrollerlar uchun assembler tilini dasturlash.
Buni qanday qilib soddaroq tushuntirish mumkin? Menimcha, biz mohiyatdan boshlashimiz kerak.
***
Dastlab, biz texnik tafsilotlarga kirmaymiz (ular haqida keyingi maqolada gaplashamiz) - shunchaki 3 ta belgi borligini tasavvur qiling:
1. Mikrokontroller - Bu rus tiliga kelgan ingliz Stiv. U ingliz tilini mukammal biladi, lekin rus tilini umuman tushunmaydi - bitta so'z ham yo'q. Faqat ingliz tili. U bahsda mag‘lub bo‘ldi va rus undan so‘ragan ishni so‘roqsiz bajarishga va’da berdi.
2. Yig'uvchi - Bu onasi ingliz va otasi rus bo'lgan tarjimon Vasya. U ingliz va rus tillarini mukammal biladi.
3. Biz - Bu rus, unga ingliz kelgan. Xo'sh, ya'ni biz bizmiz =) Shu bilan birga, biz rus tilini mukammal bilamiz va (!!!) ozgina ingliz tilini - ozgina, lug'at bilan.
***
Bu vaziyatni tasavvur qiling - bir ingliz sizning xonangizdagi stulda o'tiradi. Va siz kompyuteringizda o'tirib, ushbu xabarni o'qiyapsiz, birdan derazangiz to'satdan ochildi! Bu omadsizlik! Shamol esmoqda, parda yelkanga aylandi... Yopsa yaxshi bo‘lardi! Ammo stuldan turish, oyoqlaringizni tizim blokidan olish, ularni shippaklarga solib qo'yish, kofe (pivo) ni qo'yish va elementlarga qarshi kurashish juda dangasa. Va keyin siz to'satdan xonada garovini yo'qotgan ingliz borligini va uni ta'qib qilish vaqti kelganini tushunasiz! Va siz unga shunday shirinlik bilan aytasiz: “Do'stim! Iltimos, derazani yoping, keyin yana stulga o'tiring! va u o'tiradi, sizga hayron bo'lib qaraydi va hech narsa qilmaydi! Siz, albatta, karam sho'rvasini urishingiz mumkin - lekin keyin u sizni hali ham tushunmaydi! Keyin siz tarjimon do'stingiz Vasiliyni chaqirasiz - u kelib, inglizning yoniga stulga o'tiradi. Va siz aytasiz - Tarjima: "Stiv, borib derazani yoping va keyin stulga o'tir!" Tarjimon ingliz tiliga tarjima qiladi - ingliz tushunadi va borib derazani yopadi, keyin kelib stulga o'tiradi.
Shu nuqtada, siz ushbu "Biz-Assembler-Controller" zanjirida assemblerning rolini tushunishingiz kerak.
Ya'ni, assembler nima ekanligini hamma qanday tushunadi? Keyin o'qing.
***
Shunday qilib, keling, bu vaziyatni tasavvur qilaylik. Siz Vasyaga aytasiz: "Quloq soling, qisqasi, men uyda kalkulyatorni unutib qo'ydim, 56983 ni 2 ga bo'ling va Stivga mushtlaringiz bilan juda ko'p push-up qilishni ayting" va Vasya kalkulyatorda hisoblaydi va Stivga ingliz tilida "Mushtlaringiz bilan 28491 marta push-up qiling" deb ataladi "DIREKTIVA"- boshqacha qilib aytganda, direktiv Vasya uchun vazifa bo'lib, uning natijasi Stivning harakatidir.
Yana bir holat bor - siz Vasyaga "Stivga 28491 marta push-up qilishni ayting" deysiz va Vasya so'zlaringizni ingliz tiliga tarjima qiladi. U deyiladi OPERATOR
Hammasi oddiy - direktiv bor va operator mavjud. Operator sizning to'g'ridan-to'g'ri Stivga nima qilish kerakligi haqida ko'rsatma beradi - bu erda Vasya sizning so'rovingizni faqat ingliz tiliga tarjima qiladi. Ko'rsatma Vasyaning o'zi uchun vazifadir - va Vasya avval siz unga aytganingizni qiladi, keyin esa natijaga qarab u Stivga nimadir aytadi.
Endi biz inglizni muntazam ravishda qiynoqqa solamiz! Lekin birinchi navbatda tarjimonimiz Vasyani yaxshiroq bilishimiz kerak. Siz quyidagilarni bilishingiz kerak - Vasya har doim sizga so'zsiz bo'ysunadi - unga aytilgan narsani qiladi. Vasya kalkulyatorida o'nlik kasrlar yo'q - agar siz misolni push-up bilan ko'rib chiqsangiz, u holda 56983 \ 2 = 28491,5 - lekin o'nli nuqta kesilgandan keyin Vasya hamma narsa - va u faqat butun sonni ko'radi - va bu muhim emas. 28491.000001 bo'ladimi yoki 28491.9999999 bo'ladimi - Vasya uchun bu bitta katta ish har ikkala holatda ham 28491 bo'ladi. Hech narsa yumaloq emas. Vasya haqida muhimroq ma'lumot. Vasya shafqatsiz - u Stivning yigirma sakkiz ming marta push-up qilayotganiga ahamiyat bermaydi. Ular unga Vasya tarjima qilganini aytishdi. Va u nafaqat tarjima qildi, balki meni siz so‘raganingizni qilishga majbur qildi. Shunday qilib, agar Stiv yigirma uch ming besh yuz o'n uchinchi surishda vafot etsa, bu butunlay sizning aybingiz bo'ladi.
Aslida, hozircha hammasi shu. Keyingi postda biz chuqurroq qazamiz - hozircha buni tushunish kifoya. Shunchaki vaziyatni tasavvur qiling va nima ekanligini, kim qanday rol o'ynashini va direktiv operatordan qanday farq qilishini tushuning.
Va keyin biz hamma narsani o'z nomi bilan chaqirishga harakat qilamiz va assembler kattalar kabi mikrokontroller bilan qanday ishlashini taxminiy baholaymiz.
80 000 rubl).
QO‘SHISH
Sintaksis: ADD reg1, reg2 Bu buyruq reg1 va reg2 registrlarining mazmunini qo'shib, natijani reg1 registrida saqlaydi. H, S, V, N, Z, C bayroqlarining holatini o'zgartiradi.VA
Sintaksis: AND reg1, reg2 Bu buyruq reg1 va reg2 registrlari o'rtasida Mantiqiy VA amalini bajaradi, natijani reg1 registrida saqlaydi. S, V, N, Z bayroqlarining holatini o'zgartiradi.ANDI
Sintaksis: ANDI hreg, raqam Bu buyruq yuqori registr hreg mazmuni va doimiy son (0...255) o'rtasida Mantiqiy VA amalini bajaradi, natijani registrda saqlaydi. S, V, N, Z bayroqlarining holatini o'zgartiradi.BRBC
Sintaksis: BRBC bit, label Ushbu buyruq SREG registr bitining ($3F) holatini tekshiradi va bit aniq bo'lsa, yorliqga o'tadi. Yorliq brbc buyrug'ining 63 ta buyrug'i ichida bo'lishi kerak.BRBS
Sintaksis: BRBS bit, label Ushbu buyruq SREG registr bitining ($3F) holatini tekshiradi va bit o'rnatilgan bo'lsa, yorliqga o'tadi. Yorliq brbs buyrug'ining 63 ta buyrug'i ichida bo'lishi kerak.BRCC
Sintaksis: BRCC bit, label Ushbu buyruq tashish bayrog'ini (C) tekshiradi va agar u aniq bo'lsa, yorliqga o'tadi.BRCS
Sintaksis: BRCS bit, label Ushbu buyruq tashish bayrog'ini (C) tekshiradi va agar u o'rnatilgan bo'lsa, yorliqga o'tadi.BREQ
Sintaksis: BREQ bit, label Ushbu buyruq nol (Z) bayrog'ini tekshiradi va agar u o'rnatilgan bo'lsa, yorliqga o'tadi.BRNE
Sintaksis: BRNE bit, label Ushbu buyruq nol (Z) bayrog'ini tekshiradi va agar u aniq bo'lsa, yorliqga o'tadi.C.B.I.
Sintaksis: CBI ioreg, bit Bu buyruq ioreg kiritish/chiqarish registrining bitini ($00...$1F) 0 ga tiklaydi. Bit raqami bit operandini aniqlaydi.CLR
Sintaksis: CLR reg Bu buyruq reg registrining barcha bitlarini 0 ga tiklaydi. S, V, N, Z bayroqlarining holatini o'zgartiradi.C.P.
Sintaksis: CP reg1, reg2 Bu buyruq reg1 va reg2 registrlari tarkibini reg1 dan reg2 ayirish orqali solishtiradi. Registrlarning mazmuni o'zgarmaydi. H, S, V, N, Z, C bayroqlarining holatini o'zgartiradi.CPI
Sintaksis: CPI hreg, raqam Bu buyruq registrdan doimiyni ayirib, hreg registrining mazmunini son konstantasi bilan solishtiradi. Registrlarning mazmuni o'zgarmaydi. H, S, V, N, Z, C bayroqlarining holatini o'zgartiradi. Buyruq faqat R16…R31 registrlari bilan ishlaydi.DEC
Sintaksis: DEC reg Bu buyruq registr reg tarkibini bittaga kamaytiradi va natijani registrga qayta yozadi. S, V, N, Z bayroqlarining holatini o'zgartiradi.IN
Sintaksis: IN reg, ioreg Bu buyruq ioreg kiritish-chiqarish registrining mazmunini RON reg ga o'tkazadi.INC
Sintaksis: INC reg Bu buyruq registr reg tarkibini bittaga oshiradi va natijani registrga qayta yozadi. S, V, N, Z bayroqlarining holatini o'zgartiradi.LD
Sintaksis: LD reg, longreg Bu buyruq ma'lumotlar xotirasidan (uzunroq registrdagi xotira manzili) reg registriga (1200 modeli uchun) bir bayt yuklaydi.LDI
Sintaksis: LDI hreg, raqam Bu buyruq raqamning bevosita qiymatini yuqori hreg registriga yuklaydi (buyruq faqat R16...R31 registrlari bilan ishlashi mumkin). Raqam 0…255 oralig'ida bo'lishi kerak.LSR
Sintaksis: LSR reg Ushbu buyruq reg registrining mazmunini mantiqiy o'ngga siljitishni amalga oshiradi. Bunda 0-bit C bayrog'iga ko'chiriladi, 7-bit 0 ga qayta o'rnatiladi. S, V, N, Z, C bayroqlarining holatini o'zgartiradi.ORI
Sintaksis: ORI hreg, raqam Bu buyruq yuqori registr hreg mazmuni va son konstantasi (0...255) o'rtasida Mantiqiy YOKI operatsiyani bajaradi, natijani registrda saqlaydi. S, V, N, Z bayroqlarining holatini o'zgartiradi.OUT
Sintaksis: OUT ioreg, reg Bu buyruq umumiy maqsadli registr reg tarkibini ioreg kiritish-chiqarish registriga o'tkazadi.RCALL
Sintaksis: RCALL yorlig'i Bu buyruq rcall (nisbiy qo'ng'iroq) buyrug'ining 2048 buyrug'i ichida bo'lishi kerak bo'lgan yorliq bilan aniqlangan pastki dasturni chaqiradi.RET
Sintaksis: RET Bu buyruq asl qo'ng'iroq buyrug'idan keyingi buyruqqa o'tish orqali pastki dasturdan qaytadi.RETI
Sintaksis: RETI Bu buyruq pastki dasturdan qaytadi va umumiy uzilishni yoqish bayrog'ini o'rnatadi.RJMP
Sintaksis: RJMP yorlig'i Nisbiy o'tish. RJMP buyrug'ining 2048 oralig'ida bo'lishi kerak bo'lgan yorliqda ko'rsatilgan dastur bo'limiga o'tadi.SBI
Sintaksis: SBI ioreg, bit Bu buyruq I/U registr bitini ioreg ($00...$1F) ni 1 ga o'rnatadi. Bit raqami bit operandini aniqlaydi.SBIC
Sintaksis: SBIC ioreg, bit Bu buyruq I/U registr bitini tekshiradi ($00...$1F) va agar bu bit aniq bo'lsa, keyingi buyruqni o'tkazib yuboradi. Bit raqami bit operandini aniqlaydi.SBIS
Sintaksis: SBIS ioreg, bit Bu buyruq I/U registr bitini tekshiradi ($00...$1F) va agar bu bit o'rnatilgan bo'lsa, keyingi buyruqni o'tkazib yuboradi. Bit raqami bit operandini aniqlaydi.SEI
Sintaksis: SEI Bu buyruq umumiy uzilishni yoqish bayrog'ini o'rnatadi.SER
Sintaksis: SER reg Bu buyruq reg registrining barcha bitlarini 1 ga o'rnatadi S, V, N, Z bayroqlarining holatini o'zgartiradi Buyruq faqat R16...R31 registrlari bilan ishlashi mumkin.ST
Sintaksis: ST reg, longreg 1200 modeli uchun ushbu buyruq reg registrining mazmunini ma'lumotlar xotirasida saqlaydi (xotira joyi uzunroq registrda joylashgan), ya'ni. bilvosita PON reg tarkibini uzoqroq registrda saqlangan manzilga uzatadi.SUBI
Sintaksis: SUBI hreg, raqam hregning yuqori registridan doimiy sonni ayiradi. Natija bir xil registrda saqlanadi. H, S, V, N, Z, C bayroqlarining holatini o'zgartiradi. Buyruq faqat R16…R31 registrlari bilan ishlashi mumkin.Revich Yu.V.
Atmel AVR mikrokontrollerlarini tilda amaliy dasturlash
assembler - 2-nashr, rev. -
Operatsion tamoyillari, me'moriy xususiyatlari va texnikasi ko'rsatilgan
Atmel AVR mikrokontrolderlarini dasturlash. Tayyor retseptlar taqdim etiladi
zamonaviy mikroelektron uskunalarning asosiy funktsiyalarini dasturlash uchun
Rature: javobdan tugmani bosish yoki dinamik displeyni qurish
ma'lumotlarni tashqi xotiraga yoki xususiyatlarga yozib olish uchun murakkab protokollarga
real vaqtda soat ulanishi. Ma'lumotlar almashinuviga alohida e'tibor beriladi
shaxsiy kompyuterga ega raqamli mikroelektron qurilmalar berilgan
dastur misollari. Kitob zamonaviy AVR modellarining xususiyatlarini va birgalikdagi xususiyatlarini hisobga oladi.
ishlab chiqarishning so'nggi yillarida sayohat qiluvchi mikrosxemalar. Ilovalar asosiy o'z ichiga oladi
AVR mikrokontrollerlarining parametrlari, buyruqlar ro'yxati va ular uchun dastur matnlari,
shuningdek, ishlatiladigan atamalar va qisqartmalar ro'yxati.
Talabalar, muhandislar va radio havaskorlari uchun
Nashrga tayyorgarlik guruhi:
Bosh muharrir
Ekaterina Kondukova
o'rinbosari bosh muharrir
Igor Shishigin
Bosh muharrirlar tomonidan
Grigoriy Dobin
muharrir
Yuriy Rojko
Kompyuterning joylashuvi
Olga Sergienko
Tuzatuvchi
Zinaida Dmitrieva
Qopqoq dizayni
Elena Belyaeva
Bosh ishlab chiqarish
Nikolay Tverskix
Mikrokontrollerlar, ularning kelib chiqishi va qo'llanilishi...................................... ...... 7
Mikrokontrollerlar haqida ma'lumot................................................. .... ................................................. ... 8
Yunoncha uslubdagi elektronika................................................. ...... ................................................... ............ ... 10
Nima uchun AVR? ................................................................ ...... ................................................... ............ ........................... 12
I QISM. QURILMANING UMUMIY PRINSİPLARI
ATMEL AVR VA FOYDALANISHI ................................................ ....... ............... 17
1-bob. Atmel AVR mikrokontrollerlarining umumiy ko'rinishi ...................................... ...... ......... 19
AVR oilalari ................................................ .... ................................................. ....... ........................... 21
AVR MK dan amaliy foydalanish xususiyatlari ...................................... ...................... 23
Iste'mol haqida................................................. ... ................................................... ......... ................... 23
Zanjirlarda AVR dan foydalanishning ba'zi xususiyatlari...................................... ................................ 25
2-bob. Umumiy tuzilma, xotirani tashkil etish, soatlash, qayta o'rnatish............ 27
Dastur xotirasi................................................. ........ ................................................ ............................................... 27
Ma'lumotlar xotirasi (RAM, SRAM) ................................................ .... ................................................. ......... ......... 29
O'zgaruvchan bo'lmagan ma'lumotlar xotirasi (EEPROM) ...................................... ............................ 31
Soat usullari................................................. ........ ................................................ .......................... ............... 32
Qayta o'rnatish................................................ . ................................................................ ..... ................................................... 34
3-bob: Periferik qurilmalarga kirish........................................... ...... 37
Kirish/chiqarish portlari.............................................. ...................... ................................................. ................................ 38
Taymerlar-hisoblagichlar................................................. ......... ................................................... ............... ................................. 39
Analog-raqamli konvertor................................................. ........ ................................................ 41
Seriya portlar................................................. ... ................................................... ......... ......... 42
UART................................................. .. ................................................. ........ ................................... 43
SPI interfeysi ................................................. ... ................................................... ......... ................... 46
TWI interfeysi (I
C) ................................. ...................... ................................................ ...... ..... 50
USI universal seriyali interfeysi ............................................. .............. ............. 50
4-bob. Uzilishlar va quvvatni tejash rejimlari...................................... ............ 53
Uzilishlar................................................. ....... ................................................. ............................................. 53
Uzilish turlari................................................. ................ ................................. ................... 57
Energiyani tejash rejimlari................................................. ................ ................................. ....................... ........ 58
II QISM. MIKRONATROLLERLARNI DASTURLASH
ATMEL AVR ................................................. ... ................................................... ......... ................ 61
5-bob. AVR oilasining MCU-larini dasturlashning umumiy tamoyillari ................................ 63
Assambleya yoki C? ................................................................ ...... ................................................... ...................... ................... 63
AVR dasturlash usullari va vositalari ................................................ ....... ........................... 67
Kod muharriri................................................. ... ................................................... ......... ........................... 67
AVR Studio haqida ................................................... ...... ................................................ ...................... 68
Assemblerni tartibga solish................................................. ...................... ................................................. ................ ... 70
Dasturchilar................................................. ....... ................................................. ............. .............. 71
Hex fayllar haqida................................................. ......... ................................................... ............... .......................... 75
AVR assemblerining buyruqlari, ko'rsatmalari va yozuvlari...................................... ............ ........................... 78
Raqamlar va iboralar................................................. ......... ................................................... ............... .............. 79
Ko'rsatmalar va funktsiyalar ............................................... ................................................................ .......................... ......... 80
AVR dasturining umumiy tuzilishi................................................. ........ ................................................ ......... 84
Uzilishlar bilan ishlash................................................. ................................................................ ......................... ......... 85
QAYTA O'RNATISH ................................................. .... ................................................. ...................................... 89
Eng oddiy dastur.............................................. .... ................................................. ............ ............... 90
Kechikish................................................. ................................................................ ...... ........................... 92
Hisoblagich dasturi................................................. ........ ................................................ ...................... 94
Uzilishlardan foydalanish................................................. ................................................................ ...................... 96
Taymerning kechikishi................................................. ........ ................................................ .............. ............ 97
Uzilishlar yordamida hisoblagich dasturi................................................. ................... ............ 98
Konfiguratsiya bitlari haqida................................................. ................................................................ .......................... ...... 101
6-bob. AVR buyruqlar tizimi ...................................... ........ ................................... 105
Nazorat o'tkazish bo'yicha ko'rsatmalar va ro'yxatdan o'ting SREG ...................................................................... 105
Tekshirish buyruqlari................................................. ................................................................ ......................... ..... 111
Mantiqiy amallar buyruqlari.............................................. ................................................................ .......................... 113
Shift ko'rsatmalari va bit operatsiyalari................................................. ....... ................................................. 114
Arifmetik amallar bo'yicha ko'rsatmalar................................................. ...................................................... 116
Ma'lumotlarni uzatish buyruqlari................................................. ................................................................ .......................... ...... 118
Tizimni boshqarish buyruqlari................................................. ...................... ................................................. ................ 122
Assemblerda standart protseduralarni bajarish...................................... ...................... ........................... 123
Stack, mahalliy va global o'zgaruvchilar haqida ................................... ............................ 125
7-bob. Arifmetik amallar...................................... ....... ........................... 127
Standart arifmetik amallar................................................. ................................................................ ..... 128
Ko'p xonali sonlarni ko'paytirish................................................. ................................................................ ...... 129
Ko'p xonali sonlarning bo'linishi...................................... ................................................................ .............. 131
Kasr sonlar bilan amallar................................................. ...... ........................................... 134
Tasodifiy raqamlar generatori................................................. ................................................................ ...... ...... 136
BCD formatidagi raqamlar bilan amallar ...................................... ........ ................................................ ..... 138
MKdagi manfiy sonlar...................................... ...... ................................................ ............ ......... 143
8-bob. Taymerlarni dasturlash...................................... ....... ................... 147
8 va 16 bitli taymerlar...................................... ......... ................................................... ............... ......... 147
Berilgan chastota qiymatini shakllantirish................................................. ........ ........................... 149
Ortga hisoblash................................................. ................................................................ ................................................ 153
Vaqtni aniq tuzatish................................................. ................................................................ ................ 158
Chastota o'lchagich va davr o'lchagich................................................. ...... ................................................... ............ ......... 160
Chastotani o'lchagich................................................. ... ................................................... ......... ......................... 160
Davr o'lchagich................................................. ........ ................................................ ............................................... 164
Dinamik displeyni boshqarish................................................. ................................................................ ...... 167
LED ko'rsatkichlari va ularning ulanishi................................................. ...................................... 168
Dinamik displeyni dasturlash................................................. ...................... ............... 171
PWM rejimidagi taymerlar ............................................. ...... ................................................... ............ ............ 174
9-bob. EEPROM dan foydalanish ................................................ ....... ........................... 179
EEPROM-dagi ma'lumotlarning xavfsizligi haqida yana bir bor ...................................... ...................................... 179
EEPROM yozish va o'qish ................................................... ...... ................................................... ............ ......... 181
EEPROMda konstantalarni saqlash ...................................... ................................................................ ...................... 183
10-bob. Analog komparator va ADC...................................... ......... ................. 187
Analog-raqamli amallar va ularning xatolari...................................... ......... ........................... 187
Analog komparator bilan ishlash................................................. ................................................................ ............. 190
ADC ni komparatorga integratsiya qilish................................................ ....... ................................. 193
Ishlash printsipi va hisoblash formulalari................................................. ....... ........................... 194
ADC dasturini integratsiyalash................................................. ................................................................ ...... 198
O'rnatilgan ADC................................................. ...... ................................................ ............ ........................... 201
ADC dan foydalanishga misol................................................. ................................................................ ................................ 204
Dastur................................................................. ................................................................ ...................................... 206
11-bob. SPI dasturlash ................................... ....... ........................... 215
SPI orqali asosiy operatsiyalar ................................................ ................................................................ ........................... ... 215
Uskuna opsiyasi................................................. ... ................................................... ......... ......... 216
Dasturiy ta'minot opsiyasi................................................. ... ................................................... ......... ...... 218
Doimiy xotira turlari haqida................................................. ............................ 219
SPI orqali flesh-xotirani yozish va o'qish ............................................. ......... ................................................... .. 221
SPI orqali 45DB011B xotirasi bilan almashish dasturi ...................................... .... ............... 224
Fleshli kartalarni yozish va o'qish................................................. ...... ................................................... ............ ............ 225
MMS kartalarni ulash................................................. .... ................................................. ............ 225
Buyruqlarni topshirish va MMCni ishga tushirish...................................... ......... ........................... 228
MMS yozish va o‘qish................................................. ...... ................................................ ............ ......... 232
12-bob. TWI interfeysi (I
C) va undan amaliy foydalanish................ 237
Asosiy protokol I
C ............................................. ............ ............................................. ...... ......... 237
I Protokolning dasturiy emulyatsiyasi
C ............................................. ............ ...................... 240
Ma'lumotlarni tashqi doimiy xotiraga yozish...................................... ............ ......... 241
AT24 xotirasi bilan rejimlarni almashish ................................................ ....... ................................................. 241
Dastur................................................................. ................................................................ ...................................... 243
Interfeysli soat I
C ............................................. ............ ............................................. ...... .... 247
Ma'lumotlarni yozib olish ................................................... ........ ................................................ ............................... 255
Ma'lumotlarni o'qish................................................. ........ ................................................ ............................... 259
13-bob. UART/USART dasturlash ...................................... .... ............. 261
UARTni ishga tushirish ................................................ ... ................................................... ......... .............. 262
Ma'lumotlarni uzatish va qabul qilish................................................. ...... ................................................ ............ ......... 263
UART yordamida DS1307 soatini sozlash misoli ...................................... ...... ................... 266
Aloqa nosozliklaridan himoya qilish usullari................................................. ................................................ 271
Paritet tekshiruvi................................................. ................................................................ ...................... ........ 271
To'g'ri almashinuvni qanday tashkil qilish kerak................................................. ................................ ........................... ...... 273
Qo'shimcha USART xususiyatlari ................................................ ...................................... 274
RS-232 va RS-485 interfeyslarini amalga oshirish ...................................... ................................................................ ..... 276
RS-232 uchun darajali konvertorlar ...................................... ........ ................................... 280
RS-485 ................................................... ...... ................................................ ................................................ 283
14-bob. Quvvatni tejash rejimlari va Watchdog taymeri................................... 285
Energiyani tejash rejimini dasturlash...................................... ................................................ 286
Batareya bilan ishlaydigan qurilmaga misol................................................. ......... ................................... 287
Dasturni yakunlash ................................................... ...................... ................................................. ...................... 289
Kuzatuv taymeridan foydalanish................................................. ................................................................ ............ 293
ILOVALAR...................................................... ....... ................................................. ............. ....... 299
Ilova 1. Atmel AVR mikrokontrollerlarining asosiy parametrlari ......... 301
2-ilova. Atmel AVR buyruqlari ...................................... ...... ........................... 309
Arifmetik va mantiqiy buyruqlar........................................... ...................................... 310
Bit operatsiyalari bo'yicha ko'rsatmalar ................................................... ................................................................ .......................... ...... 311
Taqqoslash buyruqlari................................................. ... ................................................... ......... ................... 312
O'tkazish buyruqlarini boshqarish ................................................ ......... ................................................... ............... .313
Shartsiz o'tish va pastki dasturlarni chaqirish uchun buyruqlar...................................... ............ ... 313
Tekshirish-o'tkazib yuborish ko'rsatmalari va shartli sakrash bo'yicha ko'rsatmalar...................................... ................ 314
Ma'lumotlarni uzatish buyruqlari................................................. ................................................................ .......................... ........ 315
Tizimni boshqarish buyruqlari................................................. ...................... ................................................. ................ 316
3-ilova. Dastur matnlari...................................... ...... ................................. 317
Flash Communication demo dasturi 45DB011B
SPI interfeysi orqali ................................................... .... ................................................. ............................ 317
Interfeys almashinuvi protseduralari I
C ............................................. ............ ...................... 321
Ilova 4. Shaxsiy kompyuter bilan ma'lumotlar almashinuvi
va UART orqali disk raskadrovka dasturlari ................................................ ....... ................................ 329
Delphida COM port bilan ishlash ................................................ ... ................................................... ......... ..... 329
DOS va Windows da RTS liniyasini o'rnatish ...................................... ...................... ................................. 335
COM2000 dasturi ................................................... ... ................................................... ......... ................... 337
Terminal emulyatori yordamida dasturlarni disk raskadrovka qilish................................................... ........ ................... 339
5-ilova. Ko'p qo'llaniladigan qisqartmalar va atamalar lug'ati....... 341
Adabiyot.................................................. ................................................................ ...... .............. 347
Mavzu indeksi................................................. ................................................ 349
KIRISH
Mikrokontrollerlar,
ularning kelib chiqishi va qo'llanilishi
Ularning aytishicha, 1960-yillarda talabalar namoyishlari ishtirokchilarini kuzatgan
norozilik, Gordon Mur dedi: "Biz haqiqiy inqilobchilarmiz." Talabalar
tranzistor ixtirochilaridan biri V. Shoklining xodimi, shu jumladan,
mashhur Silikon vodiysining yashirin asoschisi, o'z navbatida asos solgan
tel va rivojlanishda etakchi rol o'ynashga mo'ljallangan kompaniyalarning rahbari
mikroelektronika, Mur nima haqida gapirayotganini bilar edi. Paradoksal ravishda shunday
Mur va uning hamkorlarining ixtirolari o'sha dunyoning asosiga aylanishi kerak edi
unda keyinchalik "isyonkor yoshlar" faoliyati jamlangan
1960-yillar Zamonaviy xakerlar (gazetalardagi kompyuter bezorilari emas, balki haqiqiy)
kompyuter olimlari o'z ishlariga ishtiyoqli) - bevosita mafkuraviy merosxo'rlar
Sorbonna talabalari va “Make
urush emas sevgi"
to "Shiorlarni yozmang - kod yozing." Ko'pchilikning mashhurligi tasodif emas
elektron hisoblash sanoatining taniqli namoyandalari, ixtiro mualliflari, asoschilar
zamonaviy dunyoning yuzini shakllantirganlar - o'sha "bunga" yaqin muhitdan kelganlar.
charchagan yoshlar."
Mikrokontrollerlar haqidagi hikoyamiz 1957 yilda Gordon Mur bilan hamkorlik qilganidan boshlandi.
keyinchalik mikrofon ixtirochilaridan biriga aylangan Robert Noys bilan birga
roschemy va Shockley Semiconductor Labsning yana olti nafar xodimi (Shockley chaqirdi
ularning "xiyonatkor sakkizligi") Fairchild Semiconductor kompaniyasiga asos solgan. Unga biz
nafaqat yarimo'tkazgichlar bozorining rivojlanishi va mikrosxemalarning joriy etilishi
muhandislik amaliyotiga, balki, chunki u bir turdagi kadrlar va
yosh sanoat uchun g'oyalar generatori.
Bu yerda faqat bir necha tarixiy faktlar keltirilgan. Murning o'zi 1960-yillarning oxirida Noys bilan
Qisqartirilgan Intel nomi ostida Integrated Electronics kompaniyasini yaratdi
Endi har bir maktab o'quvchisiga tanish. Jeremi Sanders, boshqa mashhur asoschisi
Eng yirik kompaniya - AMD ham Fairchildni tark etdi va u erda hamkorlikni ochish bilan ajralib turdi.
yarimo'tkazgichni ishlab chiqarish va sotish uchun vaqtinchalik iqtisodiy model
komponentlar, bunda mahsulot tannarxi oshgani sayin nolga intiladi
"Urush emas, sevgi qiling" shiori 1960-yillardagi hippilarning Vetnam urushiga norozilik bildirgan shiori edi.
Kirish
to'plam hajmini o'zgartirish. Charli Spork, Fairchildning asosiy menejerlaridan biri, 1967 yilda
Milliy Semiconductor direktori bo'ldi, keyinchalik u chorak davomida rahbarlik qildi
asr. "Xiyonatkor sakkizlik" ning yarmi - Gen Xerni, Evgeniy Kleiner,
Jey Last va Sheldon Roberts - 1961 yilda Amelco kompaniyasiga asos solgan
keyinchalik hozirda taniqli Intersil, Maxim va Ixys o'sdi. Xodim
Biz Fairchildga operativ kuchaytirgichlar ixtirosi uchun Robert Uidlarga qarzdormiz -
mikrosxemalar navlari va hozirgi kunga qadar mashhurlik bo'yicha ikkinchi o'rinda turadi
mikroprotsessorlar. Bundan tashqari, Fairchild tarixi mashhurlarning paydo bo'lishi bilan bog'liq
hal qiluvchi rol o'ynagan yangi korxona (ya'ni, "xavfli") moliyalashtirish modeli
elektronika, kompyuter va elektronika bilan bog'liq barcha tarmoqlarni rivojlantirishda muhim rol o'ynaydi
telekommunikatsiya. Fairchildni ko'pincha "barcha elektr energiyasining onasi" deb atashgani bejiz emas.
tronics".
Mikrokontrollerlar haqida ma'lumot
Bu voqealar bo'roni ichida bizning hikoyamiz uchun muhim bo'lgan narsa shu
boshqa yangiliklar, Fairchild xodimlari birinchi bo'lib yarimo'tkazgichni targ'ib qilishdi
soxta xotira. Endi, CD va DVD disklari, qattiq disklar va flesh-kartalar asrida, biz
1960-yillarning boshlarida kompyuter dasturlarini tasavvur qilish qiyin
asosan karton varaqlarda (perfokartalarda), hurda konstruktorlarda saqlangan
boshingiz simob kechikish liniyalari ustida qimmat RAM modullari ustida yoki yo'qligini, osiloskop
grafik naychalar va ferrit halqalar, bu erda har bir bit qo'lda "tikilgan"
yo'q. O'sha yillardagi ma'lumotlarni saqlash uchun eng ixcham elektron qurilma
RAMAC 305 deb nomlangan magnit disklari hajmi 5 MB bo'lgan
sanoat muzlatgichi bilan va oyiga 5 ming dollarga ijaraga olingan.
Bu yirtqich hayvonlarning qorong'u shohligidagi yagona "nur nuri" ixtiro edi
1956 yilda qabul qilingan Amerika Bosch Arma korporatsiyasi xodimi Yen Chou
Endi "bir martalik dasturlashtiriladigan ROM" deb nomlanuvchi qurilma uchun patent
(OTP ROM
). Aytgancha, ushbu patentda bu atama birinchi marta ishlatilgan
"Kuyish" - mikromodul erituvchi o'tish moslamalari bo'lgan matritsadan iborat edi
Ularga yuqori kuchlanish qo'llash orqali dasturlash paytida yonib ketgan.
OTP ROMlar uzoq vaqt davomida ixcham uchun yagona qurilmalar bo'lib qoldi
ma'lumotlarni saqlash va yaqin vaqtgacha o'z ma'nosini yo'qotmagan -
dunyodagi mikrokontrollerlarning kamida to'rtdan bir qismi, ayniqsa oddiyroq bo'lganlar, gacha
hali ham shunday bir martalik dasturlashtiriladigan o'rnatilgan dastur bilan ishlab chiqariladi
o'ta arzonligi tufayli ajinlar. Va faqat so'nggi yillarda "yonib ketgan" pa-
xotira asta-sekin qulayroq flesh-xotira bilan almashtirila boshlandi, ikkinchisi
narxi shu qadar tushib ketdiki, OTP ROM dan foydalanishning deyarli ma'nosi yo'q.
Ammo keling, 1960-yillarga qaytaylik. Yilni yarimo'tkazgich xotirasi mutlaqo kerak edi
uni hamma yaxshi ko'radi - harbiylar va NASAdan tortib maishiy texnika ishlab chiqaruvchilarigacha. Boshida
Fairchild bugungi kunda DRAM deb ataladigan narsani taqdim etdi, xususan, bunday mikro
Rossiya sxemalari (har biri 256 bit sig'imga ega 32 768 chip) banner xotirasi qurilgan.
Ba'zi qisqartmalarning tushuntirishlari uchun qarang 5-ilova.
ILLIAC-IV filamentli superkompyuteri, mahalliy BESM-6 ga raqobatchi. Sezgan holda
Shamol qaysi tomonga essa, 1968 yilda Mur va Noys Fairchildni tark etib, Intelga asos soldi.
xotirani ishlab chiqish va ishlab chiqarish bo'yicha ixtisoslashgan kompaniya. Ular hali yo'q
Intelning eng mashhur mahsuloti umuman xotira emas, balki kichik bo'lishini bilar edi
Mikroprotsessor deb ataladigan qurilma (B1-rasm), uning rivojlanishi birinchi navbatda edi
dastlab an'anaviy hisobni loyihalashda yordamchi bosqich sifatida ishlab chiqilgan
Tavrot.
Guruch. IN 1. Mikroprotsessor
VA
MIKROPROCESSORNING IXTIROSI
1969 yilda Intel kompaniyasida yaponiyalik yosh Busicom kompaniyasidan bir necha kishi paydo bo'ldi.
kalkulyatorlar ishlab chiqarish bilan shug'ullanuvchi ilmiy-tadqiqot instituti. Ularga 12 ta to'plam kerak edi.
gral sxemalari yangi arzon ish stoli kalkulyatorining asosiy elementi sifatida -
Tavrot. Loyihani yapon kompaniyasi vakili Masatoshi Shima ishlab chiqdi
Ron. Ted Xoff (Marcian E. Ted Hoff, 1937 yilda tug'ilgan), bo'lim boshlig'i.
Intel mahsulotlari uchun ilovalarni ishlab chiqish, loyiha bilan tanishib, men buni angladim
ba'zi dasturlash imkoniyatlariga ega kalkulyator yaratish o'rniga
dasturlash, siz buning aksini qilishingiz mumkin, kompyuter sifatida ishlash uchun dasturlashtirilgan
kalkulyator. G'oyani ishlab chiqishda, 1969 yilning kuzida Xoff san'atga qaror qildi
kelajakdagi mikroprotsessorning arxitekturasi. Bahorda Xoffa kafedraga keldi (barchasi bir xil
Fairchild, bizga allaqachon ma'lum), yangi xodim Frederiko Faggin, kim
ry va butun tizim uchun nom bilan keldi: "oila 4000". Oila iborat edi
to'rtta 16 pinli chiplardan iborat: 4001 2 KB ROMga ega; 4002 - operativ xotira bilan
4-
dasturlarni yuklab olish uchun bit chiqish porti; 4003 10 bitli edi
Ketma-ket kirish va parallel chiqishga ega I/U kengaytirgichi
klaviatura, indikator va boshqa tashqi qurilmalar bilan aloqa qilish uchun uy; ammo-
4004 4-bitli protsessor (markaziy protsessor) edi. Bu CPU
2300 tranzistorni o'z ichiga olgan va 108 kHz takt chastotasida ishlaydi. 15 noyabr
1971
Birinchi mikroprotsessorning yaratilishi e'lon qilindi. Busicom sotib olindi
Intel kompaniyasiga 60 000 dollar to'laydi, lekin Intel bu pulni Busicomga qaytarishga qaror qildi.
mikroprotsessorga bo'lgan huquqlarni qayta tiklash.
I4004 birinchi elektron kompyuter bilan taqqoslanadigan qayta ishlash quvvatiga ega edi.
Yuter ENIAC (1946). 4004 tizimda o'zining birinchi amaliy qo'llanilishini topdi
svetofor va qon analizatorlarini boshqarish. Bu mikroprotsess
sor sayyoralararo Pioneer-10 zondining bort uskunasida ishlatilgan
ry shunga o'xshash qurilmalar orasida uzoq umr ko'rish rekordini o'rnatdi: u ishga tushirildi
1972
, va 2001 yil sentyabriga kelib Pioneer-10 Yerdan 11,78 milliard km uzoqlashdi va hali ham shunday edi.
NASA rasmiy ravishda 2003 yil fevral oyida ishlagan va, ehtimol, hanuzgacha ishlaydi
ijtimoiy u bilan xayrlashdi.
Kirish
Shunday qilib, keyinchalik bo'linib ketgan mikroprotsessorlarning g'alabali yurishi boshlandi
asosan ikkita asosiy guruhga tegishli bo'lgan bir nechta navlarga bo'linadi:
mikroprotsessorlar (MP) va mikrokontrollerlar (MC) o'zlari. Birinchi
hisoblash tizimlarining bir qismi sifatida foydalanish uchun mo'ljallangan, eng keng tarqalgan
ularning aksariyati shaxsiy kompyuterlar (ShK), shuning uchun ular hali ham tez-tez ishlatiladi
"Kompyuter protsessorlari" deb ataladi (garchi bu guruh odatda ishlab chiqarilganlarni ham o'z ichiga oladi
serverlar va boshqalar uchun haydovchi MP). MK MPdan shu bilan farq qiladi
ular asosan turli tizimlarni boshqarish uchun mo'ljallanganligi,
shuning uchun nisbatan zaifroq hisoblash yadrosi bilan ular o'z ichiga oladi
ko'plab qo'shimcha tugunlar mavjud. Oddiy deputat uchun bu haqiqat deb taxmin qilinadi
tashqi chipsetlarda yoki qo'shimcha modullarda zaxira (xotira, kirish portlari)
chiqish, taymerlar, uzilish kontrollerlari, analog signallarni qayta ishlash uchun tugunlar
baliq ovlash va boshqalar), MKda u to'g'ridan-to'g'ri chipda joylashgan, shuning uchun ular bir vaqtlar moda bo'lgan
uni "mikrokompyuter" deb nomlang.
Haqiqatan ham, eng oddiy holatda, to'liq funktsional qurish uchun
kompyuter uchun ulangan bitta MK chipi
unga ulangan kirish/chiqarish qurilmalari. Oddiy monokristalning zamonaviy modellari
po'lat MKlar 286-chi pro-da IBM PC AT ning hisoblash imkoniyatlaridan oshib ketadi.
1980-yillarning ikkinchi yarmidagi protsessor. MP va o'rtasidagi chegara hududlar mavjud
MKni amalga oshirish qiyin: masalan, mobil qurilmalar uchun protsessorlar
telefonlar va cho'ntak kompyuterlari protsessor joylashgan raqamli kameralarga
tugun rivojlangan hisoblash funktsiyalariga ega bo'lishi va bir nechtasini boshqarishi kerak
ko'plab tashqi komponentlar.
Yunoncha uslubdagi elektronika
1962 yilda Perlegos oilasida yunon emigrantlari tug'ilgan
Tripolis shahri aholisi. Ota-onalar o'z vatanlarida bo'lgani kabi uzumchilik bilan shug'ullangan, o'g'illari esa
Novya, Jorj va Gust Perlegos muhandislikning moda mutaxassisligini tanladilar
elektronika muhandisi: ikkalasi ham avval San-Xose universitetini, keyin esa Stenfordni tamomlagan
universitet. 1974 yilda, 24 yoshida, aka-ukalarning eng kichigi Jorj Perlegos,
Intel kompaniyasida ishlay boshladi, u erda u o'zini eng ilg'or sohalardan birida topdi:
yoqilgan OTP ROM o'rnini bosuvchi elektr o'chiriladigan xotirani ishlab chiqish.
Perlegosdan oldin ham, 1971 yilda mikroprotsessor ixtirosi bilan deyarli bir vaqtda,
Intel xodimi Don Frohman suzuvchi panjurni ixtiro qildi va birinchi UVni yaratdi
2K o'chiriladigan EPROM (256 8).
Z
CHARJDAGI QAYDLAR
"Oddiy" hayotda bitta harfdan iborat bo'lgan ma'lumotlar birliklari uchun qisqartmalardan foydalaning
"K" (shuningdek, "M") tavsiya etilmaydi: ba'zan bu yoki yo'qligini tushunish juda qiyin
kilobitlar, kilobaytlar, "kilowords" yoki odatda soniyada kilobitlar haqida. Shunga qaramasdan
bunday qisqartmalar tez-tez uchraydi, shu jumladan texnik hujjatlarda va biz kelamiz
Men ba'zan bu misolga amal qilishga harakat qilaman. Aniqlik uchun biz quyidagi qoidalarni qabul qilamiz:
la: bitta bosh harf "K" ikkilik kilobitlarni (1024 bit), "M" ikkilik kilobitlarni anglatadi
ikkilik megabitlar (1024 kbit). Garchi adabiyotda kilobaytlar ko'pincha qabul qilinadi
"KB" va kilobitlar "KB" deb qisqartirilsa, biz bu chalkashlikdan qochishga harakat qilamiz va
Mikrokontrollerlar, ularning kelib chiqishi va qo'llanilishi
Boshqa barcha holatlarda to'liq yozing: kbayt va MB, kbit/s, MB/s. Bundan tashqari -
ishlab chiqarilgan bo'lsa, mikrokontroller dasturlari xotira hajmini belgilash bo'ladi
ikki baytli so'zlar bilan o'lchanadi: masalan, 4K so'zlar 4096 hujayrani bildiradi -
so'zlar (8 kbayt).
Jorj Perlegos bu jarayonda birinchi navbatda uning ishtirokida faol ishtirok etdi va
keyin va uning bevosita rahbarligida ikkita texnologiya yaratildi,
Ulardan biri butun flesh-xotira sanoati uchun o'sish nuqtasiga aylandi
zamonaviy "raqamli inqilob" ning asosiy ustunlari. U birinchi bo'lib ixtiro qilingan
chip 2716 - 16K (2048 8) EPROM bitta besleme zo'riqishida +5 V, keyin esa
2816 - birinchi EEPROM, elektr bilan o'chiriladigan ROM, prototipga aylandi
flesh xotira.
1981 yilda Perlegos Intelni va bir nechta xodimlari bilan (shu jumladan
boshqa mashhur Chips & kompaniyasining bo'lajak yaratuvchisi Gordon Kempbell edi.
Technologies) Seeq kompaniyasini yaratadi. Bu elektron sanoatning tanazzulga uchragan davri edi.
sanoatlashtirish va uch yildan so'ng kompaniya da'vo tufayli ketishga majbur bo'ldi
investorlar. Endi ularga ishonmay, Jorj va uning ukasi Gust va boshqalar
1984 yilda Seeq xodimlari bilan biz shaxsiy mablag'larga ega kompaniya yaratdik,
kimning to'liq ismi Advanced Technology Memory and Logic yoki kabi eshitiladi
Atmel deb qisqartirilgan.
Avvaliga Atmel mahsulotlari barcha turdagi uchuvchan bo'lmagan xotira chiplari edi
yangi xususiyatlar - seriyali va parallel OTP EPROM va EEPROM kabi
kirish va Flash. 1985 yilda Atmel dunyodagi birinchi uyga asoslangan EEPROM-ni chiqardi.
bugungi kunda rivojlanayotgan CMOS texnologiyasi va 1989 yilda birinchi quvvatli flesh-xotira
bir kuchlanishdan +5 V. 1980-yillarning oxirida Intel bir qator kompaniyalarni jazolashga kirishdi.
EPROM ishlab chiqaruvchi kompaniyalar, shu jumladan Atmel, patentlarni buzganlikda ayblanib,
ammo, oxir-oqibat, litsenziyalar almashinuvi to'g'risida kelishib olish mumkin edi. Va oxirida -
Oxir-oqibat, Atmel klassik mikrokontrollerlarni ishlab chiqarish uchun litsenziya oldi.
ler 8051, Intel o'sha paytda qo'llab-quvvatlashdan asta-sekin uzoqlashayotgan edi.
shaxsiy kompyuter protsessorlari bilan tanishish.
P
TAFsilotlar
Eslatib o'tamiz, EEPROM flesh-xotiradan birinchisi ruxsat berishi bilan farq qiladi
har qanday ixtiyoriy hujayraga alohida kirish, ikkinchisi - faqat butun bloklarga. By-
bu EEPROM hajmi kichikroq (maxsus mikro-
EEPROM sxemalari - kilobit birliklaridan megabit birliklarigacha) va hozirda qimmatroq
u asosan ma'lumotlarni saqlash uchun, shu jumladan mikrokontrollerlarning bir qismi sifatida ishlatiladi
Lerov. Flash xotira sodda va arzonroq, shuningdek, tezlikni sezilarli darajada oshiradi.
katta hajmdagi ma'lumotlar, ayniqsa oqimli o'qish/yozish bilan o'sish,
media qurilmalari (masalan, raqamli kameralar yoki MP3 pleerlar) uchun xosdir. Kiritilgan
Mikrokontrollerlarning flesh xotirasi dasturlarni saqlash uchun ishlatiladi. Ba'zi tafsilotlar
Turli xil xotira turlari va ularning ishlashi haqida ko'proq ma'lumot olish uchun qarang 11-bob.
Shunday qilib, Atmel o'zini mikrokontroller ishlab chiqaruvchilari soniga "chizilgan" deb topdi, ularda
rum juda tez birinchi o'rinlarni egalladi: ishlab chiqarish 1993 yilda boshlangan
o'rnatilgan flesh-dastur xotirasi bilan sanoatdagi birinchi MCU AT89C51. Buning ma'nosi
barcha muhandislik amaliyotida inqilob boshlandi, chunki mavjud
Ilgari, MKlarda bir martalik dasturlashtiriladigan OTP xotirasi yoki
Kirish
Ishlab chiqarish va u bilan ishlash ancha qimmatga tushadigan UV-yuvish mumkin
ishlab chiquvchi vaqtini katta yo'qotishga olib keladi. UV uchun qayta yozish davrlari soni
PROM bir necha o'ndan oshmaydi va to'g'ridan-to'g'ri kunduzi tushadi
bunday kristall ma'lumotni o'chirishga olib kelishi mumkin. Shuning uchun, hatto kichik
ry qurilmalari, birinchi navbatda, yordamida ishlab chiqarilishi kerak edi
OTP ROMni iste'mol qiling, bu juda xavfliroq: hatto eng kichik bo'lsa ham o'zgartirish
yozib olingan dasturdagi xatolar endi mumkin emas edi. dan flesh xotiraning paydo bo'lishi
bu hududdagi butun "landshaft" ni o'zgartirdi: uning joriy etilishi natijasida po'latdir
dasturiy ta'minotni kompyuterning BIOS-ni yangilash yoki "qayta tiklash" kabi mumkin bo'lgan narsalar.
hal qilish" iste'molchi elektron qurilmalar uchun nazorat dasturlari.
1995 yilda Trondagi Norvegiya fan va texnologiya universitetining ikki talabasi
Heime, Alf Bogen va Vegard Wollen 8 bitli RISC yadrosi g'oyasini ilgari surdilar.
Atmel rahbariyatiga taklif qilingan. Ishlab chiquvchilarning ismlari san'at nomiga kiritilgan.
AVR arxitekturasi: Alf + Vergard + RISC. Bu g‘oya menga shu qadar yoqdiki, 1996 yilda
Atmel tadqiqot markazi Trondxaymda tashkil etilgan va allaqachon bir xil oxirida
Yangi AVR seriyasining birinchi eksperimental mikrokontrolleri chaqirildi
AT90S1200. 1997 yilning ikkinchi yarmida Atmel korporatsiyasi seriyali chiqara boshladi
AVR oilasini ishlab chiqarish.
Nima uchun AVR?
"Tug'ilgandan" AVR kontrollerlari ularni bir-biridan ajratib turadigan ikkita xususiyatga ega
MKning qolgan qismidan oila. Birinchidan, AVR yadrosining ko'rsatmalar to'plami va arxitekturasi
pro-tillar uchun kompilyatorlarni ishlab chiqaruvchi kompaniya bilan birgalikda ishlab chiqilgan
yuqori darajadagi dasturlash IAR tizimlari. Natijada bu mumkin bo'ldi
AVR dasturlarini C tilida ishlashda katta yo'qotishlarsiz yozing
assembler tilida yozilgan dasturlarga nisbatan. Bu haqida batafsil ma'lumot
ichida muhokama qilamiz 5-bob.
Ikkinchidan, AVR ning muhim afzalliklaridan biri konveyerdan foydalanish edi
ra. Natijada, AVR uchun mashina aylanishi tushunchasi yo'q: ko'pchilik
buyruqlar bir soat siklida bajariladi. Taqqoslash uchun shuni ta'kidlaymizki, foydalanayotganlar
PIC oilasining MKlari juda mashhur bo'lib, ular 4 soat tsiklida buyruqni bajaradilar va sinf
sical 8051 - odatda 12 tsiklda (zamonaviy modellar ham mavjud bo'lsa ham X 51 ma bilan
bir tsikldagi avtobus aylanishi).
To'g'ri, shu bilan birga biz buyruq tizimining soddaligini biroz qurbon qilishimiz kerak edi,
bilan solishtirganda ayniqsa sezilarli x 51, bu erda, masalan, har qanday ekspeditorlik operatsiyalari
boshqaruvchi ichidagi ma'lumotlar, adreslash usulidan qat'i nazar, xuddi shu tarzda amalga oshiriladi
milliy terma jamoa
turli variantlarda, AVRda esa deyarli uchun
Har bir usul o'z buyrug'iga ega va ba'zan cheklangan harakatlar doirasiga ega.
viy. Bitlar bilan ishlash sohasida ba'zi qiyinchiliklar mavjud. Biroq, bu emas
AVR assemblerni o'rganishda sezilarli qiyinchiliklarga olib keladi: aksincha, matnlar
dasturlar qisqaroq va yuqori tildagi dasturni eslatadi
Daraja. Shuni ham hisobga olish kerakki, jamoalarning umumiy soniga qarab 90 dan 130 gacha
modelga qarab, faqat 50-60 noyob, qolganlari bir-birini almashtiradi.
Mikrokontrollerlar, ularning kelib chiqishi va qo'llanilishi
Va nihoyat, C tilidan foydalanganda bu kamchilik butunlay yo'q qilinadi,
aslida turli arxitekturalarni pro-ko'rsatkichlar nuqtai nazaridan tenglashtirish
dasturlash
AVR arxitekturasining katta afzalligi - bu 32 ta operatsion registrning mavjudligi,
butunlay teng emas, lekin ba'zi hollarda murojaat qilmaslikka imkon beradi
RAM va stekdan foydalanmang (bu asosan bir xilda mumkin emas
oila X 51), bundan tashqari, quyi AVR modellarida stek odatda mavjud emas
dasturchi Shu sababli, AVR uchun assembler dasturlarining tuzilishi shubhali bo'lib qoldi.
bayonotlar ishlaydigan yuqori darajadagi til dasturlariga juda o'xshaydi
xotira kataklari va registrlari bilan emas, balki mavhum o'zgaruvchilar va konstantalar bilan.
AVR-ning sxema dizayni nuqtai nazaridan yana bir xususiyati shundaki, barcha pinlar ichkarida
ular uchta holatda (kirish - o'chirilgan - chiqish) va elektr bo'lishi mumkin
chang'ilar CMOS tuzilmalari (ya'ni, chiqishning simmetriyasi mavjud).
signallari va kirish uchun yuqori qarshilik). Umuman olganda, bu muhim ahamiyatga ega
portlarga qaraganda qulayroq X 51 (bi-barqaror va TTL-mos) va yaxshiroq taklif qiladi
shovqin immuniteti (hech bo'lmaganda er avtobusidagi shovqinlardan).
Turli manbalardan olingan fikrlarni umumlashtirib, o'z tajribamga asoslanib,
muallif uchta eng ko'p qo'llanilish sohalarining taxminan quyidagi bo'linishiga keldi
boshqaruvchilarning umumiy oilalari.
Klassik arxitektura kontrollerlari X 51 (oilaning birinchi mikrosxemalari
8051 1980-yillarning boshlarida chiqarilgan) umumiy uchun eng yaxshisidir
mavzuni o'rganish. E'tibor bering, Atmeldan tashqari, X 51 ta mos mahsulotlar siz-
yana o'nga yaqin kompaniyalar ishga tushmoqda, jumladan Philips va kabi gigantlar
Siemens-ning mahalliy analoglari ham mavjud (1816, 1830 va boshqalar), bu buni amalga oshiradi.
arxitektura eng universal hisoblanadi.
AVR oilasi elektronika bo'yicha yangi boshlanuvchilar uchun tavsiya etiladi,
qurilmaning soddaligi va ko'p qirraliligi tufayli, strukturaning uzluksizligi uchun
har xil turdagi kontrollerlar, sxemani loyihalash va dasturlashning soddaligi
(bu holda "dasturlash" dasturni yozib olish jarayonini anglatadi
har bir chip uchun gramm).
Microchip PIC-lar oddiy qurilmalarni loyihalash uchun ideal.
to'dalar, ayniqsa replikatsiya uchun mo'ljallangan.
Ushbu tasnif asosan sub'ektivdir va muallif boshqalar bilan bahslashmaydi
nuqtai nazar: turli MK oilalari parametrlar bo'yicha asta-sekin yaqinlashmoqda,
to'liq almashtiriladigan bo'lib va, barcha zamonaviy elektr kabi
Nik, bir yoki boshqa oilaning tanlovi ko'pincha "diniy" xarakterga ega.
Bundan tashqari, MK ning uchta qayd etilgan oilalari faqat eng keng tarqalgan
universal kontrollerlar orasida, lekin umuman olganda eng mashhurlaridan uzoqda. General
mikrokontrollerlarning mavjud oilalari soni taxminan taxmin qilinadi.
Aslida 100 dan ortiq, har yili ko'proq va ko'proq paydo bo'ladi. Har biri
bu oilalar o'nlab turli modellarni o'z ichiga olishi mumkin. Shu bilan birga, birinchi o'rin
8-bitli MK ishlab chiqaruvchilari orasida an'anaviy ravishda Motorola-ga tegishli,
asosan mobil qurilmalar uchun kontrollerlar tufayli. Mikrochip kompaniyasi
Kirish
PIC oilasi bilan u uchinchi o'rinda, Atmel esa faqat oltinchi o'rinda. Bunda,
8-bitli AVR MCU-larga qo'shimcha ravishda, Atmel yana bir nechta turdagi MCU-larni ishlab chiqaradi,
Bu nafaqat 8051 ning qayd etilgan vorislarini, balki ARM-ni ham o'z ichiga oladi.
turli ilovalar uchun protsessorlar va maxsus mikrokontrollerlar. Shunga qaramasdan
bu rasmiy statistika hali hech narsani anglatmaydi - masalan, o'rnatilgan MKlar orasida
Atmel flesh-xotirasi allaqachon jahon bozorining uchdan biriga egalik qiladi.
2002-2003 yillarda dunyoda har yili 3,2 milliard dona mikrokonteyner ishlab chiqarilgan.
trollerlar. E'tibor bering, kompyuter protsessorlarini ishlab chiqarish hajmini hisoblash mumkin
Yiliga 200 million dona, ya'ni bu bozorning atigi 6% ni tashkil qiladi (moliyaviy jihatdan)
Umuman olganda, nisbat har xil, chunki oddiy MK ning odatiy narxi
2–5 dollarni tashkil etadi va kompyuter protsessori hech bo'lmaganda kattalikdan yuqori va
ba'zan yuzlab dollarga etadi). Shunday ekan, desak mubolag'a bo'lmaydi
ixtisoslashgan elektronika muhandisi ixtisosligi mikro-
kontrollerlar, kompyuter dasturchisidan kam muhim va kam emas -
tizim muhandisi yoki maxsus ilovalar yaratuvchisi.
Ushbu kitob konstruktsiya va sxema dizaynini o'rganmoqchi bo'lgan o'quvchi uchun mo'ljallangan
AVR MK ning maxsus xususiyatlari va ularning asosiy funktsiyalaridan to'g'ri foydalanishni o'rganing
imkoniyatlar. Shuning uchun muallif o'zini montaj tili bilan cheklaydi (batafsil savolni o'qing
Biz dasturlash muhitini tanlashni ko'rib chiqamiz 5-bob). Kitobdagi urg'u
o'quvchiga amaliy maslahatlar berish, uchun tayyor algoritmlarni tavsiflash
muayyan ishlarni amalga oshirishda ishlab chiquvchilar uchun paydo bo'ladigan odatiy vazifalar
MK funktsiyalari. Muallif o'quvchilar bilan birgalikda bir qator masalalarni batafsil ko'rib chiqadi
ry odatda MK dasturlash qo'llanmalari doirasidan tashqariga chiqadi: keyin bilan ishlash
amaliy interfeyslar, arifmetik amallar, shaxsiy kompyuter bilan interfeys, amaliy
energiya tejash rejimlarini texnik amalga oshirish.
Shu bilan birga, muallif hamma narsani batafsil tahlil qilishni maqsad qilmagan -
STI MK AVR: buning uchun hatto bir nechta jildlar ham etarli bo'lmaydi. Biz aylanib o'tishga majburmiz
JTAG interfeysi yordamida disk raskadrovka va dasturlash kabi masalalar istiqbolli
Siz, kontrollerlarning o'z-o'zini dasturlashini kashf qilgan, faqat tasodifan
Biz ovoz sintezining eng qiziqarli muammosini va PWM rejimlarining boshqa ilovalarini kutmoqdamiz
taymerlar.
Ushbu kitobda ko'pgina misollar minordan foydalanishga qaratilgan
(8 MB xotira sig'imi bilan) Mega kichik oilasining modellari, chunki ular eng ko'p
Ko'p qirrali va keraksiz murakkabliklarsiz keng ko'lamli vazifalar uchun javob beradi
sxema. Oddiyroq holatlarda muallif eng universalga e'tibor qaratdi
yosh ATtiny2313 modellaridan (uning "klassik" versiyaga mosligi haqida
AT90S2313 sm. Bo'lim "Uzilishlar yordamida hisoblagich dastur" bo'limi
siz 5). Berilgan misollarning aksariyati deyarli hech qanday o'zgartirishlarsiz bajarilishi mumkin.
tegishli konfiguratsiyaga ega boshqa AVR modellariga moslashtirilgan
tion.
QISM
Qurilmaning umumiy printsiplari
va Atmel AVR ning ishlashi
1-bob. Atmel AVR mikrokontrolörlarini ko'rib chiqish
2-bob. Umumiy tuzilishi, xotirani tashkil etish,
soat, qayta o'rnatish
3-bob. Periferik qurilmalarga kirish
4-bob. Uzilishlar va quvvatni tejash rejimlari
C H A P T E R
Mikrokontrollerni ko'rib chiqish
Atmel AVR
Atmel AVR - bu ko'p qirrali 8-bitli mikrokonsonlar oilasi.
turli xil o'rnatilgan tashqi qurilmalarga ega umumiy yadroga asoslangan trollerlar
to'dalar. AVR MK ning imkoniyatlari ko'plab tipik muammolarni hal qilishga imkon beradi,
radioelektron uskunalarni ishlab chiquvchilar oldida paydo bo'lgan.
Atmel AVR mikrokontrollerlarining xususiyatlari.
Ishlash tezligi taxminan 1 MIPS/MGts. MIPS (Millionlab ko'rsatmalar boshiga
Ikkinchidan, soniyada million buyruqlar) eng qadimgi va ko'p jihatdan biridir
protsessor ishlashining yomon xarakteristikasi, chunki ko'rsatmalar to'plami
turli protsessorlar uchun har xil va shunga mos ravishda bir xil raqam
turli tizimlar bo'yicha ko'rsatmalar turli xil foydali natijalar beradi. Shunga qaramasdan
ko'rsatmalarni o'z ichiga olmaydi oddiy 8-bit hisoblash tizimlari uchun, operatsion
katta sonlar, suzuvchi nuqtali raqamlar va massivlar bilan ishlash
ma'lumotlar, bu ularning ish faoliyatini taqqoslash uchun yaxshi ko'rsatkichdir. Hisoblash
Bir qator vazifalar bo'yicha AVR ning ishlash yadrosi 16 martadan oshadi
in-line 80286 protsessor.
Kengaytirilgan RISC arxitekturasi. RISC (qisqartirilgan) tushunchasi
Ko'rsatmalar to'plamini hisoblash, qisqartirilgan ko'rsatmalar to'plami bilan hisoblar) afzalroqdir
minimal ixcham va tezkorlikdan iborat buyruqlar to'plamining mavjudligini talab qiladi
ko'rsatmalarni bajarish; shu bilan birga, kabi og'irroq operatsiyalar
suzuvchi nuqta hisoblari yoki ko'p bitli arifmetika
haqiqiy sonlarda u subprogrammalar darajasida amalga oshirilishi kerak. Kontseptsiya
RISC yadro tuzilishini soddalashtiradi (odatiy AVR yadrosi faqat 32 ming birlikni o'z ichiga oladi).
tranzistorlar, o'n millionlab kompyuter protsessorlaridan farqli o'laroq) va tezlashtirilgan
uning ishlashini ko'rsatadi: odatdagi buyruq bir soat siklida bajariladi (buyruqlardan tashqari)
dasturning tarmoqlanishi, xotiraga kirish va boshqalar bilan ishlaydi
uzoq ma'lumotlar). AVR oddiy ikki bosqichli konfiguratsiyaga ega.
Weir, buyruq bir soat siklida bajarilganda, keyingisi olinadi.
Intel arxitekturasidan farqli o'laroq, "klassik" AVR apparat multiplikatoriga ega emas
bo'linish/bo'linish, ammo Mega subfamily ko'paytirish operatsiyalarini o'z ichiga oladi.
Alohida buyruqlar va ma'lumotlar xotira avtobuslari. AVR (boshqalar kabi
mikrokontrollerlar) deb ataladigan narsaga ega. Garvard arxitekturasi, bu erda xotira joylari