版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> 課 程 設(shè) 計 報 告</p><p> 課程名稱 數(shù)字系統(tǒng)與邏輯設(shè)計 </p><p> 課題名稱 出租車計費器的設(shè)計 </p><p> 專 業(yè) </p><p> 班 級 </p
2、><p> 學(xué) 號 </p><p> 姓 名 </p><p> 指導(dǎo)教師 </p><p> 2013年 7月 7日</p><p> 課 程 設(shè) 計 任 務(wù) 書</p><p>
3、 課程名稱 數(shù)字系統(tǒng)與邏輯設(shè)計 </p><p> 課 題 出租車計費器的設(shè)計 </p><p> 專業(yè)班級 </p><p> 學(xué)生姓名 </p><p> 學(xué) 號 </p&
4、gt;<p> 指導(dǎo)老師 </p><p> 審 批 </p><p> 任務(wù)書下達日期 2013 年 6月 29日</p><p> 任務(wù)完成日期 2013 年 7月 7日</p><p> 《數(shù)字系統(tǒng)與邏輯設(shè)
5、計》課程設(shè)計任務(wù)書</p><p><b> 一 、設(shè)計目的</b></p><p> 全面熟悉、掌握VHDL語言基本知識,掌握利用VHDL語言對常用的的組合邏輯電路和時序邏輯電路編程,把編程和實際結(jié)合起來,熟悉編制和調(diào)試程序的技巧,掌握分析結(jié)果的若干有效方法,進一步提高上機動手能力,培養(yǎng)使用設(shè)計綜合電路的能力,養(yǎng)成提供文檔資料的習(xí)慣和規(guī)范編程的思想。 </
6、p><p><b> 二、設(shè)計要求</b></p><p> 1、設(shè)計正確,方案合理。</p><p> 2、程序精煉,結(jié)構(gòu)清晰。</p><p> 3、設(shè)計報告5000字以上,含程序設(shè)計說明,用戶使用說明,源程序清單及程序框圖。</p><p><b> 4、上機演示。</
7、b></p><p> 5、有詳細的文檔。文檔中包括設(shè)計思路、設(shè)計仿真程序、仿真結(jié)果及相應(yīng)的分析與結(jié)論。 </p><p><b> 三、進度安排</b></p><p> 第十九周 星期一: 課題講解,查閱資料</p><p> 星期二: 總體設(shè)計,詳細設(shè)計</p><p>
8、 星期三: 編程,上機調(diào)試、修改程序</p><p> 星期四: 上機調(diào)試、完善程序</p><p><b> 星期五: 答辯</b></p><p> 星期六-星期天:撰寫課程設(shè)計報告</p><p><b> 附:</b></p><p> 課程設(shè)計報告
9、裝訂順序:封面、任務(wù)書、目錄、正文、評分、附件(A4大小的圖紙及程序清單)。 </p><p> 正文的格式:一級標題用3號黑體,二級標題用四號宋體加粗,正文用小四號宋體;行距為22。</p><p> 正文的內(nèi)容:一、課題的主要功能;二、課題的功能模塊的劃分(要求畫出模塊圖);三、主要功能的實現(xiàn);四、系統(tǒng)調(diào)試與仿真;五、總結(jié)與體會;六、附件(所有程序的原代碼,要求對程序?qū)懗霰匾淖?/p>
10、釋);七、評分表。</p><p><b> 目 錄</b></p><p> 一. 系統(tǒng)的總體設(shè)計1</p><p> 1.1 問題描述1</p><p> 1.2 設(shè)計思想1</p><p> 1.3 引腳分配1</p><p> 二.出租車計費功
11、能的實現(xiàn)2</p><p> 2.1 系統(tǒng)的總體框圖2</p><p> 2.2 程序流程圖3</p><p> 2.3 系統(tǒng)各功能模塊的實現(xiàn)4</p><p> 四. 調(diào)試與仿真8</p><p> 五. 總結(jié)與體會9</p><p><b> 六. 附件1
12、0</b></p><p><b> 七. 評分表15</b></p><p> 一. 系統(tǒng)的總體設(shè)計</p><p><b> 1.1 問題描述</b></p><p> 出租車計費器一般都是按公里計費,通常是起步價xx 元(xx 元可以行走x公里),然后再是xx 元/公里
13、。要完成一個出租車計費器,就要有兩個計數(shù)單位,一個用來計公里,另外一個用來計費用。通常在出租車的輪子上都有傳感器,用來記錄車輪轉(zhuǎn)動的圈數(shù),而車輪子的周長是固定的,所以知道了圈數(shù)自然也就知道了里程。在這個實驗中,就要模擬出租車計費器的工作過程,用直流電機模擬出租車輪子,通過傳感器,可以得到電機每轉(zhuǎn)一周輸出一個脈沖波形。 (有條件的同學(xué)再完成:顯示用8 個七段碼管,前四個顯示里程,后四個顯示費用。)</p><p>
14、<b> 1.2 設(shè)計思想</b></p><p> 該出租車計費器按下開關(guān)S1后開始計費和計里程數(shù),起步價是3元,準行1公里,以后1元/公里。時鐘輸入為一個1KHz的系統(tǒng)時鐘,直流電機模塊每轉(zhuǎn)一圈輸出一個脈沖信號給CPU,另外用按鍵模塊的S1 來作為整個系統(tǒng)的復(fù)位按鈕,每復(fù)位一次,計費器從頭開始計費。直流電機模塊用來模擬出租車的車輪子,每轉(zhuǎn)動一圈認為是行走1 米,所以每旋轉(zhuǎn)1000 圈
15、,認為車子前進1 公里。系統(tǒng)設(shè)計是需要檢測電機的轉(zhuǎn)動情況,每轉(zhuǎn)1000圈,分頻模塊輸出一個上升沿信號。車費和里程數(shù)在一個8位7段數(shù)碼管上顯示,前4位顯示里程,后4位顯示費用。</p><p><b> 1.3 引腳分配</b></p><p><b> 顯示:</b></p><p> 動態(tài)八位七段數(shù)碼管模塊<
16、/p><p><b> 時鐘:</b></p><p> 直流電機脈沖輸入:</p><p><b> 復(fù)位按鍵</b></p><p> 二.出租車計費功能的實現(xiàn)</p><p> 2.1 系統(tǒng)的總體框圖</p><p> 該出租車計費系統(tǒng)
17、由三個模塊組成,分別是:</p><p> 計費模塊:計算應(yīng)付車費</p><p> 計程模塊:計錄已行里程</p><p> 顯示模塊:將應(yīng)付車費和已行里程顯示在數(shù)碼管上</p><p> 各模塊之間的關(guān)系為:</p><p><b> 2 程序流程圖</b></p>&
18、lt;p><b> 計算路程框圖:</b></p><p> 計算出租車計費框圖:</p><p> 2.3 系統(tǒng)各功能模塊的實現(xiàn)</p><p><b> 計算距離模塊:</b></p><p> REG:PROCESS(s1,meter) </p><p&
19、gt;<b> begin</b></p><p> if s1='1' then </p><p><b> q1<=0;</b></p><p><b> q2<=0;</b></p><p><b> q3<=0;&l
20、t;/b></p><p><b> q4<=0;</b></p><p> elsif meter'event and meter='1' then --clk'event and clk='1' then</p><p> if q4=9 then</p>
21、<p><b> q4<=0;</b></p><p> if q3=9 then</p><p><b> q3<=0;</b></p><p> if q2=9 then</p><p><b> q2<=0;</b></p>
22、;<p><b> q1<=q1+1;</b></p><p><b> else</b></p><p><b> q2<=q2+1;</b></p><p><b> end if;</b></p><p><b
23、> else</b></p><p> q3<=q3+1; </p><p><b> end if;</b></p><p><b> else</b></p><p><b> q4<=q4+1;</b></p><
24、;p><b> end if;</b></p><p><b> end if;</b></p><p><b> --end if;</b></p><p> end process REG;</p><p><b> 計費距離模塊:</b&g
25、t;</p><p> COM:process( q1) </p><p><b> begin</b></p><p> if q1<7 then</p><p><b> a4<=q1+3;</b></p><p> else if q1=7 t
26、hen</p><p><b> a4<=0;</b></p><p> if a3=9 then</p><p><b> a3<=0;</b></p><p> if a2=9 then</p><p><b> a2<=0;<
27、/b></p><p><b> a1<=a1+1;</b></p><p><b> else</b></p><p><b> a2<=a2+1;</b></p><p><b> end if;</b></p>
28、<p><b> else</b></p><p><b> a3<=a3+1;</b></p><p><b> end if;</b></p><p> else if q1=8 then</p><p><b> a4<=1;&
29、lt;/b></p><p> if a3=9 then </p><p><b> a3<=0;</b></p><p> if a2=9 then</p><p><b> a2<=0;</b></p><p><b> a1<
30、=a1+1;</b></p><p><b> else</b></p><p><b> a2<=a2+1;</b></p><p><b> end if;</b></p><p><b> else</b></p>
31、;<p><b> a3<=a3+1;</b></p><p><b> end if;</b></p><p> else if q1=9 then</p><p><b> a4<=2;</b></p><p> if a3=9 then
32、 </p><p><b> a3<=0;</b></p><p> if a2=9 then</p><p><b> a2<=0;</b></p><p><b> a1<=a1+1;</b></p><p><b&g
33、t; else</b></p><p><b> a2<=a2+1;</b></p><p><b> end if;</b></p><p><b> else</b></p><p><b> a3<=a3+1;</b>
34、;</p><p><b> end if;</b></p><p> end if;</p><p><b> end if;</b></p><p><b> end if;</b></p><p><b> end if;
35、</b></p><p> end process COM;</p><p><b> 顯示模塊:</b></p><p> CAM:process(clk)</p><p><b> begin</b></p><p> if clk'even
36、t and clk='1' then </p><p> cout<=cout+1;</p><p><b> end if;</b></p><p> end process CAM;</p><p> pra:process(cout)</p><p><b
37、> begin</b></p><p> case cout is</p><p> when "000"=> wx<="10000000";shuju<=q1;</p><p> when "001"=> wx<="01000000&quo
38、t;;shuju<=q2;</p><p> when "010"=> wx<="00100000";shuju<=q3;</p><p> when "011"=> wx<="00010000";shuju<=q4;</p><p> w
39、hen "100"=> wx<="00001000";shuju<=a1;</p><p> when "101"=> wx<="00000100";shuju<=a2;</p><p> when "110"=> wx<="00
40、000010";shuju<=a3;</p><p> when "111"=> wx<="00000001";shuju<=a4;</p><p><b> end case;</b></p><p> end process pra;</p>&l
41、t;p> process(shuju) </p><p><b> begin</b></p><p> case shuju is</p><p> when 0=>duan<="0111111"; --0</p><p> when 1=>duan<=&qu
42、ot;0000110"; --1</p><p> when 2=>duan<="1011011"; --2</p><p> when 3=>duan<="1001111"; --3</p><p> when 4=>duan<="1100110"; -
43、-4</p><p> when 5=>duan<="1101101"; --5</p><p> when 6=>duan<="1111101"; --6</p><p> when 7=>duan<="0000111"; --7</p><p
44、> when 8=>duan<="1111111"; --8</p><p> when 9=>duan<="1101111"; --9</p><p> when others=>null; </p><p><b> end case;</b></p&
45、gt;<p> end process; </p><p><b> 四. 調(diào)試與仿真</b></p><p> 在調(diào)試過程中,出現(xiàn)了很多的問題,在編譯時出現(xiàn)同時賦值的現(xiàn)象:</p><p> 圖4 同時賦值現(xiàn)象</p><p> 在程序使用軟件仿真時,出現(xiàn)了問題;開始使用10進制數(shù)進行
46、仿真時由于在計費時,開始不適應(yīng)復(fù)位信號,就會出現(xiàn)幾公里幾塊錢,一但經(jīng)過復(fù)位之后程序使用就正常了,這是有與我在使用時沒有復(fù)位時,不給初值一樣,后來經(jīng)過修改之后就正常了。</p><p><b> 圖5 計費仿真</b></p><p><b> 圖6 距離仿真</b></p><p> 圖7 出租車計費仿真</
47、p><p><b> 五. 總結(jié)與體會</b></p><p> 通過這次緊張而又充實的EDA課程設(shè)計,我感受到了VHDL語言和普通軟件語言之間的區(qū)別,也能夠更加熟練地運用VHDL語言進行邏輯電路的設(shè)計了,受益匪淺。在沒有進行課程設(shè)計之前,我們的上機實踐從來沒有編寫過規(guī)模如此的數(shù)字電路系統(tǒng),最多就寫寫什么半加器,全加器之類的小型實體。而這次課程設(shè)計要想實現(xiàn)課題要求的功
48、能,必須將若干小型實體組合成一個相對大型的實體。不僅如此,在寫完程序后,還要把程序下載到芯片內(nèi),連接相應(yīng)的電子器件,觀察真正的效果。所以,通過這次緊張的課程設(shè)計,我體會了從開始利用VHDL語言編程到把設(shè)想放到真正在電子器件上實現(xiàn)的全部過程,提高了自己從事工程項目設(shè)計的能力。</p><p> 另外,在課程設(shè)計的過程,我碰到了很多棘手的難題,雖然也進行了苦思冥想,卻還是得不到解決方法,有時也有想放棄的念頭,不過終
49、于還是堅持了下來,完成了任務(wù),我意識到今后不管是在工作還是學(xué)習(xí)中,做工程項目都需要有忍耐力和堅持。</p><p> 結(jié)果重要,過程更是我們學(xué)習(xí)的寶貴經(jīng)驗。課程設(shè)計不僅是學(xué)習(xí)一門課,更可以鍛煉我們的實踐能力,動手操作能力,和解決問題的能力。能夠?qū)⒄n堂上所學(xué)的知識靈活、巧妙的運用到實踐操作上是一次很好的體驗,和機會。不僅鍛煉路我們的動手能力,而且加深了對課本的理解和彌補了課本上所不能涉及到的東西。所以在對待每一次
50、的課程設(shè)計時我都很認真,也終于通過自己的努力終于完成了此次的課程設(shè)計。</p><p><b> 六. 附件</b></p><p><b> 程序源代碼:</b></p><p> library ieee;</p><p> use ieee.std_logic_1164.all;<
51、;/p><p> use ieee.std_logic_unsigned.all;</p><p> ENTITY eda IS</p><p> PORT(clk : IN STD_LOGIC;--外部時鐘輸入口</p><p> meter : IN STD_LOGIC; -- 外部轉(zhuǎn)圈信號輸入,假定每個上升沿視為車輪轉(zhuǎn)一圈<
52、;/p><p> S1 : IN STD_LOGIC; -- 外部按鍵輸入復(fù)位信號,假定低電平表示按鍵被按下,高電平表示按鍵未按下</p><p> wx:out std_logic_vector(7 downto 0);</p><p> cost1,cost2,cost3,cost4 :out integer range 0 to 9; --輸出計費值個
53、位十位百味</p><p> dist1,dist2,dist3,dist4 : out integer range 0 to 9); --輸出公里數(shù)小數(shù)點后一位,個位,十位</p><p> END entity;</p><p> architecture behav of eda is</p><p> signal q1,q2
54、,q3,q4:integer range 0 to 9; --</p><p> signal a1,a2,a3,a4:integer range 0 to 9;</p><p> signal cout:STD_LOGIC_VECTOR (2 DOWNTO 0);</p><p> --signal wx:std_logic_vector(7 downto
55、 0);</p><p> signal shuju:integer range 0 to 9; --控制路程和計費數(shù)據(jù)顯示的位置</p><p> signal duan:std_logic_vector(6 downto 0); ---控制數(shù)碼管顯示輸出</p><p><b> begin</b></p><
56、p> REG:PROCESS(s1,meter) --計算路程</p><p><b> begin</b></p><p> if s1='1' then </p><p><b> q1<=0;</b></p><p><b> q2<=
57、0;</b></p><p><b> q3<=0;</b></p><p><b> q4<=0;</b></p><p> elsif meter'event and meter='1' then --clk'event and clk='1
58、39; then</p><p> if q4=9 then</p><p><b> q4<=0;</b></p><p> if q3=9 then</p><p><b> q3<=0;</b></p><p> if q2=9 then</
59、p><p><b> q2<=0;</b></p><p><b> q1<=q1+1;</b></p><p><b> else</b></p><p><b> q2<=q2+1;</b></p><p>
60、;<b> end if;</b></p><p><b> else</b></p><p> q3<=q3+1; </p><p><b> end if;</b></p><p><b> else</b></p>&l
61、t;p><b> q4<=q4+1;</b></p><p><b> end if;</b></p><p><b> end if;</b></p><p><b> --end if;</b></p><p> end proc
62、ess REG;</p><p> COM:process( q1) --計算出租車計費</p><p><b> begin</b></p><p> if q1<7 then</p><p><b> a4<=q1+3;</b></p><p>
63、 else if q1=7 then</p><p><b> a4<=0;</b></p><p> if a3=9 then</p><p><b> a3<=0;</b></p><p> if a2=9 then</p><p><b>
64、 a2<=0;</b></p><p><b> a1<=a1+1;</b></p><p><b> else</b></p><p><b> a2<=a2+1;</b></p><p><b> end if;</b
65、></p><p><b> else</b></p><p><b> a3<=a3+1;</b></p><p><b> end if;</b></p><p> else if q1=8 then</p><p><b&
66、gt; a4<=1;</b></p><p> if a3=9 then </p><p><b> a3<=0;</b></p><p> if a2=9 then</p><p><b> a2<=0;</b></p><p>&l
67、t;b> a1<=a1+1;</b></p><p><b> else</b></p><p><b> a2<=a2+1;</b></p><p><b> end if;</b></p><p><b> else<
68、/b></p><p><b> a3<=a3+1;</b></p><p><b> end if;</b></p><p> else if q1=9 then</p><p><b> a4<=2;</b></p><p>
69、; if a3=9 then </p><p><b> a3<=0;</b></p><p> if a2=9 then</p><p><b> a2<=0;</b></p><p><b> a1<=a1+1;</b></p>&
70、lt;p><b> else</b></p><p><b> a2<=a2+1;</b></p><p><b> end if;</b></p><p><b> else</b></p><p><b> a3<
71、=a3+1;</b></p><p><b> end if;</b></p><p> end if;</p><p><b> end if;</b></p><p><b> end if;</b></p><p><
72、;b> end if;</b></p><p> end process COM;</p><p> ------------------------------------------------------------計費 路程顯示輸出</p><p> CAM:process(clk)</p><p>&l
73、t;b> begin</b></p><p> if clk'event and clk='1' then </p><p> cout<=cout+1;</p><p><b> end if;</b></p><p> end process CAM;<
74、/p><p> pra:process(cout) --控制路程和計費輸出位置</p><p><b> begin</b></p><p> case cout is</p><p> when "000"=> wx<="10000000";shuju<=
75、q1;</p><p> when "001"=> wx<="01000000";shuju<=q2;</p><p> when "010"=> wx<="00100000";shuju<=q3;</p><p> when "011
76、"=> wx<="00010000";shuju<=q4;</p><p> when "100"=> wx<="00001000";shuju<=a1;</p><p> when "101"=> wx<="00000100";
77、shuju<=a2;</p><p> when "110"=> wx<="00000010";shuju<=a3;</p><p> when "111"=> wx<="00000001";shuju<=a4;</p><p><b&
78、gt; end case;</b></p><p> end process pra;</p><p> process(shuju) --數(shù)碼管顯示</p><p><b> begin</b></p><p> case shuju is</p><p> wh
79、en 0=>duan<="0111111"; --0</p><p> when 1=>duan<="0000110"; --1</p><p> when 2=>duan<="1011011"; --2</p><p> when 3=>duan<=&
80、quot;1001111"; --3</p><p> when 4=>duan<="1100110"; --4</p><p> when 5=>duan<="1101101"; --5</p><p> when 6=>duan<="1111101";
81、 --6</p><p> when 7=>duan<="0000111"; --7</p><p> when 8=>duan<="1111111"; --8</p><p> when 9=>duan<="1101111"; --9</p><
82、;p> when others=>null; </p><p><b> end case;</b></p><p> end process;</p><p> dist1<=q1;</p><p> dist2<=q2;</p><p> dist3&l
83、t;=q3;</p><p> dist4<=q4;</p><p> cost1<=a1;</p><p> cost2<=a2;</p><p> cost3<=a3;</p><p> cost4<=a4;</p><p> end behav;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- eda課程設(shè)計--出租車計費器
- eda課程設(shè)計---出租車計費器設(shè)計
- eda 課程設(shè)計--出租車計費器設(shè)計
- eda課程設(shè)計--- 出租車計費器
- eda課程設(shè)計——出租車計費器設(shè)計
- eda課程設(shè)計--出租車計費器的設(shè)計
- eda課程設(shè)計--出租車計費器的設(shè)計
- eda課程設(shè)計--出租車自動計費器
- eda課程設(shè)計---出租車計費器系統(tǒng)
- eda技術(shù)課程設(shè)計--出租車計費器
- eda出租車計費器
- 出租車計費器課程設(shè)計報告
- 課程設(shè)計-出租車自動計費器設(shè)計
- 出租車自動計費器課程設(shè)計
- 出租車計費器課程設(shè)計報告
- 出租車自動計費器設(shè)計課程設(shè)計
- 出租車自動計費器設(shè)計課程設(shè)計
- 出租車計費器數(shù)字電子課程設(shè)計
- 基于eda技術(shù)出租車計費器設(shè)計樣本
- 基于cpld出租車計費器的課程設(shè)計
評論
0/150
提交評論