自動售賣機-核心控制模塊設計_第1頁
自動售賣機-核心控制模塊設計_第2頁
自動售賣機-核心控制模塊設計_第3頁
自動售賣機-核心控制模塊設計_第4頁
自動售賣機-核心控制模塊設計_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、FPGA/CPLD應用技術應用技術溫國忠溫國忠 、余菲、曾啟明、余菲、曾啟明晏凱、劉俐晏凱、劉俐自動售貨機設計自動售貨機設計核心控制模塊設計核心控制模塊設計曾啟明曾啟明 博士博士電子郵件:電子郵件:電話:電話心控制模塊控制三個狀態(tài),分別是“等待投幣狀等待投幣狀態(tài)態(tài)”、“等待買貨狀態(tài)等待買貨狀態(tài)”、“出貨、退幣狀態(tài)出貨、退幣狀態(tài)”。核心控制模塊設計1. 系統(tǒng)復位以后,進入“等待投幣狀態(tài)”,此時數(shù)碼管輸出全部為0,而指示燈也輸出為“00”;2. 等待狀態(tài)下,輸入投幣按鍵:5元、10元、15元,就會跳轉(zhuǎn)到下一個狀態(tài),稱之為“等待買貨狀態(tài)”;3. 在“等待買貨狀態(tài)”下,數(shù)碼管

2、輸出投幣的金額,指示燈仍然輸出“00”。在這個狀態(tài)下,如果輸入了購物按鍵,包括購買3元、6元、10元、17元的貨物,就會跳轉(zhuǎn)到下一個狀態(tài),稱之為“出貨、退幣狀態(tài)”。4. 如果投幣金額充足,七段數(shù)碼管輸出找零的金額,“金額充足指示燈”亮起,如果投幣金額不足,七段數(shù)碼管輸出零,“余額不足指示燈”亮起。5. 這個狀態(tài)下,如果按下“出貨、退幣按鍵”則系統(tǒng)恢復到“等待投幣狀態(tài)”,表示售貨完成。關鍵實現(xiàn)思路狀態(tài)代碼狀態(tài)含義2b00等待投幣狀態(tài)2b01等待買貨狀態(tài)2b10出貨、退幣狀態(tài)根據(jù)前面已經(jīng)設計好的狀態(tài)轉(zhuǎn)換圖,對所有的狀態(tài)進行編碼設計。由于系統(tǒng)包括三個狀態(tài),因此可以設計兩位寄存器來對所有的狀態(tài)進行編碼

3、。下面按照三個狀態(tài)逐一分析狀態(tài)之間的轉(zhuǎn)換關系,以及輸出如何。按照系統(tǒng)要求,有8個按鍵輸入,首先定義每個按鍵的具體含義,如下表所示。 0號1號2號3號4號5號6號7號投幣5元投幣10元投幣20元購買3元物品購買6元物品購買10元物品購買17元物品出貨、退幣核心控制模塊接口定義信號名I/O位寬含義rstI1系統(tǒng)復位信號clk1I1分頻后周期為0.001s-0.0001s的時鐘輸出ledO88個LED數(shù)碼管顯示數(shù)據(jù)displayO8七段數(shù)碼管顯示數(shù)據(jù)key_sI8矩陣按鍵輸入module state( rst, clk1, led, display, key_s );input rst;input

4、clk1;output 7:0 led; /8個LEDS輸出output7:0 display; /七段數(shù)碼管顯示數(shù)據(jù)輸出input7:0 key_s; /按鍵數(shù)據(jù)輸入/+reg 1:0 zhishi_led; /2位指示燈,指示是否金額充足或者缺錢reg 7:0 display; /七段數(shù)碼管顯示數(shù)據(jù)reg 1:0 state; /狀態(tài)寄存器/+/輸出指示燈到外部LED的低兩位上面assign led=6b0,zhishi_led;/狀態(tài)機always (posedge clk1 )if (rst=1b1) /如果復位管腳按下 begin display =8b00000000; /七段數(shù)碼

5、管顯示數(shù)據(jù) state =2b00; /狀態(tài)寄存器 zhishi_led =2b00; /2位指示燈,指示是否金額充足或者缺錢end代碼 (1/5)else begincase(state) 2b00: begin /等待投幣狀態(tài)if(key_s0=1b1) /如果按鍵0按下,投入了5元 begin state = 2b01;/狀態(tài)將切換到等待買貨狀態(tài) display = 8d5;/顯示投入了5元 zhishi_led = 2b00;/指示燈不亮 end else if(key_s1=1b1) /如果按鍵1按下,投入了10元 begin state = 2b01;/狀態(tài)將切換到等待買貨狀態(tài) d

6、isplay = 8d10;/顯示投入了10元 zhishi_led = 2b00;/指示燈不亮 end else if(key_s2=1b1) /如果按鍵2按下,投入了20元 begin state = 2b01;/狀態(tài)將切換到等待買貨狀態(tài) display = 8d20;/顯示投入了10元 zhishi_led = 2b00;/指示燈不亮 end end 代碼 (2/5)2b01: begin/等待買貨狀態(tài)if(key_s3=1b1) /購買了3元的貨物 begin state = 2b10;/狀態(tài)將切換到等待出貨狀態(tài) if(display8d3)/如果投幣金額不足 begin displa

7、y= 8d0;/顯示余額為0 zhishi_led=2b10;/代表余額不足,只能退幣 end else begin/如果投幣金額足 display= display-8d3;/顯示余額 zhishi_led = 2b01;/代表金額充足可以出貨 end end代碼 (3/5)if(key_s4=1b1) /購買了6元的貨物 begin state = 2b10;/狀態(tài)將切換到等待出貨狀態(tài) if(display8d6) /如果投幣金額不足 begin display= 8d0; /顯示余額為0 zhishi_led=2b10;/代表余額不足,只能退幣 end else begin /如果投幣金

8、額足 display= display-8d6;/顯示余額 zhishi_led = 2b01; /代表金額充足可以出貨 end endif(key_s5=1b1) /購買了10元的貨物begin state = 2b10; /狀態(tài)將切換到等待出貨狀態(tài) if(display8d10) /如果投幣金額不足 begin display= 8d0; /顯示余額為0zhishi_led=2b10; /代表余額不足,只能退幣end else begin /如果投幣金額足display= display-8d10; /顯示余額 zhishi_led = 2b01; /代表金額充足可以出貨 endend代碼 (4/5)if(key_s6=1b1) /購買了17元的貨物begin state = 2b10; /狀態(tài)將切換到等待出貨狀態(tài) if(display8d17) /如果投幣金額不足 begin display= 8d0;/顯示余額為0 zhishi_led=2b10; /代表余額不足,只能退幣 end else begin /如果投幣金額足 display= display-8d17; /顯示余額 zhishi_led = 2b01; /代表金額充足可以出貨 end endend 2b10: begin/出貨、退幣狀態(tài)if

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論