Mundarija:

Kichkina LED matritsali displey soati: 8 qadam
Kichkina LED matritsali displey soati: 8 qadam

Video: Kichkina LED matritsali displey soati: 8 qadam

Video: Kichkina LED matritsali displey soati: 8 qadam
Video: MATTEO MONTESI e 11 SETTEMBRE parlandone in una nuova live streaming 2024, Iyul
Anonim
Image
Image
Kichkina LED matritsali displeyli soat
Kichkina LED matritsali displeyli soat
Kichkina LED matritsali displeyli soat
Kichkina LED matritsali displeyli soat
Kichkina LED matritsali displeyli soat
Kichkina LED matritsali displeyli soat

Men har doim 90-yillardagi filmlarnikiga o'xshash, juda kamtarona funksionallikka ega bo'lgan, eskirgan ish stoli soatiga ega bo'lishni xohlardim: real vaqtda soat, sana, fonni o'zgartirish, signal signallari va budilnik. Shunday qilib, men bir fikrni yaratdim: men yuqorida aytib o'tgan barcha xususiyatlarga ega mikrokontrollerga asoslangan va USB orqali quvvatlanadigan - kompyuter yoki har qanday mobil USB zaryadlovchi. Men uni dasturlashtiriladigan qilib qo'yishni xohlaganim uchun, menyu va sozlamalarni sozlash bilan, MCU -ni joylashtirish bu loyihada muqarrar edi. ATMEGA328P IC (Arduino Uno -ning har bir platasidan iborat) sxemaning "miyasi" sifatida tanlangan (bu haqda gapirganda, menda ularning ko'pi bor edi). Ba'zi elektron qismlarni RGB LED, zaryadlash vaqtini o'lchash chipi va tugmachalari sifatida birlashtirish butun loyihaning tug'ilishiga imkon berdi-dasturlashtiriladigan kichik o'lchamli LED displeyli ish stoli.

Shunday qilib, biz loyihaning mohiyatini o'rganib chiqqandan so'ng, uni quraylik

1 -qadam: Fikr

Fikr
Fikr

Yuqorida aytib o'tilganidek, bizning qurilmamizda LED matritsali yaxshi ko'rinadigan displeylar, rang o'zgaruvchan RGB LED yoritgichi, vaqtni tejaydigan chip, qulay USB quvvat manbai va kichik o'lchamli korpus mavjud.

Keling, qurilmaning ishlash blok -sxemasini qismlarga ajratib tasvirlaymiz:

1. Quvvat manbai:

Qurilma 5 voltli shaharda ishlagani uchun quvvat manbai ikkita alohida sxemadan iborat:

  • Micro -USB kirish - to'g'ridan -to'g'ri zaryadlovchi / kompyuter quvvat manbai uchun.
  • LM7805 IC ga asoslangan 5V chiziqli kuchlanish regulyatori davri.

LM7805 IC sxemasi ixtiyoriy, agar siz turli xil quvvat manbalarini kiritish imkoniyatini qo'llamasangiz. Qurilmamizda Micro-USB PSU ishlatiladi.

2. Mikrokontroller birligi:

ATMEGA328P mikrokontroller butun qurilmaning "miyasi" vazifasini bajaradi. Uning maqsadi barcha periferik sxemalar bilan aloqa o'rnatish, kerakli ma'lumotlarni etkazib berish va qurilmaning foydalanuvchi interfeysini boshqarishdir. Tanlangan mikrokontroller ATMEGA328P bo'lgani uchun bizga Atmel Studio va C haqidagi asosiy bilimlar kerak bo'ladi (sxemalar va dasturlash ketma -ketligi keyingi bosqichlarda tasvirlangan).

3. Haqiqiy vaqt soati:

Qurilmadagi ikkinchi muhim davr. Uning maqsadi-sana va vaqt ma'lumotlarini saqlash sharti bilan, kirish quvvatiga bog'liq bo'lmagan holda taqdim etish, ya'ni vaqt haqidagi ma'lumotlar real vaqt rejimida yangilanadi. RTC komponentining vaqt / sana ma'lumotlarini o'zgartirishni davom ettirishini ta'minlash uchun, kontaktlarning zanglashiga 3V tanga batareyasi qo'shiladi. IC DS1302 bo'lib, uning ishlashi keyingi bosqichlarda tasvirlangan.

4. Kirish interfeysi - tugmachali tugmalar:

Kirish PB kalitlari foydalanuvchi uchun kirish interfeysini ta'minlaydi. Ushbu kalitlar MCU va boshqaruv moslamalari uchun mo'ljallangan dasturda qayta ishlanadi.

5. LED matritsali displey

Qurilma displeyi ikkita IC o'ralgan HCMS-2902 alfasayısal LED matritsasidan iborat, har bir ICda 5x7 o'lchamli kichik LED matritsali 4 ta belgi mavjud. Bu displeylardan foydalanish oson, 3-simli aloqa qo'llab-quvvatlanadi va kichik o'lchamli-bu loyihada bizga kerak bo'lgan hamma narsa.

6. RGB orqa nuri:

Rangni o'zgartiruvchi orqa yorug'lik tashqi RGB LED -ga asoslangan bo'lib, MCU -dan keladigan PWM signallari bilan boshqariladi. Ushbu loyihada RGB LED -ning jami 4 ta pimi bor: R, G, B va umumiy, bu erda R, G, B ranglar palitrasi MCU tomonidan PWM orqali boshqariladi.

7. Buzzer:

Ovozli signal sifatida buzzer sxemasi, asosan signal berish uchun ishlatiladi. BJT tugmasi ovozli signal komponentiga etarlicha oqim berish uchun ishlatiladi, shuning uchun uning ovozi tirik odamni uyg'otadigan darajada baland bo'ladi.

2 -qadam: qismlar va asboblar

Qismlar va asboblar
Qismlar va asboblar

I. Elektronika:

A. Birlashtirilgan va faol komponentlar:

  • 1 x ATMEGA328P - MCU
  • 2 x HCMS2902 - AVAGO displeylari
  • 1 x DS1302 - RTC
  • 1 x 2N2222A - BJT (NPN)

B. Passiv komponentlar:

  • Rezistorlar:

    • 5 x 10K
    • 1 x 180R
    • 2 x 100R
  • Kondensatorlar:

    • 3 x 0,1 dyuym
    • 1 x 0,47 dyuym
    • 1 x 100 uF
    • 2 x 22 pF
  • 1 x 4-pinli RGB LED
  • 1 x Buzzer
  • 1 x 32.768 kHz kristalli

C. Ulagichlar:

  • 1 x Micro-USB ulagichi
  • 2 x 6-pinli standart qadam (100 mil) ulagich.
  • 2 x 4-pinli standart qadam (100 mil) ulagich.
  • 1 x tanga batareyali korpus.

D. Har xil:

  • 3 x SPST tugmachalari
  • 1 x 3V tanga batareyasi.

E. ixtiyoriy PSU:

  • 1 x LM7805 - chiziqli regulyator
  • 2 x 0,1 dyuymli qopqoq
  • Qopqoq hajmi 2x100uF

II. Mexanik:

  • 1 x plastik korpus
  • 4 x rezina qo'shimchalar
  • 1 x prototipli lehim taxtasi
  • 1 x MCU sarlavhasi (mikrokontroller ishlamay qolganda)
  • 2 x 8 mm kichik murvat
  • 2 x 8 mm kir yuvish mashinalari

III. Asboblar va materiallar:

  • Lehimlash simlari
  • Quvurlar qisqarishi
  • Lehimlaydigan kalay
  • Lehimlash temir
  • To'sar
  • Plier
  • Cımbızlar
  • Matkap uchlari
  • Kichik o'lchamli fayl
  • Har xil tornavidalar
  • Kaliper
  • Multimetr
  • Non paneli (ixtiyoriy)
  • Micro USB kabeli
  • O'rta kattalikdagi fayl
  • Issiq yopishtiruvchi qurol
  • AVR ISP dasturchisi

IV. Dasturlash:

  • Atmel Studio 6.3 yoki 7.0.
  • ProgISP yoki AVRDude
  • Microsoft Excel (displey belgilarini yaratish uchun)

3 -qadam: sxemaning tavsifi

Sxemalar tavsifi
Sxemalar tavsifi

O'chirish jarayonini tushunishni osonlashtirish uchun sxemalar bosqichi ettita kichik guruhga bo'linadi. Shuni e'tiborga olish kerakki, tarmoq nomlari sxematik sahifada aniqlangan, shuningdek, qurilmaning alohida kichik sxemalari orasidagi aloqalarni belgilaydi.

A. Asosiy komponentlar kengashi:

Yuqorida aytib o'tilganidek, biz "ichkarida" bo'lishni xohlaydigan barcha mos keladigan kichik sxemalar bitta kesilgan prototip taxtasida joylashtirilgan. Asosiy taxtali joylashtirilgan sxemalarning ishlashini tushuntirishga o'tamiz:

1. Mikrokontroller davri:

Ushbu loyihada ishlatiladigan MCU ATMEGA328P. U tashqi 5V quvvat manbai bilan ishlaydi, bu holda - micro USB ulagichi. Barcha tegishli kirish -chiqish pinlari dizayn talablariga muvofiq ulanadi. Portlarni kiritish -chiqarish xaritasini tushunish oson, chunki barcha tarmoq nomlari dasturlash bosqichida qanday ishlatilgan bo'lsa, aniqlanadi. MCU -da RCni qayta tiklashning oddiy sxemasi mavjud, u dasturlash ketma -ketligida va quvvatni ishga tushirishda ishlatiladi.

MCUning hal qiluvchi qismi bu dasturlash sxemasi. 6 -pinli dasturlash ulagichi - J5, VCC, GND va RESET tarmoqlari tashqi ISP dasturchisi va asosiy komponentlar platasi uchun umumiy ekanligiga ishonch hosil qiling.

2. Haqiqiy vaqtda soat sxemasi:

Keyingi sxema loyihaning asosiy periferik qismidir. DS1302 - bu zaryadlash vaqtini aniqlaydigan IC, bu ishlov berish birligimizga qayta ishlangan vaqt va sana qiymatlarini beradi. DS1302 MCU bilan 3 simli SPI aloqasiga o'xshash 3 simli interfeys orqali quyidagi yo'nalishlarda aloqa o'rnatadi:

  • RTC_SCK (Chiqish): SDO liniyasida uzatilayotgan ma'lumotlarni haydash va namuna olishni amalga oshiradi.
  • RTC_SDO (kirish -chiqish): ma'lumotlarni uzatish liniyasi. Vaqt/sana ma'lumotlari qabul qilinayotganda MCUga kirish vazifasini bajaradi va ma'lumotlar uzatilganda chiqish (qo'shimcha tushuntirish uchun "Programming Essentials" bo'limiga qarang).
  • RTC_CE: (Chiqish): Ma'lumot uzatishni yoqish liniyasi. MCU tomonidan "HIGH" o'rnatilganda, ma'lumotlar uzatishga/qabul qilishga tayyor bo'ladi.

DS1302 mos keladigan elektron xatti -harakati uchun tashqi 32.768KHz kristalli osilatorni talab qiladi. Elektron hisoblash tizimida katta siljishlarning oldini olish uchun (bunday turdagi integral mikrosxemalarda drift hodisalari muqarrar), har bir billur pinga ikkita kalibrlovchi kondansatkichni joylashtirish kerak (sxemada X1, C8 va C9 qismlarga qarang). 22pF bu loyihada vaqtni o'lchash bo'yicha ko'plab tajribalardan so'ng optimal qiymat edi, shuning uchun siz sxemani butunlay lehimlamoqchi bo'lganingizda, bu kondansatkichlarni boshqa qiymatlarga almashtirish imkoniyati mavjudligiga ishonch hosil qiling. Ammo kichik o'lchamli taxta uchun 22pF juda kichik driftda juda yaxshi ishladi (oyiga 7 soniya).

Bu sxemaning oxirgi, lekin eng kam bo'lmagan komponenti-3V tanga batareyali batareyani DS1302 IC ga etarlicha energiya etkazib berish uchun taxtaga qo'yish kerak, shunda u vaqtni hisoblash ishini davom ettiradi.

4. 8 ta belgidan iborat LED matritsasi:

Qurilma displeyi RX sxemasining DS1302-ga o'xshash 3 simli interfeys orqali dasturlashtirilgan 2 x 4 belgili LED Matrix displeyli IC-larga asoslangan bo'lib, ular bir-biridan farqli o'laroq, ma'lumotlarni uzatish liniyasi (SDI) MCU chiqishi sifatida aniqlanadi. displey zanjirining holatini tekshirish qobiliyati). Displeylar ketma-ket 3 simli kengaytmada birlashtirilgan, shuning uchun ikkala IC ham bitta displey qurilmasi vazifasini bajaradi, bu erda uni displey belgilarining barcha ta'riflari uchun dasturlash imkoniyati mavjud (SPI seriyali kombinatsiyasiga qarang). O'chirishning barcha aniq nomlari MCU mos keladigan ulanishlarga mos keladi - shuni ta'kidlash kerakki, displeylar o'rtasida aloqa o'rnatadigan umumiy tarmoqlar mavjud va ikkala displey kommunikatsion interfeysini MCUga ulashning hojati yo'q. Dasturlash va belgi tuzish ketma -ketligi keyingi bosqichlarda aniqlanadi.5. Foydalanuvchi interfeysi sxemasi:

