Мазмұны:

Basys 3 Оятқыш: 9 қадам
Basys 3 Оятқыш: 9 қадам

Бейне: Basys 3 Оятқыш: 9 қадам

Бейне: Basys 3 Оятқыш: 9 қадам
Бейне: Basys 3 Introduction 2024, Қараша
Anonim
Basys 3 Оятқыш
Basys 3 Оятқыш

Біздің жоба Basys 3 FPGA тақтасын, Arduino және динамик тақтасын пайдаланып, оятар жасайды. Пайдаланушы ағымдағы уақытты Basys 3 -тегі 11 кіріс қосқышының көмегімен тақтаға енгізе алады және тақтадағы ортаңғы түймені қолданып мәнді құлыптай алады. Пайдаланушы оятқыш уақытын сол қосқыштардың көмегімен енгізе алады, бірақ дабыл уақытын құлыптау үшін сол жақ батырманы басады. Егер уақыт қате енгізілсе, қалпына келтіру түймесін (жоғарғы түйме) басуға болады және ағымдағы сағат пен дабыл уақыты 00:00 орнатылады. Содан кейін пайдаланушы сағатты ең сол жақтағы қосқыш арқылы іске қосады және келесі қосқыш арқылы оятқышты қосады. Оятқыш қосылған кезде, оятқыш сағаты мен дабыл уақыты сәйкес келген кезде дыбыс шығарады.

1 -қадам: Қара жәшіктің диаграммасы

Қара жәшік диаграммасы
Қара жәшік диаграммасы
Қара жәшік диаграммасы
Қара жәшік диаграммасы

Біз өз жобамызды бағдарламамызға керекті кірістер мен шығыстарды бейнелеу үшін қара жәшік диаграммасын салудан бастадық. 5-разрядты енгізу (Hour_in) сияқты біздің бағдарламаның келесі кірістері 24-сағаттық уақытты көрсету үшін инициализацияланды, 60-минутқа дейін көрсету үшін 6-биттік (Min_in) кіріс, пайдаланушыға рұқсат беру үшін қалпына келтіру (Rst_b) түймесі. уақытты енгізуді өзгертіңіз, дабыл кірісін жүктейтін 1 биттік кіріс (alm_en), ояту сағаты қосылған кезде өшіру үшін 1 разрядты кіріс (alarm_sw), есептегішті басқаратын 1 биттік кіріс (e_sec) секунд жұмыс істейді, ағымдағы уақытты орнататын 1-биттік кіріс (Led_btn) және соңында Basys 3 тақтасында көрсетілетін уақытты басқаратын 1-биттік кіріс (clk). Шығу - бұл сигналды Arduino -ға жіберетін (alm_on), Basys 3 -те кіріс уақытын көрсететін sseg шығысы және жеті сегменттің дисплейінде кірістердің қай жерде көрсетілетінін басқаратын анодтық шығыс.

2 -қадам: баяу сағат

Баяу сағат
Баяу сағат

Баяу сағат немесе clock_div2 файлы жиілігі 2 гц болатын сағатты жасайды. Егер біз бұл сағатты секунд есептегішіне берсек, секунд мәні секунд сайын бір есе артады. Баяу сағат секундына бір рет төменнен жоғарыға ауысатын сенімді сағат сигналын жасау үшін қолданылады.

3 -қадам: Есептегіш

Есептегіш
Есептегіш
Есептегіш
Есептегіш

Компоненттерді санауыш (минут пен секунд):

Минуттар мен секундтардың негізгі функциясы - олар есептегіштер. Минут санағышы кірісті (Min_in) сигнал болып табылатын кірісті (Vin) қабылдайды, содан кейін қажетті кіріс енгізілгенге дейін есептеледі. Секунд тек коммутатордың кірісін (e_Sec) қабылдайды, себебі оны жеті сегментте көрсету мүмкін емес және қосқыш жоғары '1' болған кезде фонда есептеледі. Олар екеуі де [Qout] мәнін шығарады, содан кейін ол SSEG -ге жіберетін (деректерде) сақталады, ол байланыстырушы файлда жасалады. Сондай -ақ, минуттар мен секундтар 59 мәніне жеткенде, ол бастапқы қалпына келеді, ал олардың шығысы минут/сағатты ұлғайту үшін «1» болады. Ол сонымен қатар олардың кірістерін қалпына келтірумен (rst_b) салыстыруға болады.

4 -қадам: Қарсы сағат

Қарсы сағат
Қарсы сағат
Қарсы сағат
Қарсы сағат

Компоненттерге қарсы сағат

Дәл осылай минуттар мен секундтардың құрамдас есептегішіне сағат компоненті файлдарды енгізуді байланыстырудан (Hour_in) сигнал болып табылатын (Vin) сияқты кірістерді қабылдайды және дәл осылай минуттар мен секундтармен байланысты. Сағаттың мәні 24 00 -ге жеткенде, ол 00 00 -ге қалпына келеді.

