Агуулгын хүснэгт:

Basys 3 сэрүүлэгтэй цаг: 9 алхам
Basys 3 сэрүүлэгтэй цаг: 9 алхам

Видео: Basys 3 сэрүүлэгтэй цаг: 9 алхам

Видео: Basys 3 сэрүүлэгтэй цаг: 9 алхам
Видео: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Аравдугаар сар
Anonim
Basys 3 сэрүүлэгтэй цаг
Basys 3 сэрүүлэгтэй цаг

Манай төсөл нь Basys 3 FPGA самбар, Arduino, чанга яригчийн жолоочийн самбар ашиглан сэрүүлэгтэй цаг бүтээдэг. Хэрэглэгч Basys 3 дээрх 11 оролтын унтраалга ашиглан одоогийн цагийг самбар дээр оруулах боломжтой бөгөөд самбар дээрх дунд товчлуурыг ашиглан утгыг түгжих боломжтой. Дараа нь хэрэглэгч ижил унтраалга ашиглан сэрүүлгийн цагийг оруулах боломжтой боловч зүүн товчийг дарж сэрүүлгийн цагийг түгжиж болно. Хэрэв буруу цаг оруулсан бол дахин тохируулах товчлуурыг (дээд товчлуур) дарж, одоогийн цаг, сэрүүлгийн цагийг 00:00 болгож тохируулна. Дараа нь хэрэглэгч хамгийн зүүн талын унтраалга ашиглан цагийг асааж, дараагийн унтраалга ашиглан сэрүүлгийг асааж болно. Сэрүүлгийг асаахад сэрүүлгийн цаг нь тохирох үед сэрүүлэгтэй цаг дуугарах болно.

Алхам 1: Хар хайрцагны диаграм

Хар хайрцагны диаграм
Хар хайрцагны диаграм
Хар хайрцагны диаграм
Хар хайрцагны диаграм

Бид хөтөлбөрөө хэрэгжүүлэхэд шаардлагатай оролт, гарцыг харуулахын тулд хар хайрцагны диаграмыг зурах замаар төслөө эхлүүлсэн. 5-битийн оролт (Hour_in) гэх мэт манай програмын дараах орцуудыг 24 цагийн цаг, 6-битийн (Min_in) оролтыг 60 минут хүртэл харуулахын тулд эхлүүлсэн бөгөөд дахин тохируулах (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) авдаг бөгөөд унтраалга өндөр болсны дараа арын хэсэгт тооцогддог. Тэд хоёулаа тэнд (Qout) утгыг гаргадаг бөгөөд дараа нь үүнийг өгөгдөлд хадгалдаг бөгөөд үүнийг холбосон файлд хийгддэг SSEG руу илгээдэг. Түүнчлэн минут, секунд нь 59 -ийн утгад хүрэхэд дахин тохируулагдах бөгөөд гаралт нь минут/цагийг нэмэгдүүлэхийн тулд ‘1’ болно. Энэ нь мөн тэдний оролтод дахин тохируулах (rst_b) ашиглан зураглах боломжтой.

Алхам 4: Эсрэг цаг

Эсрэг цаг
Эсрэг цаг
Эсрэг цаг
Эсрэг цаг

Бүрэлдэхүүн хэсгүүдийн тоолуурын цаг

Үүний нэгэн адил минут, секундын бүрэлдэхүүн хэсгийн тоолуурт цагийн бүрэлдэхүүн хэсэг нь (Vin) гэх мэт оролтуудыг авдаг бөгөөд энэ нь файлын оролтыг (Hour_in) холбох дохио бөгөөд минут, секунттай ижил аргаар холбогдсон гаралттай байдаг. Цагийн тоолох утга 24 00 хүрэхэд 00 00 болж дахин тохирно.

Алхам 5: Сэрүүлэг

Сэрүүлэг
Сэрүүлэг
Сэрүүлэг
Сэрүүлэг
Сэрүүлэг
Сэрүүлэг
Сэрүүлэг
Сэрүүлэг

Сэрүүлгийн.vhd файл нь дижитал өгөгдлийг хадгалах боломжтой хадгалах төхөөрөмж болох d-flip-flops-ээс бүрдэнэ. Сэрүүлгийн файлыг сэрүүлгийг идэвхжүүлэх цагийг хадгалахад ашигладаг. Цаг (5 битийн оролт) болон минутын өгөгдлийг (6 битийн оролт) хадгалахын тулд бид дохиоллын файлдаа 11 ширхэг d-flip-flop-ийг дарах ёстой. Үүнийг хийхийн тулд бид эхлээд d-flip-flops-ийн үйл ажиллагааг зохицуулах логикийг оруулж, бүрэлдэхүүн хэсгүүдийн зураглалыг оруулах ёстой. 11 ширхэг d-flip-flop тус бүр нь оролтоос нэг ширхэг өгөгдлийг хадгалж, өгөгдлийг дохиоллын файлын гаралтанд оруулах боломжийг олгодог. D-flip-flops нь өгөгдлийг хадгалдаг тул оролтын унтраалга өөрчлөгдсөн байсан ч гэсэн бид өгөгдлийг хожим нь ашиглах боломжтой байдаг.

Алхам 6: Бүх нийтийн долоон сегментийн дэлгэцийн драйвер

Universal Seven сегментийн дэлгэцийн драйвер
Universal Seven сегментийн дэлгэцийн драйвер
Universal Seven сегментийн дэлгэцийн драйвер
Universal Seven сегментийн дэлгэцийн драйвер
Universal Seven сегментийн дэлгэцийн драйвер
Universal Seven сегментийн дэлгэцийн драйвер

Бүх нийтийн долоон сегментийн дэлгэцийн драйвер нь оролт, цагийг хүлээн авч, самбар дээрх долоон сегментийн дэлгэц рүү гаргах боломжтой. Жолооч нэг удаа самбар дээр хоёр тусдаа тоолох боломжтой. Бид энэ функцийг ашиглан цаг болон минутын хугацааг хоёуланг нь тусад нь харуулав. Долоон сегментийн дэлгэц нь зөвхөн нэг тоог идэвхжүүлэх боломжтой тул sseg файл нь тухайн үеийн бүх дугаарыг нэгэн зэрэг харуулахын тулд мультиплекс ашиглах ёстой. Самбарын цагны дохиог sseg -д оруулна. Хоёртын болон хоёртын кодтой аравтын кодлогч нь файлын оролтыг долоон сегментийн дэлгэц дээр гаргадаг хэлбэр болгон хөрвүүлэхэд зайлшгүй шаардлагатай. Sseg файлын эцсийн гаралтыг долоон сегментийн дэлгэц дээр буулгаж, зөв цагийг дэлгэц дээр харуулна.

Алхам 7: Файлыг холбох

Файлыг холбох
Файлыг холбох
Файлыг холбох
Файлыг холбох
Файлыг холбох
Файлыг холбох

Холбоос файл нь програмын бусад бүх талыг холбож, дохиог зөв байршлаар нь харуулдаг. Бүрэлдэхүүн хэсэг бүрийг файл дотор оруулж, үүсгэсэн болно. Дохиоллыг өгөгдлийг нэг бүрэлдэхүүн хэсгээс нөгөөд шилжүүлэхэд ашигладаг. Боомтын зураглалыг дээр дурдсан хар хайрцгийн диаграммын дагуу хийнэ. Холбоосын файл нь сэрүүлгийг идэвхжүүлэх үед удирддаг логикийг агуулдаг. Энэ хугацаанд төслийн ихэнх хэсгийг дуусгах болно. Үлдсэн ажил нь дохио бүрийг зохих байршил руу чиглүүлж байна.

Алхам 8: Arduino

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

Arduino нь чанга яригчийг идэвхжүүлэхээс гадна чанга яригчаар тоглосон нотын ая, үргэлжлэх хугацааг хянахад ашиглагддаг. Arduino нь Basys 3 самбараас дижитал дохиог уншдаг. Энэ дохио өндөр байх үед arduino нь дохиоллын өнгө, үргэлжлэх хугацааг хянадаг PWM дохиог гаргадаг. Arduino -ийн гаралтын дохио нь чанга яригчийн жолоочийн самбарын оролтын дохиотой холбогддог бөгөөд энэ нь чанга яригчийн хэмжээг нэмэгдүүлдэг. Arduino энэ процессыг маш хурдан хийж, секундэд олон удаа давтана.

Алхам 9: Кабелийн чиглүүлэлт

Кабелийн чиглүүлэлт
Кабелийн чиглүүлэлт

Arduino болон Basys 3 самбарыг самбар хооронд дохио дамжуулахын тулд биетэй холбох ёстой. Утасдах анхны кабель нь Basys 3 -ийн JA PMOD -ийн газардуулгын цэгээс arduino -ийн газардуулгын зүү байх болно. Дараа нь Basys 3 -ийн JA PMOD 1 -р зүүгээс arduino -ийн дижитал зүү 7 руу утас холбоно уу. Дараа нь arduino -аас хоёр газардуулгын тээгчийг чанга яригчийн драйверын газардуулгатай холбоно уу. Дараа нь arduino -ийн 3.3 V гаралтыг чанга яригчийн драйверын Vcc зүүтэй холбоно уу. Дараа нь arduino -ийн дижитал 9 -р зүүг чанга яригчийн драйверын In зүү рүү холбоно уу.

Зөвлөмж болгож буй: