您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 酒店餐饮 > 广西科技大学课程设计-基于VHDL的自动售货机(优秀)
摘要随着社会的发展,文明的进步,人们的生活逐渐智能化已成为一种趋势。自动售货机就是其中之一。它以其创新性,美观大方,占地面积小,灵活方便等而深受市民的青睐。为此,本次课程设计为基于VHDL语言设计一个自动售货机。其主要功能为:实现销售cola与pepsi两种饮料,售价均为1.5元。顾客可以由两个不同投币孔分别投入5角硬币或1元硬币,一次交易只能购买一瓶,且自动找零,可选择所需的饮料品牌并显示其价格,可显示投入及找零的金额,一次交易结束有声音提示。关键词:VHDL、自动售货机、课程设计AbstractThroughthedevelopmentoftheworldandhumancivilization,lifebeingintelligenthasaformoftrend,includingVendingmachine.It’screativity,exterior,smallvolume,conveniencedeeplyfavoramountofcitizens.ThecurriculumdesignbasedatVHDLtodesignavendingmachine.Themainfunctionisselltwokindofbeveragesandbothpriceis1.5yuan.customercanuse0.5or1coinstopayandonetradecanonlypurchaseonebottonofbeverages,what’smore,theautomatichomingisavailable.Enablethebandandit’spricewhenselected.Enabletheamountofinputandkeepthechange,Enablesoundtipswhenonetradeisover.Keyword:VHDL、vendingmachinecurriculumdesign第一章自动售货机的概述1.1自动售货机的历史、现状、前景世界上最早的自动售货机出现在公元前3世纪。17世纪,英国的酒吧里设有了香烟的自动售货机。在自动售货机历史的长河中,日本开发出实用型的自动售货机,那是在进入本世纪后的事情。日本第一台自动售货机在1904年问世的“邮票明信片自动出售机”,它是集邮票明信片的出售和邮筒投函为一体的机器。自动售货机的真正普及是在第二次世界大战以后。50年代,“喷水型果汁自动售货机”大受欢迎,果汁被注入在纸杯里出售。后来,由于美国的饮料公司进入日本市场,1962年,出现了以自动售货机为主体的流通领域的革命。1967年,100日元单位以下的货币全部改为硬币,从而促进了自动售货机产业的发展。从自动售货机的发展趋势看,它的出现时由于劳动密集型的产业构造向技术密集型社会转变的产物。大量生产和消费以及消费模式和售后环境的变化,要求出现新的流通渠道;而相对的超市、百货购物中心等新的流通渠道的产生,人工费用也不断上升;再加上场地的局限性以及购物的便利性等这些因素的制约,无人自动售货机作为一种必须的机器便应运而生了。从广义来讲,投入硬币,纸币,信用卡等后,便可以销售商品的机械,从狭义来讲就是自动销售商品机械。从供给的条件看,自动售货机可以充分补充人力资源的不足,适应消费环境和消费模式的变化,24小时无人售货系统可以更省力,运营时需要的资本少,占用面积小,有吸引人们购买好奇心的自身性能,可以很好地解决人工费用上升的问题等各项优点。现在,自动售货机产业正在走向信息化并进一步实现合理化。例如实行联机方式,通过电话线路将自动售货机的库存信息及时地传送各营业点的电脑中,从而确保了商品的及时发送与补充以及商品选定的顺利进行。并且,自动售货机的开发致力于能源的节省,节能型清凉饮料自动售货机成为该行业的主流。在夏季电力消耗高峰时,这种机型的自动售货机即使在关掉冷却器的状态下也能保持低温,与以往的自动售货机相比,它能够节约电力。进入21世纪,自动售货机也将进一步向节省资源和能源以及高功能化的方向发展。1.2自动售货机的设计目的经过一学期的EDA学习,我对VHDL语言有了一定的认知基础,,考虑到趣味性,以及可行性,决定选择本题目。通过两周的课程设计,利用自己所学的知识和各种相关资料,以及网络资源,根据要求,写出相应的代码,并进行软件调试与仿真,发现并改正错误,并记录调试后的波形图文件。1.3自动售货机的功能本次设计的自动售货机有以下功能:①自动售货机可销售cola与pepsi两种饮料,售价均为1.5元。②顾客可以由两个不同投币孔分别投入5角硬币或1元硬币,一次交易只能购买一瓶,且自动找零。③可选择所需的饮料品牌并显示其价格。④可显示投入及找零的金额。⑤一次交易结束有声音提示,并清零。第二章自动售货机设计思想2.1自动售货机的设计要求1、自动售货机有2个投币孔,每次只能投入一枚硬币,但可以连续投入多枚硬币,机器能够识别的硬币金额为1元和0.5元,顾客可选择的饮料有cola与pepsi,每次只能售出1瓶饮料。2、顾客可以由两个不同投币孔分别投入5角硬币或1元硬币,一次交易只能购买一瓶,且自动找零。3、可选择所需的饮料品牌并显示其价格,可显示投入及找零的金额一次交易结束有声音提示,并清零。2.2模块分析分析系统设计要求,不难得知自动售货机系统可以通过多进程设计的方法实现。其中,最主要也是最核心的进程控制自动售货机的货物信息储备、购买、价格计算、找币等功能,其他进程则负责选择商品种类的指示译码、消费品种单价和消费总价的显示译码等。自动售货机的系统框图如下所示。其中,clk为输入时钟脉冲信号,set为货物信息存储信号,get为购买信号,sel为货物选择信号,finish为购买完成信号,coin0,coin1分别为0.5元和1元的投币,price[3..0]和quantity[3..0]分别为商品价格和数量。输出信号中,item0[3..0]和act[3..0]指示选择商品的种类并译码输出,y0输出购买消费的钱数,y1输出购买商品的单价,act10和act5分别表示找零的0.5元和1元的硬币数量。2.3工作流程当置数信号set为高电平时,对商品的单价、数量进行相应的设置;在每一次购买前,先对投入的硬币数量进行清零;购买时,首先以0.5元为基本单位对投入的硬币数量进行计数;当选择信号sel高电平有效时,选择所要购买的商品种类;当get信号高电平有效时,购买所选择的商品;当finish信号高电平有效时,结束交易并完成找币操作;当get信号为低电平时,则显示商品的单价及其数量。第三章自动售货机的实验结果3.1仿真波形自动售货机的仿真波形图下面对自动售货机的预置、选择、购买和找币功能进行考察自动售货机预置功能仿真图自动售货机选择功能仿真图自动售货机投币功能仿真图自动售货机购买和找零功能仿真图3.2程序的调试第四章小结通过两周的课程设计,大概掌握了EDA的开发流程,并且通过程序设计,仿真,对设计有了更深刻的理解。对自动售货机的原理有了一个深刻的认识。特别是把功能设计与实际联系起来,考虑问题更加全面了。总的来说,本次课程设计受益匪浅。不管是在知识还是工程方面,都有了一个提升。参考文献1.潘松,黄继业.EDA技术实用教程(第二版)[M].北京:北京航空航天大学出版社,19902.刘欲晓,方强,黄宛宁等.EDA技术与VHDL电路开发应用实践[M].北京:电子工业出版社,20093.谭会生,瞿遂春等.EDA技术综合应用实例与分析[M].西安:西安电子科技大学出版社.2004.附录LIBRARYIEEE;USEIEEE.STD_LOGIC_ARITH.ALL;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYautosaleISPORT(clk:INSTD_LOGIC;set,get,sel,finish:INSTD_LOGIC;coin0,coin1:INSTD_LOGIC;price,quantity:INSTD_LOGIC_VECTOR(3DOWNTO0);item0,act:OUTSTD_LOGIC_VECTOR(3DOWNTO0);y0,y1:OUTSTD_LOGIC_VECTOR(6DOWNTO0);act10,act5:OUTSTD_LOGIC);ENDautosale;ARCHITECTURErtlOFautosaleISTYPEram_typeISARRAY(3DOWNTO0)OFSTD_LOGIC_VECTOR(7DOWNTO0);SIGNALram:ram_type;SIGNALitem:STD_LOGIC_VECTOR(1DOWNTO0);SIGNALcoin:STD_LOGIC_VECTOR(3DOWNTO0);SIGNALpri,qua:STD_LOGIC_VECTOR(3DOWNTO0);SIGNALclk1:STD_LOGIC;BEGINcom:PROCESS(set,clk1)VARIABLEquan:STD_LOGIC_VECTOR(3DOWNTO0);BEGINIFset='1'THENram(CONV_INTEGER(item))=price&quantity;act=0000;ELSIFclk1'EVENTANDclk1='1'THENact5='0';act10='0';IFcoin0='1'THENIFcoin1001THENcoin=coin+1;ELSEcoin=0000;ENDIF;ELSIFcoin1='1'THENIFcoin1001THENcoin=coin+2;ELSEcoin=0000;ENDIF;ELSIFsel='1'THENitem=item+1;ELSIFget='1'THENIFqua0000ANDcoin=priTHENcoin=coin-pri;quan:=quan-1;ram(CONV_INTEGER(item))=pri&quan;IFitem=00THENact=1000;ELSIFitem=01THENact=0100;ELSIFitem=10THENact=0010;ELSIFitem=11THENact=0001;ENDIF;ENDIF;ELSIFfinish='1'THENIFcoin0001THENact10='1';coin=coin-2;ELSIFcoin0000THENact5='1';coin=coin-1;ELSEact5='0';act10='0';ENDIF;ELSIFget='0'THENact=0000;FORiIN4TO7LOOPpri(i-4)=ram(CONV_INTEGER(item))(i);ENDLOOP;FORiIN0TO3LOOPquan(i):=ram(CONV_INTEGER(item))(i);ENDLOOP;ENDIF;ENDIF;qua=quan;ENDPROCESS;m32:PROCESS(clk)VARIABLEq:STD_LOGIC_VECTOR(24DOWNTO0);BEGINIFclk'EVENTANDCLK='1'THENq:=q+1;ENDIF;IFq=111111111111111111111111THENclk1='1';ELSEclk1='0';ENDIF;ENDPROCESS;code0:PROCESS(item)BEGINCASEitemISWHEN00=item0=0111;WHEN01=item0=1011;WHEN10=item0=1101;WHEN11=item0=0111;WHENOTHERS=item0=1110;ENDCASE;ENDPROCESS;code1:PROCESS(coin)BEGINCASEcoinISWHEN0000=y0=0000001;WHEN0001=y0=100111
本文标题:广西科技大学课程设计-基于VHDL的自动售货机(优秀)
链接地址:https://www.777doc.com/doc-4098848 .html