Ushbu qo'llanmada biz uchta 7 ta segmentli umumiy katodli displeylardan foydalanamiz. Bizga bir vaqtning o'zida barcha ko'rsatkichlarga ulangan bitta smenali registr kerak



Download 0,83 Mb.
Sana13.06.2022
Hajmi0,83 Mb.
#664057
Bog'liq
Ахборотни светодиодли ва етти сегментли индикаторларга чиқариш, динамик индикация


Ushbu qo'llanmada biz uchta 7 ta segmentli umumiy katodli displeylardan foydalanamiz. Bizga bir vaqtning o'zida barcha ko'rsatkichlarga ulangan bitta smenali registr kerak. Bir vaqtning o'zida bitta indikatorni yoqish uchun biz uchta dala effektli tranzistordan foydalanamiz, ular katodni kerakli vaqtda erga ulaydi. Aytgancha, uchta alohida indikator o'rniga bitta uchta raqamli ko'rsatkichdan foydalanish yaxshiroqdir. Zanjirning mohiyati bundan o'zgarmaydi, lekin simlar kamroq bo'ladi! Sxematik diagramma


Elektron kalit sifatida biz TO92 paketidagi tranzistorlardan foydalanishni tavsiya qilamiz, masalan 2N7000. Har bir tranzistorni ulash uchun sizga ikkita rezistor kerak bo'ladi: 100-150 Ohm va 2,2-10 kOm. Birinchi qarshilik, maydonni yaratish paytida, darvoza oldida paydo bo'ladigan oqim kuchlanishidan nazoratchi chiqishini himoya qilish uchun mo'ljallangan. Ikkinchi rezistor, nazorat moslamasining mos keladigan terminaliga past darajani qo'llaganimizda, kalitni tezda o'chirishga yordam beradi (u orqali eshikning qoldiq zaryadi erga qo'shiladi). Registrdan indikatorgacha bo'lgan har bir satrda indikatordagi LEDlar yonib ketmasligi uchun 200-300 Ohm tokni sozlash rezistori talab qilinadi. Biz LEDlar bilan ishlashning ushbu nuansini ko'rib chiqdik. Biz sxemani diqqat bilan yig'amiz va dasturga o'tamiz. Dinamik ko'rsatish dasturi const bayt digit_pins = (5,6,7); const bayt data_pin = 2; const bayt sh_pin = 4; const bayt st_pin = 3; imzosiz uzun tm, next_flick; const unsigned int to_flick = 1; bayt raqami = 0; imzosiz int hisoblagich = 125; const bayt raqamlari = (B11101110, B10000010, B11011100, B11010110, B10110010, B01110110, B01111110, B11000010, B11111110, B11110110); void fill (bayt d) (for (char i = 0; i <8; i ++) {digitalWrite (sh_pin, LOW); digitalWrite (data_pin, raqamlar [d] & (1 Dinamik displeyli hisoblagich dasturi Oldingi misolda o'zgarmaydigan 125 raqamiga qarshi o'rnatdi. Endi dasturga soniya hisoblagichini qo'shishga harakat qilaylik, shunda hisoblagich har soniyada 999 taga ko'payadi. Const bayt digit_pins = (5,6 , 7); const bayt data_pin = 2; const bayt sh_pin = 4; const bayt st_pin = 3; imzosiz uzun tm, next_sec, next_flick; const unsigned int to_sec = 1000; const unsigned int to_flick = 1; imzosiz int taymer = 0; bayt raqami = 0; const bayt raqamlari = (B11101110, B10000010, B11011100, B11010110, B10110010, B01110110, B01111110, B11000010, B11111110, B11110110); void fill (bayt d) (for (char i = 0; i <8; i ++) {digitalWrite (sh_pin, LOW); digitalWrite (data_pin, raqamlar [d] & (1 keyingi_flick) (keyingi_flick = tm +to_flick; raqam ++; agar (raqam == 3) raqam = 0; setDigit (raqam, hisoblagich);)) Dasturni Arduino -ga yuklang va hisoblagichni kuzating!
Vazifalar
Raqamli sekundomer. Diagrammani uch xonali ko'rsatkich bilan yig'ing. Sxemaga qo'shing. Tugmani bosganingizda, soniya hisoblagichi hisoblashni boshlashi kerak. Qayta bosilganda to'xtating. Bundan tashqari, sekundomerga kasrli qism qo'shilishi mumkin, u uchinchi ko'rsatkichda nuqta orqali ko'rsatiladi.
0 dan 10 voltgacha bo'lgan kuchlanish uchun raqamli voltmetr. Diagrammani uch xonali ko'rsatkich bilan yig'ing. Arduino analog kirishiga ulangan kontaktlarning zanglashiga 10 kΩ ikkita rezistorli kuchlanish bo'luvchi qo'shing. Har 100 msda analog kirishda qiymat o'qiladigan, uni voltga aylantiradigan va indikatorda ko'rsatadigan dastur yozing. Kesirli qismni to'g'ri ko'rsatish uchun sakkizinchi segmentni - nuqtani ulash lozim.
Xulosa
Aslida, dinamik ko'rsatkich unchalik qiyin emas. Bizning ro'yxatga olingan eski sxemamizga faqat uchta tranzistor qo'shildi, ular tushunarli mantiq bilan boshqariladi. Keyingi darslarda biz LED matritsasini boshqarish uchun dinamik ko'rsatkichlardan foydalanishga harakat qilamiz, shuningdek, bizning dasturimizni ancha soddalashtiradigan maxsus mikrosxemalar bilan ishlashni o'rganamiz.
Batareya bilan ishlaydigan uskunalar uchun LCD indikatorlaridan foydalanish, qoida tariqasida, yorug'lik chiqaruvchi diodli (LED) indikatorlarga qaraganda afzalroq hisoblanadi, chunki ularning yuqori sarflanishi. Bu postulat menga quyidagi sabablarga ko'ra unchalik ravshan emasdek tuyuladi: 1) zamonaviy LCD-indikatorlarda 100 mAgacha bo'lgan orqa yorug'lik bor; 2) ular nisbatan mo'rt va quyoshning to'g'ridan -to'g'ri nurlaridan qo'rqishadi; 3) zamonaviy LED ko'rsatkichlari (ayniqsa, superRED va ultraRED), agar ular orqali 1 mA tok bo'lsa ham, etarli darajada yorqinlikka ega va yorug'lik sharoitiga qarab, operatsion nashrida nazorat qilish bilan 4 xonali indikatorning o'rtacha iste'mol oqimi 30 mA dan oshmaydi. hatto ochiq havoda ham, bu LCD orqa nuri sarflanishidan kam.
Tarmoqda dinamik ko'rsatgichli zanjirlar ko'pligiga qaramay, men PIC16da dasturiy ta'minotning yorqinligini boshqaruvchi sxemani ko'rmadim. Ushbu maqola mening bunday vazifani amalga oshirish haqidagi kamtarona nuqtai nazarimni ko'rsatadi. U asosan radio havaskorlari uchun dizaynni takrorlashdan o'z-o'zini dasturlash mikrokontrollerigacha birinchi qadamlarni qo'yishga mo'ljallangan.
Maqolada TMR0 va TMR2 taymerlarining uzilishlari yordamida o'rtacha oiladagi PIC mikrokontrollerining LED matritsasini boshqarish usuli muhokama qilinadi. TMR2 taymeri PWM yoqilgan segmentlar orqali o'rtacha oqimni boshqarish uchun ishlatiladi. Ishni tashkil qilish algoritmi quyidagicha:
1. Boshlanish. Biz mikrokontroller portlarini indikatorli ulanish sxemasiga muvofiq sozlaymiz. Taymerlar 1 va 2 ichki soat o'lchagichi 16 ta oldindan hisoblagich bilan jihozlangan. Periferik uzilishlarga ruxsat beriladi.
2. Biz indikatorda raqamlar va ba'zi (asosan lotin) harflari va belgilarini ko'rsatish uchun jadval xarakterli generator yaratamiz.
3. Biz ikkita to'rt xonali o'zgaruvchini zaxiralab qo'yamiz. Birida biz 2 -banddagi jadvalga muvofiq ko'rsatish uchun zarur bo'lgan raqamli kodni (raqamlar uchun - faqat raqam) ketma -ket kiritamiz. ko'rsatkich.
4. TMR0 dan uzilishda belgi raqamlari jadvalga muvofiq ketma -ket ko'rsatiladi. Raqamlarni o'zgartirishdan oldin indikator o'chadi. Har bir uzilishda bitta bit ajratilgan. Shundan so'ng, TMR2 taymeri tiklanadi, TMR2 uzilish bayrog'i tozalanadi va undan uzilishlar yoqiladi.
5. TMR2 dan uzilishda indikator o'chadi va TMR2 dan uzilish taqiqlanadi.
6. Asosiy dasturda X (n + 1) = 2 * X formulasidan foydalanib, PR2 registriga 7 dan 255 gacha o'nli raqamlarni kiritish orqali TMR2 dan uzilish davri va shuning uchun indikatorning yoqish vaqti moslashtiriladi. (n) +1. Ma'lum bo'lishicha, yorug'likning oltita gradatsiyasi, ular orasidagi farq 2 marta. PR2 = 255 bilan, maksimal vaqt (4ms dan 4ms), PR2 = 7 bilan, davomiyligi taxminan 0,25ms.
Bu nazorat tamoyilini namoyish qilish uchun quyida arzon PIC16F628A diagrammasi va Assembler -dagi sinov dasturi ko'rsatilgan bo'lib, u indikatorda "test" so'zini aks ettiradi. Tugmani bosganingizda indikator yorqinlikni yoqadi (odatda 0 dan 5 gacha raqamlarda). Keyingi bosish bilan yorqinlik aylanada o'zgaradi va bu darhol indikatorda ko'rinadi. Men darhol yangi boshlanuvchilarni ogohlantirmoqchiman: zanjirni Proteus kabi simulyatorda modellashtirish sizga ushbu dasturning o'ziga xos xususiyatlari tufayli yorug'likning o'zgarishini ko'rishga imkon bermaydi (Proteus). Sinov va tajribalar uchun sxemaning sxemasi qo'shimcha qurilmalarda yig'ilishi kerak bo'ladi. Biroq, dinamik indikatsiyaning haqiqiy tashkil etilishini kuzatish uchun (yorqinligini o'zgartirishdan tashqari) Proteus modeli biriktirilgan.
Minimal nashrida sxemaning iste'moli 4 mA dan kam, maksimal nashrida - taxminan 80 mA.

Arxivda Assembler MPASMda test dasturi mavjud.


Zanjirni soddalashtirish va har xil harakatlar uchun "oyoqlarni" bo'shatish uchun ichki generatorli konfiguratsiya va ichki reset qo'llaniladi. Shu bilan birga, Uppdan oldin MCLR signalini etkazib bera olmaydigan uy dasturchisidan foydalanadiganlar keyingi tekshirish, o'qish va o'chirish bilan bog'liq muammolarga duch kelishi mumkin. O'z dasturchisiga ishonmaydiganlar uchun, shuningdek, agar osilatorning yuqori barqarorligi talab qilinsa, siz "OSC_XT" konfiguratsiyasida tanlovi bo'lgan 4 MGtsli kristalni odatdagi sxema bo'yicha o'rnatishingiz mumkin. Agar yakuniy sxemada INT0 (RB0) pinidan uzilishlar kerak bo'lsa, vergulni RA4 pin orqali boshqarish mumkin; OA bilan indikator uchun indikator ochiq bo'lishiga qaramay, to'g'ridan -to'g'ri shu pinga ulanadi. Bo'shatilgan RB0 pinidan maqsadga muvofiq foydalanish mumkin. Dasturda TMR0 uzilishida, bu holda kod "movwf PORTB" dan keyin qo'shiladi:
Andlw b "00000001" bsf PORTA, 4 btfsc STATUS, Z vergulini o'chiring, biz Wda teskari qiymat ekanligini hisobga olamiz. bcf PORTA, 4 - 0 -bit = 0 bo'lsa, engil vergul
Dastur uchun kichik tushuntirishlar:
Chiqarilgan raqam bitga muvofiq OUT_ - OUT + 3 o'zgaruvchilariga joylashtiriladi va undan konvertatsiya qilinganidan keyin out__ kichik dasturiga OUT_LED ga joylashtiriladi. Albatta, OUT_ o'zgaruvchisiz qilish mumkin va chiqish uchun hamma joyga yozish mumkin:
Movlw X Table_s movwf OUT_LED ni chaqiradi
Ammo, asl ko'rinishida, hamma narsa ancha sodda va tushunarli (men uni OUT_ ga qo'yib, unutganman), shuningdek, dasturning turli joylaridan bir nechta chiqish bilan, kodni tejashga erishiladi (1 chiqish uchun 4 so'z) - I qo'shimcha 4 bayt RAM uchun yaxshi kompensatsiya o'ylab ko'ring.
Xuddi shu narsa comma_ o'zgaruvchisi orqali vergul chiqishi uchun ham amal qiladi.
Table_s jadval dasturida, u 256 baytli bloklar kesishmasida cheklovlarsiz, dastur xotirasining istalgan joyiga joylashtirilganda, to'g'ri ishlashi uchun choralar ko'rilgan.
TMR0 uzilishidagi pause_ o'zgaruvchisi 4ms vaqt oralig'ini o'rnatish uchun ishlatiladi.
Qolganlari, menimcha, algoritm va sharhlardan aniq.
P.S. Dasturda 2 yoki 3 ta raqam uchun minimal o'zgarishlar talab qilinadi, menimcha, hatto yangi boshlanuvchilar uchun ham. Raqamlar soni 5 dan 8 gacha bo'lgan indikatorni boshqarish uchun ko'p sonli chiqadigan kontrollerdan foydalanish yoki raqamlarni boshqarish uchun 3 dan 8 gacha dekoderdan foydalanish kerak.
Birinchi holda, dasturdagi o'zgarishlar ham minimal (A porti o'rniga boshqa portdan foydalanish va boshqalar). Agar dekoder ishlatilsa, TMR0 dan uzilish dasturi jiddiy o'zgaradi.

Portc = & B00000100 
Select Case N2 
Case 0: Portd = & B11000000 
Case 1: Portd = & B11111001 
Case 2: Portd = & B10100100 
Case 3: Portd = & B10110000 
Case 4: Portd = & B10011001 
Case 5: Portd = & B10010010 
Case 6: Portd = & B10000010 
Case 7: Portd = & B11111000 
Case 8: Portd = & B10000000 
Case 9: Portd = & B10010000 
End Select
Waitms 5
Portc = & B00000010
Select Case N3 
Case 0: Portd = & B11000000 
Case 1: Portd = & B11111001 
Case 2: Portd = & B10100100 
Case 3: Portd = & B10110000 
Case 4: Portd = & B10011001 
Case 5: Portd = & B10010010 
Case 6: Portd = & B10000010 
Case 7: Portd = & B11111000 
Case 8: Portd = & B10000000 
Case 9: Portd = & B10010000 
End Select
Waitms 5
Portc = & B00000001
Select Case N4 
Case 0: Portd = & B11000000 
Case 1: Portd = & B11111001 
Case 2: Portd = & B10100100 
Case 3: Portd = & B10110000 
Case 4: Portd = & B10011001 
Case 5: Portd = & B10010010 
Case 6: Portd = & B10000010 
Case 7: Portd = & B11111000 
Case 8: Portd = & B10000000 
Case 9: Portd = & B10010000 
End Select
Download 0,83 Mb.

Do'stlaringiz bilan baham:




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