Foydalanuvchi interfeysi ikkita kichik guruhga bo'linadi-Kirish va chiqish tizimlari: Kirish tizimi: Qurilmaning o'zi foydalanuvchi tomonidan berilgan, yuqori aniqlikdagi yoki past darajadagi mantiqni boshqarish uchun qo'shimcha tortish qarshiligi bo'lgan uchta SPST tugmachali kalit sifatida belgilangan. MCU. Bu kalitlar butun dasturlashtirilgan algoritmni boshqarish tizimini ta'minlaydi, chunki vaqt/sana qiymatlarini, menyuni boshqarishni va boshqalarni sozlash zarur.

6. Chiqish tizimi:

A. Buzzer sxemasi har ikki holatda ham ovoz chiqarishni ta'minlaydi, menyu almashish ovoz va signal algoritmini tan oladi. NPN tranzistori signal sifatida ishlatiladi, bu signalni etarli darajada oqim bilan ta'minlaydi, bu esa uni kerakli zichlikda chiqaradi. Buzzer to'g'ridan -to'g'ri MCU dasturiy ta'minoti tomonidan boshqariladi. RGB LED qurilmaning orqa nuri sifatida ishlatiladi. U to'g'ridan -to'g'ri MCU tomonidan boshqariladi, orqa nuri tanlash uchun to'rtta variant mavjud: QIZIL, Yashil, Ko'k, PWM yoki O'chirish rejimlari. E'tibor bering, LED R, G va B pinlariga ketma -ket ulangan rezistorlar har xil qiymatlarga ega, chunki har bir rang doimiy oqimda har xil intensivlikka ega. Yashil va ko'k LEDlar uchun xuddi shu xususiyatlar mavjud, agar qizil rang biroz qizg'in bo'lsa. Shunday qilib, qizil LED katta qarshilik qiymatiga ulanadi - bu holatda: 180 Ohm (RGB LED tushuntirishiga qarang).7. Ulagichlar:

Tashqi interfeys komponentlari o'rtasida aloqani ta'minlash uchun ulagichlar asosiy taxtaga joylashtirilgan: displey, RGB LED, quvvat kiritish va tugmachali kalitlar va asosiy karta. Har bir ulagich har xil kontaktlarning zanglashiga mo'ljallangan, shuning uchun qurilmani yig'ish murakkabligi keskin kamayadi. Sxemalarda ko'rib turganingizdek, har bir ulagich tarmog'i ixtiyoriy bo'lib, agar u simlarni ulash jarayonini ancha soddalashtirsa. Barcha sxematik tushunchalarni o'rganib chiqqandan so'ng, keyingi bosqichga o'tamiz.

4 -qadam: Lehimlash

Lehimlash
Lehimlash
Lehimlash
Lehimlash
Lehimlash
Lehimlash

Ehtimol, ba'zilarimiz uchun bu butun loyihadagi eng qiyin qadamdir. Qurilmani iloji boricha tezroq ishlashini osonlashtirish uchun lehimlash jarayoni quyidagi ketma -ketlikda bajarilishi kerak:

1. MCU va dasturlash ulagichi: ishlamay qolganda MCU IC ni almashtirish uchun MCU o'rniga 28 pinli sarlavhani lehimlash tavsiya etiladi. Qurilmaning dasturlashtirilgan va yoqilganligiga ishonch hosil qiling. Pin tavsifi stikerini dasturlash ulagichiga joylashtirish tavsiya etiladi (Uchinchi rasmga qarang).

2. RTC sxemasi: barcha kerakli qismlarni lehimlagandan so'ng, kalibrlash kondansatkichlarini almashtirish osonligiga ishonch hosil qiling. Agar siz 3V tanga batareyali korpusdan foydalanmoqchi bo'lsangiz - uning qurilma korpusining o'lchamiga mos kelishiga ishonch hosil qiling.

3. Displey: Alohida kichik o'lchamli taxtada ikkita displeyli ICni lehimlash kerak (1-rasm). Barcha kerakli tarmoqlarni lehimlagandan so'ng, bortdan tashqari simlarni tayyorlash kerak bo'ladi (4-rasm): bu simlar lehimlanishi va displey taxtasining yon tomonida o'tkazilishi kerak, e'tibor bering, simlarga qo'llaniladigan kuchlanish va mexanik kuchlanish bo'lmaydi. displey taxtasida lehim birikmalariga ta'sir qiladi.

4. Oldingi bosqichdagi simlarga yorliqli stikerlarni qo'yish kerak, bu keyingi bosqichda montaj jarayonini ancha osonlashtiradi. Ixtiyoriy qadam: har bir simga erkak bitta pinli ulagich qo'shing (Arduino uslubi).

5. Asosiy platadagi lehimning qolgan ulagichlari, shu jumladan periferik komponentlar. Yana bir bor, har bir ulagich uchun pin tavsifi bo'lgan stikerlarni joylashtirish tavsiya etiladi.

6. Buzzer sxemasi: buzzer qurilma ichida joylashgan, shuning uchun uni asosiy taxtada lehimlash kerak, bir -biriga ulanadigan ulagichga ehtiyoj yo'q.

7. RGB LED: Asosiy taxtadagi bo'sh joyni tejash uchun men har bir rezistor o'ziga mos rangga va mos keladigan MCU piniga mos keladigan LED pinlaridagi ketma -ket rezistorlarni lehimladim (5 -rasm).

5 -qadam: yig'ish

Yig'ish
Yig'ish
Yig'ish
Yig'ish
Yig'ish
Yig'ish

Bu qadam loyihaning ko'rinishini - elektr va mexanikani belgilaydi. Agar tavsiya etilgan barcha eslatmalar inobatga olingan bo'lsa, montaj jarayonini bajarish juda oson bo'ladi. Quyidagi bosqichma-bosqich ketma-ketlik jarayon haqida to'liq ma'lumot beradi:

A qism: Qoplama

1. Tugma tugmachasining diametriga ko'ra (bu holda 3 mm) uchta teshik oching. Qo'riqxonaning yon tomonida bitta signal uchun teshik oching. 3. Har qanday kerakli matkap diametridan foydalanish mumkin. Siz ishlatishingiz kerak bo'lgan USB ulagichiga qarab silliqlash uchun asos sifatida kichik teshikni burg'ulang (bu holda Micro USB). Shundan so'ng, ulagich o'lchamlariga mos keladigan kichik o'lchamli fayl bilan silliqlashni bajaring.4. Silliqlash uchun asos sifatida nisbatan katta teshik qazing. O'rtacha o'lchamdagi fayl bilan silliqlashni ekran o'lchamlariga muvofiq bajaring. Muhofazaning tashqi tomonida displey IClari mavjudligiga ishonch hosil qiling. Qurilmaning pastki qismida RGB LED diametriga mos keladigan o'rta o'lchamli teshikni burang. B qismi - Qo'shimchalar:

1. Uchta tugmachaning har biriga ikkita simni lehimlang (GND va signal). Yorliq stikerlari va simlarda bitta pinli ulagichlar tavsiya etiladi.2. Tayyorlangan to'rtta simni RGB LED pinlariga ulang. Yorliq stikerlari va qisqaruvchi naychalarni lehim bo'g'inlariga joylashtiring.3. Qurilmaning pastki qismidagi to'rtta rezina oyoqni mahkamlang. C qismi - qismlarni ulash:

