Innholdsfortegnelse:
Video: CPE 133 metronom: 3 trinn
2025 Forfatter: John Day | [email protected]. Sist endret: 2025-01-13 06:58
For vårt siste prosjekt på Cal Poly opprettet vi en tempoholdende enhet kalt en metronom, vi valgte dette prosjektet på grunn av interesse for musikk og digital design. Vi brukte tidligere laboratorier i CPE 133 for å hjelpe til med å designe koden vår og online opplæringsprogrammer for å hjelpe til med å bygge LED -kretsen på brødbrettet.
Trinn 1: Systemarkitektur
Vi implementerte dette designet ved å bruke et Basys 3 FPGA -bord, brødbrett, LED -er, motstander og hoppere for tilkobling.
Formålet med denne designen er å øke og redusere hastigheten som LED -lampene blinker frem og tilbake. Tempoet de blinker kalles et tempo. Ønsket tempo ble oppnådd ved å bruke knappene på Basys 3 FPGA -brettet for å øke eller redusere lysets tempo.
Hvis du trykket på opp -knappen, økte lysene i hastighet, hvis ned -knappen ble trykket, ville hastigheten reduseres.
Trinn 2: Kretsarkitektur
Systemarkitektur: Button De-bounce: Vi implementerte en knapp de-bounce i kretsen for å sikre at når vi klikket på en knapp for å øke tempoet med ett intervall. Uten de-bounce ville et enkelt trykk på knappen øke med frekvensen på klokken.
Tempo -veksler: Tempo -veksler ble brukt til å øke eller redusere MAX_COUNT -verdien som klokkeskilleren brukte for å kontrollere klokkeutgangen som driver LED -en.
Register: Et register ble brukt til å holde verdiene til det nye MAX_COUNT vårt som ble sendt ut fra tempoveksleren. En CLR ble lagt til i registeret for å tilbakestille MAX_COUNT til en verdi som tilsvarer en 1-sekunders klokkefrekvens.
Clock Divider: En klokkedeler brukes til å bremse klokkeimpulsene til BASYS 3 -kortet, dette gjøres ved å dele klokkefrekvensen med MAX_COUNT -verdien som er endret i tempoveksleren.
Skiftregister: et modifisert 4-bits skiftregister ble brukt til å sende ut en '1' eller høy verdi til LED-kretsen på brødbrettet på den stigende kanten av klokkepulsen. Med 4 lysdioder på brødbrettet, klarte vi å sende ut til bare 1 av de 4 lysdiodene om gangen, etter hverandre, og lage en repeterende 4-takts sekvens. Skiftregisteret ble modifisert slik at 4-bits utdata bare inneholdt 1 høy verdi, dvs. "0001" eller "0100."