Мазмуну:

Basys 3 Ойготкуч: 9 кадам
Basys 3 Ойготкуч: 9 кадам

Video: Basys 3 Ойготкуч: 9 кадам

Video: Basys 3 Ойготкуч: 9 кадам
Video: Основные ошибки при возведении перегородок из газобетона #5 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 -кадам: эсептегич

Counter
Counter
Counter
Counter

Компоненттердин эсептегичи (мүнөт жана секунд):

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

4 -кадам: Counter Hour

Counter Hour
Counter Hour
Counter Hour
Counter Hour

Компоненттин каршы сааты

Ошо сыяктуу эле, мүнөттөрдүн жана секундалардын компоненттеринин эсептегичтерине сааттын компоненти файлдарды киргизүүнү (Hour_in) туташтырган сигнал болгон (Vin) сыяктуу кириштерди кабыл алат жана мүнөттөр менен секундалар менен байланышкан чыгуулары бар. Сааттын эсептөөчү мааниси 24 00гө жеткенде, ал 00 00гө кайтарылат.

5 -кадам: Ойготкуч

Ойготкуч
Ойготкуч
Ойготкуч
Ойготкуч
Ойготкуч
Ойготкуч
Ойготкуч
Ойготкуч

Ойготкуч.vhd файлы санариптик маалыматтарды сактай турган сактоочу түзүлүштөр болгон d-flip-flopsдон турат. Ойготкуч файлы сигнал иштетиле турган убакытты сактоо үчүн колдонулат. Сааттарды (5 бит киргизүү) жана мүнөттөрдү (6 бит киргизүү) маалыматтарды сактоо үчүн, биз сигнализация файлынын ичинде 11 d-flip-flops мөөрүн басышыбыз керек. Бул үчүн, адегенде d-flip-flops ишин жөнгө салган логиканы импорттоо жана компоненттерди картага түшүрүү керек. Ар бири 11 d-flip-flops кириштерден бир аз маалыматты сактайт жана маалыматтарды сигналдык файлдын чыгышына картага түшүрүүгө мүмкүнчүлүк берет. D-flip-flops маалыматтарды сактагандыктан, биз кирүү өчүргүчтөрү өзгөртүлгөн болсо дагы, биз маалыматты кийинчерээк колдоно алабыз.

6 -кадам: Universal Seven Segment Display Driver

Universal Seven Segment Display Driver
Universal Seven Segment Display Driver
Universal Seven Segment Display Driver
Universal Seven Segment Display Driver
Universal Seven Segment Display Driver
Universal Seven Segment Display Driver

Универсалдуу жети сегменттүү дисплей драйвери сааттан жана сааттардан алынган маалыматтарды алат жана аларды тактадагы жети сегменттүү дисплейге чыгара алат. Айдоочу бир убакта тактада эки башка саноону чыгара алат. Биз бул функцияны саат убактысын жана мүнөт убактысын өзүнчө көрсөтүү үчүн колдондук. Жети сегменттин дисплейи бир убакта бир гана номерди активдештире алат, андыктан sseg файлы бир убакта бардык сандарды көрсөтүү үчүн мультиплекстөөнү колдонушу керек. Такталардын сааты сигнал мультиплекстөө үчүн туура убакытты сактоо үчүн ssegге берилет. Экиликтен экиликке чейин ондук коддоочу файлга киргизүүнү жети сегменттүү дисплейге чыгара турган формага айландыруу үчүн керек. Sseg файлынын акыркы чыгарылышы жети сегменттүү дисплейге түшүрүлөт жана дисплейде туура убакыт көрсөтүлөт.

7 -кадам: Файл шилтемеси

Файл шилтемеси
Файл шилтемеси
Файл шилтемеси
Файл шилтемеси
Файл шилтемеси
Файл шилтемеси

Шилтеме файлы программанын башка бардык аспектилерин байланыштырат жана сигналдарды алардын туура жайгашкан жерине картага түшүрөт. Ар бир компонент файлдын ичине киргизилет жана киргизилет. Сигналдар маалыматтарды бир компоненттен экинчисине өткөрүү үчүн колдонулат. Порт картасы жогоруда көрсөтүлгөн кара куту диаграммасына ылайык келет. Шилтеме файлы ошондой эле ойготкуч иштетилгенде башкаруучу логиканы кармайт. Долбоордун көбү ушул убакка чейин бүтөт. Калган жумуш ар бир сигналды тиешелүү жерге багыттоодо.

8 -кадам: Arduino

Arduino
Arduino
Arduino
Arduino

Arduino динамикти иштетүү үчүн колдонулат, ошондой эле спикер аркылуу ойнотулган нотанын үнүн жана узактыгын көзөмөлдөө үчүн колдонулат. Ардуино Basys 3 тактасынан санарип сигналын окуйт. Бул сигнал жогору болгондо, arduino сигналдын үнүн жана узактыгын көзөмөлдөгөн PWM сигналын чыгарат. Ардуинодон чыккан сигнал спикердин айдоочу тактасынын кирүү сигналына туташат, ал динамиктин көлөмүн жогорулатат. Arduino бул процессти секундасына көп жолу кайталанат.

9 -кадам: Кабелдик маршрут

Кабелдик маршрут
Кабелдик маршрут

Ардуино жана Basys 3 тактасы такталар ортосундагы сигналдарды берүү үчүн физикалык түрдө туташышы керек. Зымга туташтырылган биринчи кабель Basys 3 JA PMODтун жерге туташуусунан ардуинонун жерге төөнөгүчүнө чейин болот. Андан кийин Basys 3түн JA PMOD 1 пининен ардуинонун санарип пинине 7 туташтырыңыз. Андан кийин, ардуинодон эки жер казыгын динамиктин айдоочусунун жерге туташтыргычтарына туташтырыңыз. Андан кийин, arduino 3.3 V чыгарууну динамик драйверинин Vcc пинине туташтырыңыз. Андан кийин, arduino санариптик пин 9ду динамиктин драйвынын In пинине туташтырыңыз.

Сунушталууда: