数电课程设计--基于FPGA的自动售货机控制系统.docx

数电课程设计--基于FPGA的自动售货机控制系统.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数字系统课程设计 -- 基于FPGA的自动售货机 设计要求: 功能描述:用于模拟自动售货机的工作过程,完成自动售货功能。 功能要求: (1)售货机有两个进币孔,可以输入硬币和纸币,售货机有两个进币孔,一个是输入硬币,一个是输入纸币,硬币的识别范围是1 元的硬币,纸币的识别范围是5 元,10 元,20,50 元,100元。乘客可以连续多次投入钱币。 (2)顾客可以选择的商品种类有16 种,价格分别为1-16 元,顾客可以通过输入商品的编号来实现商品的选择。即有一个小键盘(0-9 按键)来完成,比如输入15 时要先输入1,再输入5。 (3)顾客选择完商品后,可以选择需要的数量。然后可以继续选择商品及其数量,每次可以选择最多三个商品。然后显示出所需金额。顾客此时可以投币,并且显示已经投币的总币值。当投币值达到或超过所需币值后,售货机出货,并扣除所需金额,并找出多余金额。在投币期间,顾客可以按取消键取消本次操作,钱币自动退出。 课题分析 1)进行购物时,顾客依次选择商品种类和对应的商品数量。一共有16种商品,编号分别为1-16,顾客通过(0-9按键)小键盘输入商品编号和对应的商品数量。若顾客继续选择商品则按下“继续购物”按钮,继续选择下一商品的种类和数量。最多可以选择三种商品,每种商品最多可选择三个。若在商品选择过程中顾客按下“取消”按钮,则回到初始化状态,顾客重新进行选择。 2)完成选择后,自动售货机显示所需金额,编号1-16的商品价格分别为1-16元。顾客根据所需金额继续投币,可以连续多次投入1元的硬币和5 元,10 元,20,50 元,100元的纸币。当投币总额大于所需金额时,自动售货机出货并找出零钱。若在投币过程中顾客按下“取消”按钮,则自动售货机自动退出顾客已经投入的钱币。 3)根据按键的数值范围(0-9)和商品数量(1-3)的选择范围,设置三个端口,分别用于接收商品编号的个位(4位)、商品编号的十位(4位)、商品数量(2位)。若顾客在商品选择的过程中,选择了三种以上商品或三个以上的个数,则系统不对其作出反应。 4)附加功能:管理人员按下reset按钮后,系统重置。默认每种商品机内存货15个,系统进入初始化状态后会自动显示商品剩余库存。 开始系统运行流程: 开始 Nreset=1 N reset=1 pre_stateY pre_state Y initial_state initial_state item_state item_state 输入商品编号 输入商品编号 N N Y输入次数小于3 Y 输入次数小于3 Y cancel=1 Y cancel=1 quantity_stateN quantity_state N 输入商品数量 输入商品数量 计算商品总额total_price 计算商品总额total_price quantity_state计算商品剩余库存并输出 quantity_state 计算商品剩余库存并输出 continue=1 continue=1 money_stateN money_state N Y输出 Y 输出total_price Ycancel=1 Y cancel=1 N N change_out=counter投币 change_out=counter 投币couter compare_stateNcountertotal_price compare_state N countertotal_price Y Y Y Y cancel=1 cancel=1 N N Ncountertotal_pricechange_out=counter N countertotal_price change_out=counter Y Y change_stateYcancel=1 change_state Y cancel=1 change_out=counter change_out=counter N N 计算找零额 计算找零额 finish_state finish_state 输出货物、找零 输出货物、找零 四、程序调试 编译通过,如图所示: 五、波形仿真: 在创建的波形仿真文件中,添加所有输入输出端口进行仿真。时钟周期设定为10ns,测试系统的所有功能是否正常。 管理员将reset置1; 第一次:购买11号商品3件,投入三枚一员硬币,一张一百元纸币; 第二次:购买01号商品1件,continue,购买10号商品2件,continue,购买13号商品3件;投入一张五十纸币,一张十元纸币; 第三次:购买03号商品2件,cancel; 第四次:购买16号商品2件;投入一张五十纸币;cancel; 六、附源代码 library ieee; use ieee.st

文档评论(0)

好老师 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档