Mundarija:

Basis 3 Budilnik: 9 qadam
Basis 3 Budilnik: 9 qadam

Video: Basis 3 Budilnik: 9 qadam

Video: Basis 3 Budilnik: 9 qadam
Video: Как проверить генератор. За 3 минуты, БЕЗ ПРИБОРОВ и умений. 2024, Oktyabr
Anonim
Basys 3 budilnik
Basys 3 budilnik

Bizning loyihamiz Basys 3 FPGA platasi, Arduino va karnay haydovchilar paneli yordamida budilnik yaratadi. Foydalanuvchi Basys 3 -dagi 11 ta kirish tugmasi yordamida joriy vaqtni taxtaga kiritishi va bortdagi o'rta tugma yordamida qiymatni qulflashi mumkin. Keyin foydalanuvchi xuddi shu kalitlar yordamida signal vaqtini kiritishi mumkin, lekin signalni qulflash uchun chap tugmani bosing. Agar noto'g'ri vaqt kiritilsa, reset tugmachasini (yuqori tugma) bosish mumkin va joriy soat va budilnik 00:00 ga o'rnatiladi. Keyin foydalanuvchi soatning eng chap tugmasi yordamida ishga tushishi va keyingi tugma yordamida signalni yoqishi mumkin. Budilnik yoqilganda, budilnik soat vaqti va uyg'otish vaqti mos kelganda ovoz chiqaradi.

1 -qadam: qora quti diagrammasi

Qora quti diagrammasi
Qora quti diagrammasi
Qora quti diagrammasi
Qora quti diagrammasi

Biz o'z loyihamizni qora qutining diagrammasini chizish orqali boshladik, bu dasturga kerakli kirish va chiqishlarni tasavvur qilish uchun. 5-bitli kirish (Hour_in) kabi bizning dasturimiz uchun quyidagi kirishlar 24 soatlik vaqtni, 60-daqiqagacha ko'rsatiladigan 6-bitli (Min_in) kirishni, foydalanuvchiga ruxsat berish uchun reset (Rst_b) tugmachasini kiritish uchun ishga tushirildi. o'z vaqtini o'zgartirish, budilnikni yuklaydigan 1-bitli kirish (alm_en), budilnik yoqilganda o'chirish uchun 1-bitli kirish (signal_sw), hisoblagichni boshqaradigan 1-bitli kirish (e_sek). soniya ishlaydi, joriy vaqtni belgilaydigan 1-bitli kirish (Led_btn) va oxirgi navbatda Basys 3 taxtasi ko'rsatadigan vaqtni boshqaruvchi 1-bitli kirish (clk). Chiqish - bu signalni Arduino -ga yuboradigan (alm_on), Basys 3 -da kirish vaqtini ko'rsatuvchi sseg chiqishi va etti segmentli displeyda kirishlar qaerda ko'rsatilishini boshqaruvchi anod chiqishi.

2 -qadam: sekin soat

Sekin soat
Sekin soat

Sekin soat yoki clock_div2 fayli chastotasi 2 gts bo'lgan soatni yaratadi. Agar biz bu soatni soniya hisoblagichiga bersak, soniya qiymati har soniyada bir marta oshadi. Sekin soat, sekundiga bir marta pastdan balandga o'zgaradigan ishonchli soat signalini yaratish uchun ishlatiladi.

3 -qadam: Hisoblagich

Hisoblagich
Hisoblagich
Hisoblagich
Hisoblagich

Komponent hisoblagichi (daqiqa va soniya):

