1-Amaliyot: Mikrokontrollerlarni dasturlash tartibi avr avr mikrokontroller dasturlash


KIRISH DDRx.y = 1 pin ishlaydi Chiqish



Download 1,08 Mb.
bet7/7
Sana05.05.2023
Hajmi1,08 Mb.
#935502
1   2   3   4   5   6   7
Bog'liq
1-Amaliyot Mikrokontrollerlarni dasturlash tartibi avr avr mikr

KIRISH

  • DDRx.y = 1 pin ishlaydi Chiqish

    PIN chiqish sifatida sozlanganda, biz uni mantiqiy 1 (+5 volt) va mantiqiy 0 (0 volt) ga o'rnatishimiz mumkin. Bu PORTx.y registriga yozish orqali amalga oshiriladi. Keyinchalik kirish-chiqish portlari haqida batafsil muhokama qilinadi. Va endi biz hamma narsani skrinshotda ko'rsatilganidek o'rnatamiz va Fayl->Yaratish, Saqlash va Chiqish-ni bosing. Keyinchalik, CodeWizard bizga loyihani saqlashni taklif qiladi, biz uni saqlaymiz va kodga qaraymiz:
    #o'z ichiga oladi //vaqt kechikishlarini yaratish kutubxonasi void main(void) ( PORTB=0x00; DDRB=0x00; PORTC=0x00; DDRC=0x01; // PC0 oyoq chiqishini PORTD=0x00; DDRD=0x00; // Taymer/Counter 0 ishga tushirish TCCR0=0x00; TCNT0=0x00; // Taymer/Hisoblagich 1 ishga tushirildi TCCR1A=0x00; TCCR1B=0x00; TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1=0x0; OCR1=0H0; OCR1x0=OCR100; OCR1x0; ; OCR1BL=0x00; // Taymer/2 hisoblagichni ishga tushirish ASSR=0x00; TCCR2=0x00; TCNT2=0x00; OCR2=0x00; // Tashqi uzilish(lar)ni ishga tushirish MCUCR=0x00; // Taymer(lar)/hisoblagich(lar) ) Uzilish(lar)ni ishga tushirish TIMSK=0x00; // Analog solishtirgichni ishga tushirish ACSR=0x80; SFIOR=0x00; while (1) ( ); )

    Bu erda hamma narsa siz uchun qo'rqinchli va notanish bo'lib tuyulishi mumkin, lekin aslida hamma narsa unday emas. Biz foydalanmayotgan MK tashqi qurilmalarini ishga tushirishni bekor qilish orqali kodni soddalashtirish mumkin. Soddalashtirilgandan so'ng u quyidagicha ko'rinadi:


    #o'z ichiga oladi //mega8 #include mikrokontrolleri bilan ishlash kutubxonasi //vaqt kechikishlarini yaratish kutubxonasi void main(void) ( DDRC=0x01; /* PC0 oyog'ini 0x01 chiqish yozuvi siz uchun notanish bo'lib ko'rinishi mumkin va bu o'n oltilik tizimdagi 1 raqami, bu qator 0b00000001 ga ekvivalent bo'ladi. binarda, keyin men aynan shunday yozaman. */ while (1) ( ); )

    Hammasi yaxshi. Ammo LED miltillashi uchun biz PC0 oyog'idagi mantiqiy darajani o'zgartirishimiz kerak. Buning uchun asosiy halqaga bir necha qator qo'shing:

    #o'z ichiga oladi //mega8 #include mikrokontrolleri bilan ishlash kutubxonasi //vaqt kechikishlarini yaratish kutubxonasi void main(void) ( DDRC=0x01; /* PC0 oyog'ini 0x01 chiqish yozuvi siz uchun notanish bo'lib ko'rinishi mumkin va bu o'n oltilik tizimdagi 1 raqami, bu qator 0b00000001 ga ekvivalent bo'ladi. binarda, keyin men aynan shunday yozaman.*/ while (1)//asosiy dastur sikli (// asosiy dastur siklining operator qavsi PORTC.0=1 ni ochadi; //Port C 1 ni pinga o'rnating. 0 delay_ms(500); //500 millisekundda kechikish PORTC.0=0; // C 0 portini pin 0 delay_ms(500); // 500 millisekundga kechiktirish );// operator qavsni yoping asosiy dastur tsikli)



    Hammasi, endi kod tayyor. Dasturimizni kompilyatsiya qilish (MK protsessor ko'rsatmalariga tarjima qilish) uchun barcha loyiha fayllarini yaratish belgisini bosing. Loyihamizda joylashgan Exe papkasida olti burchakli kengaytmali fayl paydo bo'lishi kerak, bu bizning MK uchun dasturiy ta'minot faylimiz. Mikrodasturimizni Proteus-dagi virtual mikrokontrollerga o'tkazish uchun siz Proteus-dagi mikrokontroller tasvirini ikki marta bosishingiz kerak. Bunday oyna paydo bo'ladi
    Dastur fayli maydonidagi papka belgisini bosing, o'n oltilik - proshivkamiz faylini tanlang va OK tugmasini bosing. Endi biz sxemamizning simulyatsiyasini ishga tushirishimiz mumkin. Buning uchun Proteus oynasining pastki chap burchagidagi "Play" tugmasini bosing.

    Men bir yoki ikki marta MKni o'rganishni assemblerdan boshlash kerakligini aytdim. Saytdagi butun kurs bunga bag'ishlandi (garchi bu juda izchil bo'lmasa-da, lekin asta-sekin men uni adekvat ko'rinishga aylantiraman). Ha, bu qiyin, natija birinchi kunida bo'lmaydi, lekin siz boshqaruvchida nima sodir bo'layotganini tushunishni o'rganasiz. Siz uning qanday ishlashini bilib olasiz va boshqa odamlarning manbalarini maymun kabi ko'chirmang va nima uchun u to'satdan ishlamay qolganini tushunishga harakat qiling. Bunga qo'shimcha ravishda, C uchun eng noaniq vaqtda pitchfork bilan chiqadigan redneck kodini aralashtirib yuborish ancha oson.
    Afsuski, hamma darhol natijalarni xohlaydi. Shuning uchun men boshqa yo'l bilan borishga qaror qildim - C bo'yicha darslik qilish, lekin uning ichki kiyimini namoyish qilish bilan. Yaxshi o'rnatuvchi dasturchi har doim temir bo'lagini g'ishtdan mahkam ushlab, uning ruxsatsiz bir qadam tashlashiga yo'l qo'ymaydi. Xo'sh, avval C kodi nima bo'ladi, keyin kompilyator nimani tug'dirdi va bularning barchasi haqiqatda qanday ishlaydi :)
    Boshqa tomondan, C ning kuchli tomoni bu kodni ko'chirishdir. Agar, albatta, hamma narsani to'g'ri yozish uchun. Loyihaning turli qismlariga ish algoritmlari va ularning temir tatbiqlarini ajratish. Keyin, algoritmni boshqa MK ga o'tkazish uchun faqat apparatga barcha kirishlar yozilgan interfeys qatlamini qayta yozish va barcha ishchi kodni avvalgidek qoldirish kifoya qiladi. Va, albatta, o'qish qobiliyati. Sish manba kodini bir qarashda tushunish osonroq (garchi .. masalan, men nimani siltashimga ahamiyat bermayman - hech bo'lmaganda si, hech bo'lmaganda asm :)), lekin yana, agar hamma narsa to'g'ri yozilgan bo'lsa. Men ham ushbu fikrlarga e'tibor qarataman.
    Barcha misollarning sher ulushi qo'yiladigan eksperimental temir bo'lagi sifatida mening disk raskadrovka taxtam bo'ladi.
    Download 1,08 Mb.

    Do'stlaringiz bilan baham:
  • 1   2   3   4   5   6   7




    Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
    ma'muriyatiga murojaat qiling

    kiriting | ro'yxatdan o'tish
        Bosh sahifa
    юртда тантана
    Боғда битган
    Бугун юртда
    Эшитганлар жилманглар
    Эшитмадим деманглар
    битган бодомлар
    Yangiariq tumani
    qitish marakazi
    Raqamli texnologiyalar
    ilishida muhokamadan
    tasdiqqa tavsiya
    tavsiya etilgan
    iqtisodiyot kafedrasi
    steiermarkischen landesregierung
    asarlaringizni yuboring
    o'zingizning asarlaringizni
    Iltimos faqat
    faqat o'zingizning
    steierm rkischen
    landesregierung fachabteilung
    rkischen landesregierung
    hamshira loyihasi
    loyihasi mavsum
    faolyatining oqibatlari
    asosiy adabiyotlar
    fakulteti ahborot
    ahborot havfsizligi
    havfsizligi kafedrasi
    fanidan bo’yicha
    fakulteti iqtisodiyot
    boshqaruv fakulteti
    chiqarishda boshqaruv
    ishlab chiqarishda
    iqtisodiyot fakultet
    multiservis tarmoqlari
    fanidan asosiy
    Uzbek fanidan
    mavzulari potok
    asosidagi multiservis
    'aliyyil a'ziym
    billahil 'aliyyil
    illaa billahil
    quvvata illaa
    falah' deganida
    Kompyuter savodxonligi
    bo’yicha mustaqil
    'alal falah'
    Hayya 'alal
    'alas soloh
    Hayya 'alas
    mavsum boyicha


    yuklab olish