国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于VHDL的自動(dòng)售貨機(jī)系統(tǒng)設(shè)計(jì)

2015-06-08 08:20:38
系統(tǒng)仿真技術(shù) 2015年2期
關(guān)鍵詞:投幣狀態(tài)機(jī)數(shù)碼管

趙 杰

(商洛學(xué)院電子信息與電氣工程學(xué)院,陜西商洛726000)

1 引 言

自動(dòng)售貨機(jī)是能按照投入的貨幣自動(dòng)售貨的機(jī)器,它是貿(mào)易自動(dòng)化的常用設(shè)備,受時(shí)間、地點(diǎn)的限制少,能節(jié)約人力、便利交易,是一種全新的貿(mào)易零售方式,又被稱為24小時(shí)業(yè)務(wù)的小型超市[1]。在自動(dòng)售貨機(jī)的控制方面,常采用單片機(jī)或PLC(可編程邏輯控制器)作為控制核心,完成整個(gè)系統(tǒng)的基本功能[2-5]。然而,實(shí)際中主控芯片需和眾多外圍芯片或接口相連,或者需要進(jìn)行功能擴(kuò)展[6]。用傳統(tǒng)方式來(lái)應(yīng)對(duì)日益復(fù)雜的要求顯得力不從心。而使用硬件描述語(yǔ)言在FPGA(現(xiàn)場(chǎng)可編程門陣列)上實(shí)現(xiàn)電路系統(tǒng)的現(xiàn)代EDA(電子設(shè)計(jì)自動(dòng)化)技術(shù),具有明顯的優(yōu)勢(shì)[7-8]。本文主要利用VHDL硬件描述語(yǔ)言編寫程序代碼,用狀態(tài)機(jī)實(shí)現(xiàn)功能轉(zhuǎn)換,以Quartus II軟件作為運(yùn)行平臺(tái),實(shí)現(xiàn)一個(gè)能夠?qū)崿F(xiàn)貨物選擇、投幣、找零、多次購(gòu)買等功能的自動(dòng)售貨機(jī)。自動(dòng)售貨機(jī)采用模塊化設(shè)計(jì),可以對(duì)各模塊實(shí)行獨(dú)自設(shè)計(jì)、修訂和調(diào)試,最終通過(guò)模擬仿真進(jìn)行驗(yàn)證。

2 自動(dòng)售貨機(jī)設(shè)計(jì)

為方便起見,設(shè)定自動(dòng)售貨機(jī)可以出售兩種商品,標(biāo)價(jià)分別為2元和3元。售貨機(jī)可以分別識(shí)別1元和5元兩種貨幣。

(1)購(gòu)買者可選擇購(gòu)買多種商品種類,選定商品種類后處于等待投幣狀態(tài)。如果超時(shí)等待時(shí)間,則認(rèn)定購(gòu)買者放棄選購(gòu),此后售貨機(jī)自動(dòng)返回初始狀態(tài),等待新的交易。如果在規(guī)定時(shí)間內(nèi),再次選中物品,就進(jìn)入再次等待狀態(tài)。

(2)每次交易完成,售貨機(jī)自動(dòng)返回初始狀態(tài),等待下一次交易。

(3)使用按鍵信號(hào)來(lái)模擬1元,5元兩種貨幣的投入,可以持續(xù)投幣,同時(shí)顯示投入的金錢和還應(yīng)投入的金錢。如果某次投幣后金額不夠,且一定時(shí)間內(nèi)不再投幣,則購(gòu)買失敗,退幣,并顯示應(yīng)退還金額。

(4)指示電路,分別指示購(gòu)買成功、購(gòu)買失敗和正在找零三種狀態(tài)。

聯(lián)系自動(dòng)售貨機(jī)的運(yùn)行過(guò)程,采用有限狀態(tài)機(jī)來(lái)實(shí)現(xiàn)主控部分的功能,將實(shí)際的交易操作過(guò)程,轉(zhuǎn)換為狀態(tài)機(jī)各狀態(tài)的切換,使得整體設(shè)計(jì)變得簡(jiǎn)潔。為方便起見,這里用LED(發(fā)光二極管)燈和數(shù)碼管進(jìn)行相應(yīng)顯示。因此,可將自動(dòng)售貨機(jī)系統(tǒng)分為多個(gè)模塊:主控模塊、二進(jìn)制譯碼模塊、顯示譯碼模塊、分頻模塊等。采用VHDL語(yǔ)言對(duì)各個(gè)模塊功能進(jìn)行描寫,最后把各模塊整合生成頂層設(shè)計(jì)實(shí)體。整體結(jié)構(gòu)框圖如圖1所示。

圖1 整體結(jié)構(gòu)框圖Fig.1 Whole structure diagram