Daqiqalar va soniyalarning asosiy vazifasi - bu hisoblagichlar. Daqiqa hisoblagichi kirishni (Vin) qabul qiladi, bu kirishlar signalidir (Min_in) va keyin kerakli kirishga kirguncha hisoblanadi. Sekundlar faqat kalitni (e_Sec) oladi, chunki uni etti segmentda ko'rsatish mumkin emas va kalit baland bo'lganda "1" fonda hisoblanadi. Ularning ikkalasi ham u erda [Qout] qiymatini chiqaradi, keyin esa u (ma'lumotlar) da saqlanadi, bu esa uni bog'lovchi faylda bajariladigan SSEGga yuboradi. Bundan tashqari, daqiqalar va soniyalar 59 qiymatiga yetganda, u asl holatiga qaytadi va ularning chiqishi daqiqalar/soatni oshirish uchun "1" bo'ladi. Bundan tashqari, ularning kirishiga qayta o'rnatish (rst_b) bilan xaritada ko'rish mumkin.

4 -qadam: Hisoblagich soati

Qarshi soat
Qarshi soat
Qarshi soat
Qarshi soat

Komponentlar hisoblagich soati

Xuddi shunday, daqiqalar va soniyalarning hisoblagichiga soat komponenti (Vin) kabi kirishni kiritadi, bu fayl kiritishini (Hour_in) bog'laydigan signaldir va xuddi shu tarzda daqiqa va soniyalar bilan bog'langan. Soatning hisoblash qiymati 24 00 ga yetganda, u 00 00 ga qaytadi.

5 -qadam: signal

Signal
Signal
Signal
Signal
Signal
Signal
Signal
Signal

Signal.vhd fayli raqamli ma'lumotlarni saqlashi mumkin bo'lgan saqlash qurilmalari bo'lgan d-flip-floplardan iborat. Signal fayli signal yoqiladigan vaqtni saqlash uchun ishlatiladi. Soatlar (5 bitli kirish) va daqiqalar (6 bitli kirish) ma'lumotlarini saqlash uchun biz signalli faylimizda 11 d-flip-flopni o'chirib qo'yishimiz kerak. Buning uchun biz avval d-flip-floplarning ishlashini boshqaruvchi mantiqni import qilishimiz va komponentalarni xaritaga solishimiz kerak. 11 ta d-flip-floplarning har biri kirish ma'lumotlarining bir qismini saqlaydi va ma'lumotlarni signal faylining chiqishlariga moslashtirishga imkon beradi. D-flip-floplar ma'lumotlarni saqlaganligi sababli, biz kirish kalitlari o'zgartirilgan bo'lsa ham, biz ma'lumotlarni keyinroq ishlatishimiz mumkin.

6 -qadam: Universal etti segmentli displey drayveri

Etti segmentli universal displey haydovchi
Etti segmentli universal displey haydovchi
Etti segmentli universal displey haydovchi
Etti segmentli universal displey haydovchi
Etti segmentli universal displey haydovchi
Etti segmentli universal displey haydovchi

Etti segmentli universal displey drayveri kirishni soat va soat majmuasidan oladi va ularni bortdagi etti segmentli displeyga chiqarishga qodir. Haydovchi bortda bir vaqtning o'zida ikkita alohida hisobni chiqarishi mumkin. Biz bu funktsiyadan soat va daqiqa vaqtlarini alohida ko'rsatish uchun foydalanganmiz. Etti segmentli displey bir vaqtning o'zida faqat bitta raqamni faollashtirishi mumkin, shuning uchun sseg fayli vaqtning barcha raqamlarini bir vaqtning o'zida ko'rsatish uchun multiplekslashdan foydalanishi kerak. Tarmoqli signal signallari ko'paytirish uchun to'g'ri vaqtni saqlash uchun ssegga uzatiladi. Ikkilik -ikkilik kodli o'nli kodlovchi, faylga kirishni etti segmentli displeyga chiqariladigan shaklga o'tkazish uchun zarur. Sseg faylining yakuniy chiqishi etti segmentli displeyga joylashtiriladi va displeyda to'g'ri vaqt ko'rsatiladi.

7 -qadam: Faylga havola

Fayl havolasi
Fayl havolasi
Fayl havolasi
Fayl havolasi
Fayl havolasi
Fayl havolasi

Havola fayli dasturning boshqa barcha jihatlarini bog'laydi va signallarni ularning to'g'ri joylashuviga moslashtiradi. Har bir komponent faylga kiritiladi va o'rnatiladi. Signallar ma'lumotlarni bir komponentdan ikkinchisiga o'tkazish uchun ishlatiladi. Port xaritasi yuqorida sanab o'tilgan qora quti sxemasiga amal qiladi. Havola faylida signal yoqilganda boshqariladigan mantiq ham mavjud. Loyihaning ko'p qismi shu nuqtada tugaydi. Qolgan ishlar har bir signalni tegishli joyga yo'naltiradi.

8 -qadam: Arduino

Arduino
Arduino
Arduino
Arduino

Arduino karnayni faollashtirish, shuningdek notiq ohangini va davomiyligini nazorat qilish uchun ishlatiladi. Arduino Basys 3 taxtasidan raqamli signalni o'qiydi. Bu signal baland bo'lganda, arduino signalning ohangini va davomiyligini boshqaruvchi PWM signalini chiqaradi. Arduino -dan chiqish signali karnay drayverining kirish signaliga ulanadi, bu esa karnay ovozini oshiradi. Arduino bu jarayonni juda tez bajaradi, sekundiga ko'p marta.

9 -qadam: Kabel yo'nalishi

Kabel yo'nalishi
Kabel yo'nalishi

Arduino va Basys 3 platalari signallarni taxtalar orasidagi uzatish uchun jismonan ulangan bo'lishi kerak. Birinchi simli kabel Basys 3 JA PMOD topraklama pinidan arduino topraklama pimigacha bo'ladi. Keyin Basys 3 JA PMOD 1 -pinidan simni arduino raqamli 7 -piniga ulang. Keyinchalik, arduino -dan karnay drayverining topraklama pinlariga ikkita topraklama pinini ulang. Keyin, arduino 3.3 V chiqishini karnay drayverining Vcc piniga ulang. Keyin, arduino raqamli 9 -pinini dinamik drayverining kirish piniga ulang.

Tavsiya: