《自动售货机毕业论文.doc》由会员分享,可在线阅读,更多相关《自动售货机毕业论文.doc(30页珍藏版)》请在三一办公上搜索。
1、 2012届普通本科毕业(设计)论文 存档编号: 毕业论文(设计)题目:自动售货机的设计 目 录摘 要1ABSTRACT2一、前言3(一)课题简介3(二)文献综述3(三)方案比较7二、开发工具简介8(一)VHDL介绍8(二)QuartusII软件简介8三、自动售货机系统的总体设计9(一)设计思路9(二)自动售货机的工作流程9(三)状态装换图10四、自动售货机系统的VHDL设计12(一)商品选择模块12(二)投币模块12(三)送出商品模块14(四)计时模块14五、自动售货机的仿真结果及分析16结束语19致谢20参考文献21附录A:程序源代码22摘 要本文是在VHDL的基础上对自动售货机进行设计来
2、实现其基本功能的,采用了Altera的开发软件Quarts II。通过在该软件平台上进行数字电路设计和仿真的方法,阐述了VHDL(Very High Speed Integrated Circuit Hardware Description Language)超高速集成电路硬件描述语言的一些特点及语法结构,介绍了自动售货机的基本原理、系统组成和主要功能,并分析讨论了用VHDL语言开发自动售货机系统的设计流程。本设计采用VHDL硬件描述语言编程的设计方法设计系统核心电路的硬件程序,在Quartus II软件平台上进行编译和仿真,最后生成的目标文件下载到实验台内的FPGA芯片以模拟实现该系统,并在
3、实验台上对设计进行验证。文章首先简述了自动售货机系统的意义和发展现状以及VHDL语言的特点,然后介绍了自动售货机的设计要求、设计思路,并给出了总体设计框图,通过分析设计写出VHDL程序源代码,将代码在Quartus II软件平台上进行编译仿真,波形基本符合设计要求。最终完成的自动售货机系统具有商品选择,投币处理、出货找零、异常退币等主要功能,整个系统的开发体现了在Quartus II软件平台上用VHDL设计数字控制系统的实用性。关键词:自动售货机,硬件描述语言VHDL, Quarts II,FPGAABSTRACTThis article is to achieve its basic fun
4、ctions,the automat system on the basis of the VHDL design using Alteras development software Quarts II. Digital circuit design and simulation in the software platform on some of the features of the VHDL (Very High Speed Integrated Circuit the Hardware Description Language) language and grammatical s
5、tructures, the basic principles of the automat system, system composition and main functions and analyzed and discussed the development of the automat system process using VHDL language. This design methods core circuit hardware design using the VHDL hardware description language programming program
6、, compile and circuit simulation in the Quartus II software platform, the last generated target file downloaded to the bench inside the FPGA chip to simulate the system, validate the design in the experimental stage.The article first outlines the meaning of the automat system and development as well
7、 as the characteristics of the VHDL language, then the vending machine design, design ideas, and gives the block diagram of the overall design, analysis and design to write the VHDL source codethe code in the Quartus II software platform compilation simulation waveforms in line with the design requi
8、rements. The vending machine system has the final selection of merchandise, coin processing, purchase withdrawn, the main function of the abnormal coin, the entire system development reflects the usefulness of VHDL design digital control systems used in the Quartus II software platform.Keywords: the
9、 automat system, the hardware description languageVHDL, Quarts II, the FPGA一、前言(一)课题简介1、 设计目标设计一台能够出售1元、5元、10元三种商品的自动售货机,具有钱币识别,自动售货,自动找钱、警告等功能,此机可接收的钱币为1元,5元和10元。2、设计任务和要求:2.1自动售货机能出售1元、5元、10元三种商品;2.2顾客投入硬(纸)币的钱数有1元、5元、10元三种,假设每次只能投入其中的一种币,投币后用数码管将投币额显示出来;2.3投币额足够时自动送出货物(送出的货物用相应不同的指示灯显示来模拟),同时多余的钱
10、找回,找回的钱数用数码管显示出来;2.4本设计中假设商品存货无限,找零钱币无限; 2.5顾客一次只能购买一种商品的一个,若需要更多商品,需要重复操作。(二)文献综述我选择的课题是自动售货机的设计,为了加深对自动售货机的了解,将专业相关的理论融会贯通,理解VHDL语言的应用,学会分析问题、解决问题、学以致用。通过查阅各种资料,编写程序,并在电脑软件上仿真,加深了对VHDL语言的应用与理解 。1、研究背景简介自动售货机是能根据投入的钱币自动付货的机器。它是商业自动化的常用设备,不受时间、地点的限制,能节省人力、方便交易,是一种全新的商业零售形式,又被称为24小时营业的微型超市。1962年,出现了以
11、自动售货机为主体的流通领域的革命,到了20世纪80年代,自动售货机在美国和日本被广泛使用,后逐渐散步世界各地,主要是发达国家,成为一种全新的消费方式,它的售货领域非常广泛,是发达国家商品零售的一种主要方式。自动售货机作为一种先进的消费方式,已经成为城市现代文明发达程度的重要标志,其新颖、时尚的购物方式,24小时营业的特点给人们生活带来了便利,美化了城市环境,受到消费者的欢迎。但是在我国自动售货机的普及还不及发达国家,主要原因是我国EDA技术的应用水平长期落后于发达国家。在中国,自动售货机将成为一个潜在的巨大产业,继百货商店、超市之后掀起第三次零售业革命,其前景非常广阔。售卖的商品课根据摆放场所
12、的需要量身定制,包括冷热饮料、零食、电话卡及国外进口的特色商品等。并且,透过这种智能售货系统,存货、销售、物流信息可以准确、及时地反馈给客户和管理人员,。此外,还支持多种交易支付模式,同时方便实现较大金额的支付和交易结算。在2004年,通过手机购物的无线自动售货机在国内开始出现,天津南开戈德公司已研制此种类型的自动售货机。这种新一代自动售货机除了更方便售卖货品之外,还被视为一种传播广泛的广告媒介。在国外,自动售货机发展相对成熟。日本的自动售货机已经有2000多种机型、6000多种商品。在美国,运营商就多大10800家,并且具有与大饮料商、大食品商的合作经验。在日本,由于其无所不在,24小时供应
13、,自动售货机很受特别忙碌的人欢迎。随着经济发展,传统的固定地点人员售货方式暴露出许多弊端:人力资源需求大;受所需服务地点,地理条件的限制;而且在服务时间上不能最大限度的服务于消费者。自动售货机的出现解决了这些难题。随着EDA技术的高速发展,电子系统的设计技术和工具发生了深刻的变化,大规模可编程逻辑器件CPLDFPGA的出现,给设计人员带来了诸多方便。利用它进行产品开发,不仅成本低、周期短、可靠性高,而且具有完全的知识产权。本文利用VHDL语言设计自动售货机,使其实现自动售货,找零钱等功能,突出了其作为硬件描述语言的良好的可读性、可移植性和易读性等优点。程序通过下载到特定芯片后,可应用于实际的自
14、动售货机系统中,从而有效解决了成本,质量,运营等诸多问题。随着中国经济的快速发展和社会的巨大进步,自动售货机的实际需求会更加大,必将深入到生活中的方方面面。2、研究动态目前,我国在研制自动售货机等方面有可喜的成果,但总的来说还没有形成真正的产业。在自动售货机相关的所有研究领域中,全球对其关键技术的研究主要集中在系统内部销售动作实现方式的研究、资金结算及销售信息统计管理的实现方式研究、功耗节省模式的研究。根据相关文献资料,系统内部销售动作实现方式的研究已基本成熟,研究最多的主要集中在资金结算及销售信息统计管理的实现方式和功耗节省模式上。在FPGA基础上,采用VHDL描述语言实现自动售货机系统的销
15、售动作,并完成整个系统的其他相关功能。自动售货机的机体内部结构已经相当完善,影响其普及的关键因素:在现有的各种通信网路平台上如何呢让自动售货机形成一种销售连锁网,为其提供更方便的营销方式和管理机制,能最大限度地降低生产、运营成本。目前,无论是基于internet还是基于移动通信网或其他网络平台,其运作的机制都不太成熟,不过这并不影响自动售货机的发展潜力。因此,自动售货机未来的发展趋势是将其纳入到一个更广阔、更便利的移动商务网络平台。社会将会更加需要能够合理利用能源的工业产品,因此自动售货机的发展也会向着这个方向发展,节能、环保型的自动售货机将是未来社会所需要的主流产品。因此,开发出高性价比的自
16、动售货机,保持与国外同类产品在性价比同步的同时,打破国外技术垄断和封锁,对发展我国电子业有非常重大的意义,具有广泛的应用前景,加紧对这类产品的研制显得非常紧迫。3、研究方法的分析本文是在VHDL的基础上对自动售货机进行设计来实现其基本功能的。由于以往的设计主要是通过两种方式:通过数字电路和模拟电路设计、基于单片机的设计。第一种方式的缺点既所设计的整体电路规模较大,所用的器件较多,造成故障率高,导致计价器不够准确;而基于单片机的设计,虽然其有着开发及制作成本低,能较大程度的利用资源,但其外围电路较多,且调试复杂,抗干扰能力差。而本文所用到的VHDL具有稳定性好、抗干扰能力强等特点,且非常适合作为
17、自动售货机的控制核心,所以选择用VHDL来对自动售货机进行设计来实现其功能。本文对自动售货机的设计主要分为选择商品,投入货币,送出商品,3秒计时四个模块,在设计各个模块时文献中有很多不同的方法,但总的来说都是用VHDL语言来逐步按照各个模块通过其状态描述实现其功能。综述如下:对自动售货机的研究中,通过文献科技情报开发与经济2003年第12期中的文章一种新型自动售货机的研制和北方交通大学学报第6期中的文章人民币识别器与自动售货机通信的设计与实现以及哈尔滨商业大学学报(自然科学版)中的第一期文章自动售货机结构安全机制的研究中,提出了自动售货机内部结构和具体销售动作方面的改进和一些具体细节的完善。自
18、动售货机的国内外的发展现状通过查阅电子商务2005年第3期白丽的文章自动售货机: 第三次零售业革命。在文献微型电脑应用2005年第5期文章基于Verilong HDL 自动售货机的设计与实现提到,在FPGA 或ASIC 等基础上,采用VHDL 描述语言实现自动售货机系统的销售动作,并完成整个系统的其他相关功能,其设计思想为:用有限状态机进行系统状态描述,自动售货机通电复位时,自动进入系统初始状态,随外界(消费者)输入信号的触发转换到不同状态。在不同状态下,自动售货机对外界的反应是不同的,可以进入接受信号(投币)状态,也可以进入销售状态,或者是找零状态。在文献黄科,艾琼龙,李磊主编,EDA与数字
19、系统设计案例实践M清华大学出版社,2010.1的245页到248页详细了描述了自动售货机各个状态的装换,文中“需要假定通过传感器产生的投币信号在电路转入新状态的同时也随之消失,否则被误认作又一次投币信号”给本文的研究提供了一个假设基础,同时给出了设计思路,在此基础上研究将会更加简便。在选择设计方案时,对于用单片机的方法完成本设计的思路通过查阅王永华编著,现代电气控制及PLC应用技术M北京航空航天大学出版社一书。FPGA设计开发流程以及状态机的描述在文献郭照南主编,电子技术与EDA技术课程设计M中南大学出版社,2010年一书的125页到128页。设计中的分模块来进行设计的思想通过查阅廖超平主编,
20、EDA技术与VHDL使用教程M高等教育出版社,2007年一文中 “VHDL支持层次化文件设计,即将一个复杂的电路划分为若干模块,在把较大的模块划分为较小的模块,整个电路由若干模块组成,较大的模块由较小的模块组成。对每个模块或较小的模块分别编写VHDLA设计文件,电路的整体则由顶层文件描述”。论文中的时钟输入,使能控制以及复位参考包明编著,EDA技术与可编程器件的应用M北京航空航天大学出版社,2007年一书的213页写到“AHDL的状态机有一个时钟出入端clk、一个使能控制端ena、一个复位输入端rest,以及由参数定义的状态位和状态”。同时这些相关知识在潘松,黄继业编著,EDA技术实用教程VH
21、DL版(第四版)M科学出版社,2010年中77页到84页中也有相关详细的讲解。本设计的语法编程中的进程语句和if语句以及各种语法通过查阅文献潘松,黄继业编著,EDA技术实用教程VHDL版(第四版)M科学出版社,2010年和刘绍汉,林灶生,刘新民编著的VHDL芯片设计M清华大学出版社,2004年以及邹彦编著,EDA技术与数字系统设计M电子工业出版社,2007.4。通过状态机的方式来实现自动售货机的工作过程,状态机的使用通过查阅朱正伟主编,EDA技术及应用M清华大学出版社,2005年书中的189页到208页的有限状态机设计。本设计是基于VHDL进行编程,然后在Quartus II进行波形仿真,对主
22、体FPGA的设计书本数字逻辑EDA设计与实践刘昌华是这样描述的:该电路的核心就是技术分频电路,通过VHDL语言的顺序语句ifthenelse 根据一个或者一组条件来选择某一特定的执行通道,生成商品选择,货币计算等。写完VHDL语言编程之后,各个模块的程序都完成后需要在Quartus II上进行仿真,利用Quartus II软件仿真的方法通过查阅潘松,黄继业编著,EDA技术实用教程VHDL版(第四版)M科学出版社,2010年一书中的第95页到135页。其中,本论文的主要内容都是参考潘松,黄继业编著,EDA技术实用教程VHDL版(第四版)M科学出版社,2010年这一本书,书中的很多内容都简单易懂。
23、通过对以上文献的分析及综合,得出了本设计的设计思路和设计框图,并通过实际编程,进行仿真来实现了自动售货机的功能,最终完成了本论文的设计。(三)方案比较方案一:用单片机实现:通过软件编程,仿真,调试,符合要求后将程序用编程器写入到单片机芯片上。利用单片机的中断响应钱币识别或者售出货物的请求,进行相应的处理。利用寄存器存放钱币处理系统运行状态,从而可以根据整个钱币处理的状态进行找零出货。方案二:用VHDL(硬件描述语言)实现:利用硬件描述语言编程,仿真调试后下载到可编程逻辑器件(CPLD)上实现。可以对自动售货机整个过程进行判断、处理。整个过程完全实现了自动化和智能化。比较而言,方案一的开发及制作
24、成本较低,能较大程度地利用资源,但外围电路较多,调试复杂,抗干扰能力差,且对设计者的要求比较高,设计者对软硬件都必须非常熟悉,由于主要是软件运作,容易出错,造成系统不稳定,可能会出现投入钱币却不出售货物的情况。方案二将所有器件集成在一块芯片上,体积大大减小的同时还提高了稳定性,并且可应用EDA软件仿真,调试,易于进行功能扩展,外围电路较少,采用硬件逻辑电路实现,其最大的优点是稳定性好,抗干扰能力强,非常适合作为自动售货机系统的控制核心。基于对以上各个因素的考虑,又由于FPGA中有限状态机FSM(Finite StateMachine)及其设计技术是实用数字系统设计中实现高效率、高可靠逻辑控制的
25、重要途径。所有的状态均可表达为CASE-WHEN结构中的一条CASE语句,而状态的转移则通过IF-THEN-ELSE语句实现。此外,与VHDL的其它描述方式相比,状态机的VHDL表达丰富多样,程序层次分明,结构清晰,易读易懂;在排错、修改和模块移植方面也有其独到的特点。因此,决定选用以VHDL为核心,用VHDL有限状态机编程来实现自动售货机的设计。二、开发工具简介(一)VHDL介绍硬件描述语言(HDL)是一种用于设计硬件电子系统的计算机语言,它用软件编程的方式来描述电子系统的逻辑功能、电路结构和连接形式,与传统的门级描述方式相比,它更适合大规模系统的设计。例如一个32位的加法器,利用图形输入软
26、件需要输人500至1000个门,而利用VHDL语言只需要书写一行“A=B+C” 即可。而且 VHDL语言可读性强,易于修改和发现错误。早期的硬件描述语言,如ABEL、HDL、AHDL,由不同的EDA厂商开发,互不兼容,而且不支持多层次设计,层次间翻译工作要由人工完成。为了克服以上不足,1985年美国国防部正式推出了高速集成电路硬件描述语言VHDL,1987年IEEE采纳VHDL为硬件描述语言标准(IEEE-STD-1076)。(二)QuartusII软件简介Quartus II 是Altera公司的综合性PLD开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(Altera Ha
27、rdware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。 Quartus II可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集中,易学易用等特点。 Maxplus II 作为Altera的上一代PLD设计软件,由于其出色的易用性而得到了广泛的应用。目前Altera已经停止了对Maxplus II 的更新支持,Quartus II 与之相比不仅仅是支持器件类型的丰富和图形界面的改变。Altera在Qua
28、rtus II 中包含了许多诸如SignalTap II、Chip Editor和RTL Viewer的设计辅助工具,集成了SOPC和HardCopy设计流程,并且继承了Maxplus II 友好的图形界面及简便的使用方法。 Altera Quartus II 作为一种可编程逻辑的设计环境, 由于其强大的设计能力和直观易用的接口,越来越受到数字系统设计者的欢迎。三、自动售货机系统的总体设计(一)设计思路一般的自动售货机由钱币装置、指示装置、贮藏售货装置等组成。钱币装置是售货机的核心,其主要功能是确认投入钱币的真伪,分选钱币的种类,计算金额。如果投入的金额达到购买物品的数值即发出售货信号,售出货
29、物并找出余钱。指示装置用以指示顾客所选商品的品种。贮藏售货装置保存商品,接收出售指示信号,把顾客选择的商品送至出货口。一般售货机的钱币装置由投币口、选别装置、确认钱币真伪的检查装置、计算金额的计算装置和找钱装置组成。本文在VHDL基础上,采用VHDL硬件描述语言模拟实现自动售货机系统的销售动作,用有限状态机进行系统状态描述,并完成整个系统的其他相关功能。自动售货机通电复位时,自动进入到系统初始状态,随外界(消费者)输入信号的触发转换到不同状态。在不同状态下,自动售货机对外界的反应时不同的,可以进入接受信号(投币)状态,也可以进入销售状态,或者是找零状态。(二)自动售货机的工作流程根据自动售货机
30、的工作过程,为了论文研究的需要简化成了四个部分:初始状态、选择商品、投入货币、送出商品并找零。若操作失误或投币不足会报警3秒。同时,在售货过程中,投入的货币和找零的货币会用数码管显示出来,在本文中数码显示管默认为硬件中已经存在,故不多做研究。自动售货机能出售1元、5元、10元三种商品。本设计中假设商品存货无限,找零钱币无限。三种商品分别设为三个按键(sel1、sel5、sel10),出售哪种商品可由顾客按动相应的一个按键即可,并同时用数码管(digit)显示出此商品的价格;顾客投入硬(纸)币的钱数也是有1元、5元、10元三种,假设每次只能投入其中的一种币(put1、put5、put10),此操
31、作通过按动相应的一个按键来模拟,并同时用数码管将投币额显示出来(digit);顾客投币后,按一次确认键(sure),如果投币额不足时则报警,报警时间3秒(jing)。如果投币额足够时自动送出货物(送出的货物用相应不同的指示灯显示来模拟),同时多余的钱应找回,找回的钱数用数码管显示出来;顾客一旦按动确认键3秒后,自动售货机即可自动恢复到初始状态,此时才允许顾客进行下一次购货操作;顾客一次只能购买一种商品的一个,若需要更多商品,需要重复操作。本文主要研究自动售货机工作过程中的主要控制部分,流程图如下图3.1所示:大于商品价格小于商品价格初始状态选择商品找零,退币投入货币送出商品警告3秒比较币价结束
32、图3.1工作过程流程图(三)状态装换图在本文的设计中,通过采用有限状态机的方式完成设计,根据工作流程和编程需要,总共有21个状态,其中S0为初始状态。本设计的程序编写及工作过程均按照状态装换图。状态转换图如下图3.2所示:S0S21S20S18S19S17S16S15S14S13S2S3S1S12S11S9S100S8S7S6S5S4S0图3.2状态转换图S0为初始状态,S1、S2、S3为1元、5元、10元商品选择状态;S4、S5、S6为选择1元商品,分别投入1元、5元、10元货币;S7、S8、S9为选择5元商品分别投入1元、5元、10元货币;S10、S11、S12为选择10元商品分别投入1元
33、、5元、10元货币;S13、S14、S15、S16、S17、S18、S19、S20、S21分别对应的为出货、找零、货币不足并警告等状态;最后返回到初始状态S0.四、自动售货机系统的VHDL设计因为本设计采用的是状态机的设计,各个模块通过状态的选择有机的联系在一起,根据设计流程图和状态图将程序分为商品选择模块,投币模块,送出货物模块。其中,为了编写程序方便对程序中的各个执行动作用了相应的符号表示:sel1、sel5、sel10分别控制选择1元、5元、10元三种商品,put1、put5、put10分别是顾客投入硬(纸)币的钱数1元、5元、10元,sure是确认输入,rst是由商家控制的整体复位控制
34、输入;jing是警告输出,out1、out,out10分别是1元、5元、10元三种商品输出指示,digit用于显示顾客投币钱数和找零钱数。各个模块对应的程序如下所示:(一)商品选择模块当顾客选择1元、5元或10元三种商品时分别由状态S0跳转至S1、S2、S3状态,否则停留在S0状态,选择货物的钱数在数码管上显示出来,程序代码如下所示:when s0=jing=0;out1=0;out5=0;out10=0;digit=0; if sel1=1 and sel5=0 and sel10=0 then ns=s1; elsif sel1=0 and sel5=1 and sel10=0 then
35、ns=s2; elsif sel1=0 and sel5=0 and sel10=1 then ns=s3; else nsdigit=1; if put1=1 and put5=0 and put10=0 then ns=s4; elsif put1=0 and put5=1 and put10=0 then ns=s5; elsif put1=0 and put5=0 and put10=1 then ns=s6; else nsdigit=5; if put1=1 and put5=0 and put10=0 then ns=s7; elsif put1=0 and put5=1 and
36、 put10=0 then ns=s8; elsif put1=0 and put5=0 and put10=1 then ns=s9; else nsdigit=10; if put1=1 and put5=0 and put10=0 then ns=s10; elsif put1=0 and put5=1 and put10=0 then ns=s11; elsif put1=0 and put5=0 and put10=1 then ns=s12; else nsout1=1;out5=0;out10=0;jing=0;digit=0; if b=1 then ns=s0;-延时控制 e
37、lse nsout1=1;out5=0;out10=0;jing=0;digit=4; if b=1 then ns=s0; else nsout1=1;out5=0;out10=0;jing=0;digit=9; if b=1 then ns=s0; else ns=s15; end if;(四)计时模块本文的设计中要求售货过程结束后有一个3秒复位以及出错后有3秒的警告时间,需要通过延时来实现,延时程序如下所示:if rst=1then ps=s0;-当复位信号有效时,s0赋给现态 elsif clkevent and clk=1 then ps=ns;-当上升沿到来时,次态赋值给现态 if
38、(a=1)then temp:=temp+1; if(temp=3)then b=1; else b=0; end if; else temp:=0; end if; end if;-延时程序end process;五、自动售货机的仿真结果及分析在时序仿真中,将仿真时间轴设置在一个合理的时间区域上十分重要。通常设置的时间范围在数十微妙间:选择editend time 命令,在弹出窗口中的time 文本框中输入50,单位选us,本设计的整个仿真域的时间即设定为50us。通过viewutility windowsnode finder命令将端口信号节点选入波形编辑器中,编辑输入波形后开始仿真。本设
39、计中时钟clk周期为200ns,rst为低电平。设置好后仿真,选择processingstart simulation命令,直到出现simulation was successful,仿真结束。本设计的仿真程序见附录,结果如下所示:1、当所选商品钱数与投币钱数相等时波形仿真结果图如图5.1所示图5.1投币正好波形仿真图由波形仿真结果可以看到:当按下选择5元商品时(sel5为高电平),digit输出为5,当投币为5元时(put5为高电平),digit输出为5,当按下确认(sure为高电平)后digit输出为0,即找零为0。并且显示5元商品输出(out5为高电平),三个上升沿即3秒后复位,所有输出
40、为0;2、当所选商品钱数比投币钱数多时波形仿真结果图如图5.2所示:图5.2投币不足波形仿真图由波形仿真结果可以看到:当按下选择5元商品时(sel5为高电平),digit输出为5,当投币为1元时(put1为高电平),digit输出为1,当按下确认(sure为高电平)后digit输出为1,即找回1元并且无商品输出,警告(jing为高电平)经过3个上升沿即3秒后复位,所有输出为0。3、当所选商品钱数比投币钱数少时波形仿真结果图如图5.3所示:图5.3投币多的波形仿真图由波形仿真结果可以看到:当按下选择1元商品时(sel1为高电平),digit输出为1,当投币为5元时(put5为高电平),digit
41、输出为5,当按下确认(sure为高电平)后digit输出为4,即找回4元并且1元商品输出(out1为高电平),经过3个上升沿即3秒后复位,所有输出为0。结束语通过设计简单的自动售货机,详细了解了自动售货机的投币模块,商品选择模块,主控模块等模块的软件设计与实现主要功能的模块的仿真。经过仿真与实践,整个系统的工作稳定可靠,具有较强的适应性,基本完成了自动售货机的工作过程。不过缺点是只能完成相对比较简单的自动售货机功能,实现金额计算,发放商品,找零,退币等功能。由于其中是商品存货无限,找零无限,因此不会出现找零钱币与商品存货不足的情况。解决办法是通过增加模块与输入信号来解决。本设计在VHDL进行设
42、计时通过以下步骤来实现的:采用分模块的设计方法将整个系统分为延时模块,商品选择模块,投币模块,送出商品模块,以及警告,使每个模块的设计功能相对单一,降低了设计难度,也便于程序调试。系统中很多模块的VHDL程序设计中,均涉及多个控制信号,多个控制信号的作用通过嵌套的条件语句完成的,这些条件信号的作用时机(是先作用还是后作用)和作用方式(是高、低电平还是上升沿、下降沿)非常有技巧,特别值得注意。由于本文采用的状态机来完成实验,所以程序各个模块中涉及到很多状态,通过对各个状态实现的功能做详细的划分,从而使程序简单明了的实现了相应的功能。在做自动售货机的设计的过程中,通过查阅资料了解了自动售货机的一些
43、相关知识,它是集光、机、电、机械加工、制冷、加温、防伪识别及电子软件技术于一体的高新技术产品,同时也发现了其中的一些弊端。由于时代的发展,自动售货机是现代社会中的一种商务工具,在生活中应用愈加广泛,根据日本、美国等国家的经验,自动售货机将在全球范围内得到更大的普及,但是在对我们的生活带来方便的同时,由于它本身固有的特点,同时也不可避免的产生一些负面的影响,比如青少年的不良饮食习惯和吸烟等现象等在一定程度上是由于自动售货机所致,自动售货机便于销售香烟,含糖饮料,这些没有营养的含糖饮料像苏打水,果汁饮料及冰茶等直接影响青少年肥胖病盛行的原因之一。自动售货机的发展目标是为社会和生活带来最大的便利,这
44、就要求不但要具备实现其本身固有的功能,更重要的是要求不会给社会和日常生活带来各种各样的负面影响。致谢在这次毕业论文的撰写过程中,得到了许多人的帮助。首先我要感谢我的指导老师在毕业设计上给予我们的指导、提供给我的支持和帮助,这是我能顺利完成这次报告的主要原因,更重要的是老师耐心的帮我解决了许多技术上的难题,让我能把系统做得更加完善。在此写毕业论文期间,我不仅学到了许多新的知识,而且也开阔了视野,提高了自己的设计能力。在此,我也要感谢帮助过我们的同学们,他们为我解决了不少我不太明白的难题。同时也感谢学院为我提供良好的做毕业设计的环境。最后再一次感谢所有在设计中曾经帮助过我的良师益友和同学。参考文献1白丽自动售货机:第三次零售业革命 电子商务,2005,(3)2王雯隽基