网站大量收购独家精品文档,联系QQ:2885784924

基于VHDL的自动售货机的设计.doc

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于VHDL的自动售货机的设计

目录 绪论 2 第一章 自动售货机的概述 3 1.1 自动售货机的历史、现状、前景 3 1.2 自动售货机的设计目的 4 1.3 自动售货机的功能 4 第二章 自动售货机设计思想 5 2.1 自动售货机的设计要求 5 2.2 自动售货机程序设计的总体思路 5 2.3 状态的定义 6 2.4 状态转换图 6 第三章 自动售货机的详细设计 7 3.1 端口的设计 7 3.2 程序的实现 7 第四章 自动售货机的实验结果 9 4.1仿真波形以及硬件实现 9 4.2 程序的调试 11 第五章 小结 12 参考文献 13 谢辞 14 附录 15 基于VHDL的自动售货机的设计 绪论 随着社会的发展,文明的进步,人们的生活逐渐智能化已成为一种趋势。自动售货机就是其中之一。自动售货机灵活方便等深受广大市民青睐。自动售货机?自动售货机可出售三种饮料:cola、pepsi、purewater三种饮料。价格分别是1.5元、1.5元、1元。 ?自动售货机有两个投币孔,一个识别1元,另一个识别0.5元。顾客可分别向两个孔投币,一次只能购买一瓶饮料,且自动找零。若付款之后按下取消键,系统将全额退回。 ?自动售货机适合人性化管理,带有reset键,一键恢复。 第二章 自动售货机设计思想 2.1 自动售货机的设计要求 1、自动售货机有2个投币孔,每次只能投入一枚硬币,但可以连续投入多枚硬币,机器能够识别的硬币金额为1元、5角,顾客可选择的饮料有cola、pepsi、purewater三种饮料。每次只能售出1瓶饮料。 2、购买饮料时先选择饮料的价格再投币,当投入的硬币总额达到或超过饮料价格后,系统发出指示信号并拒收继续投入的硬币。顾客投币后,按动确定键,系统将发出饮料和找零硬币,若所投金额不足,则发出欠资信号指示,在欠资情况下,顾客可以继续投币购买,也可按取消键,系统将退出所投入的全部金额。 3、顾客投入硬币后,如果未按确定键而按取消键,系统也将退出所投的全部金额。 4、找零钱或退币时,按由大到小原则处理,即金额超过1元的,先退一元再退五角。 5、为方便管理员,额外添加的功能: 重置(Reset)功能 添加Reset按钮,用于因外部原因引起系统逻辑混乱或顾客进行非法操作时将系统中的所有参数强行清零(即把系统归于起始状态)。 2.2 自动售货机程序设计的总体思路 通过采用状态机的方法,定义了WAIT_STATE、、、 第三章 自动售货机的详细设计 3.1 端口的设计 输入端口: 饮料类型选择按钮--cola,pepsi,purewater;投入1元、5角二种硬币时系统的识别信号-- Put_In100 ,Put_In50;确定按钮--ok;取消按钮--cancel;管理员使用的重置按钮--reset;找零按钮--coin_out;系统内部的时钟信号--clk。 输出端口:当投入钱超额时的超额拒收信号--Money_Over;投入钱金额不足时的欠费信号-- Money_Owe;找零时的1元、5角信号-- Output100,Output50;饮料价格信号-- Drink_Out;饮料种类--Types;显示给顾客当前钱数的信号-- Money_Show;4个分别指示现在所处状态的灯-- led_light_W,led_light_S,led_light_D,led_light_C。 3.2 程序的实现 使用双进程的方式完成整个程序的编写,第一个进程用来实现等待状态、购买状态、出货状态、找零状态之间的转换,并输出4个状态指示灯的信号。第二个进程用来实现各个中间信号量的传递和输出信号的输出,以及各项基本功能的实现。其实现框图如下: 第四章 自动售货机的实验结果 4.1仿真波形以及硬件实现 图形1可以描述如下:某君买饮料,选择cola之后,先投了一个一元的硬币,然后又投了一个五毛的,最后出了一瓶可乐。 图一 图形描述的是:付钱之后,按取消键。 图二 图形3可以描述如下:当金额超了1.5元时,点找零键,系统自动分两次找钱,第一次一元,第二次5毛。 图三 图形四为总体图。 图四 图五为硬件图 图五 4.2 程序的调试 在程序设计当中遇到了几个问题,大体如下: 最初程序存在一个led_light_S,led_light_W,led_light_D,led_light_C四种状态同时出现的情况。由于这四种状态需要在自动售货机上显示出来,因此,考虑到人性化的原则,就要让四种状态在同一个时刻只能有一种为高电平。经改正,该问题得以解决。 在找钱的那部分中,最初定义的是例如:exchange,在仿真时就发现,即使要找一元,系统也会分两次找,一次五毛。这个问题也得到了解决。 关于显示超额和欠费的部分,有一个很纠结的

文档评论(0)

2017meng + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档