版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
自動(dòng)售票機(jī)課程設(shè)計(jì)課程設(shè)計(jì)報(bào)告2015-2016學(xué)年第2學(xué)期 課程設(shè)計(jì)名稱:電子綜合設(shè)計(jì)EDA課程設(shè)計(jì)院(系):電子信息學(xué)院專業(yè):電子信息工程班級(jí):電子1313學(xué)生姓名:吳限學(xué)號(hào):26綜合實(shí)驗(yàn)時(shí)間:2016/7/11-2016/7/15指導(dǎo)教師:鐘旭提交時(shí)間:2016/7/15上海電機(jī)學(xué)院課程設(shè)計(jì)任務(wù)書(shū)課程名稱電子綜合設(shè)計(jì)EDA課程設(shè)計(jì)課程代碼033117P1課程設(shè)計(jì)課題清單1、數(shù)字式競(jìng)賽搶答器2、自動(dòng)售票機(jī)3、乒乓球比賽游戲機(jī)4、電子密碼鎖5、出租車自動(dòng)計(jì)費(fèi)器6、洗衣機(jī)控制器7、交通信號(hào)燈控制器8、電梯控制器設(shè)計(jì)時(shí)間2016年7月11日——2016年7月15日一、課程設(shè)計(jì)任務(wù)匯總設(shè)計(jì)任務(wù):自動(dòng)售票機(jī)功能要求:設(shè)計(jì)一個(gè)自動(dòng)售票機(jī),用開(kāi)關(guān)電平信號(hào)模擬投幣過(guò)程,每次投一枚硬幣,但可以連續(xù)投入數(shù)枚硬幣;機(jī)器能自動(dòng)識(shí)別硬幣金額,最大為1元,最小為5角。設(shè)定票價(jià)為2.5元,每次售一張票;購(gòu)票時(shí)先投入硬幣,當(dāng)投入的硬幣總金額達(dá)到或超過(guò)票的面值時(shí),機(jī)器發(fā)出指示,這時(shí)可以按取票鍵取出票;如果所投硬幣超過(guò)票的面值則會(huì)提示找零錢,取完票以后按找零鍵則可以取出零錢,并顯示零錢數(shù);使用數(shù)碼管顯示當(dāng)前投入的金額。二、對(duì)課程設(shè)計(jì)成果的要求(包括課程設(shè)計(jì)報(bào)告、圖紙、圖表、實(shí)物等軟硬件要求)1.課程設(shè)計(jì)基本要求課題分析、查閱資料、方案論證、方案實(shí)現(xiàn)、系統(tǒng)聯(lián)調(diào)、撰寫(xiě)課程設(shè)計(jì)報(bào)告2.成果要求(1)系統(tǒng)方案(2)電路RTL原理圖(3)Verilog源程序和流程圖(或狀態(tài)機(jī)轉(zhuǎn)移圖)(4)Verilog測(cè)試程序(5)設(shè)計(jì)說(shuō)明書(shū)(課程設(shè)計(jì)報(bào)告)三、課程設(shè)計(jì)工作進(jìn)度計(jì)劃:時(shí)間安排內(nèi)容星期一下達(dá)任務(wù)星期二程序設(shè)計(jì)星期三程序調(diào)試星期四撰寫(xiě)報(bào)告星期五考核答辯四、主要參考資料:指導(dǎo)書(shū):《Verilog數(shù)字系統(tǒng)設(shè)計(jì)教程》夏宇聞編著北京航空航天大學(xué)出版社參考資料:《EDA設(shè)計(jì)實(shí)驗(yàn)教程》艾明晶編著清華大學(xué)出版社
目錄一、 題目名稱 題目名稱自動(dòng)售票機(jī)內(nèi)容摘要自動(dòng)售票機(jī)是為了實(shí)現(xiàn)機(jī)器根據(jù)輸入指令進(jìn)行全自動(dòng)出售票的目的。本設(shè)計(jì)是采用了幣值輸入相加模塊、主控模塊和幣值顯示這三個(gè)模塊實(shí)現(xiàn)的。在幣值輸入相加模塊中,用兩個(gè)開(kāi)關(guān)電平輸入按鈕分別代表2種硬幣輸入,每按一次,表示投入一枚硬幣。并設(shè)置控制電路,硬幣輸入的次數(shù)控制十進(jìn)制加法器的加數(shù)A和被加數(shù)B,使輸入的幣值實(shí)時(shí)相加。用兩位數(shù)碼管顯示當(dāng)前的投入幣值,在主控模塊中設(shè)置一個(gè)復(fù)位信號(hào)reset,用于中止交易(系統(tǒng)復(fù)位)。設(shè)置一個(gè)取票信號(hào)ok,一個(gè)票給出信號(hào)tout,tout接LED顯示,燈亮則表示可以取票,否則取票鍵無(wú)效,按ok鍵取票,燈滅。設(shè)置一個(gè)取零錢信號(hào)charge,一個(gè)零錢輸出信號(hào)mout,mout接LED顯示,燈亮則表示有零錢,按charge取零錢,燈滅。主控模塊中是一個(gè)狀態(tài)機(jī),當(dāng)幣值不同時(shí)分別實(shí)現(xiàn)不同的結(jié)果。設(shè)計(jì)任務(wù)和要求設(shè)計(jì)一個(gè)自動(dòng)售票機(jī),用開(kāi)關(guān)電平信號(hào)模擬投幣過(guò)程,每次投一枚硬幣,但可以連續(xù)投入數(shù)枚硬幣。機(jī)器能自動(dòng)識(shí)別硬幣金額,最大為1元,最小為5角。設(shè)定票價(jià)為2.5元,每次售一張票。購(gòu)票時(shí)先投入硬幣,當(dāng)投入的硬幣總金額達(dá)到或超過(guò)票的面值時(shí),機(jī)器發(fā)出指示,這時(shí)可以按取票鍵取出票。如果所投硬幣超過(guò)票的面值則會(huì)提示找零錢,取完票以后按找零鍵則可以取出零錢。
系統(tǒng)方案圖4-1自動(dòng)售票機(jī)系統(tǒng)框圖圖4-1自動(dòng)售票機(jī)系統(tǒng)框圖表4-1幣值相加模塊輸入狀態(tài)表設(shè)計(jì)方法——硬件設(shè)計(jì)圖5-1自動(dòng)售票機(jī)硬件系統(tǒng)框圖
設(shè)計(jì)方法——軟件設(shè)計(jì)圖6-1幣值判斷流程圖圖6-2系統(tǒng)流程圖
系統(tǒng)調(diào)試7.1使用的主要儀器和儀表計(jì)算機(jī)一臺(tái)、ISE仿真設(shè)計(jì)軟件。7.2調(diào)試電路的方法和技巧分別運(yùn)行每個(gè)模塊的程序,觀察是否通過(guò)檢測(cè),最后通過(guò)仿真出來(lái)的測(cè)試波形圖,仔細(xì)的進(jìn)行一步步運(yùn)行,觀察運(yùn)行結(jié)果是否和課題的設(shè)計(jì)要求相對(duì)應(yīng)。7.3整理性能測(cè)試數(shù)據(jù)和波形,并與計(jì)算結(jié)果比較分析實(shí)際的仿真結(jié)果圖能夠完美的實(shí)現(xiàn)課題的各項(xiàng)要求,最終的仿真測(cè)試圖如下圖8-4。7.4調(diào)試中出現(xiàn)的故障、原因及排除方法數(shù)碼管顯示不正確,原因是管腳的配置不對(duì)。
設(shè)計(jì)成果圖8-1頂層模塊clk:時(shí)鐘信號(hào);reset:系統(tǒng)復(fù)位清零;half:5角硬幣模擬信號(hào),為1時(shí)表示投幣5角,為0表示未投入;one:1元硬幣模擬信號(hào),為1時(shí)表示投幣1元,為0表示未投入;mout:可找零錢輸出顯示,置1表示有零可找,置0表示無(wú)零錢可找;tout:有票輸出信號(hào),置1表示有票可出,置0表示不能出票;charge:取零錢信號(hào),置1檢查是否能出零錢;ok:取票,置1檢查是否可取票;ms1,ms2:輸出數(shù)碼管片選信號(hào),01選中第2位數(shù)碼管,10選中第1位數(shù)碼管;a,b,c,d,e,f,g:數(shù)碼管輸出譯碼信號(hào),分別驅(qū)動(dòng)數(shù)碼管7個(gè)引腳。圖8-2主控模塊mh:投入金額數(shù)碼顯示的高4位;ml:投入金額數(shù)碼顯示的低4位。圖8-3數(shù)碼管模塊in1,in2:分別表示高低位輸入金額;ms1,ms2:輸出數(shù)碼管片選信號(hào)。a,b,c,d,e,f,g:數(shù)碼管輸出譯碼信號(hào),分別驅(qū)動(dòng)數(shù)碼管7個(gè)引腳。圖8-4模擬仿真圖圖8-5圖8-5為第一次交易此時(shí)投入一枚硬幣,此時(shí)金額顯示為10,譯碼后也就是1001111,0000001;此時(shí)按下ok鍵,由于金額不足,沒(méi)有任何反應(yīng)。隨后投入第二枚硬幣,金額顯示20,金額不足,依舊沒(méi)有反應(yīng)。圖8-6圖8-6表示此時(shí)又投入1元,此時(shí)總共已經(jīng)投入3元,數(shù)碼管顯示30,譯碼后就是0000110,0000001;此時(shí),tout為1。按下ok,出票,tout為0。圖8-7圖8-7表示由于還有余額5毛,所以mout為1,按下charge,找零,mout清零,找零。圖8-8圖8-8為第二次交易,先按下half,金額為5毛,顯示05,譯碼后為0000001,0100100。由于金額不足按下ok后,沒(méi)有反應(yīng)。圖8-9圖8-9表示隨后按下one,再按one,此時(shí)金額達(dá)到2.5元,金額已滿,tout=1。然后按下ok,出票并且tout清零。
設(shè)計(jì)結(jié)論本自動(dòng)售票機(jī)較好地采用了自頂向下的設(shè)計(jì)理念,利用層次化結(jié)構(gòu)化的方法將售票機(jī)系統(tǒng)分為三個(gè)模塊。自動(dòng)售票機(jī)系統(tǒng)是由頂層模塊——負(fù)責(zé)連接各子模塊,主控模塊——設(shè)置各輸入輸出信號(hào)、時(shí)鐘信號(hào)及復(fù)位信號(hào),并控制幣值的累加,數(shù)碼管顯示模塊——負(fù)責(zé)數(shù)碼管的動(dòng)態(tài)顯示幣值組成。設(shè)計(jì)合理,層次清晰,仿真時(shí)能夠分別測(cè)試各個(gè)模塊從而盡早地排除錯(cuò)誤。在程序設(shè)計(jì)上頂層模塊調(diào)用主模塊及數(shù)碼管顯示模塊,實(shí)現(xiàn)對(duì)主控與數(shù)碼管的連接;主控模塊采用Mealy狀態(tài)機(jī)結(jié)構(gòu)主要對(duì)投幣情況及出票進(jìn)行控制并送數(shù)碼管顯示;數(shù)碼管模塊采用動(dòng)態(tài)掃描方法結(jié)合片選信號(hào)實(shí)現(xiàn)兩位數(shù)碼顯示。通過(guò)對(duì)著三個(gè)大模塊的設(shè)計(jì),成功實(shí)現(xiàn)了自動(dòng)售票的功能并進(jìn)行仿真測(cè)試,即當(dāng)幣值等于2.5元時(shí),tout指示燈亮,ok鍵有票給出,mout燈不亮,不找零錢;當(dāng)幣值為3.0元時(shí),tout指示燈亮,ok鍵有票給出,mout指示燈亮,有零錢給出,charge鍵找零錢;其余情況下,既無(wú)票給出也不找零錢。測(cè)試結(jié)果顯示設(shè)計(jì)符合要求。
收獲和體會(huì)通過(guò)本次課程設(shè)計(jì),我對(duì)VerilogHDL語(yǔ)言有了更深刻的了解,能夠比較靈活地運(yùn)用它來(lái)實(shí)現(xiàn)我們所想要要其實(shí)現(xiàn)的功能。在實(shí)驗(yàn)中,我也遇到了很多挫折,不過(guò)我都和同伴一一克服了,大家齊心協(xié)力解決了問(wèn)題,使我明白了和他人共同合作的重要性。在以后的道路上我們也必須深刻認(rèn)識(shí)到團(tuán)隊(duì)合作的精神,投入今后的發(fā)展之中。日常生活中有很多各種不同的自動(dòng)售票機(jī),通過(guò)本次課程設(shè)計(jì)我終于了解到自動(dòng)售票是如何實(shí)現(xiàn)的了,雖然我們?cè)O(shè)計(jì)的知識(shí)很簡(jiǎn)單的一種售票機(jī),但是原理是大同小異的,相信如果讓我設(shè)計(jì)更復(fù)雜點(diǎn)的功能,我也會(huì)研究出來(lái)。成功就是在不斷摸索著前進(jìn)中實(shí)現(xiàn)的,遇到問(wèn)題我們不能灰心、煩躁,甚至放棄,而要靜下心來(lái)仔細(xì)思考,分部檢查,找出最終的原因進(jìn)行改正,這樣才會(huì)有進(jìn)步,才會(huì)一步步向自己的目標(biāo)靠近,才會(huì)取得自己所要追求的成功。
附件(源程序)頂層模塊程序:moduletop(one,half,reset,clk,ok,charge,tout,mout,ms1,ms2,a,b,c,d,e,f,g);//頂層模塊,進(jìn)行子模塊的連接 inputone,half,reset,clk,ok,charge; outputtout,mout,ms1,ms2,a,b,c,d,e,f,g; wire[3:0]mh,ml; ticketu1(//子模塊連接 .one(one), .half(half), .mh(mh), .ml(ml), .tout(tout), .mout(mout), .reset(reset), .clk(clk), .ok(ok), .charge(charge) ); selu2( .in1(ml), .in2(mh), .clk(clk), .ms1(ms1), .ms2(ms2), .a(a), .b(b), .c(c), .d(d), .e(e), .f(f), .g(g));endmodule//主控模塊程序://自動(dòng)售票機(jī)/*信號(hào)定義:clk:時(shí)鐘信號(hào);reset:系統(tǒng)復(fù)位清零;half:5角硬幣模擬信號(hào);one:1元硬幣模擬信號(hào);mout:有找零錢輸出顯示;tout:有票輸出信號(hào);charge:取零錢;ok:取票;mh:投入金額數(shù)碼顯示的高4位;ml:投入金額數(shù)碼顯示的低4位。*/moduleticket(one,half,mh,ml,tout,mout,reset,clk,ok,charge); parametera=0,b=1,c=2,d=3,e=4;//定義5個(gè)狀態(tài) inputone,half,reset,clk,ok,charge; outputtout,mout,mh,ml; regmout,tout; reg[3:0]money; reg[3:0]mh; reg[3:0]ml; always@(posedgeclk) begin if(reset) begin tout=0; mout=0; money=a; {mh,ml}=8'b00000000; end case(money) a:if(half)beginmoney=b;{mh,ml}=8'b00000101;end elseif(one) beginmoney=c;{mh,ml}=8'b00010000;end b:if(half)beginmoney=c;{mh,ml}=8'b00010000;end elseif(one) begin money=d; {mh,ml}=8'b00010101; end c:if(half)beginmoney=d;{mh,ml}=8'b00010101;end elseif(one) begin money=e;{mh,ml}=8'b00100000;end d:if(half)beginmoney=e;{mh,ml}=8'b00100000;end elseif(one) beginmoney=a; {mh,ml}=8'b00100101; mout=0; tout=1;//sell end e:if(half) begin money=a; {mh,ml}=8'b00100101; tout=1;//sell end elseif(one) begin money=a; {mh,ml}=8'b00110000; tout=1; end endcase if({mh,ml}==8'b00100101)begin if(ok)begin tout=0;mout=0;{mh,ml}=8'b00000000;end end if({mh,ml}==8'b00110000)begin if(ok) begin tout=0;mout=1;{mh,ml}=8'b00000101;end end if(charge&&mout==1)begin {mh,ml}=8'b00000000;mout=0;end end endmodule//數(shù)碼管模塊:modulesel(in1,in2,clk,ms1,ms2,a,b,c,d,e,f,g); input[3:0]in1,in2;//輸入金額 inputclk; outputregms1,ms2;//輸出數(shù)碼管片選信號(hào) outputrega,b,c,d,e,f,g;//輸出譯碼信號(hào) regi=0; always@(posedgeclk) begin case(i) 1'd0:begin {ms1,ms2}=2'b10;//對(duì)數(shù)碼管進(jìn)行動(dòng)態(tài)顯示 i<=i+1'b1; case(in1) 4'd0:{a,b,c,d,e,f,g}<=7'b0000001;//進(jìn)行數(shù)碼管譯碼輸出4'd1:{a,b,c,d,e,f,g}<=7'b1001111;4'd2:{a,b,c,d,e,f,g}<=7'b0010010;4'd3:{a,b,c,d,e,f,g}<=7'b0000110;4'd4:{a,b,c,d,e,f,g}<=7'b1001100;4'd5:{a,b,c,d,e,f,g}<=7'b0100100;4'd6:{a,b,c,d,e,f,g}<=7'b0100000;4'd7:{a,b,c,d,e,f,g}<=7'b0001111;4'd8:{a,b,c,d,e,f,g}<=7'b0000000;4'd9:{a,b,c,d,e,f,g}<=7'b0000100; endcase end 1'd1:begin {ms1,ms2}=2'b01;//對(duì)數(shù)碼管進(jìn)行動(dòng)態(tài)掃描 i<=i+1'b1; case(in2) 4'd0:{a,b,c,d,e,f,g}<=7'b0000001;//進(jìn)行數(shù)碼管譯碼輸出4'd1:{a,b,c,d,e,f,g}<=7'b1001111;4'd2:{a,b,c,d,e,f,g}<=7'b0010010;4'd3:{a,b,c,d,e,f,g}<=7'b0000110;4'd4:{a,b,c,d,e,f,g}<=7'b1001100;4'd5:{a,b,c,d,e,f,g}<=7'b0100100;4'd6:{a,b,c,d,e,f,g}<=7'b0100000;4'd7:{a,b,c,d,e,f,g}<=7'b0001111;4'd8:{a,b,c,d,e,f,g}<=7'b0000000;4'd9:{a,b,c,d,e,f,g}<=7'b0000100; endcase end endcase endendmodule測(cè)試程序:moduletest_top; //Inputs regone; reghalf; regreset; regclk; regok; regcharge; //Outputs wiretout; wiremout; wirems1; wirems2; wirea; wireb; wirec; wired; wiree; wiref; wireg; //InstantiatetheUnitUnderTest(UUT) topuut( .one(one), .half(half), .reset(reset), .clk(clk), .ok(ok), .charge(charge), .tout(tout), .mout(mout), .ms1(ms1), .ms2(ms2), .a(a), .b(b), .c(c), .d(d),
溫馨提示
- 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ù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 冰箱的租賃合同范文
- 參建住宅協(xié)議書(shū)的編寫(xiě)范本
- 交通銀行借款合同范本
- 房屋租賃合同終止聲明書(shū)
- 物業(yè)公司管理協(xié)議書(shū)
- 旅游合作開(kāi)發(fā)合同范文點(diǎn)評(píng)
- 建筑勞務(wù)分包合同格式范本
- 廣東省茶葉原料采購(gòu)合同模板
- 工程勞動(dòng)力和施工合同示例
- 員工勞動(dòng)合同續(xù)簽互用協(xié)議
- 正余弦定理知識(shí)點(diǎn)權(quán)威總結(jié)18頁(yè)
- 國(guó)企紀(jì)檢監(jiān)察嵌入式監(jiān)督的探索與實(shí)踐
- 淺議小升初數(shù)學(xué)教學(xué)銜接
- 設(shè)備安裝應(yīng)急救援預(yù)案
- 深基坑工程降水技術(shù)及現(xiàn)階段發(fā)展
- 暫堵壓裂技術(shù)服務(wù)方案
- 《孔乙己》公開(kāi)課一等獎(jiǎng)PPT優(yōu)秀課件
- 美的中央空調(diào)故障代碼H系列家庭中央空調(diào)(第一部分多聯(lián)機(jī))
- 業(yè)主委員會(huì)成立流程圖
- (完整版)全usedtodo,beusedtodoing,beusedtodo辨析練習(xí)(帶答案)
- 廣聯(lián)達(dá)辦公大廈工程施工組織設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論