基于FPGA的投币式矿泉水自动售水机控制系统.docxVIP

基于FPGA的投币式矿泉水自动售水机控制系统.docx

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于FPGA的投币式矿泉水自动售水机控制系统

基于FPGA的投币式矿泉水 自动售水机控制系统 ——EDA实验设计报告 任务与要求: 设计一个投币式矿泉水自动售水机的控制系统。该系统能完成矿泉水的单价和数量的信息存储,进程控制,硬币处理,余额计算,显示等功能。某种矿泉水的单价和数量在初始化时输入并储存,用户可以用硬币购买。售货时能根据用户输入的货币,判断钱币是否足够,钱币足够则自动送出一瓶水,钱币不足则给出提示继续投币,若没有继续投币则延迟30秒后退币并复位;能够自动计算出应找钱币余额、库存矿泉水数量并显示。 设定:使用硬币为一元、五角两种,某种矿泉水的单价为1.5元。 程序的设计思路和ASM流程图的设计: 本系统由拨码开关表示投币数量,其中a 1表示投入的五角硬币数量,b 1表示投入的1元硬币数量,每次根据投入的硬币不同而分别计数,并将投入的总金额用数码管显示出来(分频显示),当达到了交易金额时,out产生一个正脉冲,此正脉冲控制闸门打开,汽水掉出来,交易完成。当超出了交易金额,则out1会产生一个正脉冲,提示按动退币开关取回找零。若交易未完成时,顾客想要取消交易,按动退币开关可取回投入金额。 1、原始状态图的建立与化简 ASM图见附图。 2、状态分配与状态转换表的确定 投币部分: 该部分用三个状态即可表示。s0表示未投币状态, s1表示已投入五角状态, s2表示投入已一元状态。当投入一元五角时,给出一瓶水,并转到状态s0 ,当投入两元时,给出一瓶水,同时找回一枚五角硬币,并转到状态s0。 状态转换表如下: s a1b1 00 01 10 s0 s0/00 s01/00 s2/00 s1 s1/00 s2/00 s0/10 s2 s2/00 s0/10 s0/11 显示部分: 状态 rst kc s tb A 0 X X X B 1 0 0 X C 1 1 X X D 1 0 1 0 E 1 0 1 1 状态A:系统功能不开启,无显示 状态B:系统功能开启,交易未开始,数码管显示交易金额0.0 状态C:库存开关开启,显示库存 状态D:使用投币功能,交易开始,显示投币金额 状态E:退币功能开启,显示应退还金额 3、输入、输出变量的确定 输入变量: clk(可调时钟信号),rst(使能信号),tuibi(退比操作),kc(库存显示) a1(五角硬币个数),b1(一元硬币个数) KBCol(键盘列扫描信号) 输出变量 out(购买成功,自动出水),out1(领取找零提示) warn(提示投币不足,继续投币) ledtb(30秒未投币,交易结束,领取钱币) weixuan(位选),pay(数码管显示) KBRow(键盘行扫描信号) 程序特色部分举例: 本系统在设计要求的基础上,增加了退币系统。 该系统的功能主要分为三部分: 第一部分为要求的找零退币; 第二部分为未及时投币造成的退币; 第三部分为投币不足且不希望继续交易时的退币。 此外,本系统还利用分频显示的方式,实时显示投币钱数,退币金额等,具有一定的智能。 程序调试与改进 : 调试步骤: 1、运行QuartusII软件,新建工程  2、建立文本文件,写入程序,编译保存。  3、分配管脚。保存编译。 4、将生成的.sof文件烧录到FPGA 5、观察结果 设计改进: 本系统的设计并不是直接完成的,而是一部分一部分不断调试修改完善的,因而可能部分程序顺序较为混乱。先完成的部分是投币功能部分,然后逐步加入显示功能,退币功能,以及库存功能,最终整合在一起,达成任务要求。 编写过程中,库存显示部分出现了一些问题:当售出矿泉水时,库存数量应自动减一,然而由于拨码开关控制投币金额,程序自动循环运行,使得库存数量自动循环递减。经过多次尝试,我在库存运算前加了一个比较条件——只有在投入钱币数量发生变化且购满成功时,库存才减少。之后通过不断调试,系统终于顺利实现了库存显示的功能。 总结: 本次实验通过对自动售水机状态转换图的分析得出其工作原理,并根据工作原理编写出Verilog HDL源程序。通过验证,设计的系统基本完成了设计预定的目标,实验结果能够顺利的在FPGA上正确显示,能较好的实现自动售货机的基本功能 。 收获与体会: 通过此次仿真实验—基于状态机的自动售货机的设计,我掌握了Quartus II软件的基本使用方法,对EDA设计有了更进一步的认识并且对Verilog语言有了更深刻的了解,可以独立编写一些源程序,灵活地运用它来实现我所想要其实现的功能。同时,通过此次实验,我掌握了设计工作的完整流程,培养并锻炼了设计思维,增加了实际操作经验,锻炼了能力,为以后的课程设计积累了宝贵的经验。实验过程中难免遇到一些问题,遇到问题我们不能灰心、烦躁,甚至放弃,而要静下心来仔细思考,分部检查,找出最终的原因进行改正,这样才会有进步,才会一步

文档评论(0)

skvdnd51 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档