Mündəricat:

Basys 3 Zəngli Saat: 9 addım
Basys 3 Zəngli Saat: 9 addım

Video: Basys 3 Zəngli Saat: 9 addım

Video: Basys 3 Zəngli Saat: 9 addım
Video: Heydər Əliyev və Həyat yoldaşını Birdə belə görün #azerbaijan #president #prezident #xeberler #xeber 2024, Noyabr
Anonim
Basys 3 Zəngli Saat
Basys 3 Zəngli Saat

Layihəmiz Basys 3 FPGA lövhəsi, Arduino və dinamik sürücü lövhəsindən istifadə edərək zəngli saat yaradır. İstifadəçi, Basys 3 -də 11 giriş açarı istifadə edərək cari vaxtı lövhəyə daxil edə və lövhədəki orta düyməni istifadə edərək dəyəri kilidləyə bilər. İstifadəçi eyni açarlardan istifadə edərək həyəcan vaxtını daxil edə bilər, ancaq zəngli saatın kilidlənməsi üçün sol düyməni basa bilər. Yanlış vaxt daxil edildikdə, sıfırlama düyməsinə (yuxarı düymə) basıla bilər və cari saat və zəngli saat 00: 00 -a təyin ediləcəkdir. İstifadəçi daha sonra ən sol düyməni istifadə edərək saatı işə sala bilər və növbəti düyməni istifadə edərək həyəcanı aça bilər. Zəngli saat açıldıqda, zəngli saat, saat və təyin olunan zəngli saat uyğun gələndə səs çıxarar.

Addım 1: Qara qutu diaqramı

Qara qutu diaqramı
Qara qutu diaqramı
Qara qutu diaqramı
Qara qutu diaqramı

Proqramımıza lazım olan giriş və çıxışları görüntüləmək üçün qara qutu diaqramı çəkərək layihəmizə başladıq. Proqramımız üçün 5 bitlik giriş (Hour_in) kimi aşağıdakı girişlər, 24 saatlıq vaxtı, 60 dəqiqəyə qədər göstərmək üçün 6 bitlik (Min_in) girişi, istifadəçiyə imkan vermək üçün sıfırlama (Rst_b) düyməsini təyin etmək üçün işə salındı. vaxt girişini dəyişdirin, həyəcan girişini yükləyən 1 bitlik giriş (alm_en), zəngli saatı aktivləşdirəndə söndürmək üçün 1 bitli giriş (alarm_sw), sayğacın idarə olunmasını idarə edən 1 bitli giriş (e_sec) saniyə işləyəcək, cari vaxtı təyin edən 1 bitlik giriş (Led_btn) və son olaraq Basys 3 lövhəsinin göstərdiyi vaxtı idarə edən 1 bitlik giriş (clk). Çıxışlar Arduinoya siqnal göndərən (alm_on), Basys 3 -də giriş vaxtını göstərən sseg çıxışı və yeddi seqmentin ekranında girişlərin harada göstəriləcəyini idarə edən anod çıxışıdır.

Addım 2: Yavaş Saat

Yavaş Saat
Yavaş Saat

Yavaş saat və ya clock_div2 faylı, tezliyi 2 hz olan bir saat yaradır. Bu saatı saniyə sayacımıza qursaq, saniyələr hər saniyədə bir artacaq. Yavaş saat, saniyədə bir dəfə aşağıdan yuxarıya dəyişən etibarlı bir saat siqnalı yaratmaq üçün istifadə olunur.

Addım 3: Sayğac

Sayğac
Sayğac
Sayğac
Sayğac

Komponent Sayacı (dəqiqə və saniyə):

Dəqiqələrin və saniyələrin əsas funksiyası sayğac olmasıdır. Dəqiqə sayğacı girişlərdən (Min_in) gələn siqnal olan girişi (Vin) qəbul edir və sonra daxil edilmiş istənilən girişə çatana qədər sayır. Yeddi seqmentdə göstərilə bilmədiyi üçün saniyələr yalnız keçid (e_Sec) girişini alır və keçid yüksək olduqda '1' arxa planda sayılır. Hər ikisi orada (Qout) dəyərini çıxarır və sonra onu əlaqələndirmə sənədində edilən SSEG -ə göndərən (məlumatlarda) saxlanılır. Ayrıca, dəqiqə və saniyə 59 dəyərlərinə çatdıqda sıfırlanır və dəqiqələri/saatı artırmaq üçün çıxışı '1' dir. Girişlərinə sıfırlama (rst_b) ilə də eşlenebilir.

Addım 4: Qarşılıqlı Saat

Əks Saat
Əks Saat
Əks Saat
Əks Saat

Komponent sayğac saatı

Eynilə, dəqiqə və saniyələrin komponent sayğacına saat komponenti, fayl girişini (Hour_in) bağlayan bir siqnal olan (Vin) kimi girişləri qəbul edir və eyni şəkildə dəqiqə və saniyə ilə əlaqəli olan çıxışlara malikdir. Saat hesablama dəyəri 24 00 -a çatanda 00 00 -a sıfırlanır.

Addım 5: Siqnal

Siqnal
Siqnal
Siqnal
Siqnal
Siqnal
Siqnal
Siqnal
Siqnal

Zəngli.vhd faylı rəqəmsal məlumatları saxlaya bilən saxlama cihazları olan d-flip-floplardan ibarətdir. Siqnal faylı, həyəcanın aktiv olacağı vaxtı saxlamaq üçün istifadə olunur. Saat (5 bit giriş) və dəqiqə (6 bit giriş) məlumatlarını saxlamaq üçün həyəcan sənədimizdə 11 d-flip-flopu möhürləməliyik. Bunu etmək üçün əvvəlcə d-flip-flopların işini tənzimləyən məntiqi idxal etməliyik və komponentləri xəritəyə salmalıyıq. 11 d-flip-flopun hər biri girişlərdən bir az məlumat saxlayacaq və məlumatların siqnalizasiya faylının çıxışlarına uyğunlaşdırılmasına imkan verəcəkdir. D-flip-floplar məlumatları saxladığından, giriş açarları dəyişdirilsə belə, məlumatları sonrakı bir zamanda istifadə edə bilərik.

Addım 6: Universal Yeddi Segment Ekran Sürücüsü

Universal yeddi seqment ekran sürücüsü
Universal yeddi seqment ekran sürücüsü
Universal yeddi seqment ekran sürücüsü
Universal yeddi seqment ekran sürücüsü
Universal yeddi seqment ekran sürücüsü
Universal yeddi seqment ekran sürücüsü

Universal yeddi seqmentli ekran sürücüsü girişləri saat və saat dəstindən alır və onları lövhədəki yeddi seqmentli ekrana çıxara bilir. Sürücü bir anda lövhədə iki ayrı sayını çıxara bilir. Bu funksiyanı həm saatı, həm də dəqiqə vaxtını ayrıca göstərmək üçün istifadə etdik. Yeddi seqment ekranı bir anda yalnız bir nömrəni aktivləşdirə bilir, buna görə də sseg faylı eyni vaxtın bütün nömrələrini göstərmək üçün multipleksdən istifadə etməlidir. Lövhələrin saat siqnalı, çoxlama üçün doğru vaxtı saxlamaq üçün ssegə verilir. İkili -ikili kodlu onlu kodlayıcı, faylın girişini yeddi seqmentli ekrana çıxarıla bilən bir formaya çevirmək üçün lazımdır. Sseg faylının son çıxışı yeddi seqmentli ekrana uyğunlaşdırılır və düzgün vaxt ekranda göstərilir.

Addım 7: Fayl bağlayın

Bağlantı Fayl
Bağlantı Fayl
Bağlantı Fayl
Bağlantı Fayl
Bağlantı Fayl
Bağlantı Fayl

Bağlantı faylı, proqramın bütün digər cəhətlərini birləşdirir və siqnalları doğru yerə uyğunlaşdırır. Hər bir komponent fayl daxilində gətirilir və hazırlanır. Siqnallar bir komponentdən digərinə məlumat ötürmək üçün istifadə olunur. Liman xəritələşdirilməsi yuxarıda sadalanan qara qutu sxeminə uyğun olacaq. Bağlantı faylı, həyəcan siqnalı aktiv olduqda idarə edən məntiqi də saxlayır. Layihənin çox hissəsi artıq bu nöqtədə tamamlanacaq. Qalan işlər hər bir siqnalı uyğun yerə yönləndirir.

Addım 8: Arduino

Arduino
Arduino
Arduino
Arduino

Arduino, natiqin aktivləşdirilməsi, həm də hoparlördən çalınan notun tonuna və müddətinə nəzarət etmək üçün istifadə olunur. Arduino, Basys 3 lövhəsindən rəqəmsal bir siqnal oxuyur. Bu siqnal yüksək olduqda, arduino siqnalın tonunu və müddətini idarə edən bir PWM siqnalı çıxaracaq. Arduino -dan gələn çıxış siqnalı, dinamikin səs səviyyəsini artıran dinamik sürücü lövhəsinin giriş siqnalına qoşulur. Arduino bu prosesi saniyədə dəfələrlə təkrarlayan çox sürətli edir.

Addım 9: Kabelin yönləndirilməsi

Kabel marşrutu
Kabel marşrutu

Arduino və Basys 3 lövhələri lövhələr arasında siqnal ötürmək üçün fiziki olaraq bağlanmalıdır. İlk kabel, Basys 3 -ün JA PMOD -un topraklama pinindən arduino -nun torpaq pininə qədər olacaq. Ardından, Basys 3 -ün JA PMOD -un 1 -ci pinindən arduino -nun rəqəmsal pininə bir tel bağlayın. Daha sonra, arduino -dan hoparlör sürücüsünün yer pinlərinə iki torpaq pinini bağlayın. Sonra, arduinonun 3.3 V çıxışını dinamik sürücüsünün Vcc pininə qoşun. Sonra, arduinonun rəqəmsal 9 pinini dinamik sürücüsünün Giriş pininə qoşun.

Tövsiyə: