版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 目錄</b></p><p> 第1章總體設(shè)計(jì)思路1</p><p> 1.1系統(tǒng)總體結(jié)構(gòu)1</p><p> 1.2 各模塊設(shè)計(jì)功能及設(shè)計(jì)思路2</p><p> 第二章 各模塊功能3</p><p> 2.1 jifei模塊3</p>
2、;<p><b> 2.2 x模塊6</b></p><p> 2.3 sel模塊10</p><p> 2.4 xxx1模塊12</p><p> 2.5 di模塊14</p><p> 2.6 div模塊15</p><p> 2.7 decode3_8模
3、塊17</p><p> 第3章 總體電路圖18</p><p> 3.1、模塊連接:18</p><p> 3.2、硬件連接:19</p><p> 3.3、結(jié)果分析:19</p><p> 第4章 硬件實(shí)現(xiàn)22</p><p><b> 第5章 總結(jié)23&
4、lt;/b></p><p> 第6章 參考文獻(xiàn)24</p><p><b> 第1章總體設(shè)計(jì)思路</b></p><p><b> 1.1系統(tǒng)總體結(jié)構(gòu)</b></p><p> 圖1.1 系統(tǒng)總體框圖</p><p> 出租車計(jì)費(fèi)器的組成如上圖所示,各部
5、分主要功能包括輸入信號(hào)模塊對(duì)車輪傳感器傳送的脈沖信號(hào)進(jìn)行計(jì)數(shù),并以高低脈沖模擬出租汽車啟動(dòng),停止,暫停,速度按鈕,具有輸入信號(hào)作用;數(shù)據(jù)轉(zhuǎn)換器模塊將計(jì)費(fèi)模塊輸出的車費(fèi)和路程轉(zhuǎn)換成4位的十進(jìn)制數(shù)據(jù);譯碼/動(dòng)態(tài)掃描模塊將路程與費(fèi)用的數(shù)值譯碼后用動(dòng)態(tài)掃描的方式驅(qū)動(dòng)數(shù)碼管;數(shù)碼管顯示模塊將公里數(shù)和計(jì)費(fèi)金額均用4位LED數(shù)碼管顯示 。</p><p> 1.2 各模塊設(shè)計(jì)功能及設(shè)計(jì)思路</p><p&
6、gt;<b> 信號(hào)輸入模塊</b></p><p> 實(shí)現(xiàn)計(jì)費(fèi)功能和現(xiàn)場(chǎng)模擬功能。計(jì)費(fèi)標(biāo)準(zhǔn)為:按行駛里程計(jì)費(fèi),起步價(jià)為7.00元,并在車行3 km后按2.20元/km計(jì)費(fèi),當(dāng)計(jì)費(fèi)器達(dá)到或超過(guò)20元時(shí),每公里加收50%的車費(fèi),車停止不計(jì)費(fèi)。并以高低脈沖模擬出租汽車啟動(dòng)、停止、暫停、速度按鈕,具有輸入信號(hào)的作用。</p><p><b> 數(shù)據(jù)轉(zhuǎn)換模塊&
7、lt;/b></p><p> 數(shù)據(jù)轉(zhuǎn)換模塊是一個(gè)模為10的加法計(jì)數(shù)器,可將計(jì)費(fèi)模塊輸出的車費(fèi)和路程轉(zhuǎn)換成4位的十進(jìn)制數(shù)。</p><p><b> 顯示模塊</b></p><p> 顯示模塊是由七段LED數(shù)碼管譯碼和動(dòng)態(tài)掃描顯示兩部分組成。采用的是共陰極七段數(shù)碼管,根據(jù)十六進(jìn)制數(shù)和七段顯示段碼表的對(duì)應(yīng)關(guān)系,其中要求路程和車費(fèi)都要
8、用2位小數(shù)點(diǎn)來(lái)表示,所以須設(shè)置一個(gè)控制小數(shù)點(diǎn)的變量,即程序中的dp。這段程序所示的是在數(shù)碼管的第二、第六個(gè)后面顯示小數(shù)點(diǎn),實(shí)現(xiàn)了路程和車費(fèi)都用2位小數(shù)點(diǎn)表示的功能。數(shù)碼管控制及譯碼顯示模塊將十進(jìn)制的輸入信號(hào)用七段數(shù)碼管顯示,由七段發(fā)光二極管組成數(shù)碼顯示器,利用字段的不同組合??煞謩e顯示0~9十個(gè)數(shù)字。片選信號(hào)產(chǎn)生模塊片選信號(hào)產(chǎn)生模塊是對(duì)數(shù)碼管進(jìn)行片選并讓其能夠按照要求顯示數(shù)據(jù)的模塊</p><p><b&g
9、t; 第二章 各模塊功能</b></p><p> 2.1 jifei模塊</p><p> 此模塊為計(jì)費(fèi)模塊(即總體結(jié)構(gòu)中的信號(hào)輸入模塊),實(shí)現(xiàn)計(jì)費(fèi)功能,計(jì)費(fèi)標(biāo)準(zhǔn)為:按行駛里程計(jì)費(fèi),起步價(jià)為7.00元,并在車行3公里后按2.20元/km計(jì)費(fèi),當(dāng)計(jì)數(shù)器達(dá)到或超過(guò)20元時(shí),每公里加收50%的車費(fèi),即按3.30元/km計(jì)費(fèi)。CLK、START、STOP、PAUSE、speed
10、為輸入信號(hào),分別代表汽車的起動(dòng)、停止、暫停和速度,CLK為掃描時(shí)鐘,硬件實(shí)現(xiàn)時(shí)加入時(shí)鐘信號(hào),另有兩個(gè)輸出,即MONEY和RUN,分別代表車費(fèi)和路程,當(dāng)車處于行駛狀態(tài)時(shí),此模塊會(huì)自動(dòng)記錄下路程與車費(fèi)狀況并作為轉(zhuǎn)換模塊的輸入。</p><p> jifei模塊源程序</p><p> library ieee;</p><p> use ieee.std_logi
11、c_1164.all;</p><p> use ieee.std_logic_unsigned.all;</p><p> entity jfmk is</p><p> port(clk,start,stop,pause,speed:in std_logic;</p><p> money,run:out integer rang
12、e 0 to 8000);</p><p><b> end jfmk;</b></p><p> architecture one of jfmk is</p><p><b> begin</b></p><p> process(clk,start,stop,pause,speed)&
13、lt;/p><p> variable a,b:std_logic;</p><p> variable aa:integer range 0 to 100;</p><p> variable chf,lc:integer range 0 to 8000;</p><p> variable num:integer range 0 to
14、 9;</p><p><b> begin</b></p><p> if(clk'event and clk='1')then</p><p> if(stop='0') then</p><p><b> chf:=0;</b></p>
15、;<p><b> num:=0;</b></p><p><b> b:='1';</b></p><p><b> aa:=0;</b></p><p><b> lc:=0;</b></p><p> elsi
16、f(start='0') then</p><p><b> b:='0';</b></p><p><b> chf:=700;</b></p><p><b> lc:=0;</b></p><p> elsif(start='
17、;1' and speed='1' and pause='1') then</p><p> if(b='0')then</p><p> num:=num+1;</p><p><b> end if;</b></p><p> if(num=9)then
18、</p><p><b> lc:=lc+5;</b></p><p><b> num:=0;</b></p><p><b> aa:=aa+5;</b></p><p><b> end if;</b></p><p>
19、; elsif(start='1' and speed='0' and pause='1')then</p><p><b> lc:=lc+1;</b></p><p><b> aa:=aa+1;</b></p><p><b> end if;<
20、/b></p><p> if(aa>=100)then</p><p><b> a:='1';</b></p><p><b> aa:=0;</b></p><p><b> else</b></p><p>&
21、lt;b> a:='0';</b></p><p><b> end if;</b></p><p> if(lc<300)then</p><p><b> null;</b></p><p> elsif(chf<2000 and a=
22、39;1') then</p><p> chf:=chf+220;</p><p> elsif(chf>=2000 and a='1')then</p><p> chf:=chf+330;</p><p><b> end if;</b></p><p>
23、;<b> end if;</b></p><p> money<=chf;</p><p><b> run<=lc;</b></p><p> end process;</p><p><b> end one;</b></p><
24、p> 模塊分析:首先打開(kāi)ieee庫(kù),用use語(yǔ)句聲明使用std_logic_1164和std_logic_unsigned程序包。clk、start、stop、pause、speed為敏感信號(hào),定義a,b為中間變量,變量aa、num、chf為位矢量。當(dāng)時(shí)鐘上升沿到來(lái)時(shí),如果STOP='0'則chf:=0,num:= 0,b:=1,aa:=0,lc:=0, 如果stop='1'且start='
25、;0'則chf:=700,lc:=0,stop='1’;如果stop='1'and start='1'and speed='1'and pause='1'且 b='0'則num:=num+1;如果stop='1'and start='1'and speed='1'and pause='1
26、'且num=9則lc:=lc+1;num:=0,aa:=aa+1。如果stop='1'and start='1'and speed='0'and pause='1'則lc:=lc+1;aa:=aa+1;以上各狀態(tài)分別代表汽車的停止、啟動(dòng)、速度、暫停。如果aa>=100則a:='1',aa:=0,否則a:='0',如果chf<
27、;</p><p> jifei模塊的時(shí)序仿真圖:</p><p><b> 時(shí)序仿真圖分析: </b></p><p> 圖中的stop為汽車停止輸入端,上升沿有效;start為汽車啟動(dòng)輸入端,上升沿有效;pause為汽車暫停輸入端,上升沿有效;speed為汽車速度輸入端,上升沿有效。CLK為時(shí)鐘源信號(hào);money為汽車車費(fèi)輸出端,ru
28、n為汽車路程輸出端。</p><p> 由圖可知:當(dāng)stop,Start,pause,speed全為高電平時(shí)路程按5的速度增加,車費(fèi)為700.當(dāng)路程增加到300時(shí),車費(fèi)變?yōu)?20,以后路程每增加100,車費(fèi)增加220。</p><p><b> 2.2 x模塊</b></p><p> 此模塊為數(shù)據(jù)轉(zhuǎn)換模塊,功能是將計(jì)費(fèi)模塊產(chǎn)生的車費(fèi)與路
29、程的模擬量轉(zhuǎn)換成數(shù)字量并輸出,它是一個(gè)模為10的加法計(jì)數(shù)器,可將計(jì)費(fèi)模塊輸出的車費(fèi)和路程轉(zhuǎn)換成4位的十進(jìn)制數(shù)。其中DACLK為時(shí)鐘信號(hào),ASCORE、BSCORE連接計(jì)費(fèi)模塊的MONEY和run,輸出為2個(gè)4位的十進(jìn)制數(shù),可以分別表示路程和車費(fèi)情況。當(dāng)車運(yùn)行于不同狀況時(shí),此模塊會(huì)將不同的車費(fèi)與路程狀況轉(zhuǎn)換為數(shù)字量并輸出。</p><p><b> x模塊的源程序:</b></p>
30、;<p> library ieee;</p><p> use ieee.std_logic_1164.all;</p><p> use ieee.std_logic_unsigned.all;</p><p> entity x is</p><p> port(daclk:in std_logic;</p
31、><p> ascore,bscore:in integer range 0 to 8000;</p><p> age,ashi,abai,aqian,bge,bshi,bbai,bqian:out std_logic_vector(3 downto 0));</p><p><b> end x;</b></p><p
32、> architecture rt1 of x is</p><p><b> begin</b></p><p> process(daclk,ascore)</p><p> variable comb1:integer range 0 to 8000;</p><p> variable comb1
33、a,comb1b,comb1c,comb1d:std_logic_vector(3 downto 0);</p><p><b> begin</b></p><p> if (daclk'event and daclk='1')then</p><p> if(comb1<ascore)then</p
34、><p> if(comb1a=9 and comb1b=9 and comb1c=9)then</p><p> comb1a:="0000";</p><p> comb1b:="0000";</p><p> comb1c:="0000";</p><p
35、> comb1d:=comb1d+1;</p><p> comb1:=comb1+1;</p><p> elsif(comb1a=9 and comb1b=9)then</p><p> comb1a:="0000";</p><p> comb1b:="0000";</p&g
36、t;<p> comb1:=comb1+1;</p><p> comb1c:=comb1c+1;</p><p> elsif(comb1a=9)then</p><p> comb1a:="0000";</p><p> comb1b:=comb1b+1;</p><p>
37、; comb1:=comb1+1;</p><p><b> else</b></p><p> comb1a:=comb1a+1;</p><p> comb1:=comb1+1;</p><p><b> end if;</b></p><p><b>
38、; else</b></p><p> ashi<=comb1b;</p><p> age<=comb1a;</p><p> abai<=comb1c;</p><p> aqian<=comb1d;</p><p><b> comb1:=0;</b
39、></p><p> comb1a:="0000";</p><p> comb1b:="0000";</p><p> comb1c:="0000";</p><p> comb1d:="0000";</p><p><
40、;b> end if;</b></p><p><b> end if;</b></p><p> end process;</p><p> process(daclk,bscore)</p><p> variable comb2:integer range 0 to 8000;</
41、p><p> variable comb2a,comb2b,comb2c,comb2d:std_logic_vector(3 downto 0);</p><p><b> begin</b></p><p> if(daclk'event and daclk='1')then</p><p>
42、 if(comb2<bscore)then</p><p> if(comb2a=9 and comb2b=9 and comb2c=9)then</p><p> comb2a:="0000";</p><p> comb2b:="0000";</p><p> comb2c:=&qu
43、ot;0000";</p><p> comb2d:=comb2d+1;</p><p> comb2:=comb2+1;</p><p> elsif(comb2a=9 and comb2b=9)then</p><p> comb2a:="0000";</p><p> co
44、mb2b:="0000";</p><p> comb2:=comb2+1;</p><p> comb2c:=comb2c+1;</p><p> elsif(comb2a=9)then</p><p> comb2a:="0000";</p><p> comb2b
45、:=comb2b+1;</p><p> comb2:=comb2+1;</p><p><b> else</b></p><p> comb2a:=comb2a+1;</p><p> comb2:=comb2+1;</p><p><b> end if;</b&g
46、t;</p><p><b> else</b></p><p> bshi<=comb2b;</p><p> bge<=comb2a;</p><p> bbai<=comb2c;</p><p> bqian<=comb2d;</p><
47、p><b> comb2:=0;</b></p><p> comb2a:="0000";</p><p> comb2b:="0000";</p><p> comb2c:="0000";</p><p> comb2d:="0000
48、";</p><p><b> end if;</b></p><p><b> end if;</b></p><p> end process;</p><p><b> end rt1;</b></p><p> 程序分析:首先
49、打開(kāi)ieee庫(kù),用use語(yǔ)句聲明使用std_logic_1164和std_logic_unsigned程序包。定義實(shí)體,daclk、ascore、bscore為輸入,age、ashi、abai、aqian、bge、bshi、bbai、bqian為輸出位矢量。然后定義結(jié)構(gòu)體,daclk、ascore、bscore為敏感信號(hào),定義變量comb1a,comb1b,comb1c,comb1d為位矢量,變量comb1為0到7000范圍。當(dāng)時(shí)鐘上升
50、沿到來(lái)時(shí),各個(gè)變量分別實(shí)現(xiàn)個(gè)、十、百、千的進(jìn)位。然后實(shí)現(xiàn)一個(gè)循環(huán)。然后再將各個(gè)變量付給各個(gè)位矢量。</p><p><b> X模塊的時(shí)序仿真圖</b></p><p> 時(shí)序仿真圖的分析轉(zhuǎn)換模塊的時(shí)序仿真圖如下圖所示:可見(jiàn)能將路程和車費(fèi)轉(zhuǎn)換為4位的十進(jìn)制數(shù),便于8位數(shù)碼管顯示。由圖可知:當(dāng)ascore,bscore為13位二進(jìn)制數(shù),當(dāng)ascore為0-9時(shí)age
51、從0到9變化,當(dāng)ascore為10時(shí)age等于0,ashi等于1。 當(dāng)bscore為0-9時(shí)bge從0到9變化,當(dāng)bscore為10時(shí)bge等于0,bshi等于1。</p><p><b> 2.3 sel模塊</b></p><p> 此模塊為片選信號(hào)產(chǎn)生模塊,功能是選擇八段數(shù)碼管按照設(shè)計(jì)要求進(jìn)行正確的顯示。其具體的對(duì)應(yīng)關(guān)系如下表所示:</p>&
52、lt;p> 在該模塊中CLK為時(shí)鐘信號(hào),A[2..0]為片選輸出,用于選擇數(shù)碼管,連接譯碼顯示模塊的片選端C[2..0]。</p><p> se模塊的源程序如下:</p><p> library ieee;</p><p> use ieee.std_logic_1164.all;</p><p> use ieee.st
53、d_logic_unsigned.all;</p><p> entity sel is</p><p> port(clk:in std_logic;</p><p> a:out std_logic_vector(2 downto 0));</p><p><b> end sel;</b></p>
54、;<p> architecture rt1 of sel is</p><p><b> begin</b></p><p> process(clk)</p><p> variable b:std_logic_vector(2 downto 0);</p><p><b> beg
55、in</b></p><p> if(clk'event and clk='1')then</p><p> if(b="111")then</p><p><b> b:="000";</b></p><p><b> els
56、e</b></p><p><b> b:=b+1;</b></p><p><b> end if;</b></p><p><b> end if;</b></p><p><b> a<=b;</b></p>
57、<p> end process;</p><p><b> end rt1; </b></p><p> sel模塊的波形圖:</p><p> 由圖可以看出,當(dāng)CLK加入時(shí)鐘信號(hào)時(shí),a從000到111逐個(gè)變化,該模塊可將模擬信號(hào)進(jìn)行片選并有對(duì)應(yīng)的數(shù)碼管進(jìn)行顯示。</p><p> 2.4 xxx
58、1模塊</p><p> 此模塊為顯示模塊中的動(dòng)態(tài)掃描/譯碼/數(shù)碼管顯示模塊,功能是將已轉(zhuǎn)換好的數(shù)字量加載到兩個(gè)4位七段數(shù)碼管上并加以顯示。C[2..0]為片選端,用來(lái)連接片選模塊的片選輸出端A[2..0],A1、A2、A3、A4、B1、B2、B3、B4分別連接數(shù)據(jù)轉(zhuǎn)換模塊的八個(gè)轉(zhuǎn)換輸出端,因?yàn)樵O(shè)計(jì)要求路程和車費(fèi)都要用2位小數(shù)點(diǎn)來(lái)表示,所以須設(shè)置一個(gè)控制小數(shù)點(diǎn)的變量,即程序中的DP端,D[3..0]連接數(shù)碼管控
59、制模塊的輸入端。</p><p> xxx1模塊的源程序:</p><p> library ieee;</p><p> use ieee.std_logic_1164.all;</p><p> use ieee.std_logic_unsigned.all;</p><p> entity xxxl i
60、s</p><p> port(c:in std_logic_vector(2 downto 0);</p><p> dp:out std_logic;</p><p> a1,a2,a3,a4,b1,b2,b3,b4:in std_logic_vector(3 downto 0);</p><p> d:out std_logic
61、_vector(3 downto 0));</p><p><b> end xxxl;</b></p><p> architecture rtl of xxxl is</p><p><b> begin</b></p><p> process(c,a1,a2,a3,a4,b1,b2,
62、b3,b4)</p><p> variable comb:std_logic_vector(2 downto 0);</p><p><b> begin </b></p><p><b> comb:=c;</b></p><p> case comb is</p><
63、;p> when"000"=>d<=a1;</p><p><b> dp<='0';</b></p><p> when"001"=>d<=a2;</p><p><b> dp<='0';</b>&
64、lt;/p><p> when"010"=>d<=a3;</p><p><b> dp<='1';</b></p><p> when"011"=>d<=a4;</p><p><b> dp<='0
65、9;;</b></p><p> when"100"=>d<=b1;</p><p><b> dp<='0';</b></p><p> when"101"=>d<=b2;</p><p><b> dp
66、<='0';</b></p><p> when"110"=>d<=b3;</p><p><b> dp<='1';</b></p><p> when"111"=>d<=b4;</p><p>
67、;<b> dp<='0';</b></p><p> when others=>null;</p><p><b> end case;</b></p><p> end process;</p><p><b> end rtl;</b>
68、;</p><p> xxx1模塊的時(shí)序仿真圖:</p><p> 由上圖可知,輸入信號(hào)C為3位片選信號(hào)其變化范圍為0到7,輸入信號(hào)c從0到7逐個(gè)變化時(shí),輸出d逐個(gè)輸a1,a2,a3,a4,b1,b2,b3,b4的輸入信號(hào)。</p><p><b> 2.5 di模塊 </b></p><p> 此模塊為數(shù)碼管控
69、制模塊,功能是控制七段數(shù)碼管對(duì)轉(zhuǎn)換后的數(shù)字量進(jìn)行顯示,使其完成路程和車費(fèi)的顯示。其中D[3..0]連接動(dòng)態(tài)掃描/譯碼/數(shù)碼管顯示模塊的D[3..0]端,Q[6..0]連接七段數(shù)碼管,利用其控制特性在數(shù)碼管上顯示出車費(fèi)和路程。</p><p><b> di模塊的源程序:</b></p><p> library ieee;</p><p>
70、 use ieee.std_logic_1164.all;</p><p> entity di is</p><p> port(d:in std_logic _vector(3 downto 0);</p><p> q:out std_logic_vector(6 downto 0));</p><p><b> e
71、nd di;</b></p><p> architecture rtl of di is</p><p><b> begin</b></p><p> process(d)</p><p><b> begin</b></p><p><b>
72、; case d is</b></p><p> when"0000"=>q<="0111111";</p><p> when"0001"=>q<="0000110";</p><p> when"0010"=>q&
73、lt;="1011011";</p><p> when"0011"=>q<="1001111";</p><p> when"0100"=>q<="1100110";</p><p> when"0101"=>
74、q<="1101101";</p><p> when"0110"=>q<="1111101";</p><p> when"0111"=>q<="0100111";</p><p> when"1000"=&g
75、t;q<="1111111";</p><p> when others=>q<="1101111";</p><p><b> end case;</b></p><p> end process;</p><p><b> end rtl;&
76、lt;/b></p><p> di模塊的時(shí)序仿真圖:</p><p> 從波形圖中可看出,此模塊可控制數(shù)碼管完成對(duì)數(shù)字量的顯示。當(dāng)輸入為0000-1000時(shí)數(shù)碼管分別顯示0,1,2,3,4,5,6,7,8。當(dāng)輸入為其他時(shí)數(shù)碼管顯示9。</p><p><b> 2.6 div模塊</b></p><p>
77、 div模塊將實(shí)驗(yàn)箱上50Mhz脈沖信號(hào)分頻為500hz。</p><p><b> div模塊源程序:</b></p><p> LIBRARY ieee;</p><p> use ieee.std_logic_1164.all;</p><p> use ieee.std_logic_unsigned.al
78、l;</p><p> ENTITY div IS</p><p> port(clk:IN std_logic;</p><p> clkout:OUT std_logic</p><p><b> );</b></p><p><b> end div;</b>
79、</p><p> ARCHITECTURE one OF div IS</p><p><b> BEGIN</b></p><p> process(clk)</p><p> variable cnt:integer range 0 to 100000;</p><p> vari
80、able tmp:std_logic;</p><p><b> begin</b></p><p> if clk'event and clk='1' then</p><p> if cnt>=99999 then</p><p><b> cnt:=0;</b&
81、gt;</p><p> tmp:=not tmp;</p><p><b> else</b></p><p> cnt:=cnt+1;</p><p><b> end if;</b></p><p><b> end if;</b><
82、;/p><p> clkout<=tmp;</p><p> end process;</p><p><b> end one;</b></p><p> div模塊時(shí)序仿真波形:</p><p> div將時(shí)鐘信號(hào)分頻,使頻率減小。</p><p> 2.
83、7 decode3_8模塊</p><p> sel通過(guò)decode3_8模塊選擇數(shù)碼管</p><p> decode3_8模塊源程序:</p><p> LIBRARY ieee;</p><p> use ieee.std_logic_1164.all;</p><p> use ieee.std_lo
84、gic_unsigned.all;</p><p> ENTITY decode3_8 IS</p><p> PORT(SEL:IN std_logic_vector(2 downto 0);</p><p> Q:OUT std_logic_vector(7 downto 0));</p><p> END decode3_8;&
85、lt;/p><p> ARCHITECTURE a OF decode3_8 IS</p><p><b> BEGIN</b></p><p> Q<="11111110"when sel=0 else</p><p> "11111101"when sel=1 els
86、e</p><p> "11111011"when sel=2 else</p><p> "11110111"when sel=3 else</p><p> "11101111"when sel=4 else</p><p> "11011111"wh
87、en sel=5 else</p><p> "10111111"when sel=6 else</p><p> "01111111"when sel=7 else</p><p> "11111111";</p><p><b> END a;</b>
88、;</p><p> decode3_8模塊時(shí)序仿真波形圖:</p><p> decode3_8模塊選擇數(shù)碼管,當(dāng)sel信號(hào)從0-7變化時(shí),依次選擇1-8八個(gè)數(shù)碼管。</p><p><b> 第3章 總體電路圖</b></p><p><b> 整體工作情況:</b></p>
89、<p><b> 3.1、模塊連接:</b></p><p> 計(jì)費(fèi)模塊的clk、start、stop、pause和speed端連接輸入,money[12..0]和run[12..0]連接轉(zhuǎn)換模塊的ascore[12..0]與bscore[12..0];</p><p> 轉(zhuǎn)換模塊的daclk端連接輸入,age[3..0]至bqian[3..0]連
90、接動(dòng)態(tài)掃描/譯碼/數(shù)碼管顯示模塊的a1[3..0]至b4[3..0];</p><p> 動(dòng)態(tài)掃描/譯碼/數(shù)碼管顯示模塊的C[2..0]連接片選輸出SEL[2..0],DP端連接輸出DP,D[3..0]連接數(shù)碼管控制模塊的D[3..0];</p><p> 片選信號(hào)產(chǎn)生模塊的CLK端與輸入信號(hào)相連,并連接轉(zhuǎn)換模塊的DACLK端,A[2..0]連接片選輸出SEL[2..0],并與動(dòng)態(tài)掃描
91、/譯碼/數(shù)碼管顯示模塊的C[2..0]相連;</p><p> 數(shù)碼管控制模塊的D[3..0]端與動(dòng)態(tài)掃描/譯碼/數(shù)碼管顯示模塊的D[3..0]端相連,Q[6..0]端連接八段數(shù)碼管輸出Q[6..0]。</p><p><b> 3.2、硬件連接:</b></p><p> CLK接pin-28 輸入為1hz的脈沖;daclk是實(shí)驗(yàn)箱上5
92、0Mhz固定晶振</p><p> START、STOP、PAUSE、SPEED分別連接按鍵開(kāi)關(guān),用于控制車的啟動(dòng)、停止、暫停和速度;</p><p> DP和Q[6..0]分別連接八段碼顯示單元的a到dp;</p><p> W[7..0]接數(shù)據(jù)線。</p><p><b> 3.3、結(jié)果分析:</b><
93、/p><p> 該電路的仿真波形圖如下:clk為jifei模塊時(shí)鐘信號(hào),daclk為時(shí)鐘信號(hào),stop為汽車停止輸入端;start為汽車啟動(dòng)輸入端;pause為汽車暫停輸入端;speed為汽車速度輸入端。DP表示小數(shù)點(diǎn)。</p><p> 該電路的總體管腳分配圖:</p><p> clk:pin-28;daclk:pin-153;start:pin-4;stop
94、:pin-5;pause:pin-6; speed:pin-7;dp:pin-82;q[6..0]:pin-105;pin-104;pin-101;pin-100; pin-85;pin-84;pin-83;W[7..0]:pin-86;pin-87;pin-88;pin-93;pin-94;pin-95;pin-98;pin-99;vga[3..0]:pin-162;pin-161;pin-164;pin-163;</p>
95、<p><b> 第4章 硬件實(shí)現(xiàn)</b></p><p> 通過(guò)硬件下載,該電路可以完成硬件實(shí)現(xiàn),芯片管腳定義可以直接用編輯.pin文件。完成管腳定義后選擇器件,編譯后生成.sof、.pof文件。選擇sof文件進(jìn)行下載。</p><p> 通過(guò)對(duì)每一模塊的仿真和下載,可以實(shí)現(xiàn)各個(gè)模塊的邏輯功能,驗(yàn)證了各個(gè)模塊的正確性。在出租車計(jì)費(fèi)系統(tǒng)的5個(gè)模塊中
96、 ,重點(diǎn)在于jifei模塊,x(轉(zhuǎn)化)模塊,顯示模塊。jifei模塊主要有汽車的啟動(dòng)、停止、暫停、速度按鍵;轉(zhuǎn)化模塊主要是把車費(fèi)和路程轉(zhuǎn)化為4位十進(jìn)制;顯示模塊是將車費(fèi)和路程顯示出來(lái)。各模塊完成后,在將它們組合成完整的出租車系統(tǒng),在設(shè)計(jì)過(guò)程中還需要改進(jìn)的是控制系統(tǒng)的糾錯(cuò)功能。</p><p> 出租車計(jì)費(fèi)器系統(tǒng)的設(shè)計(jì)已全部完成,能按預(yù)期的效果進(jìn)行模擬汽車啟動(dòng)、停止、暫停等功能,并設(shè)計(jì)動(dòng)態(tài)掃描電路顯示車費(fèi)數(shù)目,由
97、動(dòng)態(tài)掃描電路來(lái)完成。車暫時(shí)停止不計(jì)費(fèi),車費(fèi)保持不變。若停止則車費(fèi)清零,等待下一次計(jì)費(fèi)的開(kāi)始。出租車計(jì)費(fèi)系統(tǒng)的設(shè)計(jì)中體現(xiàn)了VHDL覆蓋面廣,描述能力強(qiáng),是一個(gè)多層次的硬件描述語(yǔ)言及PLD器件速度快,使用方便,便于修改等特點(diǎn),本設(shè)計(jì)在實(shí)用方面具有一定的價(jià)值。</p><p><b> 第5章 總結(jié)</b></p><p> 兩周的嵌入式系統(tǒng)的課程設(shè)計(jì)完成了。本次所做的
98、基于CPLD的出租計(jì)費(fèi)器課題很好的結(jié)合了VHDL與EDA的課程的內(nèi)容,使我加深了這兩門課程的理論的的掌握并初步學(xué)會(huì)了QuartusII軟件及CPLD芯片的使用,使自己的動(dòng)手能力得到提高。理論知識(shí)只有只有經(jīng)過(guò)實(shí)踐運(yùn)用才會(huì)有更深刻的理解。</p><p> 拿到任務(wù)書(shū)后翻閱查找了大量的書(shū)籍資料是自己對(duì)課題有了一個(gè)簡(jiǎn)單概括的了解,課題要求能過(guò)實(shí)現(xiàn)出租車按照行駛里程計(jì)費(fèi)并且能模擬汽車起動(dòng)、停止、暫停以及速度等狀態(tài),還要
99、將車費(fèi)和路程顯示出來(lái)并精確到小數(shù)點(diǎn)后兩位可是說(shuō)功能較多設(shè)計(jì)起來(lái)自然就會(huì)很復(fù)雜。</p><p> 自己雖然學(xué)習(xí)了VHDL以及EDA這兩門課程但自知學(xué)到的只是一丁點(diǎn)的皮毛自然是沒(méi)有辦法很好的運(yùn)用所以只能大量的搜集資料以及相關(guān)的內(nèi)容多做、多看、多了解更要多動(dòng)手首先使用QuartusII編譯簡(jiǎn)單的程序并進(jìn)行調(diào)試仿真。然后學(xué)會(huì)接線并使用CPLD芯片運(yùn)行小的電路。最后將自己編譯的出租車計(jì)費(fèi)程序進(jìn)行調(diào)試程序部分分為五個(gè)模塊
100、,調(diào)試的過(guò)程中出現(xiàn)了一些錯(cuò)誤由于自己對(duì)軟件的使用不是很熟悉因此找錯(cuò)誤用了很長(zhǎng)的時(shí)間,但最后的努力沒(méi)有浪費(fèi),排除錯(cuò)誤之后調(diào)試成功基本上能夠?qū)崿F(xiàn)所要求的功能讓我感到極大的欣慰。</p><p> 此次課程設(shè)計(jì)中得到了老師和同學(xué)的大量幫助令我能夠順利的完成,幾個(gè)同學(xué)一起合作即使有困難也能很快解決。讓我體會(huì)到團(tuán)隊(duì)合作才會(huì)有更大的力量,所以在此衷心的所有幫助我的老師和同學(xué)。</p><p><
101、;b> 第6章 參考文獻(xiàn)</b></p><p> 1. EDA技術(shù)實(shí)用教程—VHDL版 潘松,黃繼業(yè) 編著</p><p> 2. 數(shù)字電子技術(shù)基礎(chǔ) 閻石 主編</p><p> 3. VHDL數(shù)字電路設(shè)計(jì)與應(yīng)用實(shí)踐教程 王振紅 主編<
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 出租車計(jì)費(fèi)器課程設(shè)計(jì)報(bào)告
- 出租車計(jì)費(fèi)器課程設(shè)計(jì)報(bào)告
- eda課程設(shè)計(jì)出租車計(jì)費(fèi)器
- eda課程設(shè)計(jì)--出租車計(jì)費(fèi)器
- 出租車自動(dòng)計(jì)費(fèi)器課程設(shè)計(jì)
- eda課程設(shè)計(jì)--- 出租車計(jì)費(fèi)器
- 出租車自動(dòng)計(jì)費(fèi)器課程設(shè)計(jì)報(bào)告資料
- eda課程設(shè)計(jì)---出租車計(jì)費(fèi)器設(shè)計(jì)
- eda 課程設(shè)計(jì)--出租車計(jì)費(fèi)器設(shè)計(jì)
- 課程設(shè)計(jì)-出租車自動(dòng)計(jì)費(fèi)器設(shè)計(jì)
- 出租車計(jì)費(fèi)器數(shù)字電子課程設(shè)計(jì)
- eda課程設(shè)計(jì)——出租車計(jì)費(fèi)器設(shè)計(jì)
- 出租車自動(dòng)計(jì)費(fèi)器設(shè)計(jì)課程設(shè)計(jì)
- 出租車自動(dòng)計(jì)費(fèi)器設(shè)計(jì)課程設(shè)計(jì)
- eda課程設(shè)計(jì)--出租車自動(dòng)計(jì)費(fèi)器
- eda課程設(shè)計(jì)---出租車計(jì)費(fèi)器系統(tǒng)
- eda課程設(shè)計(jì)--出租車計(jì)費(fèi)器的設(shè)計(jì)
- eda課程設(shè)計(jì)--出租車計(jì)費(fèi)器的設(shè)計(jì)
- 數(shù)電課程設(shè)計(jì)-出租車自動(dòng)計(jì)費(fèi)器
- 數(shù)電課程設(shè)計(jì)-出租車自動(dòng)計(jì)費(fèi)器
評(píng)論
0/150
提交評(píng)論