自动售货机 verilog_第1页
自动售货机 verilog_第2页
自动售货机 verilog_第3页
自动售货机 verilog_第4页
自动售货机 verilog_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

1、SOPC及EDA技术课程结业报告题目:基于状态机的自动售货机设计院 (系) 电气工程及其自动化 姓 名 学 号 班 号 基于状态机的自动售货机设计一实验目的1. 学习 FPGA入门知识,了解FPGA的编程形式;2. 掌握Quartus II的使用步骤;3. 掌握基于状态机原理的自动售货机设计过程。二实验原理自动售货机是可完成无人自动售货,集光、机、电一体化的商业自动化设备。 自动售货机不受任何场地限制,方便快捷,可以每天24小时售货,因此深受上班族的欢迎,很多城市的公共场所里面都放置有自动售货机,出售的商品五花八门,从饮料、零食、香烟、糖果,到牙刷、方便面、自动照相机。 近年来,我国的自动售货

2、机行业突飞猛进:在汽车总站、商厦、医院、小区、学校等地区纷纷涌现出自动售货机的踪迹。 这种方便快捷的购物方式越来越受到人们的青睐,同时也是现代化城市配套设施的需求。因为自动售货机作为社会上完成商品零售和综合服务的独立设施,所以必须要求它的结构可靠、稳定而且执行效率高。传统的自动售货机控制系统采用单片机作为控制核心,这样不仅会在输入输出接口上做大量的工作,而且系统的抗干扰性也比较差。可编程控制器(Programmable Logical Controller,简称PLC)是综合了计算机技术、自动控制技术和通讯技术而发展起来的一种新型的工业控制装置,它具有可靠性高、编程简单、维护方便等优点,已在工

3、业控制领域得到广泛地应用。 PLC是以CPU为核心, 综合了计算机技术和通信技术发展起来的一种通用的工业自动控制装置, 是现代工业控制的三大支柱(PLC、机器人和CAD/CAM) 之一。PLC的工作原理与计算机的工作原理基本是一致的, 可以简单地表述为在系统程序的管理下, 通过运行应用程序完成用户任务。但是PLC也有它自己的特点, PLC在确定了工作任务, 装入了专用程序后成为一种专用机, 它采用循环扫描工作方式, 系统工作任务管理及应用程序执行都是用循环扫描方式完成的。目前,可编程控制器在国内外已广泛应用于钢铁、石油、化工、电力、建材、机械制造、汽车、轻纺、交通运输、环保等各行各业。自动售货

4、机以其新奇、文明、高档、灵活方便等优点深受广大市民青睐。自动售货机最基本的功能是对投入的货币进行运算,并根据所投入的货币数值判断是否能够购买某种商品, 并做出相应的反映。因此, 售货机应能够辨识机内包含的商品, 能够对所投入的币值进行累计, 并提供所要购买的商品。当按下选择商品的按钮时,自动售货机根据投入的币值, 起动电机, 提取商品到出货口, 顾客取出商品,完成此次交易。在实际生活中,我们见到的售货机可以销售一些简单的日用品,如饮料、常用药品和小的生活保健用品等。售货机的基本功能就是对投入的货币进行运算,并根据货币数值判断是否能够购买某种商品,并做出相应的反应。举一个简单的例子来说明。例如:

5、售货机中有8种商品,其中01号商品(代表第一种商品)价格为1.50元,02商品为2.50元,其余类推。现投入1个1元硬币,当投入的货币超过01商品的价格时,01商品的选择按钮处应有变化,提示可以购买,其他商品同比。当按下选择01商品的价格时,售货机进行减法运算,从投入的货币总值中减去01商品的价格同时启动相应的电机,提取01号商品到出货口。此时售货机继续进行等待外部命令,如继续交易,则同上,如果此时不再购买而按下退币按钮,售货机则要进行退币操作,退回相应的货币,并在程序中清零,完成此次交易。由此看来,售货机一次交易要涉及加法运算、减法运算以及在退币时的除法运算,这是它的内部功能。还要有货币识别

6、系统和货币的传动来实现完整的售货、退币功能。为简单计,本次实验只要求设计一个简单的自动售货机逻辑电路。它的投币口每次只能投入一枚五角或一元的硬币。投入一元五角钱硬币后机器自动给出一杯饮料;投入两元(两枚一元)硬币后,在给出饮料的同时找回一枚五角的硬币,投币时只能一个一个地投。三实验步骤及实验结果1.电路变量分析根据设计要求,共有七个变量。clk:时钟输入;reset:系统复位信号;half_dollar:代表投入五角硬币;one_dollar:代表投入一元硬币;half_out:售货机找回一枚五角硬币信号;dispense:机器售出一瓶饮料;collect:提示投币者取走饮料。2.状态转换图的

7、确定该电路一共用3个状态就可以完成设计要求。状态idle,表示为投入任何硬币状态;状态half,表示投入五角钱的状态;状态one,表示投入一元钱的状态。当投入一元五角钱时,给出一杯饮料并转到状态idle;投入两元(两枚一元)硬币后,在给出饮料的同时找回一枚五角的硬币并转到状态idle,状态装换图如下图1所示:图 1 自动售货机状态图图1中如果当前状态为idle(即未投入硬币),则投入五角钱即输入为01则状态转到half,在状态half下再投入五角钱则转到one;在idle状态投入一元钱即输入为10则直接转到状态one,在one状态下如果再投入五角钱,则输出dispense为1、half_out

8、为0,表示机器售出一瓶饮料,售货机不找回五角硬币。3.利用Quartus II软件仿真实现3.1新建工程machine_sell选择FileNew Project Wizard,新建工程文件,输入工程名为machine_sell(注意此处工程名与工程的顶层实体名必须一致)。在Available devices列表中选择FPGA型号EP2C70F896C6(本实验为仿真实验,此处不作硬性要求)。3.2设计输入在当前工程下,选择FileNew菜单,接着选择Verilog HDL File,单击OK,打开Text Editor。选择FileSave as菜单,将文件保存到工程下,文件名为machin

9、e_sell,保存类型为Verilog HDL File,则生成machine_sell.v文件。3.3Verilog语言描述利用Verilog HDL语言编写的源程序如下:module machine_sell(one_dollar,half_dollar,collect,half_out,dispense,reset,clk); parameter idle=2b00, half=2b01, one=2b10; /代表投入币值的几种情况 input one_dollar,half_dollar,reset,clk; output collect,half_out,dispense; reg

10、 collect,half_out,dispense; reg1:0 D; always(posedge clk) begin if(reset) begin dispense=0; collect=0; half_out=0; D=idle; end else case(D) idle: if(half_dollar) begin dispense=0; collect=0; half_out=0; D=half; end else if(one_dollar) begin dispense=0; collect=0; half_out=0; D=one; end else begin di

11、spense=0; collect=0; half_out=0; D=idle; end half: if(half_dollar) begin dispense=0; collect=0; half_out=0; D=one; end else if(one_dollar) begin dispense=1; collect=1; half_out=0; D=idle; end else begin dispense=0; collect=0; half_out=0; D=half; end one: if(half_dollar) begin dispense=1; collect=1;

12、half_out=0; D=idle; end else if(one_dollar) begin dispense=1; collect=1; half_out=1; D=idle; end else begin dispense=0; collect=0; half_out=0; D=one; end endcase endendmodule3.4仿真电路图保存上述源程序,进行综合编译。编译无误后,生成仿真电路图(RTL viewer)如下图2所示:图 2 自动售货机仿真电路图3.5仿真结果在同一工程下创建波形文件(Vector Waveform File)machine_sell.vwf

13、如下图3所示:图 3 波形文件单击Simulator Settings,将Simulation mode设置为Functional,最后单击仿真按钮启动功能仿真。仿真结果如下图4所示:图 4 仿真波形图由图4所示仿真结果可知:当reset为1时,系统复位,状态机的状态为初始状态idle。投入五角硬币,状态转到half状态,再投入五角状态转到one状态,再投入五角状态回到idle状态,同时输出信号dispense和collect为1,驱动执行机构售出一瓶饮料,并提示投币者取走饮料。四实验结果分析1.本次仿真实验通过对自动售货机状态转换图的分析得出其工作原理,并根据工作原理编写出Verilog HDL源程序;2.通过仿真验证,该设计能较好的实现自动售货机的基本功能;3.根据仿真结果,仿真输出与理论值相比

温馨提示

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

评论

0/150

提交评论