1. RGB LEDini korpusning pastki qismiga joylashtiring, uni asosiy kartadagi maxsus ulagichga ulang. Uni issiq elim bilan mahkamlang.2. Uchta tugmachali kalitni joylashtiring, ularni asosiy kartadagi maxsus ulagichga ulang va ularni issiq elim bilan mahkamlang. USB ulagichini joylashtiring, uni dasturiy ulagichning quvvat manbaiga ulang (VCC va GND). Quvvat liniyalarining qutblanishi lehimli qismlarga mos kelishiga ishonch hosil qiling. Uni issiq elim bilan yopishtiring.4. Displey taxtasini joylashtiring, uni maxsus ulagichga ulang. Uni issiq elim bilan mahkamlang.

1. Bolt-gayka juftlarini asosiy taxta-korpus va yuqori qopqog'iga qo'shish tavsiya etiladi (Bu holatda ko'rsatilganidek).2. Simlarning uzilishi buzilmasligi uchun, ularni tashqi ko'rinishi bilan muhofaza ichiga joylashtiring.

6 -qadam: Dasturlash haqida qisqacha ma'lumot

Qisqa dasturlash kirish
Qisqa dasturlash kirish
Qisqa dasturlash kirish
Qisqa dasturlash kirish
Qisqa dasturlash kirish
Qisqa dasturlash kirish

Barcha qismlar lehimlangandan so'ng, yakuniy yig'ish bosqichiga o'tishdan oldin, qurilmaning dastlabki sinovini o'tkazish tavsiya etiladi, MCU kodi C bilan yozilgan va ATMEGA328P har qanday ISP dasturchisi orqali dasturlashtirilgan (Atmel dasturlash qurilmalarining har xil turlari mavjud: AVR MKII), AVR DRAGON va boshqalar - Men eBay -dan ProgISP yoki AVRDude dasturi tomonidan boshqariladigan arzon USB -provayder dasturidan foydalandim). Dasturlash muhiti Atmel Studio 4 va undan yuqori bo'lishi kerak (men dasturiy ta'minotning eng yangi versiyalarini tavsiya qilaman). Agar tashqi, Atmel Studioga xos bo'lmagan dasturchi ishlatilsa, dasturiy ta'minotga.hex fayl yo'lini berish kerak bo'ladi (odatda loyihaning Debug yoki Release papkasida joylashgan). O'rnatish bosqichiga o'tishdan oldin, qurilmani dasturlash mumkin va har qanday asosiy AVR loyihasini tuzish va kompilyatsiya qilish jarayoni ATMEGA328P mikrokontrolleriga asoslanganligiga ishonch hosil qiling (Atmel Studio qo'llanmasiga qarang).

7 -qadam: Kod tavsifi

Kod tavsifi
Kod tavsifi
Kod tavsifi
Kod tavsifi

Decice kodining algoritmi ikkita yarim alohida qatlamga bo'linadi: 1. Yadro qatlami: periferik sxemalar bilan aloqa, qurilma operatsiyalarini aniqlash, ishga tushirish va komponentlar deklaratsiyalari. Interfeys qatlami: foydalanuvchi-qurilma o'zaro ta'siri, menyu funktsiyasi, soat/signal/rang/signalni sozlash. Dastur ketma-ketligi rasmda tasvirlangan. 1, bu erda har bir blok MCU holatiga mos keladi. Ta'riflangan dastur apparat va tashqi dunyo o'rtasida interfeysni ta'minlaydigan asosiy "operatsion tizim" vazifasini bajaradi. Quyidagi tushuntirishda dasturning asosiy operatsiyalari qismlarga bo'linadi: A qismi: yadro qatlami:

1. MCU I/U boshlanishi: birinchi navbatda, apparat komponentlarini ishga tushirish kerak:- kodda ishlatiladigan doimiylar,- kirish-chiqish portlari- interfeys.- periferik aloqa deklaratsiyalari.

2. Umumiy asosiy funktsiyalar: Ba'zi funktsiyalar alohida kod bloklari tomonidan ishlatiladi, dasturlar tomonidan boshqariladigan pimlarda bajariladigan operatsiyalar:- RTC va displey taxtasi aloqasini yoqish/o'chirish.- Buzzer tovushini ishlab chiqarish/o'chirish. up/Clock down functions.- Belgilar yaratish funktsiyalarini ko'rsatish.3. Periferik ishga tushirish: kirish/chiqish portlari konfiguratsiya qilingandan so'ng, kontaktlarning zanglashiga o'tish funktsiyalarini aniqlash amalga oshiriladi. Tugatgandan so'ng - MCU yuqorida ko'rsatilgan funktsiyalarni ishlatib, RTC va displey sxemalarini ishga tushirishni boshlaydi.

4. Asosiy funktsiyalar ta'rifi: Ushbu bosqichda qurilma o'rnatiladi va ba'zi periferik sxemalar bilan aloqa o'rnatishga tayyor bo'ladi. Bu funktsiyalar quyidagilarni belgilaydi:- kalitni o'zgartirish tugmachasini boshqarish- LEDni RGB bilan ishlash (ayniqsa, PWM)- buzzer kvadrat to'lqinli generator

5. Ko'rsatish funktsiyalari: Internetda men ishlatgan HSMS IClari haqida ko'p narsa topa olmadim, shuning uchun men o'z kutubxonamni o'zim yozdim. Ko'rsatish funktsiyalari ASCII belgilarini va har qanday butun sonlarni ko'rsatishni o'z ichiga olgan to'liq belgi ko'rsatish funktsiyasini ta'minlaydi. Vazifalar umumlashtirilgan tarzda yozilgan, shuning uchun agar kodning biron bir qismidan ko'rsatish funktsiyalarini chaqirish zarur bo'lsa, ularni ishlatish oson, chunki ular operatsiya bo'yicha umumlashtirilgan (masalan: String displeyi, bitta belgini ko'rsatish va boshqalar).

