INHOUDSOPGAWE:

CPE 133 Metronoom: 3 stappe
CPE 133 Metronoom: 3 stappe

Video: CPE 133 Metronoom: 3 stappe

Video: CPE 133 Metronoom: 3 stappe
Video: CPE 133 Project: Square Muse Sequencer 2024, November
Anonim
CPE 133 Metronoom
CPE 133 Metronoom

Vir ons laaste projek by Cal Poly het ons 'n tempo -houertoestel geskep wat 'n metronoom genoem word; ons het hierdie projek gekies vanweë musiek en digitale ontwerp. Ons het vorige laboratoriums in CPE 133 gebruik om ons kode en aanlyn -tutoriale te help ontwerp om die LED -stroombaan op die broodbord te bou.

Stap 1: Stelselargitektuur

Stelsel argitektuur
Stelsel argitektuur
Stelsel argitektuur
Stelsel argitektuur
Stelsel argitektuur
Stelsel argitektuur

Ons het hierdie ontwerp geïmplementeer met behulp van 'n Basys 3 FPGA -bord, broodbord, LED's, weerstande en springers vir aansluiting.

Die doel van hierdie ontwerp is om die snelheid waarmee die LED's heen en weer flits, te verhoog en te verlaag. Die tempo waarteen hulle flits word 'n tempo genoem. Die gewenste tempo is bereik deur die knoppies op die Basys 3 FPGA -bord te gebruik om die tempo van die lig te verhoog of te verlaag.

As die op -knoppie ingedruk word, neem die spoed toe, as die af -knoppie ingedruk word, sal die spoed verminder.

Stap 2: Kringargitektuur

Kringargitektuur
Kringargitektuur
Kringargitektuur
Kringargitektuur

Stelselargitektuur: Knoppie-terugspring: Ons het 'n knoppie-weerkaatsing in die kring geïmplementeer om te verseker dat wanneer ons op 'n knoppie klik om die tempo met een interval te verhoog. Sonder die de-bounce sal 'n enkele druk op die knoppie toeneem met die frekwensie van die klok.

Tempo -wisselaar: Tempo -wisselaar is gebruik om die MAX_COUNT -waarde wat die klokverdeler gebruik, te verhoog of te verlaag om die klokuitset wat die LED dryf, te beheer.

Register: 'n Register is gebruik om die waardes van ons nuwe MAX_COUNT wat uit die tempo -wisselaar geproduseer is, te hou. 'N CLR is by die register gevoeg om die MAX_COUNT terug te stel na 'n waarde wat ooreenstem met 'n klokfrekwensie van 1 sekonde.

Klokverdeler: 'n Klokskeider word gebruik om die klokpulse van die BASYS 3 -bord te vertraag; dit word gedoen deur die frekwensie van die klok te deel deur die MAX_COUNT waarde wat in die tempo -wisselaar verander is.

Skuifregister: 'n aangepaste 4-bis-skofregister is gebruik om 'n '1' of 'n hoë waarde na ons LED-stroombaan op die broodbord op die stygende rand van die klokpuls uit te voer. Met 4 LED's op die broodbord, kon ons agtereenvolgens slegs 1 van die 4 LED's op 'n keer uitvoer, wat 'n herhalende 4-beat-reeks maak. Die skofregister is so gewysig dat die 4-bis-uitset slegs 1 hoë waarde bevat, dit wil sê "0001" of "0100."

Aanbeveel: