Stap 4: Klankmodule
De soundmodule maakt gebruik van de LilyPad zoemer. Het ingangen van de belangrijkste module ontvangt, en als aan bepaalde voorwaarden wordt voldaan, het klinkt het alarm. De belangrijkste module herkent als het alarm is gewapend (gewapende staat = 1) en als het licht raken van de infraroodsensor van het pauze-beam is onderbroken terwijl het systeem was bewapend (geactiveerd staat = 1). Als beide 1, dan het alarm klinkt.
De code is als volgt:
-code in alarm module is ontleend aan
http://www.fpga4fun.com/MusicBox1.html en gewijzigde
module alarmSound (spreker, clk, triggeredState);
input clk;
invoer triggeredState;
uitgang luidspreker;
met de parameter clkdivider = 25000000/440/2;
reg [23:0] Toon;
altijd posedge clk)
if (triggeredState == 1)
Toon < = Toon + 1;
reg [14:0] teller;
altijd posedge clk)
if (triggeredState == 1)
beginnen
if (teller == 0)
counter < = (Toon [23]? clkdivider-1: clkdivider/2-1);
anders
counter < = teller-1;
einde
rbv spreker;
altijd posedge clk)
if (triggeredState == 1)
if (teller == 0)
spreker < = ~ spreker;
endmodule