前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >自动售货机控制系统(VHDL开发)

自动售货机控制系统(VHDL开发)

作者头像
三尺青锋
发布2022-12-26 14:14:05
7610
发布2022-12-26 14:14:05
举报
文章被收录于专栏:淡忘的博客淡忘的博客

这周完成一个课程任务,用VHDL语言写一个自动售货机的控制系统。使用的仿真器是MAX+plus。

设计说明

根据要求可自动出售两种货物,这里的自动售货机可销售cola和pepsi两种饮料:售货机可识别1元和0.5元两种货币,在一次购买过程中,可购买一个或者多个商品,系统会自动计算所需钱数和找零的钱数并自动找零。另外有3个发光二极管、6个LCD数码管:两个用来显示所需金额,两个用来显示已付金额,两个用来显示找零数。


流程说明

这里设计的自动售货机当通电时,表示一次销售的开始。顾客选择一种商品或多种商品后就进入投币状态。若不投币,则自动返回初始状态。投币后,系统自动计算所投钱数。若投币够,则出货并找零。若投币不够,如果顾客没有继续投币,则退币并回到初始状态。本系统的投币销售流程图如图所示:

流程图
流程图

各模块说明

本文设计的自动售货机总体分四个模块:总控模块、二进制译码模块、BCD码译码模块和顶层模块。

总控模块:总控模块是本系统最重要的模块,该模块大体有5个输入端口和6个输出端口。其输入端口包括clk、coin1(投入一元货币)、coin5(投入0.5元货币)、cola(选择cola)、pepsi(选择pepsi),输出端口有paid(已投入多少钱)、needed(还需多少钱)moneyout(找零)、success(灯亮表示交易成功)、failure(灯亮表示交易失败)、showmoneyout(灯亮表示正在找零)。该模块实现了本系统最重要的交易过程,包括选择商品、投入货币,计算剩余金额,找零出货等。

二进制译码模块:该模块有一个输入端口和两个输出端口。输入端口是一个8位的二进制数输出端口bcd0、bcd1是两个4位的BCD码。该模块的主要的功能是实现将主控模块输出的二进制数(paid、needed、moneyout)转换成BCD码,以便输出到七段数码管上显示出来。该模块的原理是将一个8位的二进制转换成2个4位的BCD码,分为高四位和低四位。

BCD码译码模块:该模块有一个输入端口和一个输出端口

顶层模块:该模块有五个输入和九个输出端口。其输入口包括clk1、P2(选择pepsi)、P1_5(选择cola)、C5(投入5毛)、C1(投入1块),输出端口有shuwout(退币指示灯)、s(交易成功指示灯)、f(交易失败指示灯)、paid_lcd0、paid_lcd1(已付金额)、needed_lcd0、needed_lcd1(需付金额)、mout__lcd0、mout_lcd1(退币金额)。


程序设计

主控模块完整程序 BCD译码模块完整程序 顶层模块完整程序 具体的代码见我的github网站(1自动售货机文档).

各模块连接

售货机主控系统和译码器模块图:

售货机主控系统和译码器模块图
售货机主控系统和译码器模块图

售货机顶层模块:

顶层模块
顶层模块

波形仿真

主控模块的波形方真

这里写图片描述
这里写图片描述

上图表示顾客选择了pepsi饮料后,且投了2个一元的硬币。Success为高电平,代表售货机有饮料售出。且余额为0.

这里写图片描述
这里写图片描述

上图表示顾客选择了cola饮料后,且投2个一元的硬币。Success为高电平,代表有饮料售出,且找回顾客0.5元。

BCD译码仿真

这里写图片描述
这里写图片描述

上图表示自动售货机的译码系统,上图表示将8位数字转换成4位BCD码。

TOP文件的仿真

这里写图片描述
这里写图片描述

上图表示顾客选择了pepsi饮料后,且投了2个一元的硬币。Success为高电平,代表售货机有饮料售出。且余额为0。

总结

其实这个自动售货机控制系统老师很早之前就要我弄了,我自己一直拖,直到老师要考核才重视起来。 这个项目很多都是在网上找资料借鉴的别人的东西,自己就是把别人的代码读懂了,再将整个的流程走了一遍。收货还是很多的。自己为了第二天老师考核(答辩)的时候能够顺利通过,前一天晚上熬夜到三点。也算是体会到了做项目的艰辛。 在答辩的过程中,老师的一些问题,一些话语也是让我受益匪浅。做项目真的是让我收益很多。这里也希望这篇博客能给大家带来帮助,但是希望只是作为一个参考,更多的部分还是要自己去做,这才您才能真正学习到知识。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016-11-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 设计说明
    • 流程说明
      • 各模块说明
        • 程序设计
          • 各模块连接
          • 波形仿真
            • 主控模块的波形方真
              • BCD译码仿真
                • TOP文件的仿真
                • 总结
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档