• 方案介绍
  • 相关推荐
申请入驻 产业图谱

自动售货机投币机DE2开发板verilog售卖机

05/09 14:36
539
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

名称:自动售货机投币机DE2开发板(代码在文末付费下载)

软件:Quartus

语言:Verilog

仿真:WVF仿真

开发板验证:DE2-70开发板已验证

要求:

模拟自动售货机

一、目的

1)设计一个模拟自动售货机,此机能出售1元、2元、5元、10元的四种商品。出售哪种商品可有顾客按动相应的一个按键即可,并同时用 数码管显示出此商品的价格。

2)顾客投入硬币的钱数也是有1元、2元、5元、10元四种,但每次只能投入其中的一种硬币,此操作通过按动相应的一个按键来模拟,并 同时用数码管将投币额显示出来。

3)顾客投币后,按一次确认键,如果投币额不足时则报警,报警时间3秒(可用LED 灯模拟  报警)。如果投币额足够时自动送出货物(送出 的货物用相应不同的LED灯显示来模拟),同时 多余的钱应找回,找回的钱数用数码管显示出来。

4)顾客一旦按动确认键3秒后,自动售货机即可自动恢复到初始状态,此时才允许顾客进行下 一次购货操作。

5)售货机还应具有供商家使用的累加卖货额的功能,累加的钱数要用数码管显示,显示2位 即可。此累加器只有商家可以控制清零。

6)此售货机要设有一个由商家控制的整体复位控制。

二、 原理

首先应搭建识别模块,将代表每种硬币的拨 码开关信号转变为BCD 码进行累加。当累加完成后,将累加结果与代表商品的BCD 码相比较。如果大于售出商品并对两个BCD 码求差,求差的结果作为找钱信号;如果等于直接售出商 品;小于则报警。至于统计卖钱额,则是对售出 的商品进行累加。

演示视频:

设计文档(文档点击可下载):

1. 工程文件

2. 程序文件

3. 程序编译

4. RTL图

5. 仿真图

5.1 顶层文件仿真

下图可看到,首先选择了2元商品,确认后投币5元,确认后2元商品出货灯亮3秒。

然后再次选择10元商品,确认后投币2元和5元,再确认,BEEP蜂鸣器提示投币不足。

5.2 按键下降沿检测模块

下图为按键下降沿检测模块,可看到button_in为低电平后,button_negedge输出一个高电平,表示有下降沿。

5.3 控制模块

下图中,选中5元商品,need_money信号显示5;然后分别投币1元、2元、5元可看到throw_inmoney信号依次变为1、3、8元,按下确认键后,outgo_done_5变为高电平,表示出货,refund_money显示3,表示找钱3元。

下图中,选中10元商品,need_money信号显示10;然后分别投币2元、5元可看到throw_inmoney信号依次变为2、7元,按下确认键后,投币不足,BEEP输出方波信号,表示蜂鸣器响。

下图为2次购买完整仿真图,total_accumulated_money表示累计销售额,可以看到买完第一次后变为5。

5.4 显示模块

显示模块是数码管控制模块,主要是控制数码管的段选和位选,数码管选用共阳极数码管,低电平选中和低电平亮。

点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=149

相关推荐