6. RTC ishlash funktsiyalari: Barcha RTC funktsiyalari DS1302 IC operatsiyasiga muvofiq umumlashtirilgan tarzda yoziladi (Displey funktsiyalari to'plamiga o'xshash). Kod yozilgan kutubxonaga asoslangan bo'lib, ular gitHub -da ko'p variantlarda mavjud. Yakuniy kodda ko'rib turganingizdek, displey va RTC funktsiyalari alohida.c va.h fayllariga kiritilgan. B qismi - interfeys qatlami:

1. Asosiy funktsiya: void main () bo'limida barcha asosiy ishga tushirish funktsiyalari e'lon qilinadi. Barcha komponentlar ishga tushirilgandan so'ng, MCU cheksiz tsiklga kiradi, bu erda qurilma funksiyasi foydalanuvchi tomonidan nazorat qilinadi.

2. Haqiqiy vaqtda kalitlar, orqa nuri va displeyni boshqarish: cheksiz tsiklda ishlaganda MCU qurilmaning har bir qismini yangilaydi. U qanday ma'lumotlarni ko'rsatishni, qaysi tugma bosilganligini va orqa yorug'lik rejimi tanlanganini tanlaydi.

3. Foydalanuvchi menyusi funktsiyalari: Bu funktsiyalar daraxtga o'xshash shaklga ega (X-rasmga qarang), bu erda menyu tizimi va ierarxiya holat mashinasi sifatida belgilanadi. Foydalanuvchi tomonidan boshqariladigan har bir davlat mashinasi - tugmachani o'zgartiradi, shuning uchun tegishli tugma bosilganda - holat mashinasi o'z qiymatini o'zgartiradi. Menyuda amalga oshirilgan qurilmadagi har qanday o'zgarishlar bir zumda o'zgartirilishi uchun mo'ljallangan.

4. Foydalanuvchi menyusining almashinuvi: foydalanuvchi kiritilganda, menyu holati uning holatini o'zgartirishi kerak. Shunday qilib, bu funktsiyalar shtat mashinasi foydalanuvchiga bog'liq nazoratni ta'minlaydi. Bu alohida holatda: keyingi, oldingi va OK.

8 -qadam: Yakuniy kod va foydali fayllar

Va bu hammasi! Bu bosqichda sizga kerak bo'ladigan barcha fayllarni topishingiz mumkin:- Elektr sxemasi- To'liq manba kodi- Displey belgilar yaratuvchisi Opsiyonel xususiyat: Displey IC kutubxonasida ko'rsatilishi mumkin bo'lgan turli xil belgilar mavjud, lekin ba'zilari qo'shilmagan.. Agar siz belgilarni o'zingiz yaratmoqchi bo'lsangiz, Print_Character ('') funktsiyasida ASCII mos yozuvlar bilan katta holatni qo'shing (display.c funktsiyalariga qarang). Umid qilamanki, sizga bu ko'rsatma foydali bo'ladi:) O'qiganingiz uchun tashakkur!

Tavsiya: