0XuzhouInstituteofTechnology可编程器件及应用课程设计报告2016年6月30日成绩设计名称:自动售货机控制系统学院:信电工程学院专业班级:13电信学生姓名:学号:指导教师:贾燕玲1目录一、前言........................................................................................................................................2二、设计项目及要求..................................................................................................................1三、设计流程...............................................................................................................................3(一)设计说明...................................................................................................................3(二)流程说明...................................................................................................................3四、软件设计...............................................................................................................................4(一)顶层电路图..............................................................................................................4(一)状态转换...................................................................................................................4(二)模块组成...................................................................................................................51、总控模块..................................................................................................................52、译码模块..................................................................................................................93、显示模块................................................................................................................10五、各模块软件仿真及分析..........................................................................................12(一)顶层电路仿真........................................................................................................12(二)主控模块仿真........................................................................................................12(三)显示模块仿真...........................................................................................................13(四)译码模块仿真.................................................................,........................................13六、总结......................................................................................................................................15附录...............................................................................................................................................161、初始状态实物图..........................................................................................................162、购买状态实物图..........................................................................................................163、合作分工..........................................................................................................................172一、前言随着科技的发展和社会的进步,自动化商业机械有了越来越广泛的的应用,自动售货机作为自动化商业机械的代表被广泛用于公共场所自动售货,给人们的生活带来了极大的方便。特别在发达的国家,自动售货机已经十分普及,自动售货机可售出各种成型包装的小商品,各种袋装,盒装,软瓶装等小商品。因其无需专人值守而可以每天24小时售货,被称为“无人小超市”。在我国,由于多种原因,自动售货机的市场推广缓慢,随着商品市场的不断繁荣,自动售货机和自动服务设施必将逐步得到广泛的应用。本文设计研究自动售货机的主要功能模块,主要包括货币处理模块、余额计算模块、显示模块,延时和时控模块。相应的功能有选择货物,多次购买,出货找零。本文是通过使用VHDL语言,基于KXGW48FPGA芯片,并通过使用QUARTUSII软件进行程序设计,模拟仿真,功能验证,以更好的来理解和掌握自动售货机控制系统的工作原理和设计方法,以及学习和掌握基于EDA的电子产品设计方法,进一步加深对VHDL语言以及QUARTUSII软件、FPGA可编程芯片的认识与了解。FPGA是现场可编程门阵列(Fieldprogrammablegatesarray)的英文简称。是有可编程逻辑模块组成的数字集成电路(IC)。这些逻辑模块之间用可配置的互联资源。设计者可以对这些器件进行编程来完成各种各样的任务二、设计项目及要求设计一个自动售货机,它能够完成对货物信息的存储,硬币处理,余额计算和显示等功能。(1)自动售货机可以出售四种货物,每种商品的数量和单价在初始化时设定,并存储在存储器中。(2)采用模拟开关分别模拟5角和1元的硬币来进行购物,并通过按键来选择商品。(3)系统能够根据用户输入的硬币,判断钱币是否够,当所投硬币达到或超过购物者所选面值时,则根据顾客的要求自动售货,并找回剩余的硬币,然后回到初始状态。当所投硬币不够时,则给出提示,并通过一个复位键退回所投硬币,然后回到初始状态。3三、设计流程(一)设计说明本文设计的自动售货机可销售四种货物,售货机可识别1元和0.5元的两种货币,在一次购买过程中,可购买一个或多个商品,系统会自动计算所需钱数和找零的钱数并自动找零。另外有3个发光二极管、6个LCD数码管:两个用来显示所需金额,两个用来显示已付金额,两个用来显示找零数。(二)流程说明本文设计的自动售货机当通电时,表示一次销售的开始。顾客选择一种商品或多种商品后就进入投币状态。若不投币,则自动返回初始状态。投币后,系统自动计算所投钱数。若投币够,则出货并找零。若投币不够,如果顾客没有继续投币,则退币并回到初始状态。本系统的投币销售流程图如图1所示。YNYN图1投币销售流程图选择货物一货物二货物三货物四开始投币计算金额总额=物价出货(找零)继续投币退币清零结束4四、软件设计(一)顶层电路图(二)状态转换本文所设计的自动售货机进程可以分为7个状态:a,b,c,d,e,f,g.a为开始状态,当有商品选择键按下时即进入b状态(投币状态)。当有货币投入,但投币不够时,即进入c状态(继续投币),若投币够了,即进入d状态(出货找零),之后进入f状态(延时)后返回a(状态)。5(三)模块组成1、总控模块(1)模块说明总控模块是本系统最重要的模块,该模块大体有5个输入端口和6个输出端口,如图1-1所示。其输入端口包括clk、coin1(投入一元货币)、coin5(投入0.5元货币)、good1总控模块二进制译码模块显示模块6(选择货物一)、good2(选择货物二)、good3(选择货物三)、good4(选择货物四),输出端口有paid(已投入多少钱)、needed(还需多少钱)moneyout(找零)、success(灯亮表示交易成功)、failure(灯亮表示交易失败)、showmoneyout(灯亮表示正在找零)。该模块实现了本系统最重要的交易过程,包括选择商品、投入货币,计算剩余金额,找零出货等。(2)模块源程序Libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityshouhuojiisport(clk1:instd_logic;coin1:instd_logic;coin5:instd_logic;gd1:instd_logic;gd2:instd_logic;gd3:instd_logic;gd4:instd_logic;paid:outstd_logic_vector(7downto0);needed:outstd_logic_vector(7downto0);success:outstd_logic;failure:outstd_logic;showmoneyout:outstd_logic;moneyout:outstd_logic_vector(7downto0));endshouhuoji;architecturebehavofshouhuojiistypestate_typeis(qa,qb,qe,qc,qg,qd,qf);--定义七个状态signalcurrent_state:state_type:=qa;signalq:intege