版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、課程設(shè)計內(nèi)容與要求1, 用開關(guān)按鍵表示脈沖,每個脈沖代表100米,10個脈沖1公里,每公里1.4 元,能同步顯示里程和費用;2, 低于2公里5元計費,高于2公里總費用二起步費用+ (里程公里):里程 單價+等候時間等后單價;3, 等候時間大于2分鐘,按每分鐘1.3元計費;4, 可以設(shè)定起步價和里程單價。一、設(shè)計原理與技術(shù)方法:包括:電路工作原理分析與原理圖、元器件選擇與參數(shù)計算、電路調(diào)試方法與結(jié) 果說明;軟件設(shè)計說明書與流程圖、軟件源程序代碼、軟件調(diào)試方法與運行結(jié)果說明。 根據(jù)設(shè)計要求,系統(tǒng)的輸入信號elk,計價開始信號start,等待信號stop, 里程脈沖信號fin。系統(tǒng)的輸出信號有:總費
2、用數(shù)coc3,行駛距離k0k1, 等待時間m0ml等。系統(tǒng)有兩個脈沖輸入信號clk_750k,fin,其中clk_750k將 根據(jù)設(shè)計要求分頻成14hz, 15hz和1hz分別作為公也計費和超時計爾的脈沖。 兩個控制輸入開關(guān)start, stop;控制過程為:start作為計費開始的開關(guān),當(dāng)start 為高電平時,系統(tǒng)開始根據(jù)輸入的情況計費。當(dāng)有乘客上車并開始行駛時,fin 脈沖到來,進行行駛計費,此時的stop需要置為0;如需停車等待,就把stop 變?yōu)楦唠娖?,并去除fin輸入脈沖,進行等待計費;當(dāng)乘客下車且不等待時,直接將start置為 0,系統(tǒng)停止工作;價格開始?xì)w為起步價5.0元。整個設(shè)
3、計由分頻模塊,計量模塊,計費模塊,控制模塊和顯示模塊五個部 分組成。其中計量模塊是整個系統(tǒng)實現(xiàn)里程計數(shù)和時間計數(shù)的重要部分;控制模塊是實現(xiàn) 不同計費方式的選擇部分,根據(jù)所設(shè)計的使能端選擇是根據(jù)里程計費還是根據(jù)等 待時間計費,同時設(shè)計通過分頻模塊產(chǎn)生不同頻率的脈沖信號來實現(xiàn)系統(tǒng)的計 費。計量模塊采用1hz的驅(qū)動信號,計費模塊采用14hz, 13hz的驅(qū)動信號;計 量模塊每計數(shù)一次,計量模塊就實現(xiàn)14次或者13次計數(shù),即為實現(xiàn)計時的1.3 元/min,計程時的1.4元/km的收費。組成框圖如下所示:1 百進制模塊:實現(xiàn)百米脈沖的驅(qū)動信號,元件框圖如圖3所示:圖3百進制模塊框圖 源程序如下:libr
4、ary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity baijinzhi isport(start,clk2: in stdogic;-秒脈沖a: out stdogic_vector(3 downto 0);end baijinzhi;architecture rt1 of baijinzhi issignal count_1:stdogic_vector(3 downto 0);begina<=count_1;process(start5clk2)beginif(start='o
5、,)the n count_1<=,0000m;elsif(clk2,event and clk2=1 ')then if(count_1=n0111n)then count_1<=,0000h;elsecount_1 <=count_1 +'1 end if;end if;end process;end rt12 計費模塊;實現(xiàn)里程和等候時間的計費并輸出到顯示,元件框圖4如下:圖4計費模塊框圖源程序如下:library ieee;use ieee.std_logic_1164.all;use leee.stdogic_arith.all;use ieee.s
6、td_logic_unsigned.all;entity jifei isport(clk2:in stdjogic;-計費驅(qū)動信號start:in stdjogic;-計費開始信號c0,c1 ,c2,c3:buffer stdogic_vector(3 downto 0);end jifei;architecture rt1 of jifei isbeginprocess(clk2,start)beginif start=,o,then c3<=h0000h;c2<=h0000h;c1 <=h0101 m;c0<=,0000n; “起步 價5元elsif clk2*e
7、vent and clk2= 1fthenif co=,1oo1m then co<=,oooom;if c1 =”1001” then c1<=,0000m;if c2=h1001m then c2<=h0000h;if c3=h1001h then c3<=m0000n;else c3<=c3+1;end if;else c2<=c2+1;end if;else c1<=c1+1;end if;else c0<=c0+1;end if;end if;end process;end rt1;3公里模塊實現(xiàn)歷程的計數(shù)和輸出計費脈沖,元件框圖5如下
8、:圖5公里模塊框圖 源程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;-百米脈沖-里程顯示entity gongli isport(clk1,start: in stdjogic;k1,k2,k3,k4: out stdogic_vector(3 downto 0); temp2 : out stdjogic);end gongli;architecture rt1 of gongli issignal count_1: stdogic_vector(3 downto 0); signa
9、l count_2: stdogic_vector(3 downto 0); signal count_3: stdogic_vector(3 downto 0); signal count_4: stdogic_vector(3 downto 0); begink1<=count_1;k2<=count_2;k3<=count_3;k4<=count_4;process(start,clk1)beginif(start=,o,)the ncount_1<=,0000h;count_2<=,0000t,;count_3<=,0000h;count_4&
10、lt;=h0000h;公里清零elsif(clk1'event and clk1='1')thenif(count_1 =m1001 ”)then“公里計數(shù)器count_1 <=n0000n;count_2<=count_2+1 ;temp2<=*1 if(count_2=h1001n)thencount_2<=,0000,;count_3<=count_3+,r; if(count_3=n1001h)thencount_3<=,0000,;count_4<=count_4+,1,;end if;end if;elsecount
11、_1 <=count_1 +*1 'temp2<='0,;end if;end if;end process;end rt1;4輸出模塊實現(xiàn)所有數(shù)據(jù)的輸岀,元件框圖6如下:圖6輸出模塊框圖 源程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all; entity shuchu isport(y: in std_logic_vector(3 downto 0); e: out stdogic_vector(6 downto 0);end shuchu;architect
12、ure rtlof shuchu isbeginprocessbegincase y iswhenn0000h=>e<=m0111111° whenn0001 h=>e<=m0000110”; whenn0010h=>e<=m1011011 ”; whenh0011 °=>e<=n1001111h; when® 00h=>e<=m1100110”; whenh0101 * =>e<=n1101101h; whenh0110v=>e<=n1111101° whenn0111
13、 n=>e<=m0000111 ”; whenh1000v=>e<=n1111111° whenh1001 * =>e<=n1100111h; when others=>ev="0000000”; end case;end process;end rt1;5 顯示模塊實現(xiàn)所有數(shù)據(jù)的顯示,元件框圖7如下:圖7顯示模塊框圖源程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity xianshi isport(start: i
14、n stdogic;a:in std_logic_vector(3 downto 0);選擇信號c1 ,c2,c3,c4,out1 ,out2,out3,out4:in stdogic_vector(3 downto 0);-里程顯不,時間顯不輸入y:out std_logic_vector(3 downto 0);一里程顯示,時間顯示輸岀end xianshi;architecture rt1 of xianshi isbeginprocessbeginif(start=o')the ny<=n0000h;else case a iswhen h0000"=>
15、y<=c1 ;when h0001n=> y<=c2;when h0010h=> y<=c3;when h0011"=> y<=c4 ; when h0100"=> y<=out1 ;when h0101u=> y<=out2; when h0110"=> y<=out3 ;when h0111 "=> y<=out4; when others =>y<= ”0000”;end case;end if;end process;end rt1;6.dian
16、模塊圖8 dian模塊框圖 源程序如下: library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all; entity dian isport(a: in stdogic_vector(3 downto 0); e: out stdjogic);end dian;architecture rt1 of dian is begin process begincase a iswhen ,0001,=>e<=,1,;when ,0101,=>e<=,1,;when others=>e&
17、lt;=,0,;end case;end process;end rt1;三、中各個模塊設(shè)計分析 系統(tǒng)總體頂層框圖如下:系統(tǒng)總體頂層框圖程序最終功能實現(xiàn)波形仿真1.分頻模塊由于實驗箱上沒有14hz和13hz的整數(shù)倍時鐘信號,因此采用頻率較大的 750khz進行分頻,以近似得到14hz, 13hz和1hz的時鐘頻率。通過以上三種 不同頻率的脈沖信號實行出租車行駛,等待兩種情況下的不同計費。模塊元件如 下:分頻模塊框圖源程序如下:library ieee;use ieee.std_logic_1164.all;use leee.stdogic_arith.all;use ieee.std_logi
18、c_unsigned.all;entity fenpin isport(clk_750k:in stdjogic;"系統(tǒng)時鐘clk_14:buffer stdjogic;14分頻clk_13:buffer stdjogic;13分頻clk_1 : buffer stdjogic);一 1分頻end fenpin ;architecture rt1 of fenpin issignal q_14:integer range 0 to 53570;-定義中間信號量signal q_13:integer range 0 to 57691;signal q_1:integer range 0
19、 to 749999;beginprocess(clk_750k)beginlf(clk_750k' event and clk_750k=1')thenif q_14=53570 then q_14<=0;clk_14<=not clk_14;else q_14<=q_14+1;end if;一得14hz頻率信號if q_13=57691 then q_13<=0;clk_13<=not clk_13;else q_13<=q_13+1;end if;-得13hz頻率信號if q_1 =749999 then q_1 <=0;clk_
20、1 <=not clk_1;else q_1 <=q_1+1;end if;一得1 hz頻率信號 end if;end process;end rt1 ;2.計量模塊計量模塊主要完成計時和計程功能。計時部分:計算乘客的等待累積時間,當(dāng)?shù)却龝r間大于2min時,本模塊中erd 使能信號變?yōu)楫?dāng)clk1每來一個上升沿,計時器就自增1,計時器的量程為 59min,滿量程后自動歸零。計程部分:計算乘客所行駛的公里數(shù),當(dāng)行駛里程大于2km時,本模塊中eno 使能信號變?yōu)? ;當(dāng)elk每來一個上升沿,計程器就自增1,計程器的量程為99km, 滿量程后自動歸零。元件框圖為:計量模塊框圖計量模塊仿真波
21、形為:源程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.stdogic_arith.all;use ieee.stdogic_unsigned.all;entity jiliang is port(start:in stdjogic;fin:in stdjogic; stop:in stdogic; clk1:in stdogic;en 1,e no:buffer stdjogic;-計費開始信號-里程脈沖信號-行駛中途等待信號-驅(qū)動脈沖-計費單價使能信號k1 ,ko:buffer stdogic_vector(3 downto 0
22、); ml ,m0:buffer std_logic_vector(3 downto 0);一行駛公里計數(shù)-等待時間計數(shù)end jiliang;architecture rt2 of jiliang is signal w:integer range 0 to 59; beginprocess(clk1) beginif(clk1 'event and clk1 ='1 ')then if start=,o, then-計時范圍0-59w<=0;en1 <=,0,;en0<=,0,;m1 <=n0000h; mo<=moooo,;k1<
23、;=,oooo,;ko<=,oooon; elsif stop='1* the n-計時開始信號-若等待時間大于2min則-里程計數(shù)開始一計程范圍099若行使里程大于2km,則eno置1if w=59 thenw<=0;else wv=w+1;end if;if mo=h1oo1h thenmo<=moooou;if m1=h0101n thenm1<=m0000u;else m1<=m1+1;end if;else mo<=mo+1;end if;if stop=1' then en0<=,0,;if m1&mo>noo
24、ooooo1 ” then en1 <=!1 en1 置 1else en1<=,0,;end if;end if;elsif fin='1* thenif ko=h1oo1h then ko<=hooooh;if kllool" then k1<=n0000n;else k1<=k1+1;end if;else ko<=ko+1;end if;if stop='0' thenen1v='o:if k1&ko>”ooooooo1” then en0<=,1,;else en0<=*0'
25、;end if;end if;end if;end if;end process;end rt2;3.控制模塊本模塊主要是通過計量模塊產(chǎn)生的兩個不同的輸入使能信號eno, en1,對每 個分頻模塊輸出的14hz, 13hz的脈沖進行選擇輸出的過程;本模塊實現(xiàn)了雙脈 沖的二選一;最終目的為了計費模塊中對行駛過程中不同的時段進行計價。 模塊元件如下:控制模塊框圖控制模塊仿真波形為: 源程序如下:library ieee;use ieee.std_logic_1164.all; use leee.std loaic arith.all;use leee.stdogic_unsigned.all;en
26、tity kongzhi isport(eno,en1:in stdjogic; clk_in1 :in stdogic; clk_in2:in stdjogic;clk_out:out stdogic)使能選擇信號14分頻輸入信號 -13分頻輸入信號 -輸出信號end kongzhi;architecture rt3 of kongzhi is beginprocess(en0,en1)-實現(xiàn)二選一功能beginif en0='1' thenclk_out<=clk_in1;elsif en 1=1* thenclk_out<=clk_in2; end if;en
27、d process; end rt3;4計費模塊當(dāng)計費信號start 一直處于高電平即計費狀態(tài)時,本模塊根據(jù)控制模塊選擇出 的信號從而對不同的單價時段進行計費。即行程在2km內(nèi),而且等待累計時間 小于2min則為起步價5元;2km外以每公里14元計費,等待累積時間超過2min 則按每分鐘1.3元計費。co, c1, c2, c3分別表示費用的顯示。模塊元件為:計費模塊框圖計費模塊仿真波形為: 源程序如下:library ieee;use ieee.std_logic_1164.all;use leee.stdogic_arith.all;use ieee.std_logic_unsigned.
28、all;entity jifei isport(clk2:in stdjogic;-計費驅(qū)動信號start:in stdjogic;-計費開始信號c0,c1 ,c2,c3:buffer stdogic_vector(3 downto 0);end jifei;architecture rt4 of jifei isbeginprocess(clk2,start)beginif start=,o,then c3<=h0000h;c2<=h0000h;c1 <=h0101 m;c0<=,0000n; “起步 價5元elsif clk2*event and clk2= 1ft
29、henif c0=,1001m then c0<=,0000m;if c1 =”1001” then c1<=,0000m;if c2=h1001m then c2<=,0000n;if c3=h1001m then c3<=n0000h;一計價范圍0-999.9else c3<=c3+1;end if;else c2<=c2+1;end if;else c1<=c1+1;end if;else c0<=c0+1;end if;end if;end process;end rt4;5 顯示模塊顯示模塊完成計價,計時和計程數(shù)據(jù)顯示。計費數(shù)據(jù)送入顯示
30、模塊進行譯碼, 最后送至以百元,十元,元,角為單位對應(yīng)的數(shù)碼管上顯示。計時數(shù)據(jù)送入顯示 模塊進行譯碼,最后送至以分為單位對應(yīng)的數(shù)碼管上顯示。計程數(shù)據(jù)送入顯示模 塊進行譯碼,最后送至以km為單位的數(shù)碼管上顯示。模塊元件為:源程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;"定義庫包entity xianshi is 一定義實體port(clk_scan:in stdjogic; -掃描時鐘信號端口設(shè)置 c3,c2,c1,c0:in std_logic_vector(3 downt
31、o 0); “總費用輸入端口 ko,k1:in std_logic_vector(3 downto 0); 一里程輸入端口 m0,m1:in std_logic_vector(3 downto 0); 一等待時間輸入端口sekout std_logic_vector(2 downto 0); -控制數(shù)碼管位選信號的掃描信 號輸岀端口led:out stdogic_vector(6 downto 0); 一數(shù)碼管的控制端口 led_dp:out stdjogic “數(shù)碼管的小數(shù)點輸出端口);end ximnshi;architecture rt5 of xianshi issignal duan
32、:std_logic_vector(6 downto 0); 一數(shù)碼顯示管中間變量 signal shuju:std_logic_vector(3 downto 0); 一選擇輸入端的中間變量 signal cnt:std_logic_vector(2 downto 0); 控制數(shù)碼管的中間變量 signal xiaodian:std_logic; 一小數(shù)點的中間變量beginprocess(clk_scan) 一開始進程beginif clk_scartevent and clk_scan=t thencntv=cnt+1; -每有一個掃描信號上升沿實現(xiàn)加1掃描end if;end process; “結(jié)束進程process(cnt) -開始進程(選擇掃描顯示數(shù)碼管)begincase ent is -掃描時給每個數(shù)碼管賦值when "000n=>shuju<=c0;when h001n=>shuju<=c1;when h010n=>shuju<=c2;wh
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 信用分析師崗前規(guī)章制度考核試卷含答案
- 科研助理安全檢查能力考核試卷含答案
- 釬焊工持續(xù)改進考核試卷含答案
- 耐火材料成型操作工安全應(yīng)急能力考核試卷含答案
- 肉品分級員班組評比模擬考核試卷含答案
- 絕緣成型件制造工安全素養(yǎng)模擬考核試卷含答案
- 紡織染色機操作工安全知識競賽測試考核試卷含答案
- 鉆孔機司機標(biāo)準(zhǔn)化考核試卷含答案
- 水聲換能器制造工安全管理水平考核試卷含答案
- 水工監(jiān)測工保密意識強化考核試卷含答案
- 種植業(yè)合作社賬務(wù)處理
- 【麗江玉龍旅游薪酬制度的創(chuàng)新研究6100字】
- 公司兩權(quán)分離管理制度
- 車輛叉車日常檢查記錄表
- 廣東高校畢業(yè)生“三支一扶”計劃招募考試真題2024
- 膠帶機硫化工藝.課件
- 種雞免疫工作總結(jié)
- 河南省商丘市柘城縣2024-2025學(xué)年八年級上學(xué)期期末數(shù)學(xué)試題(含答案)
- 河南省信陽市2024-2025學(xué)年高二上學(xué)期1月期末英語試題(含答案無聽力原文及音頻)
- 給女朋友申請書
- 八下《桃花源記》《小石潭記》全文背誦(原文+譯文)
評論
0/150
提交評論