版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 目錄</b></p><p><b> 一、設(shè)計(jì)要求</b></p><p><b> 二、設(shè)計(jì)方案1</b></p><p><b> 設(shè)計(jì)需求1</b></p><p> 多功能電子鐘的設(shè)計(jì)方案1</
2、p><p><b> 電子鐘模式1</b></p><p><b> 顯示模式1</b></p><p><b> 選位模式2</b></p><p> 三、各功能模塊設(shè)計(jì)3</p><p><b> 主控模塊3</b&g
3、t;</p><p><b> 主要功能3</b></p><p><b> 源代碼3</b></p><p><b> 計(jì)時(shí)模塊5</b></p><p><b> 主要功能5</b></p><p><b&
4、gt; 源代碼5</b></p><p><b> 鬧鐘模塊8</b></p><p><b> 主要功能8</b></p><p><b> 源代碼8</b></p><p><b> 輔控模塊10</b></p&g
5、t;<p><b> 主要功能11</b></p><p><b> 源代碼11</b></p><p><b> 顯示模塊14</b></p><p><b> 主要功能14</b></p><p><b> 源
6、代碼15</b></p><p><b> 蜂鳴器模塊17</b></p><p><b> 主要功能17</b></p><p><b> 源代碼17</b></p><p><b> 分頻器模塊18</b></p&g
7、t;<p><b> 主要功能18</b></p><p><b> 源代碼18</b></p><p> 四、設(shè)計(jì)實(shí)現(xiàn)過程20</p><p> 五、實(shí)驗(yàn)結(jié)果。討論及心得體會(huì)22</p><p><b> 附錄23</b></p>
8、<p><b> 各模塊仿真圖23</b></p><p><b> AC23</b></p><p> BCD7DIS23</p><p> CHOSE2123</p><p> CHOSE8123</p><p><b> C
9、LKCUT24</b></p><p> COUNT2424</p><p> COUNT6024</p><p><b> KEYEN24</b></p><p><b> MC24</b></p><p><b> SOUND2
10、5</b></p><p><b> SWSC25</b></p><p> TRANSLATE3825</p><p><b> 一、設(shè)計(jì)要求</b></p><p> 1、具有以二十四小時(shí)制計(jì)時(shí)、顯示、整點(diǎn)報(bào)時(shí)、時(shí)間設(shè)置和鬧鐘的功能。</p><p&g
11、t; 2、射擊精度要求為1s。</p><p><b> 二、設(shè)計(jì)方案</b></p><p><b> 設(shè)計(jì)需求</b></p><p> 1. 計(jì)時(shí):正常工作狀態(tài)下每天按24小時(shí)制計(jì)時(shí)并顯示,蜂鳴器無聲,逢整點(diǎn)報(bào)時(shí)。</p><p> 2.較時(shí):在調(diào)時(shí)顯示狀態(tài)下,按下“k鍵”
12、則進(jìn)入“小時(shí)”校準(zhǔn)狀態(tài),此時(shí)按“k鍵”則進(jìn)入“分鐘”校準(zhǔn)狀態(tài),繼續(xù)按“k鍵”則進(jìn)入“秒鐘”校準(zhǔn)狀態(tài),再按k鍵”則反回全部閃爍狀態(tài)。在較時(shí)狀態(tài)時(shí),被較準(zhǔn)的,數(shù)碼管以閃爍顯示,此時(shí)若set鍵值為1則按照4HZ進(jìn)行加時(shí)。</p><p> 3. 整點(diǎn)報(bào)時(shí):蜂鳴器在59分鐘的51、53、55、57秒時(shí)發(fā)出頻率為512hz的低音,在59秒時(shí)發(fā)出1024hz的高音,結(jié)束時(shí)為整點(diǎn)。</p><p
13、> 4. 顯示:要求采用掃描顯示方式驅(qū)動(dòng)8個(gè)LED數(shù)碼管顯示“時(shí)-分-秒”。</p><p> 5. 鬧鐘:鬧鐘定時(shí)時(shí)間到,蜂鳴器發(fā)出周期1秒的“滴、滴”聲,持續(xù)時(shí)間為一分鐘。</p><p> 6. 鬧鐘設(shè)置:在鬧鐘調(diào)時(shí)時(shí)狀態(tài)下,按下“k鍵”則進(jìn)入“小時(shí)”定時(shí)狀態(tài),此時(shí)按“k鍵”則進(jìn)入“分鐘”定時(shí)狀態(tài),繼續(xù)按“k鍵”則進(jìn)入“秒鐘”定時(shí)狀態(tài),再按k
14、鍵”則回到全部閃爍狀態(tài)。在定時(shí)狀態(tài)時(shí),被定時(shí)的,數(shù)碼管以閃爍顯示,此時(shí)若set鍵值為1則按照4HZ進(jìn)行加時(shí)。</p><p> 為了實(shí)現(xiàn)這些功能需要一些小的模塊來實(shí)現(xiàn)不同的功能,小模塊的功能將在下面進(jìn)行介紹。</p><p> 多功能電子鐘的設(shè)計(jì)方案</p><p><b> 電子鐘模式</b></p><p>&
15、lt;b> 顯示模式</b></p><p><b> 選位模式</b></p><p> 系統(tǒng)開啟后,數(shù)碼管正常顯示。Functioswitch鍵按下,開始進(jìn)入計(jì)時(shí)調(diào)時(shí)狀態(tài),在這個(gè)狀態(tài)中,首先全部閃爍顯示,K鍵按下,小時(shí)閃爍,K鍵按下,分鐘閃爍,K鍵按下,秒鐘閃爍。Functioswitch鍵按下,進(jìn)入鬧鐘顯示狀態(tài)。Functioswitch
16、鍵按下,進(jìn)入鬧鐘調(diào)時(shí)狀態(tài),在這個(gè)狀態(tài)中,首先全部閃爍顯示,K鍵按下,小時(shí)閃爍,K鍵按下,分鐘閃爍,K鍵按下,秒鐘閃爍。</p><p><b> 三、各功能模塊設(shè)計(jì)</b></p><p> 電子鐘包括:主控模塊,計(jì)時(shí)模塊,鬧鐘模塊,輔控模塊,顯示模塊,蜂鳴器模塊,分頻器模塊。</p><p><b> 主控模塊</b&g
17、t;</p><p><b> 主要功能</b></p><p> 控制整個(gè)系統(tǒng),輸出現(xiàn)在的狀態(tài),以及按鍵信息。</p><p><b> 源代碼</b></p><p><b> mc.vhd</b></p><p> library iee
18、e;</p><p> use ieee.std_logic_1164.all;</p><p> use ieee.std_logic_arith.all;</p><p> use ieee.std_logic_unsigned.all;</p><p> entity mc is</p><p> po
19、rt(functionswitch,k,set,lightkey: in std_logic;</p><p> chose21,setout: out std_logic;</p><p> lightswitch:buffer std_logic;</p><p> modeout,kmodeout : out std_logic_vector(1 dow
20、nto 0);</p><p> setcs,setcm,setch,setas,setam,setah:out std_logic);</p><p><b> end mc;</b></p><p> architecture work of mc is</p><p> signal mode,kmode:
21、std_logic_vector(1 downto 0);</p><p> signal light,chose21buf:std_logic;</p><p> signal setcount:std_logic_vector(5 downto 0);</p><p><b> begin</b></p><p&g
22、t; process(functionswitch,k,set,lightkey)</p><p><b> begin</b></p><p> if functionswitch'event and functionswitch='1' then</p><p> mode<=mode+'1
23、39;;</p><p><b> end if;</b></p><p> if lightkey'event and lightkey='1' then</p><p> lightswitch<=not lightswitch;</p><p><b> end if
24、;</b></p><p> if mode="01" then</p><p> chose21buf<='0';</p><p><b> else </b></p><p> chose21buf<='1';</p>
25、<p><b> end if;</b></p><p> if k'event and k='1' then</p><p> if mode="01" or mode="11" then</p><p> kmode<=kmode+'1'
26、;</p><p><b> end if;</b></p><p><b> end if;</b></p><p> if set='1' then</p><p> if mode = "01" then</p><p>
27、if kmode="01" then </p><p> setcount<="000001";</p><p> elsif kmode="10" then</p><p> setcount<="000010";</p><p> elsi
28、f kmode="11" then</p><p> setcount<="000100";</p><p><b> else</b></p><p> setcount<="000000";</p><p><b> end i
29、f;</b></p><p> elsif mode = "11" then </p><p> if kmode="01" then </p><p> setcount<="001000";</p><p> elsif kmode="10&q
30、uot; then</p><p> setcount<="010000";</p><p> elsif kmode="11" then </p><p> setcount<="100000";</p><p><b> else</b>
31、</p><p> setcount<="000000";</p><p><b> end if;</b></p><p><b> end if;</b></p><p><b> end if;</b></p><p&
32、gt; if set='0' then </p><p> setcount<="000000";</p><p><b> end if;</b></p><p> setout<=set;</p><p> modeout<=mode;</p&g
33、t;<p> kmodeout<=kmode;</p><p> chose21<=chose21buf;</p><p> setcs<=setcount(0);setcm<=setcount(1);setch<=setcount(2);</p><p> setas<=setcount(3);setam&
34、lt;=setcount(4);setah<=setcount(5);</p><p> end process;</p><p><b> end work;</b></p><p><b> 計(jì)時(shí)模塊</b></p><p><b> 主要功能</b><
35、/p><p> 記錄時(shí)間,正常計(jì)時(shí)。</p><p><b> 源代碼</b></p><p> Count60.vhd</p><p> library ieee;</p><p> use ieee.std_logic_1164.all; </p><p> u
36、se ieee.std_logic_arith.all;</p><p> use ieee.std_logic_unsigned.all;</p><p> entity count60 is</p><p> port( clk ,clr :in std_logic;</p><p> co : out std_logic;
37、 </p><p> outh :out std_logic_vector(7 downto 4);</p><p> outl :out std_logic_vector(3 downto 0)); </p><p> end count60 ;</p><p> archi
38、tecture work of count60 is</p><p> signal bufh:std_logic_vector(7 downto 4);</p><p> signal bufl:std_logic_vector(3 downto 0);</p><p> begin
39、 </p><p> process(clk) </p><p><b> begin</b></p><p> if clr='0' then</p><p> bufh<="0000";</p><p> bufl
40、<="0000";</p><p> elsif(clk'event and clk='1')then</p><p> if(bufh="0101"and bufl="1001")then</p><p><b> co<='1';<
41、;/b></p><p> bufh<="0000";</p><p> bufl<="0000";</p><p> elsif(bufl="1001")then</p><p> bufl<="0000";</p>
42、<p> bufh<=bufh+1;</p><p><b> else</b></p><p> bufl<=bufl+1;</p><p><b> co<='0';</b></p><p><b> end if;</b&
43、gt;</p><p><b> end if;</b></p><p> outh<=bufh;outl<=bufl;</p><p> end process;</p><p><b> end work;</b></p><p> count24.
44、vhd</p><p> library ieee;</p><p> use ieee.std_logic_1164.all; </p><p> use ieee.std_logic_arith.all;</p><p> use ieee.std_logic_unsigned.all;</p><p>
45、 entity count24 is</p><p> port( clk :in std_logic;</p><p> co: out std_logic; </p><p> outh :out std_logic_vector(7 downto 4);</p><p>
46、 outl :out std_logic_vector(3 downto 0)); </p><p> end count24 ;</p><p> architecture a of count24 is</p><p> signal bufh:std_logic_vector(7 downto 4);</p><p>
47、; signal bufl:std_logic_vector(3 downto 0);</p><p> begin </p><p> process(clk) </p><p><b> begin</b></p>
48、<p> if(clk'event and clk='1')then</p><p> if(bufh="0010"and bufl="0011")then</p><p><b> co<='1';</b></p><p> bufh<
49、;="0000";</p><p> bufl<="0000";</p><p> elsif(bufl="1001")then</p><p> bufl<="0000";</p><p> bufh<=bufh+1;</p>
50、;<p><b> else</b></p><p> bufl<=bufl+1;</p><p><b> co<='0';</b></p><p><b> end if;</b></p><p><b> en
51、d if;</b></p><p> outh<=bufh;outl<=bufl;</p><p> end process;</p><p><b> end a;</b></p><p><b> keyen.vhd</b></p><p>
52、; library ieee;</p><p> use ieee.std_logic_1164.all;</p><p> entity keyen is</p><p> port(en, keyin:in std_logic;</p><p> keyout: out std_logic);</p><p&
53、gt; end keyen;</p><p> architecture work of keyen is</p><p><b> begin</b></p><p> process(en,keyin)</p><p><b> begin</b></p><p&g
54、t; if en='1' then </p><p> keyout<=keyin;</p><p><b> else </b></p><p> keyout<='0';</p><p><b> end if;</b></p>
55、<p> end process;</p><p><b> end work;</b></p><p> chose21.vhd</p><p> library ieee;</p><p> use ieee.std_logic_1164.all;</p><p> e
56、ntity chose21 is</p><p> port(clk,add,chose : in std_logic;</p><p> co : out std_logic);</p><p> end chose21;</p><p> architecture work of ch
57、ose21 is</p><p><b> begin</b></p><p> process(chose,clk,add)</p><p><b> begin</b></p><p> if chose='1' then </p><p><
58、;b> co<=clk;</b></p><p><b> else</b></p><p><b> co<=add;</b></p><p><b> end if;</b></p><p> end process;</p&g
59、t;<p><b> end work;</b></p><p><b> 鬧鐘模塊</b></p><p><b> 主要功能</b></p><p> 記錄鬧鐘時(shí)間信息,輸出鬧鐘時(shí)間信息</p><p><b> 源代碼</b>
60、</p><p><b> Keyen.vhd</b></p><p> library ieee;</p><p> use ieee.std_logic_1164.all;</p><p> entity keyen is</p><p> port(en, keyin:in std
61、_logic;</p><p> keyout: out std_logic);</p><p> end keyen;</p><p> architecture work of keyen is</p><p><b> begin</b></p><p> process(en,k
62、eyin)</p><p><b> begin</b></p><p> if en='1' then </p><p> keyout<=keyin;</p><p><b> else </b></p><p> keyout<=&
63、#39;0';</p><p><b> end if;</b></p><p> end process;</p><p><b> end work;</b></p><p> count60.vhd</p><p> library ieee;<
64、/p><p> use ieee.std_logic_1164.all; </p><p> use ieee.std_logic_arith.all;</p><p> use ieee.std_logic_unsigned.all;</p><p> entity count60 is</p><p> po
65、rt( clk ,clr :in std_logic;</p><p> co : out std_logic; </p><p> outh :out std_logic_vector(7 downto 4);</p><p> outl :out std_logic_vector(3 downto
66、0)); </p><p> end count60 ;</p><p> architecture work of count60 is</p><p> signal bufh:std_logic_vector(7 downto 4);</p><p> signal bufl:std_logic_vector(3 do
67、wnto 0);</p><p> begin </p><p> process(clk) </p><p><b> begin</b></p><p> if clr='0' then<
68、/p><p> bufh<="0000";</p><p> bufl<="0000";</p><p> elsif(clk'event and clk='1')then</p><p> if(bufh="0101"and bufl=&qu
69、ot;1001")then</p><p><b> co<='1';</b></p><p> bufh<="0000";</p><p> bufl<="0000";</p><p> elsif(bufl="100
70、1")then</p><p> bufl<="0000";</p><p> bufh<=bufh+1;</p><p><b> else</b></p><p> bufl<=bufl+1;</p><p><b> co&
71、lt;='0';</b></p><p><b> end if;</b></p><p><b> end if;</b></p><p> outh<=bufh;outl<=bufl;</p><p> end process;</p>
72、<p><b> end work;</b></p><p> count24.vhd</p><p> library ieee;</p><p> use ieee.std_logic_1164.all; </p><p> use ieee.std_logic_arith.all;</
73、p><p> use ieee.std_logic_unsigned.all;</p><p> entity count24 is</p><p> port( clk :in std_logic;</p><p> co: out std_logic; </p>&l
74、t;p> outh :out std_logic_vector(7 downto 4);</p><p> outl :out std_logic_vector(3 downto 0)); </p><p> end count24 ;</p><p> architecture a of count24 is</p>&
75、lt;p> signal bufh:std_logic_vector(7 downto 4);</p><p> signal bufl:std_logic_vector(3 downto 0);</p><p> begin </p><p>
76、process(clk) </p><p><b> begin</b></p><p> if(clk'event and clk='1')then</p><p> if(bufh="0010"and bufl="0011")then</p><p&g
77、t;<b> co<='1';</b></p><p> bufh<="0000";</p><p> bufl<="0000";</p><p> elsif(bufl="1001")then</p><p> bu
78、fl<="0000";</p><p> bufh<=bufh+1;</p><p><b> else</b></p><p> bufl<=bufl+1;</p><p><b> co<='0';</b></p>
79、<p><b> end if;</b></p><p><b> end if;</b></p><p> outh<=bufh;outl<=bufl;</p><p> end process;</p><p><b> end a;</b>
80、;</p><p><b> 輔控模塊</b></p><p><b> 主要功能</b></p><p> 處理顯示,以及蜂鳴器的信號(hào)。時(shí)鐘輸入與鬧鐘輸入相比較,組成鬧鐘功能,以及整點(diǎn)報(bào)時(shí)功能。</p><p><b> 源代碼</b></p><
81、p><b> Ac.vhd</b></p><p> library ieee;</p><p> use ieee.std_logic_1164.all;</p><p> use ieee.std_logic_unsigned.all;</p><p> entity ac is</p>
82、<p> port(clk,lightonoff:in std_logic;</p><p> mode,kmode:in std_logic_vector(1 downto 0);</p><p> csh,csl,cmh,cml,chh,chl,ash,asl,amh,aml,ahh,ahl:in std_logic_vector(3 downto 0);</p
83、><p> q0,q1,q2,q3,q4,q5,q6,q7:out std_logic_vector(3 downto 0);</p><p> lightswitch,sound512,sound1024,timeok:out std_logic);</p><p><b> end ac;</b></p><p>
84、 architecture work of ac is</p><p> signal q0b,q1b,q2b,q3b,q4b,q5b,q6b,q7b: std_logic_vector(3 downto 0);</p><p><b> begin</b></p><p> process(chh,cmh,csh,ash,ahh,am
85、h,chl,cml,csl,asl,ahl,aml,mode,kmode,clk)</p><p><b> begin</b></p><p><b> --閃爍功能開始</b></p><p> if mode="00" or mode="01" then </p&g
86、t;<p><b> q0b<=csl;</b></p><p><b> q1b<=csh;</b></p><p> q2b<="1010";</p><p><b> q3b<=cml;</b></p><p&
87、gt;<b> q4b<=cmh;</b></p><p> q5b<="1010";</p><p><b> q6b<=chl;</b></p><p><b> q7b<=chh;</b></p><p> elsif
88、 mode="10" or mode="11" then </p><p><b> q0b<=asl;</b></p><p><b> q1b<=ash;</b></p><p> q2b<="1010";</p><
89、;p><b> q3b<=aml;</b></p><p><b> q4b<=amh;</b></p><p> q5b<="1010";</p><p><b> q6b<=ahl;</b></p><p><
90、b> q7b<=ahh;</b></p><p><b> end if;</b></p><p> if clk ='1' then </p><p> if mode="00" or mode="10" then</p><p>
91、;<b> q0<=q0b;</b></p><p><b> q1<=q1b;</b></p><p><b> q2<=q2b;</b></p><p><b> q3<=q3b;</b></p><p><b&g
92、t; q4<=q4b;</b></p><p><b> q5<=q5b;</b></p><p><b> q6<=q6b;</b></p><p><b> q7<=q7b;</b></p><p><b> else
93、 </b></p><p> case kmode is</p><p> when "01" =></p><p> q0<="1111";</p><p> q1<="1111";</p><p><b>
94、 q2<=q2b;</b></p><p><b> q3<=q3b;</b></p><p><b> q4<=q4b;</b></p><p><b> q5<=q5b;</b></p><p><b> q6<
95、=q6b;</b></p><p><b> q7<=q7b;</b></p><p> when "10" =></p><p><b> q0<=q0b;</b></p><p><b> q1<=q1b;</b&g
96、t;</p><p><b> q2<=q2b;</b></p><p> q3<="1111";</p><p> q4<="1111";</p><p><b> q5<=q5b;</b></p><p&
97、gt;<b> q6<=q6b;</b></p><p><b> q7<=q7b;</b></p><p> when "11" =></p><p><b> q0<=q0b;</b></p><p><b>
98、 q1<=q1b;</b></p><p><b> q2<=q2b;</b></p><p><b> q3<=q3b;</b></p><p><b> q4<=q4b;</b></p><p><b> q5<=
99、q5b;</b></p><p> q6<="1111";</p><p> q7<="1111";</p><p> when others =></p><p> q0<="1111";</p><p> q1
100、<="1111";</p><p> q2<="1111";</p><p> q3<="1111";</p><p> q4<="1111";</p><p> q5<="1111";</p>
101、<p> q6<="1111";</p><p> q7<="1111";</p><p><b> end case;</b></p><p><b> end if;</b></p><p><b> else
102、</b></p><p><b> q0<=q0b;</b></p><p><b> q1<=q1b;</b></p><p><b> q2<=q2b;</b></p><p><b> q3<=q3b;</b&g
103、t;</p><p><b> q4<=q4b;</b></p><p><b> q5<=q5b;</b></p><p><b> q6<=q6b;</b></p><p><b> q7<=q7b;</b></p
104、><p><b> end if;</b></p><p><b> --閃爍功能完畢</b></p><p> --整點(diǎn)報(bào)時(shí)功能開始</p><p> if cmh="0101" and cml="1001" then</p><p&
105、gt; if csh="0101" then</p><p> if csl="0001" or csl="0010" or csl="0101" or csl="0111" then</p><p> sound512<='1' ;</p><
106、;p> elsif csl="1001" then</p><p> sound1024<='1';</p><p><b> else </b></p><p> sound512<='0';</p><p> sound1024<=
107、'0';</p><p><b> end if;</b></p><p><b> end if;</b></p><p><b> end if;</b></p><p> --正點(diǎn)報(bào)時(shí)功能完畢</p><p> --顯示開
108、關(guān)功能開始</p><p> if lightonoff='1' then</p><p> lightswitch<='0';</p><p><b> else </b></p><p> lightswitch<='1';</p>&
109、lt;p><b> end if;</b></p><p> --顯示開關(guān)功能完畢</p><p><b> --鬧鐘功能開始</b></p><p> if chh=ahh and cmh=amh and chl=ahl and cml=aml then</p><p> tim
110、eok<='1';</p><p><b> else</b></p><p> timeok<='0';</p><p><b> end if;</b></p><p><b> --鬧鐘功能完畢</b></p>
111、;<p> end process;</p><p><b> end work;</b></p><p><b> 顯示模塊</b></p><p><b> 主要功能</b></p><p> 處理輔控傳來的顯示信號(hào),在數(shù)碼管上直接的顯示數(shù)字。<
112、;/p><p><b> 源代碼</b></p><p> Chose81.vhd</p><p> library ieee; </p><p> use ieee.std_logic_1164.all;</p><p>
113、 use ieee.std_logic_unsigned.all;</p><p> use ieee.std_logic_arith.all;</p><p> entity chose81 is</p><p> port (d0,d1,d2,d3,d4,d5,d6,d7: in std_logic_vector(3 downto 0);</p>
114、;<p> sel : in std_logic_vector(2 downto 0);</p><p> q: out std_logic_vector(3 downto 0)</p><p><b> );</b></p><p> end chose81;</p><p> archit
115、ecture behave of chose81 is</p><p><b> begin</b></p><p> process(sel)</p><p><b> begin </b></p><p> case sel is</p><p> when &
116、quot;000"=>q<=d0;</p><p> when "001"=>q<=d1;</p><p> when "010"=>q<=d2;</p><p> when "011"=>q<=d3;</p><p>
117、 when "100"=>q<=d4;</p><p> when "101"=>q<=d5;</p><p> when "110"=>q<=d6;</p><p> when "111"=>q<=d7;</p>&
118、lt;p> when others=>q<="XXXX";</p><p><b> end case;</b></p><p> end process;</p><p> end behave;</p><p> BCD7DIS.vhd</p><p
119、> library ieee;</p><p> use ieee.std_logic_1164.all;</p><p> entity bcd7dis is</p><p> port(bcdm :in std_logic_vector(3 downto 0);</p><p> a,b,c,d,e,f,g : out s
120、td_logic);</p><p> end bcd7dis;</p><p> architecture art of bcd7dis is</p><p> signal w : std_logic_vector(6 downto 0);</p><p><b> begin</b></p>
121、<p> process(bcdm)</p><p><b> begin</b></p><p> a<=w(6);b<=w(5);c<=w(4);d<=w(3);e<=w(2);f<=w(1);g<=w(0);</p><p> case bcdm is </p>&
122、lt;p> when "0000" =>w<= "1111110";</p><p> when "0001" =>w<= "0110000";</p><p> when "0010" =>w<= "1101101";&l
123、t;/p><p> when "0011" =>w<= "1111001";</p><p> when "0100" =>w<= "0110011";</p><p> when "0101" =>w<= "10110
124、11";</p><p> when "0110" =>w<= "1011111";</p><p> when "0111" =>w<= "1110000";</p><p> when "1000" =>w<=
125、"1111111";</p><p> when "1001" =>w<= "1111011";</p><p> when "1111" =>w<= "0000000";</p><p> when others =>w<=
126、 "0000001";</p><p><b> end case;</b></p><p> end process;</p><p><b> end art;</b></p><p><b> SWSC.vHD</b></p>&
127、lt;p> library ieee; </p><p> use ieee.std_logic_1164.all;</p><p> use ieee.std_logic_unsigned.all;</p><p> entity swsc is</p><p> port (en,clk:in std_logic;
128、</p><p> q: out std_logic_vector(2 downto 0));</p><p><b> end swsc;</b></p><p> architecture work of swsc is</p><p><b> begin</b></p>
129、<p> process(clk,en)</p><p> variable x:std_logic_vector(2 downto 0);</p><p><b> begin </b></p><p> if (clk'event and clk='1') then</p><
130、;p> if en='1' then</p><p> if(x<7) then</p><p><b> x:=x+1;</b></p><p><b> else </b></p><p> x:=(others=>'0');</
131、p><p><b> end if;</b></p><p><b> end if;</b></p><p><b> end if;</b></p><p><b> q<=x;</b></p><p> end p
132、rocess;</p><p><b> end work;</b></p><p> translat38.vhd</p><p> library ieee;</p><p> use ieee.std_logic_1164.all;</p><p> entity translat
133、e38 is </p><p> port(ind:in std_logic_vector(2 downto 0);</p><p> a,b,c,d,e,f,g,h:out std_logic);</p><p> end translate38;</p><p> architecture work of translate38
134、is</p><p> signal w :std_logic_vector(7 downto 0);</p><p><b> begin </b></p><p> process(ind)</p><p><b> begin</b></p><p> a&l
135、t;=w(7);b<=w(6);c<=w(5);d<=w(4);e<=w(3);f<=w(2);g<=w(1);h<=w(0);</p><p> case ind is</p><p> when "000" =>w<= "00000001";</p><p> w
136、hen "001" =>w<= "00000010";</p><p> when "010" =>w<= "00000100";</p><p> when "011" =>w<= "00001000";</p>&
137、lt;p> when "100" =>w<= "00010000";</p><p> when "101" =>w<= "00100000";</p><p> when "110" =>w<= "01000000";&l
138、t;/p><p> when "111" =>w<= "10000000";</p><p> when others =>w<= "XXXXXXXX";</p><p><b> end case;</b></p><p> end
139、 process;</p><p><b> end work;</b></p><p><b> 蜂鳴器模塊</b></p><p><b> 主要功能</b></p><p> 處理輔控傳來的蜂鳴器信號(hào),輸出蜂鳴器直接信號(hào)。</p><p>
140、<b> 源代碼</b></p><p><b> Sound.vhd</b></p><p> library ieee;</p><p> use ieee.std_logic_1164.all;</p><p> use ieee.std_logic_arith.all;</p
141、><p> use ieee.std_logic_unsigned.all;</p><p> entity sound is</p><p> port(clk1,timeok,clk512,clk1024,en512,en1024:in std_logic;</p><p> ring:out std_logic);</p>
142、;<p> end sound;</p><p> architecture work of sound is</p><p><b> begin</b></p><p> process(en512,en1024,clk512,clk1024,clk1,timeok)</p><p><b
143、> begin</b></p><p> if clk512='1' and en512='1' then</p><p> ring<=clk512;
144、 </p><p> elsif clk1024='1' and en1024='1' then</p><p> ring<=clk1024;</p><p> elsif timeok='1' and clk1='1' then<
145、/p><p> ring<=clk1024;</p><p><b> else</b></p><p> ring<='0';</p><p><b> end if;</b></p><p> end process;</p>
146、<p><b> end work;</b></p><p><b> 分頻器模塊</b></p><p><b> 主要功能</b></p><p> 系統(tǒng)輸入只要求一個(gè)1024HZ的脈沖信號(hào),分頻器模塊將1024HZ分為1HZ,4HZ,512HZ,1024HZ,供各個(gè)模塊使用
147、。</p><p><b> 源代碼</b></p><p> Clkcut.vhd</p><p> library ieee;</p><p> use ieee.std_logic_1164.all;</p><p> use ieee.std_logic_arith.all;&l
148、t;/p><p> use ieee.std_logic_unsigned.all;</p><p> entity clkcut is</p><p> port(clk:in std_logic;</p><p> clk1,clk4,clk512,clk1024:out std_logic);</p><p>
149、; end clkcut;</p><p> architecture work of clkcut is</p><p> signal w:std_logic_vector(9 downto 0);</p><p><b> begin</b></p><p> process(clk)</p>
150、<p><b> begin</b></p><p> if clk'event and clk='1' then</p><p><b> w<=w+'1';</b></p><p><b> end if;</b></p&g
151、t;<p> clk1<=w(9);</p><p> clk4<=w(7);</p><p> clk512<=w(0);</p><p> clk1024<=clk;</p><p> end process;</p><p><b> end work;
152、</b></p><p><b> 四、設(shè)計(jì)實(shí)現(xiàn)過程</b></p><p> 在系統(tǒng)設(shè)計(jì)之前設(shè)想了這個(gè)程序的答題思路,最終形成了電子鐘的第一版本設(shè)想圖</p><p> 但是在編程的過程中發(fā)現(xiàn)對(duì)于按鍵的處理信息并不能做的很好,所以加上了kenen塊,形成了電子鐘的最終版本,也是連線形成頂層文件的根據(jù)。</p>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)電課程設(shè)計(jì)--電子鐘
- 數(shù)電課程設(shè)計(jì)報(bào)告---數(shù)字電子鐘
- 數(shù)電數(shù)字電子鐘課程設(shè)計(jì)
- 數(shù)電課程設(shè)計(jì)--數(shù)字電子鐘
- 數(shù)電課程設(shè)計(jì)--數(shù)字電子鐘
- 數(shù)電課程設(shè)計(jì)--數(shù)字電子鐘的設(shè)計(jì)報(bào)告
- 數(shù)電數(shù)字電子鐘課程設(shè)計(jì) (2)
- 數(shù)電課程設(shè)計(jì)--- 多功能電子鐘設(shè)計(jì)
- 數(shù)電課程設(shè)計(jì)----數(shù)字電子鐘的設(shè)計(jì)
- 多功能數(shù)字電子鐘-數(shù)電課程設(shè)計(jì)
- 數(shù)電課程設(shè)計(jì)---數(shù)字式電子鐘
- 基于vhdl語言的簡(jiǎn)易電子鐘課程設(shè)計(jì)
- 數(shù)電課程設(shè)計(jì)---12時(shí)制數(shù)字顯示電子鐘
- 電子鐘課程設(shè)計(jì)----數(shù)字電子鐘的設(shè)計(jì)
- 數(shù)字電子鐘課程設(shè)計(jì)報(bào)告
- 電子時(shí)鐘課程設(shè)計(jì)--基于vhdl的電子鐘的設(shè)計(jì)
- eda電子鐘課程設(shè)計(jì)----電子鐘的設(shè)計(jì)
- 數(shù)字電子鐘課程設(shè)計(jì)報(bào)告
- 數(shù)字電子鐘課程設(shè)計(jì)報(bào)告
- 數(shù)電課程設(shè)計(jì)---數(shù)字電子鐘邏輯電路設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論