5 -қадам: Дабыл

Дабыл
Дабыл
Дабыл
Дабыл
Дабыл
Дабыл
Дабыл
Дабыл

Дабыл.vhd файлы сандық деректерді сақтай алатын сақтау құрылғылары болып табылатын d-flip-flops-дан тұрады. Дабыл файлы дабыл іске қосылатын уақытты сақтау үшін қолданылады. Сағат (5 разрядты енгізу) мен минут (6 разрядты енгізу) деректерін сақтау үшін біз дабыл файлында 11 d-flip-flop-ты өшіруіміз керек. Ол үшін алдымен d-flip-flops жұмысын реттейтін логиканы импорттап, компоненттерді картаға түсіру керек. 11 флип-флоптардың әрқайсысы кірістерден бір бит деректерді сақтайды және деректерді дабыл файлының шығысына салыстыруға мүмкіндік береді. D-flip-flops деректерді сақтайтындықтан, біз кіріс қосқыштары өзгерсе де, деректерді кейінірек қолдана аламыз.

6 -қадам: әмбебап жеті сегментті дисплей драйвері

Әмбебап жеті сегментті дисплей драйвері
Әмбебап жеті сегментті дисплей драйвері
Әмбебап жеті сегментті дисплей драйвері
Әмбебап жеті сегментті дисплей драйвері
Әмбебап жеті сегментті дисплей драйвері
Әмбебап жеті сегментті дисплей драйвері

Әмбебап жеті сегментті дисплей драйвері кірісті сағаттан және сағаттан алады және оларды тақтадағы жеті сегментті дисплейге шығара алады. Жүргізуші тақтаға бір уақытта екі бөлек есепті шығара алады. Біз бұл функцияны сағатты және минутты бөлек көрсету үшін қолдандық. Жеті сегментті дисплей бір уақытта тек бір нөмірді белсендіре алады, сондықтан sseg файлы уақыттың барлық сандарын бір мезгілде көрсету үшін мультиплекстеуді қолдануы керек. Тақтаның сағаттық сигналы мультиплекстеудің дұрыс уақытын сақтау үшін sseg -ге беріледі. Екілік -екілік кодталған ондық кодтаушы файлға кіруді жеті сегментті дисплейге шығаруға болатын пішінге түрлендіру үшін қажет. Sseg файлының соңғы шығысы жеті сегментті дисплеймен салыстырылады және дисплейде дұрыс уақыт көрсетіледі.

7 -қадам: Файл сілтемесі

Сілтеме файлы
Сілтеме файлы
Сілтеме файлы
Сілтеме файлы
Сілтеме файлы
Сілтеме файлы

Сілтеме файлы бағдарламаның барлық басқа аспектілерін байланыстырады және сигналдарды олардың дұрыс орналасуына салыстырады. Әр компонент файлға енгізіледі және жасалады. Сигналдар бір компоненттен екіншісіне деректерді беру үшін қолданылады. Портты салыстыру жоғарыда көрсетілген қара жәшік диаграммасына сәйкес болады. Сілтеме файлында дабыл қосылған кезде басқарылатын логика да бар. Жобаның көп бөлігі осы сәтте аяқталады. Қалған жұмыс әр сигналды тиісті орынға бағыттайды.

8 -қадам: Arduino

Ардуино
Ардуино
Ардуино
Ардуино

Arduino динамикті белсендіру, сонымен қатар динамик арқылы ойналатын нотаның үні мен ұзақтығын бақылау үшін қолданылады. Arduino Basys 3 тақтасынан сандық сигналды оқиды. Бұл сигнал жоғары болған кезде, arduino сигналдың дыбысы мен ұзақтығын басқаратын PWM сигналын шығарады. Arduino -дан шығатын сигнал динамиктің дыбыс деңгейін жоғарылататын динамик тақтасының кіріс сигналына қосылады. Ардуино бұл процесті секундына бірнеше рет қайталайды.

9 -қадам: Кабельді бағыттау

Кабельді бағыттау
Кабельді бағыттау

Arduino және Basys 3 тақтасы тақталар арасындағы сигналдарды беру үшін физикалық түрде қосылған болуы керек. Сымға қосылатын бірінші кабель Basys 3 JA PMOD жерге тұйықтауышынан arduino жерге тұйықталуына дейін болады. Содан кейін Basys 3 JA PMOD 1 сымынан сымды arduino цифрлық пиніне 7 қосыңыз. Әрі қарай, arduino -дан динамик драйверінің жерге қосатын екі түйреуішті қосыңыз. Содан кейін arduino 3,3 В шығысын динамик драйверінің Vcc істігіне қосыңыз. Әрі қарай, arduino 9 цифрлық түйреуішін динамик драйверінің кіріс істігіне қосыңыз.

Ұсынылған: