自动售货机课程设计.doc_第1页
自动售货机课程设计.doc_第2页
自动售货机课程设计.doc_第3页
自动售货机课程设计.doc_第4页
自动售货机课程设计.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课 程 设 计 报 告 题 目: 自动售货机课程设计 系 别: 电子信息与电气工程系 专 业: 通信工程 班 级: 学 号:_ 姓 名: 导 师: 日期: 成 绩: 一、引言 本次课程设计研究自动售货机的主要功能模块,主要包括商品选择模块、余额计算模块、退币模块,由于条件上的限制,对投币模块中的货币检测未进行处理。相应的主要功能有选择货物,购买,出货找零,显示,延时和时控功能。通过使用VHDL语言,基于FPGA可编程芯片,并通过使用QUARTUS软件进行程序设计,模拟仿真,功能验证,以更好的来理解和掌握自动售货机控制系统的工作原理和设计方法,以及学习和掌握基于EDA的电子产品设计方法,进一步加深对VHDL语言以及QUARTUS软件、FPGA可编程芯片的认识与了解。 二、项目要求设计一个自动售货机控制程序,它的投币口每次可以投入1元、2元、5元,且规定投入1元或2元后不得再投入5元。当投入总值等于或超过设定值(4元),售货机就自动送出货物并找回多余的钱。1、基本要求按照上面要求,编写程序,实现售单一商品的功能。2、扩展要求:在基本要求的基础上,完善电路,实现售多个商品的功能(设定值应该相应增加)。三、设计方案本售货机可销售两种商品,单价分别为3元和4元。投币口每次可以投入1元、2元、5元,且规定投入1元或2元后不得再投入5元,投入总额为3元时,不能再投入2元或者5元,当投入总值超过设定值3元或者4元的情况下,选择商品一或者商品二,售货机就自动送出货物并找回多余的钱。4、 项目代码及其分析VHDL程序代码:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY ZDSHJ ISPORT(CLK,RESET:IN STD_LOGIC; DIN:IN STD_LOGIC_VECTOR(2 DOWNTO 0); COMB_OUTPUTS,GIVE_CHANGE:OUT STD_LOGIC);END ENTITY;ARCHITECTURE behav OF ZDSHJ ISTYPE FSM_ST IS (S0,S1,S2,S3,S4,S5);SIGNAL current_state,next_state:FSM_ST;BEGIN REG:PROCESS(CLK)BEGIN IF RESET=1 THEN current_state=s0; ELSIF CLKEVENT AND CLK=1 THEN current_stateCOMB_OUTPUTS=0; GIVE_CHANGE=0; IF DIN=001 THEN next_state=s1; ELSIF DIN=010 THEN next_state=s2; ELSIF DIN=101 THEN next_state=s5; ELSE next_stateCOMB_OUTPUTS=0; GIVE_CHANGE=0; IF DIN=001 THEN next_state=s2; ELSIF DIN=010 THEN next_state=s3; ELSE next_stateCOMB_OUTPUTS=0; GIVE_CHANGE=0; IF DIN=001 THEN next_state=s3; ELSIF DIN=010 THEN next_state=s4; ELSE next_stateCOMB_OUTPUTS=0; GIVE_CHANGE=0; IF DIN=001 THEN next_state=s4; ELSIF DIN=010 THEN next_state=s5; ELSE next_stateCOMB_OUTPUTS=1; GIVE_CHANGE=0; next_stateCOMB_OUTPUTS=1; GIVE_CHANGE=1; next_state=s0; END CASE; END PROCESS COM;END behav; 程序分析:DIN=00表示未投币;DIN=01表示投币一元;DIN=10表示投币两元;DIN=11表示投币五元; Y1为货物控制信号:Y1=1表示出货,Y1=0表示不出货。 Y2为找零以及五元投币口开闭信号:Y2=00表示不找零并打开五元投币口,允许投入五元;Y2=01表示找零一元并打开五元投币口,允许投入五元;Y2=11表示不找零并关闭五元投币口,不允许投入五元;S0表示初始状态,还没有收到投币;S1表示收到一元投币的状态;S2表示收到两元投币的状态;S3表示收到三元投币的状态 仿真波形: 自动售货机仿真波形(一)分析1:通过上图波形可以看出,当DIN=1时,即投币1通过上图波形可以看出,当DIN=2时,元,前三个脉冲来临时,即投币金额为1元、2元、3元,状态分别为s1,s2,s3,COMB_OUTPUTS和GIVE_CHANGE都是显示为0。当第四个脉冲来临时,即投币金额为4元时,则COMB_OUTPUTS显示为1,GIVE_CHANGE显示为0,说明有商品售出,找零钱为0元。 自动售货机仿真波形(二)分析2:通过上图波形可以看出,当DIN=2时,即一次投币2元时,第一次脉冲来临时,投币金额为2元,状态为s2,COMB_OUTPUTS和GIVE_CHANGE都是显示为0。当第二个脉冲来临时,即投币金额为4元,则COMB_OUTPUTS显示为1,GIVE_CHANGE显示为0,说明有商品售出,找零钱为0元,结果正确。 自动售货机仿真波形(三)分析3:通过上图波形可以看出,当DIN=5时,即一次投币5元时,第一次脉冲来临时,投币金额为5元,状态为s5,COMB_OUTPUTS和GIVE_CHANGE都是显示为1,说明有商品售出,找零钱为1元,结果正确。五、实验箱验证选择模式1,引脚锁定如下:实验箱现象:实验现象(一)分析:通过上图的实验图像,可以看出当投币1元,来四次脉冲,即大约过四到五秒,则红灯亮,说明有商品售出,找零0元,符合实验结果。实验现象(二)分析:通过上图的实验图像,可以看出当投币2元,来了两次脉冲,过了大约二到三秒,则红灯亮,说明有商品售出,找零0元,符合实验结果。实验现象(三)分析:通过上图的实验图像,可以看出当一次投币5元,来一次脉冲,大约过1秒,即可以看见上图两处红灯亮。说明有商品售出,且找零1元。符合实验结果。六、项目总结通过本次自动售货机的项目设计,我详细了解到了自动售货机的投币、商品选择等模块的软件设计与主要模块的仿真。 做本次项目,首先要做的就是代码,由于知识储备尚浅,而且平时练习太少,所以以自己的能力难以完成程序,于是代码是从网上搜索得到的,但是部分代码不符合实验要求,当然这需要我们自己改动,通过和同学的一起努力

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论