主控模塊:此模塊是整個(gè)設(shè)計(jì)的最主要的主控模塊,控制著整個(gè)設(shè)計(jì)的商品選擇、投幣、找零等功能。此模塊總體據(jù)有5個(gè)輸入端口和6個(gè)輸出端口。其輸入端口包含 clk、coin1(識(shí)別1元貨幣)、coin5(識(shí)別5元貨幣)、price2(價(jià)值2元的物品)、price3(價(jià)值3元的物品),輸出端口有paid(已投入多少貨幣)、needed(還需要多少貨幣)、moneyout(找多少貨幣)、success(燈亮示意交易成功)、failure(燈亮示意交易失敗)、showmoneyout(燈亮示意正在找錢)。此模塊體現(xiàn)了此系統(tǒng)最主要的交易過(guò)程,包含商品選擇、投入貨幣、金額計(jì)算、找錢出貨等。其后接二進(jìn)制譯碼模塊。

二進(jìn)制譯碼模塊:具有一個(gè)輸入端和兩個(gè)輸出端。從b端口輸入一個(gè)4位的二進(jìn)制數(shù),從bcd0和bcd1端口輸出兩個(gè)4位的BCD(二-十進(jìn)制碼)碼。此模塊的功能目的是為了把總控模塊輸出的二進(jìn)制數(shù)(paid,needed,moneyout)轉(zhuǎn)換為BCD碼,以至于輸出到數(shù)碼管模塊動(dòng)態(tài)掃描。此模塊的原理是將一個(gè)4位的二進(jìn)制數(shù)轉(zhuǎn)換成2個(gè)4位的BCD碼,分別為高4位和低4位。其后接顯示譯碼模塊。

顯示譯碼模塊:此模塊具有7個(gè)輸入端口和2個(gè)輸出端口。輸入端dain是一個(gè)4位的BCD碼,clk接收q1的時(shí)鐘,sel范圍為000~111,判斷選擇八個(gè)數(shù)碼管中的哪個(gè),daout輸出到num進(jìn)行顯示譯碼,該模塊的功能是將4位二進(jìn)制碼轉(zhuǎn)換為7位二進(jìn)制數(shù)代表a—g從led輸出,以便能用7段顯示數(shù)碼管顯示。

分頻器模塊:此模塊具有一個(gè)輸入端口和兩個(gè)輸出端口。輸入一個(gè)clk時(shí)鐘經(jīng)過(guò)分頻器輸出較高頻率時(shí)鐘給數(shù)碼管掃描模塊和低頻率時(shí)鐘給主控模塊的狀態(tài)機(jī)。

3 主要仿真結(jié)果

3.1 主控模塊

如圖2所示,客戶先選擇了一個(gè)2元物品隨后選擇了一個(gè)3元物品,needed表示為5即需要貨幣為5元,隨后投入一個(gè)1元貨幣之后再?zèng)]有投入貨幣,paid端口為1,needed端口為4,即已投入1元貨幣還需要投入4元貨幣,超出限時(shí)后failure變成高電平表明本次交易失敗,隨后回到初始狀態(tài)。圖3是連續(xù)兩次選擇商品投幣并找零的仿真結(jié)果,圖4為多次交易的仿真結(jié)果。

圖2 選擇兩次但投幣不足仿真結(jié)果Fig.2 Simulation result of selected twice with insufficient coins

圖3 連續(xù)兩次選擇商品投幣找零仿真結(jié)果Fig.3 Simulation result of selected twice and given charge

圖4 多次交易投幣仿真Fig.4 Simulation result of multiple coins

3.2 頂層電路仿真

譯碼、顯示等模塊仿真結(jié)果這里不再詳述。對(duì)頂層電路進(jìn)行仿真,當(dāng)連續(xù)選擇2元和3元的商品,連續(xù)投入一張1元和一張5元,LED指示仿真success為高電平表示成功,showmoneyout為高電平表示正在找零,并由數(shù)碼管顯示相應(yīng)的金額,結(jié)果如圖5所示。圖6為連續(xù)選擇商品只投幣一次,交易失敗的仿真結(jié)果。

圖5 連續(xù)選擇商品連續(xù)投幣Fig.5 Simulation result of continuous selection for coins

圖6 連續(xù)選擇商品投幣一次Fig.6 Simulation result of continuous selection with coin-operated once

4 總 結(jié)

該自動(dòng)售貨機(jī)可以按照設(shè)計(jì)的目的進(jìn)行多次購(gòu)買、出貨找零;可在數(shù)碼管上顯示出已投貨幣、還需投入貨幣、找零金額,同時(shí)有代表交易成功、交易失敗、正在找零的三個(gè)LED燈來(lái)指示狀態(tài)。設(shè)計(jì)中采用的自頂向下的設(shè)計(jì)方法,實(shí)現(xiàn)了模塊化的設(shè)計(jì)思想。各個(gè)模塊所具有的相對(duì)獨(dú)立性更好地保證了系統(tǒng)的穩(wěn)定性,節(jié)約了系統(tǒng)資源。由于FPGA/CPLD(復(fù)雜可編程邏輯器件)具有良好的可擴(kuò)展性,可以方便地對(duì)系統(tǒng)進(jìn)行功能擴(kuò)充和修改,因此,本設(shè)計(jì)具有一定實(shí)用性。

[1] 謝中賽,金志華,余世明.基于μC/OS-Ⅱ的自動(dòng)售貨機(jī)控制系統(tǒng)[J].機(jī)電工程,2009,26(1):35-37.XIE Zhongsai,JIN Zhihua,YU Shiming.Vending machine controller based on μC/OS-II[J].Mechanical &Electrical Engineering Magazine,2009,26(1):35-37.

[2] 董淑冷,茅紅偉.PLC在自動(dòng)售貨機(jī)控制系統(tǒng)中的應(yīng)用[J].上海師范大學(xué)學(xué)報(bào):自然科學(xué)版,2007,36(2):47-51.DONG Shuleng,MAO Hongwei.The application of PLC in vending machine control system[J].Journal of Shanghai Normal University:Natural Sciences,2007,36(2):47-51.

[3] 陳慧.基于嵌入式單片機(jī)的智能自動(dòng)售貨機(jī)控制系統(tǒng)[J].華東交通大學(xué)學(xué)報(bào),2008,25(6):78-82.CHEN Hui.A control system of intelligent vending machines based on the embedded SCMP[J].Journal of East China Jiaotong University,2008,25(6):78-82.

[4] 劉志臣.基于單片機(jī)的自動(dòng)售貨機(jī)模擬設(shè)計(jì)[J].科學(xué)大眾(科學(xué)教育),2014(3):146-147.LIU Zhiceng.Vending machine design based on MCU[J].Popular Science,2014(3):146-147.

[5] 陸思杰.自動(dòng)售貨系統(tǒng)應(yīng)用介紹[J].機(jī)械研究與應(yīng)用,2010,23(2):147-148.LU Sijie.Brief introduction of automatic vending system[J].Mechanical Research & Application,2010,23(2):147-148.

[6] 余世明,晁岳磊,繆仁將.自動(dòng)售貨機(jī)研究現(xiàn)狀及展望[J].中國(guó)工程科學(xué),2008,10(7):51-56.YU Shiming,CHAO Yuelei,MIN Renjiang.Present situation and future prospects of vending machine[J].Engineering Science,2008,10(7):51-56.

[7] 孫延騰,吳艷霞,顧國(guó)昌,等.基于VHDL語(yǔ)言的參數(shù)化設(shè)計(jì)方法[J].計(jì)算機(jī)工程與應(yīng)用,2010,46(31):68-71.SUN Yanteng,WU Yanxia,GU Guochang,et al.VHDL based design parameterization methodology[J].Computer Engineering and Applications,2010,46(31):68-71.

[8] 趙輝.基于EDA技術(shù)的數(shù)字系統(tǒng)設(shè)計(jì)[J].電子設(shè)計(jì)工程,2012,20(2):34-37.ZHAO Hui.Design of digital system based on EDA technology[J].Electronic Design Engineering,2012,20(2):34-37.

猜你喜歡
投幣狀態(tài)機(jī)數(shù)碼管
基于有限狀態(tài)機(jī)的交會(huì)對(duì)接飛行任務(wù)規(guī)劃方法
Arduino編程
電腦報(bào)(2019年2期)2019-09-10 07:22:44
MC9S08FL16單片機(jī)數(shù)碼管靜態(tài)顯示分析
單片機(jī)控制的四位數(shù)碼管動(dòng)態(tài)顯示編程
投幣暢飲(圖片故事)
基于Qt的數(shù)碼管數(shù)字編碼系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
我是白骨精
放飛誠(chéng)信的白鴿
奇妙投幣機(jī)
FPGA設(shè)計(jì)中狀態(tài)機(jī)安全性研究
太湖县| 修武县| 海阳市| 高唐县| 嵊州市| 同德县| 揭阳市| 正镶白旗| 温宿县| 锡林浩特市| 大名县| 奉化市| 垫江县| 沙雅县| 丰县| 和林格尔县| 汶上县| 南溪县| 叙永县| 沅陵县| 竹溪县| 荥阳市| 呼和浩特市| 同德县| 渭南市| 沙洋县| 天津市| 余庆县| 鹿邑县| 竹北市| 镇平县| 丹凤县| 巴彦县| 墨脱县| 嘉荫县| 新郑市| 仪陇县| 山丹县| 大宁县| 木里| 马尔康县|