版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> XXXXXX學(xué)院</b></p><p><b> 課 程 設(shè) 計(jì)</b></p><p> 題 目:EDA拔河游戲機(jī)課程設(shè)計(jì) </p><p> 作 者: XXX </p><p> 專 業(yè): 自動(dòng)化
2、 </p><p> 班 級(jí): XXX</p><p> 學(xué) 號(hào): XXXXX </p><p> 指導(dǎo)老師: XXX </p><p> 2012年12月15日</p><p> 主要內(nèi)容、基本要求、主要參考資料等</p>&
3、lt;p><b> 主要內(nèi)容:</b></p><p> 電子拔河游戲機(jī)是一種能容納甲乙雙方參賽游戲電路。由一排發(fā)光二極管表示拔河的“電子繩”。由甲乙雙方通過按紐開關(guān)使發(fā)光二極管向一方的終點(diǎn)延伸,當(dāng)延伸到某方的最后一個(gè)發(fā)光二極管時(shí), 則該方獲勝,連續(xù)比賽多局以定勝負(fù)。</p><p><b> 基本要求:</b></p>
4、<p> 1、設(shè)計(jì)一個(gè)能進(jìn)行拔河游戲的電路。</p><p> 2、電路使用9個(gè)發(fā)光二極管,開機(jī)后只有中間一個(gè)發(fā)亮,此即拔河的中心點(diǎn)。</p><p> 3、游戲雙方各持一個(gè)按鈕,迅速地、不斷地按動(dòng),產(chǎn)生脈沖,誰按得快,亮點(diǎn)就向誰的方向移動(dòng),每按一次,亮點(diǎn)移動(dòng)一次。</p><p> 4、亮點(diǎn)移到任一方終端二極管時(shí),這一方就獲勝,此時(shí)雙方按鈕均無
5、作用,輸出保持,只有復(fù)位后才使亮點(diǎn)恢復(fù)到中心。</p><p> 5、用數(shù)碼管顯示獲勝者的盤數(shù)。</p><p><b> 主要參考資料:</b></p><p> [1] 潘松著.EDA技術(shù)實(shí)用教程(第二版). 北京:科學(xué)出版社,2005.</p><p> [2] 康華光主編.電子技術(shù)基礎(chǔ) 模擬部分. 北京:
6、高教出版社,2006.</p><p> [3] 閻石主編.數(shù)字電子技術(shù)基礎(chǔ). 北京:高教出版社,2003.</p><p><b> 一、總體設(shè)計(jì)思想</b></p><p><b> 1.基本原理</b></p><p> 由設(shè)計(jì)內(nèi)容可知,需要一個(gè)十進(jìn)制的計(jì)數(shù)器,用于對(duì)雙方按鈕的次數(shù)計(jì)數(shù)
7、,并通過譯碼器顯示在數(shù)碼管上。顯視控制部分設(shè)計(jì)要求在發(fā)光二極管上顯示游戲狀態(tài),雙方每按十次,亮點(diǎn)向先按十次移動(dòng)一次,對(duì)脈沖進(jìn)行計(jì)數(shù),每十次移一位。需接入一個(gè)清零端,用于復(fù)位。將以上程序組裝起來。</p><p><b> 2.設(shè)計(jì)框圖</b></p><p> 圖1. 拔河機(jī)游戲機(jī)框圖</p><p> 二、設(shè)計(jì)步驟和調(diào)試過程</p
8、><p><b> 1、總體設(shè)計(jì)電路</b></p><p> 總體電路圖和仿真圖如圖(25)所示,由仿真圖可知,此電路設(shè)計(jì)無誤,可以實(shí)現(xiàn)按動(dòng)A、B兩個(gè)按鍵時(shí),分別產(chǎn)生兩個(gè)脈沖信號(hào),經(jīng)整形后分別加到可逆計(jì)數(shù)器上,可逆計(jì)數(shù)器輸出的代碼經(jīng)譯碼器譯碼后驅(qū)動(dòng)電平指示燈點(diǎn)亮并產(chǎn)生位移,當(dāng)亮點(diǎn)移到任何一方終端后,由于控制電路的作用,使這一狀態(tài)被鎖定,雙方按鍵產(chǎn)生的輸入脈沖不起作用
9、。如按動(dòng)復(fù)位鍵C,亮點(diǎn)又回到中點(diǎn)位置,再次按C鍵則比賽又可重新開始。</p><p><b> 圖2. 電路圖</b></p><p> 2、模塊設(shè)計(jì)和相應(yīng)模塊程序</p><p><b> 1.頂層文件</b></p><p> library IEEE;</p><p
10、> use IEEE.std_logic_1164.all;</p><p> use IEEE.std_logic_unsigned.all;</p><p> entity bahe is</p><p><b> port(</b></p><p> player1,player2:in std_l
11、ogic;--玩家1,2輸入</p><p> clk_in:in std_logic;--clk_in(1MHZ)</p><p> reset:in std_logic;--重置鍵</p><p> row : out std_logic_vector(7 downto 0);</p><p> col : out
12、 std_logic_vector(7 downto 0);</p><p> led:out std_logic_vector(7 downto 0);--繩子</p><p> cats:out std_logic_vector(6 downto 0);--比分</p><p> q:out std_logic_vector(5 downto 0);
13、--數(shù)碼管控制</p><p> mus:out std_logic);--蜂鳴輸出</p><p><b> end bahe;</b></p><p> architecture body_bahe of bahe is</p><p><b> --計(jì)數(shù)模塊</b><
14、;/p><p> component count</p><p><b> port(</b></p><p> clk_1:in std_logic;--1HZ輸入</p><p> sw:in std_logic;--狀態(tài)開關(guān)</p><p> player1,player2:
15、in std_logic;--選手輸入</p><p> sum1,sum2:out std_logic_vector(4 downto 0));--計(jì)數(shù)結(jié)果輸出</p><p> end component;</p><p><b> --比較模塊</b></p><p> component cmp&l
16、t;/p><p><b> port(</b></p><p> clk_100:in std_logic;--100hz</p><p> clk_1:in std_logic;--1hz</p><p> sw:out std_logic;--狀態(tài)開關(guān)輸出</p><p> r
17、eset:in std_logic;--重置</p><p> start:in std_logic;--開始</p><p> sum1,sum2:in std_logic_vector(4 downto 0);--計(jì)數(shù)結(jié)果輸入</p><p> music_begin:out std_logic;--音樂</p><p
18、> record1,record2:out std_logic_vector(1 downto 0);--比分輸出</p><p> lights:out std_logic_vector(2 downto 0));--拔河繩子顯示</p><p> end component;</p><p><b> --音樂模塊</b>
19、;</p><p> component music</p><p><b> port(</b></p><p> reset:in std_logic;--重置</p><p> clk:in std_logic;--1MHz</p><p> clk_5
20、:in std_logic;--5hz</p><p> music_begin:in std_logic;--音樂開始</p><p> mus:out std_logic);</p><p> end component;</p><p><b> --譯碼模塊</b><
21、/p><p> component decode</p><p><b> port(</b></p><p> clk_in:in std_logic;--1mHZ</p><p> record1,record2:in std_logic_vector(1 downto 0);--比分輸入</p>
22、;<p> lights:in std_logic_vector(2 downto 0);--拔河繩子輸入</p><p> led:out std_logic_vector(7 downto 0);--輸出到LED</p><p> q:buffer std_logic_vector(5 downto 0);--數(shù)碼管控制</p><p&g
23、t; cats:out std_logic_vector(6 downto 0)--數(shù)碼管顯示比分</p><p><b> );</b></p><p> end component;</p><p><b> --倒計(jì)時(shí)模塊 </b></p><p> component daoj
24、ishi</p><p><b> port(</b></p><p> clk_in,clk_1,reset:in std_logic;</p><p> row : out std_logic_vector(7 downto 0);</p><p> col : out std_logic_vector(7
25、downto 0);</p><p> start: out std_logic</p><p><b> );</b></p><p> end component;</p><p><b> --分頻器輸出</b></p><p> signal clk_10
26、0,clk_5,clk_1:std_logic;--時(shí)鐘信號(hào)</p><p><b> --計(jì)數(shù)器輸出</b></p><p> signal sum1,sum2:std_logic_vector(4 downto 0);--計(jì)數(shù)結(jié)果</p><p><b> --比較器輸出</b></p>&l
27、t;p> signal sw:std_logic;--狀態(tài)開關(guān)</p><p> signal record1,record2:std_logic_vector(1 downto 0);--比分</p><p> signal lights:std_logic_vector(2 downto 0);--繩子</p><p> signal
28、 music_begin:std_logic;</p><p><b> --解碼器輸出</b></p><p> signal tmp_led:std_logic_vector(7 downto 0);--LED顯示</p><p> signaltmp_q:std_logic_vector(5 downto 0);--數(shù)碼管控
29、制</p><p> signal tmp_cat:std_logic_vector(6 downto 0);--數(shù)碼管顯示比分</p><p><b> --倒計(jì)時(shí)器輸出</b></p><p> signal tmp_start:std_logic;</p><p><b> begin<
30、/b></p><p> cats<=tmp_cat;</p><p><b> q<=tmp_q;</b></p><p> led<=tmp_led;</p><p> div:division port map(clk_in=>clk_in,clk_100=>clk_1
31、00,clk_5=>clk_5,clk_1=>clk_1);</p><p> cnt:count port map(</p><p> clk_1=>clk_1,sw=>sw,player1=>player1,player2=>player2,</p><p> sum1=>sum1,sum2=>sum2);
32、</p><p> com:cmp port map(</p><p> clk_100=>clk_100,clk_1=>clk_1,sw=>sw,reset=>reset,</p><p> start=>tmp_start,sum1=>sum1,sum2=>sum2,music_begin=>music_b
33、egin,</p><p> record1=>record1,record2=>record2,lights=>lights);</p><p> dec:decode port map(</p><p> clk_in=>clk_in,record1=>record1,record2=>record2,</p&g
34、t;<p> lights=>lights,led=>tmp_led,q=>tmp_q,cats=>tmp_cat);</p><p> mu:music port map(</p><p> reset=>reset,clk=>clk_in,clk_5=>clk_5,</p><p> music
35、_begin=>music_begin,mus=>mus);</p><p> dao:daojishi port map(</p><p> clk_in=>clk_in,clk_1=>clk_1,reset=>reset,</p><p> start=>tmp_start,col=>col,row=>ro
36、w);</p><p> end body_bahe;</p><p><b> 2.CMP模塊</b></p><p> library IEEE;</p><p> use IEEE.std_logic_1164.all;</p><p> use IEEE.std_logic_un
37、signed.all;</p><p> entity cmp is</p><p> port(clk_100:in std_logic;--100HZ輸入</p><p> clk_1:in std_logic;--1HZ輸入</p><p> reset:in std_logic;
38、--重置</p><p> start:in std_logic;--開始</p><p> sum1,sum2:in std_logic_vector(4 downto 0);--計(jì)數(shù)輸入</p><p> record1,record2:out std_logic_vector(1 downto 0);--比分輸出</p&g
39、t;<p> music_begin:out std_logic;--音樂開始</p><p> sw:out std_logic;--狀態(tài)輸出</p><p> lights:out std_logic_vector(2 downto 0));--繩子狀態(tài)</p><p><b> end c
40、mp;</b></p><p> architecture body_cmp of cmp is</p><p> signal tmp_record1:std_logic_vector(1 downto 0);--比分</p><p> signal tmp_record2:std_logic_vector(1 downto 0);</
41、p><p> signal tmp:std_logic_vector(2 downto 0);--繩子狀態(tài)</p><p> signal tmp_sta:std_logic;--狀態(tài)</p><p> signal s1,s2:std_logic_vector(4 downto 0);--計(jì)數(shù)</p><p&g
42、t;<b> begin </b></p><p> record1<=tmp_record1;</p><p> record2<=tmp_record2;</p><p> lights<=tmp;</p><p> sw<=tmp_sta;</p><p>
43、 process(clk_100)--判斷比賽狀態(tài)</p><p><b> begin</b></p><p> if(start='1') then</p><p> if(clk_100'event and clk_100='1') then</p>&l
44、t;p> tmp_sta<='1';</p><p><b> end if;</b></p><p><b> end if;</b></p><p> if(clk_100'event and clk_100='1') then--任意比分到3,比賽結(jié)
45、束,開始播放音樂</p><p> if(tmp_record1="11" or tmp_record2="11") then</p><p> tmp_sta<='0';</p><p> music_begin<='1';</p><p><
46、b> end if;</b></p><p> if(tmp="001" or tmp="111") then --繩子到頭,進(jìn)入等待狀態(tài)</p><p> tmp_sta<='0';</p><p><b> end if;</b></p&g
47、t;<p> if(reset='1') then--復(fù)位,狀態(tài)歸零</p><p> tmp_sta<='0';</p><p> music_begin<='0';</p><p><b> end if;</b></p><
48、p><b> end if;</b></p><p> end process;</p><p><b> s1<=sum1;</b></p><p> s2<=sum2;</p><p> process(clk_1,reset)--控制繩子移位&l
49、t;/p><p><b> begin</b></p><p> if(reset='1') then</p><p> tmp<="100";--繩子初始狀態(tài)為100</p><p> tmp_record1<="00";&
50、lt;/p><p> tmp_record2<="00";</p><p><b> else</b></p><p> if(clk_1'event and clk_1='1') then</p><p> if(tmp_sta='1') t
51、hen</p><p> if(s1>s2) then tmp<=tmp-'1';--繩子左移</p><p> elsif(s1=s2) then tmp<=tmp;--繩子保持原狀</p><p> else tmp<=tmp+'1';--繩子右移</p><p
52、><b> end if;</b></p><p><b> else</b></p><p> if(tmp="001") then--繩子到左盡頭,左計(jì)分器加1</p><p> tmp_record1<=tmp_record1+'1';</p&g
53、t;<p> tmp<="100";</p><p> elsif(tmp="111") then--繩子到右盡頭,右記分器加1,</p><p> tmp_record2<=tmp_record2+'1';</p><p> tmp<="100&qu
54、ot;;</p><p><b> end if;</b></p><p> end if;</p><p><b> end if;</b></p><p><b> end if;</b></p><p> end process
55、;</p><p> end body_cmp;</p><p><b> 3.COUT模塊</b></p><p> use IEEE.std_logic_1164.all;</p><p> use IEEE.std_logic_unsigned.all;</p><p> enti
56、ty count is</p><p> library IEEE;</p><p> port(clk_1:in std_logic;--1HZ輸入 </p><p> sw:in std_logic;--狀態(tài)判斷輸入</p><p> player1,player2:in std_logic;
57、--選手輸入</p><p> sum1,sum2:out std_logic_vector(4 downto 0));--計(jì)數(shù)輸出</p><p> end count;</p><p> architecture body_count of count is</p><p> signal p1,p2:std_logic
58、_vector(4 downto 0);--計(jì)數(shù)輸出</p><p><b> begin</b></p><p><b> sum1<=p1;</b></p><p><b> sum2<=p2;</b></p><p> process(playe
59、r1,player2,sw,clk_1)</p><p><b> begin</b></p><p> if(sw='1') then--處于比賽狀態(tài)</p><p> if(clk_1='0') then</p><p> if(player1'even
60、t and player1='1') then</p><p> p1<=p1+'1';</p><p><b> end if;</b></p><p> if(player2'event and player2='1') then</p><p>
61、 p2<=p2+'1';</p><p><b> end if;</b></p><p><b> else</b></p><p> p1<="00000";</p><p> p2<="00000";</
62、p><p> end if;--比賽狀態(tài)結(jié)束</p><p> else p1<="00000";</p><p> p2<="00000";</p><p><b> end if;</b></p><p> end p
63、rocess;</p><p> end body_count;</p><p> 4.daojishi模塊</p><p> library IEEE;</p><p> use IEEE.std_logic_1164.all;</p><p> use IEEE.std_logic_unsigned.al
64、l;</p><p> entity daojishi is</p><p> port(clk_1,clk_in,reset: in std_logic;</p><p> row : out std_logic_vector(7 downto 0);</p><p> col : out std_logic_vector(7 do
65、wnto 0);</p><p> start : out std_logic);</p><p> end daojishi;</p><p> architecture body_daojishi of daojishi is</p><p> type state is (s0,s1,s2,s3,s4,s5,s6,s7,s8,s
66、9,s10);</p><p> signal present_state:state:=s10; </p><p> signal num:std_logic_vector(2 downto 0):="000";</p><p><b> begin</b></p><p> p3:proc
67、ess(clk_in)</p><p><b> begin</b></p><p> if clk_in'event and clk_in='1' then</p><p> if num="101" then num<="000";</p><p
68、> else num<=num+1;</p><p> case present_state is</p><p><b> when s9=></b></p><p> case num is</p><p> when "000"=> col<="
69、11111111"; row<="11111111";</p><p> when "001"=> col<="11011111"; row<="01110100";</p><p> when "010"=> col<="1110
70、1111"; row<="01010100";</p><p> when "011"=> col<="11110111"; row<="01010100";</p><p> when "100"=> col<="11111011
71、"; row<="01111100";</p><p> when others=> col<="00000000"; row<="00000000";</p><p><b> end case;</b></p><p><b> w
72、hen s8=></b></p><p> case num is</p><p> when "000"=> col<="11111111"; row<="11111111";</p><p> when "001"=> col<=
73、"11011111"; row<="01111100";</p><p> when "010"=> col<="11101111"; row<="01010100";</p><p> when "011"=> col<=&quo
74、t;11110111"; row<="01010100";</p><p> when "100"=> col<="11111011"; row<="01111100";</p><p> when others=> col<="00000000&qu
75、ot;; row<="00000000";</p><p><b> end case;</b></p><p><b> when s7=></b></p><p> case num is</p><p> when "000"=>
76、; col<="11111111"; row<="11111111";</p><p> when "001"=> col<="11011111"; row<="01000000";</p><p> when "010"=> co
77、l<="11101111"; row<="01000000";</p><p> when "011"=> col<="11110111"; row<="01000000";</p><p> when "100"=> col<
78、;="11111011"; row<="01111100";</p><p> when others=> col<="00000000"; row<="00000000";</p><p><b> end case;</b></p><p
79、><b> when s6=></b></p><p> case num is</p><p> when "000"=> col<="11111111"; row<="11111111";</p><p> when "001&quo
80、t;=> col<="11011111"; row<="01111100";</p><p> when "010"=> col<="11101111"; row<="01010100";</p><p> when "011"=&
81、gt; col<="11110111"; row<="01010100";</p><p> when "100"=> col<="11111011"; row<="01011100";</p><p> when others=> col<=&
82、quot;00000000"; row<="00000000";</p><p><b> end case;</b></p><p><b> when s5=></b></p><p> case num is</p><p> when &qu
83、ot;000"=> col<="11111111"; row<="11111111";</p><p> when "001"=> col<="11011111"; row<="01110100";</p><p> when "0
84、10"=> col<="11101111"; row<="01010100";</p><p> when "011"=> col<="11110111"; row<="01010100";</p><p> when "100&q
85、uot;=> col<="11111011"; row<="01011100";</p><p> when others=> col<="00000000"; row<="00000000";</p><p><b> end case;</b>&
86、lt;/p><p><b> when s4=></b></p><p> case num is</p><p> when "000"=> col<="11111111"; row<="11111111";</p><p> wh
87、en "001"=> col<="11011111"; row<="01110000";</p><p> when "010"=> col<="11101111"; row<="00010000";</p><p> when &
88、quot;011"=> col<="11110111"; row<="00010000";</p><p> when "100"=> col<="11111011"; row<="01111100";</p><p> when other
89、s=> col<="00000000"; row<="00000000";</p><p><b> end case;</b></p><p><b> when s3=></b></p><p> case num is</p><
90、;p> when "000"=> col<="11111111"; row<="11111111";</p><p> when "001"=> col<="11011111"; row<="01010100";</p><p&g
91、t; when "010"=> col<="11101111"; row<="01010100";</p><p> when "011"=> col<="11110111"; row<="01010100";</p><p>
92、when "100"=> col<="11111011"; row<="01111100";</p><p> when others=> col<="00000000"; row<="00000000";</p><p><b> end
93、case;</b></p><p><b> when s2=></b></p><p> case num is</p><p> when "000"=> col<="11111111"; row<="11111111";</p>
94、;<p> when "001"=> col<="11011111"; row<="01011100";</p><p> when "010"=> col<="11101111"; row<="01010100";</p>&
95、lt;p> when "011"=> col<="11110111"; row<="01010100";</p><p> when "100"=> col<="11111011"; row<="01110100";</p><p
96、> when others=> col<="00000000"; row<="00000000";</p><p><b> end case;</b></p><p><b> when s1=></b></p><p> case num i
97、s</p><p> when "000"=> col<="11111111"; row<="11111111";</p><p> when "001"=> col<="11011111"; row<="00000000";<
98、;/p><p> when "010"=> col<="11101111"; row<="00000000";</p><p> when "011"=> col<="11110111"; row<="00000000";</p&
99、gt;<p> when "100"=> col<="11111011"; row<="01111100";</p><p> when others=> col<="00000000"; row<="00000000";</p><p>
100、;<b> end case;</b></p><p><b> when s0=></b></p><p> case num is</p><p> when "000"=> col<="11111111"; row<="11111111
101、";</p><p> when "001"=> col<="11011111"; row<="01111100";</p><p> when "010"=> col<="11101111"; row<="01000100&quo
102、t;;</p><p> when "011"=> col<="11110111"; row<="01000100";</p><p> when "100"=> col<="11111011"; row<="01111100";&
103、lt;/p><p> when others=> col<="00000000"; row<="00000000";</p><p><b> end case;</b></p><p> when others=></p><p> case num
104、is</p><p> when "000"=> col<="00000000"; row<="00000000";</p><p> when "001"=> col<="00000000"; row<="00000000";&l
105、t;/p><p> when "010"=> col<="00000000"; row<="00000000";</p><p> when "011"=> col<="00000000"; row<="00000000";</p
106、><p> when "100"=> col<="00000000"; row<="00000000";</p><p> when others=> col<="00000000"; row<="00000000";</p><p&g
107、t;<b> end case;</b></p><p><b> end case;</b></p><p><b> end if;</b></p><p><b> end if;</b></p><p> end process p3;&
108、lt;/p><p> p4:process(clk_1)</p><p><b> begin</b></p><p> if reset='1' then present_state<=s10;start<='0';</p><p><b> else <
109、/b></p><p> if clk_1'event and clk_1='1' then</p><p> case present_state is</p><p> when s10=> present_state<=s9;start<='0';</p><p>
110、 when s9=> present_state<=s8;start<='0';</p><p> when s8=> present_state<=s7;start<='0';</p><p> when s7=> present_state<=s6;start<='0';&
111、lt;/p><p> when s6=> present_state<=s5;start<='0';</p><p> when s5=> present_state<=s4;start<='0';</p><p> when s4=> present_state<=s3;star
112、t<='0';</p><p> when s3=> present_state<=s2;start<='0';</p><p> when s2=> present_state<=s1;start<='0';</p><p> when s1=> prese
113、nt_state<=s0;start<='1';</p><p> when s0=> present_state<=present_state;</p><p> when others=>null;start<='1';</p><p><b> end case;</b&
114、gt;</p><p><b> end if;</b></p><p><b> end if;</b></p><p> end process p4;</p><p> end body_daojishi;</p><p> library IEEE;<
115、/p><p> use IEEE.std_logic_1164.all;</p><p> use IEEE.std_logic_unsigned.all;</p><p> entity decode is</p><p> port(clk_in:in std_logic;--1MHz</p><p
116、> record1,record2:in std_logic_vector(1 downto 0);--比分狀態(tài)輸入</p><p> lights:in std_logic_vector(2 downto 0);--繩子狀態(tài)輸入</p><p> led:out std_logic_vector(7 downto 0);--繩子解碼后輸出</p>
117、<p> q:buffer std_logic_vector(5 downto 0);--數(shù)碼管控制</p><p> cats:out std_logic_vector(6 downto 0));--數(shù)碼管顯示</p><p> end decode;</p><p> architecture body_decode of d
118、ecode is</p><p> signal tmp_led:std_logic_vector(7 downto 0);--繩子輸出</p><p> signal tmp_da1:std_logic_vector(6 downto 0);--比分1</p><p> signal tmp_da2:std_logic_vector(6 down
119、to 0);--比分2</p><p> signal tmp:std_logic_vector(6 downto 0);--比分顯示</p><p><b> begin</b></p><p> led<=tmp_led;</p><p> cats<=tmp;</p>
120、<p> process(clk_in,lights,record1,record2,q,tmp_da2,tmp_da1,tmp)</p><p><b> begin</b></p><p> case lights is--繩子狀態(tài)</p><p> when "100"=>
121、tmp_led<="00010000";</p><p> when "011"=> tmp_led<="00001000";</p><p> when "010"=> tmp_led<="00000100";</p><p>
122、when "001"=> tmp_led<="00000010";</p><p> when "101"=> tmp_led<="00100000";</p><p> when "110"=> tmp_led<="01000000&quo
123、t;;</p><p> when "111"=> tmp_led<="10000000";</p><p> when others =>tmp_led<="00010000";</p><p><b> end case;</b></p>
124、<p> case record1 is--比分狀態(tài)</p><p> when "00"=> tmp_da1<="1111110";</p><p> when "01"=> tmp_da1<="0110000";</p><p&
125、gt; when "10"=> tmp_da1<="1101101";</p><p> when "11"=> tmp_da1<="1111001";</p><p><b> end case;</b></p><p> case
126、 record2 is--比分狀態(tài)</p><p> when "00"=> tmp_da2<="1111110";</p><p> when "01"=> tmp_da2<="0110000";</p><p> when "
127、10"=> tmp_da2<="1101101";</p><p> when "11"=> tmp_da2<="1111001";</p><p> end case;</p><p> if(clk_in='1') then</p>
128、<p> q<="111110";</p><p><b> end if;</b></p><p> if(clk_in='0') then</p><p> q<="011111";</p><p><b> end
129、 if;</b></p><p> case q is--數(shù)碼管顯示控制</p><p> when "011111"=> tmp<=tmp_da2;</p><p> when "111110"=> tmp<=tmp_da1;</p><p
130、> when others=> tmp<="0000000";</p><p><b> end case;</b></p><p> end process;</p><p> end body_decode;</p><p> 3、仿真及仿真結(jié)果分析</p>
131、<p> 創(chuàng)建一個(gè)仿真波形文件,輸入引腳,并對(duì)所有input引腳付出值,保存仿真波形文件。開始仿真,若仿真沒有出錯(cuò),則可觀察仿真得到的波形圖。仿真波形圖如下:</p><p> ?。?)當(dāng)a輸入的頻率大于b時(shí),可觀察到led:低電平有規(guī)則的向左移動(dòng)。即向a方向移動(dòng),符合設(shè)計(jì)要求。見仿真圖1。</p><p> ?。?)改變輸入a b的大小,b的輸入頻率大于a,得到的波形如下
132、,由波形圖可知低電平向右邊移動(dòng),即向b方向移動(dòng),符合設(shè)計(jì)要求。見仿真圖2。</p><p><b> 仿真圖1</b></p><p><b> 仿真圖2</b></p><p><b> 4、實(shí)驗(yàn)調(diào)試結(jié)果</b></p><p> 編程下載及配置,選擇Assignme
133、nts —Assignments Editor ,在Assignments Edito窗口中選擇pin標(biāo)簽頁,按下圖分配引腳。重編譯,并進(jìn)行編程下載到SOPC開發(fā)板進(jìn)行功能驗(yàn)證。驗(yàn)證,按key 1和key10,觀察led燈和數(shù)碼管的顯示變化是否符合設(shè)計(jì)要求,如果和設(shè)計(jì)不符合對(duì)程序進(jìn)行更改,知道符合設(shè)計(jì)要求。</p><p><b> 三、結(jié)論及心得體會(huì)</b></p>&l
134、t;p> EDA課程設(shè)計(jì)要求做一個(gè)拔河游戲機(jī),電路使用9個(gè)發(fā)光二極管,開后只有中間一個(gè)發(fā)亮,此即拔河的中心點(diǎn)。游戲雙方各持一個(gè)按鈕,迅速地、不斷地按動(dòng),產(chǎn)生脈沖,誰按得快,亮點(diǎn)就向誰的方向移動(dòng),每按十次,亮點(diǎn)移動(dòng)一次。亮點(diǎn)移到任一方終端二極管時(shí),這一方就獲勝,此時(shí)雙方按鈕均無作用,輸出保持,只有復(fù)位后才使亮點(diǎn)恢復(fù)到中心。用數(shù)碼管顯示雙方按鍵的次數(shù)。</p><p> 通過這次課程設(shè)計(jì),我更加感到理論和實(shí)
135、際之間的差異很大。我也越來越強(qiáng)烈地感到要掌握一門技術(shù),唯一的辦法也是最好的辦法就是實(shí)踐。只有通過實(shí)踐才能將書本上的知識(shí)應(yīng)用,也只有實(shí)踐才能發(fā)現(xiàn)很多問題,真正掌握知識(shí),學(xué)以致用。雖然遇到的問題很多,但是同時(shí)得到很多有用的經(jīng)驗(yàn)。這些對(duì)于以后的學(xué)習(xí)和工作都是很有用的。</p><p><b> 四、參考資料</b></p><p> [1] 潘 松,EDA技術(shù)實(shí)用教程
136、(第二版). 北京:科學(xué)出版社,2005.</p><p> [2] 譚京生,EDA技術(shù)及應(yīng)用[M],西安:西安電子科技大學(xué)出版社,2001</p><p> [3] 徐志軍,CPLD/FPGA的開發(fā)與應(yīng)用[M],北京:電子工業(yè)出版社,2001</p><p> [4] 朱正偉,EDA技術(shù)與應(yīng)用[M],北京:清華大學(xué)出版社,2005</p>&l
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- eda拔河游戲機(jī)課程設(shè)計(jì)報(bào)告
- eda拔河游戲機(jī)課程設(shè)計(jì)報(bào)告
- 拔河游戲機(jī)課程設(shè)計(jì)
- 拔河游戲機(jī)課程設(shè)計(jì)
- 拔河游戲機(jī)課程設(shè)計(jì)
- 拔河游戲機(jī)課程設(shè)計(jì)
- 基于eda的關(guān)于拔河游戲機(jī)的課程設(shè)計(jì)
- 簡(jiǎn)易拔河游戲機(jī)課程設(shè)計(jì)
- 拔河游戲機(jī)課程設(shè)計(jì) (2)
- 拔河游戲機(jī)課程設(shè)計(jì)報(bào)告
- 拔河游戲機(jī)課程設(shè)計(jì)報(bào)告
- 游戲機(jī)eda課程設(shè)計(jì)報(bào)告
- 電子拔河游戲機(jī)課程設(shè)計(jì)報(bào)告
- eda課程設(shè)計(jì)--乒乓游戲機(jī)
- 單片機(jī)拔河游戲機(jī)課程設(shè)計(jì)
- 數(shù)字電路課程設(shè)計(jì)-拔河游戲機(jī)
- 數(shù)電課程設(shè)計(jì)---拔河游戲機(jī)的設(shè)計(jì)
- 電子課程設(shè)計(jì)---拔河游戲機(jī)控制器
- eda課程設(shè)計(jì)--乒乓球游戲機(jī)
- 數(shù)字電路課程設(shè)計(jì)---電子拔河游戲機(jī)
評(píng)論
0/150
提交評(píng)論