《蜂鸣器发声实验的VHDL程序》由会员分享,可在线阅读,更多相关《蜂鸣器发声实验的VHDL程序(4页珍藏版)》请在金锄头文库上搜索。
1、--深圳市21EDA电子-在开发板上面的J12处的跳冒设置到BELL端口(蜂鸣器)-视频教程适合我们21EDA电子的所有学习板LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY yinyue IS PORT( CLK:IN STD_LOGIC; SPEAKER:OUT STD_LOGIC);END ENTITY;ARCHITECTURE SONG OF YINYUE ISSIGNAL DRIVER,ORIGIN:STD_LOGIC_VECTOR(12 DOWNTO 0);SIGNAL C
2、OUNTER:INTEGER RANGE 0 TO 140;SIGNAL COUNTER1:INTEGER RANGE 0 TO 3;SIGNAL COUNTER2:INTEGER RANGE 1 TO 100000000;SIGNAL DIGIT :STD_LOGIC_VECTOR(6 DOWNTO 0);SIGNAL COUNT :STD_LOGIC_VECTOR(1 DOWNTO 0); SIGNAL CARRIER,CLK_4MHZ,CLK_4HZ:STD_LOGIC; BEGINPROCESS(CLK)BEGINIF CLKEVENT AND CLK=1 THEN IF COUNTE
3、R1=1 THEN CLK_4MHZ=1; COUNTER1=2; ELSIF COUNTER1=3 THEN CLK_4MHZ=0; COUNTER1=0; ELSE COUNTER1=COUNTER1+1; END IF; IF COUNTER2=5000000 THEN CLK_4HZ=1; COUNTER2=5000001; ELSIF COUNTER2=10000000 THEN CLK_4HZ=0; COUNTER2=1; ELSE COUNTER2=COUNTER2+1; END IF;END IF;END PROCESS;PROCESS(CLK_4MHZ)BEGIN IF CL
4、K_4MHZEVENT AND CLK_4MHZ=1 THEN IF DRIVER=11111111111111THEN CARRIER=1; DRIVER=ORIGIN;ELSEDRIVER=DRIVER+1;CARRIER=0;END IF;END IF;END PROCESS;PROCESS(CARRIER)BEGINIF CARRIEREVENT AND CARRIER=1 THENCOUNT=COUNT+1;IF COUNT=00THENSPEAKER=1;ELSESPEAKER=0;END IF;END IF;END PROCESS;PROCESS(CLK_4HZ)BEGINIF
5、CLK_4HZEVENT AND CLK_4HZ=1 THEN IF COUNTER=140 THENCOUNTER=0;ELSE COUNTERDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGITDIGIT=0101000;