毕业设计论文PLC自动售货机控制系统设计.doc

上传人:sccc 文档编号:4859556 上传时间:2023-05-20 格式:DOC 页数:44 大小:433.52KB
返回 下载 相关 举报
毕业设计论文PLC自动售货机控制系统设计.doc_第1页
第1页 / 共44页
毕业设计论文PLC自动售货机控制系统设计.doc_第2页
第2页 / 共44页
毕业设计论文PLC自动售货机控制系统设计.doc_第3页
第3页 / 共44页
毕业设计论文PLC自动售货机控制系统设计.doc_第4页
第4页 / 共44页
毕业设计论文PLC自动售货机控制系统设计.doc_第5页
第5页 / 共44页
点击查看更多>>
资源描述

《毕业设计论文PLC自动售货机控制系统设计.doc》由会员分享,可在线阅读,更多相关《毕业设计论文PLC自动售货机控制系统设计.doc(44页珍藏版)》请在三一办公上搜索。

1、摘要自动售货机是能根据投入的钱币自动付货的机器。自动售货机是商业自动化的常用设备,它不受时间、地点的限制,能节省人力、方便交易。是一种全新的商业零售形式,又被称为24小时营业的微型超市。能分为三种:饮料自动售货机、食品自动售货机、综合自动售货机。我国国内自动售货机应用的地方也很多,在超市,报亭旁等地方都有设自动售货机。初始制造的自动售货机它的原始装置是古希腊人希罗制造的自动出售圣水的装置。那也是世界上最早的自动售货机。之后又由美国研制出出售香烟的售货机,此后又出现出售车票、邮票各种现代化自动售货机的种类。接着,又由欧美日本发展起来。现在世界各地都很流行。我们接触到的自动售货机多是用于供给饮品、

2、茶点的食物自动售货机。它给我们带来了这么大的收益,并且它的自身程序设置又是一个什么样的呢?在我们购买自动售货机里的物品与其交易时,交易过程可分为几个程序块,然后分别对程序块进行编程,这就涉及到PLC的控制了。本文介绍了自动售货机的基本原理以及工作流程,然后以一次交易过程为例,把交易过程分为几个程序块,然后分别对程序块进行编程。具体说明了可编程序控制器在自动售货机中的作用。程序涉及到了自动售货机工作的绝大部分过程。利用PLC控制的自动售货机提高了系统的稳定性,保证自动售货机能够长期稳定运行。关键字:PLC(可编程序控制器)、自动售货机、古希腊引言自动售货机是一种全新的商业零售形式,20世纪70年

3、代自日本和欧美发展起来。它又被称为24小时营业的微型超市。在日本,70%的罐装饮料是通过自动售货机售出的;全球著名饮料商可口可乐公司在全世界就布有50万台饮料自动售货机。随着电脑技术的发展,自动售货机越来越普及。不仅在不同的客流人群多的地点出现而且自动售货机出售的商品也越来越多样化。从一开始的饮品到现在的生活用品以及其他的急需用品。在中国,自动售货机1999年开始进入中国市场。如今,在机场、地铁、商场、公园等客流较大的场所,以不难发现自动售货机的身影。从自动售货机的发展趋势来看,它的出现是由于劳动密集型的产业构造向技术密集型社会转变的产物。大量生产、大量消费以及消费模式和销售环境的变化,要求出

4、现新的流通渠道;而相对的超市、百货购物中心等新的流通渠道的产生,人工费用也不断上升;再加上场地的局限性以及购物的便利性等这些因素的制约,无人自动售货机作为一种必须的机器便应运而生了。自动售货机不仅数量多,性能也越来越好。比如,要喝咖啡,顾客不仅可以根据自己的爱好随意挑选冷热,就连顾客需要多少糖和牛奶也可任意挑选。还有的也出售方便面,只要投入钱币,售货机会自动注入开水,顾客就可以当场就餐。从广义上来讲投入硬币、纸币、信用卡等后便可以销售商品的机械,从狭义上来讲就是自动销售商品的机械。从供给的条件上来讲,自动售货机可以充分补充人力资源的不足,适应消费环境和消费模式的变化,24小时无人售货的系统可以

5、更省力,运营时需要的资本少、面积小,有吸引人们购买好奇心的自身性能,可以很好地解决人工费用上升的问题等各项优点。现在,自动售货机产业正走向信息化并进一步实现合理化。例如实行联机方式,通过电话线路将自动售货机内的库存信息及时地传送各营业点的电脑中,从而确保了商品的发送、补充以及商品选定的顺利进行。并且,为了防止地球暖化,自动售货机的开发致力于能源节省,节能型清凉饮料自动售货机成为该行业的主流。在夏季电力消费高峰期,这种机型的自动售货机即使在关掉冷却器的状况下也能保持低温,与以往的自动售货机相比,它能够节约1015%的电力。进入21世纪时,自动售货机也将进一步向节省能源和能源以及高功能化的方向发展

6、。因经济复苏缓慢,社会对扩大就业与工作场所提供茶点饮料的福利事业更为关注。自动售货机不仅保障了惬意的工休时间,也是最廉价、提高职工工作效率最有效的手段。特别是在24小时无休工作状态中的办公场所,使用独具魅力的迷你型饮料冲饮机,解决了不间断提供咖啡饮品服务的问题,这种服务加速了自动售货机与咖啡饮品服务的融合。1999年的全美自动售货机协会和全美咖啡服务协会的合并使人们更直观地看到了这种融合现象。第一章 自动售货机介绍1.1 自动售货机功能分析这部分阐述了自动售货机的各种动作功能和控制要求,给出了完整的自动售货机操作规程,并介绍了自动售货机运行系统种所包括的人工操作步骤。1.1.1 自动售货机的基

7、本功能在进行上,下位机程序编写之前,首先要做的工作是确定自动售货机本身所具备的功能及在进行某种操作后所具备的状态。在实际生活中,我们见到的售货机可以销售一些简单的日用品,如饮料、常用药品和小的生活保健用品等。售货机的基本功能就是对投入的货币进行运算,并根据货币数值判断是否能够购买某种物品,并作出相应的反应。举一简单的例子来说明,例如:售货机中有8种商品,其中01号商品(代表第一种商品)价格为2.60元,02商品为3.50元,其余类推。现投入一个1元硬币,当投入的货币超过01商品的价格时,01商品的选择按钮处应有变化,提示可以购买,其他商品同比。当按下选择01商品的价格时,售货机进行减法运算,从

8、投入的货币总值中减去01商品的价格同时启动相应的电机,提取01号商品到出货口。此时售货机继续进行等待外部命令,如继续交易,则同上述流程,如果此时不再购买而按下退币按钮,售货机则要进行退币操作,退回相应的货币,并在程序中清零,完成此次交易。由此看来,售货机一次交易要涉及加法运算、减法运算以及在退币时的除法运算,这是它的内部功能。还要有货币识别系统和货币的传动来实现完整的售货、退币功能。自动售货机的工作流程图如1所示。1.2 PLC的基本结构及原理1.2.1 PLC的系统结构目前PLC种类繁多,功能和指令系统也都各不相同,但都是以微处理器为核心用做工业控制的专用计算机,所以其结构和工作原理都大致相

9、同,硬件结构与微机相似。主要包括中央处理单元CPU、存储器RAM和ROM、输入输出接口电路、电源、IO扩展接口、外部设备接口等。其内部也是采用总线结构来进行数据和指令的传输。PLC控制系统由输入量PLC输出量组成,外部的各种开关信号、模拟信号、传感器检测的各种信号均作为PLC的输入量,它们经PLC外部输入端子,作为PLC的输出量对外围设备进行各种控制。由此可见,PLC的基本结构有控制部分输入和输出组成。1.3 PLC的选型原则当某一个控制任务决定由PLC来完成后,选择PLC就成为最重要的事情。一方面要选择多大容量的PLC,另一方面是选择什么公司的PLC及外设。对第一个问题,首先要对控制任务进行

10、详细的分析,把所有的IO点找出来,包括开关量IO和模拟量IO以及输出是用继电器还是晶体管或是可控硅型。控制系统输出点的类型非常关键,如果他们之中既有交流220V的接触器、电磁阀,又有24V的指示灯,则最后选用的PLC的输出点数有可能大于实际点数。因为PLC的输出点一般是几个一组共用一个公共端,这一组输出只能有一种电源的种类和等级。所以一旦它们是交流220V的负载使用。则直流24V的负载只能使用其他的输出端了。这样有可能造成输出点浪费,增加成本。所以要尽可能选择相同等级和种类的负载,比如使用交流220V的指示灯等。一般情况下继电器输出的PLC使用最多,但对于要求高速输出的情况,就要使用无触点的晶

11、体管输出的PLC了。对第二个问题,则有以下几个方面要考虑:(1) 功能方面 所有PLC一般都具有常规的功能,但对某些特殊要求,就要知道所选用的PLC是否有能力控制任务。如对PLC与PLC、PLC与智能仪表及上位机之间有灵活方便的通信要求;或对PLC的计算速度、用户程序容量等有特殊要求;或对PLC的位置控制有特殊要求等。这就要求用户对市场上流行的PLC品种有一个详细的了解,以便做出正确的选择。(2) 价格方面 不同厂家的PLC产品价格相差太大,有些功能类似、质量相当、I/O点数相当的PLC的价格能相差40%以上。在使用PLC较多的情况下,这样的差价当然是必须考虑的因素。PLC主机选定后,如果控制

12、系统需要,则相应的配套模块也就选定了。第二章 PLC系统设计2.1 可编程序控制系统设计的基本原则2.1.1 控制系统设计原则任何一种电气控制系统都是为了实现被控对象(生产设备或生产过程)的工艺要求,以提高生产效率和产品质量。因此,在设计PLC控制系统时,应遵循以下基本原则:(1) 最大限度得满足被控对象的控制对象。设计前,应深入现场进行调查研究,收集资料,并于机械部分的设计人员和实际操作人员密切配合,并同拟定电气控制方案,协同解决设计中出现的各种问题。(2) 在满足控制系统要求的前提下,力求使控制系统简单、经济,使用及维修方便。(3) 保证控制系统的安全、可靠。(4) 考虑到生产的发展和工艺

13、和改进,在选择PLC容量时,应适当留有余量。2.1.2 控制系统设计的基本内容PLC控制系统是由PLC与用户输入、输出设备连接而成的。因此,PLC控制系统设计的基本内容应包括:(1) 用户输入设备(按钮、操作开关、限位开关、传感器等)、输出设备(继电器、接触器、信号灯等执行元件)以及由输出设备驱动的控制对象(电动机、电磁阀等)。这些设备属于一般的电气元件,其选择的方法在其他有关书籍中已有介绍。(2) PLC的选择。PLC是PLC控制系统的核心部件,正确选择PLC对于保证整个控制系统的技术经济性能指标起到重要的作用。选择PLC,应包括机型选择、容量的选择、I/O模块的选择、电源的模块选择等。(3

14、) 分配I/O点,绘制I/O连接图。(4) 设计控制程序。包括设计梯形图、语句表(即程序清单)和控制系统流程图。控制系统程序是控制整个系统工作的软件,是保证系统工作安全、可靠的关键。因此,控制程序和设计必须经过反复调试、修改,直到满足要求为止。(5) 必须时还需设计控制台(6) 编制控制系统的技术文件。2.1.3 控制系统设计的一般步骤(1) 根据生产的工艺过程分析控制要求。(2) 根据控制要求确定所需的用户输入、输出设备,据此确定PLC的I/O点数。(3) 选择PLC系统。(4) 分配PLC和I/O点,设计I/O连接图。(5) 进行PLC程序设计,同时可进行控制大的设计和现场施工。2.1.4

15、 程序设计的步骤(1) 对于较复杂的控制系统,需绘制系统控制流程图,用以清楚地表明动作的顺序和条件。(2) 设计梯形图。这程序设计的关键一步,也是比较困难的一步。(3) 根据梯形图编制程序清单。(4) 用编程器将程序输入到PLC的用户存储器中,并检查输入的程序是否正确。(5) 对程序进行调试和修改,直到满意要求为止。(6) 待控制台及现场施工完成后,就可以进行联机调试。若为满足要求,再重新修改程序或检查接线,直到满足为止。(7) 编写技术文件。(8) 交付使用。控制系统设计步骤流程图如图所示。第三章 自动售货机PLC程序设计3.1 仿真实验系统中售货机的分析由于售货机的全部功能时在上位机上模拟

16、的,所以售货机的部分硬件是由计算机软件来模拟替代的。如钱币识别系统可以用按压某个“仿真对象”输出一个脉冲直接给PLC发布命令,而传动系统也是由计算机来直接模拟的,这些并不会影响实际程序的操作,完全能模拟现实中自动售货机的运行。1、 试验状态假设由于是在计算机上模拟运行,试验中有一些区别于实际情况的假设,本实验中假设:(1) 自动售货机只售8种商品。(2) 自动售货机可识别10元、5元、1元、5角、1角硬币。(3) 自动售货机可退币10元、5元、1元、5角、1角硬币。(4) 自动售货机有液晶显示功能。(5) 实验中售货机忽略了各种故障以及缺货等因素。2、 一次交易过程分析为了方便分析,我们以一次

17、交易过程为例:(1) 初始状态。由电子标签显示各商品的价格,显示屏显示友好界面,此时不能购买任何商品。(2) 投币状态。按下投币按钮,显示投币框,按下所投币值显示屏显示投入、消费、余额数值,当投币值超过商品价格时,相应价格选择按钮发生变化,提示可以购买。(3) 购买状态。按下可以购买的选择按钮,所选的商品出现在出货框中,同时显示屏上的金额数字根据消费情况相应变化。取走商品后出货框消失。(4) 退币按钮。按下退币按钮,显示退币框,同时显示出应退币值及数量。按下确认按钮,则恢复初始状态。到此为止,自动售货机的一个完整工作过程结束。3.2 设计任务的确定在清楚自动售货机运行工作过程的基础上,制定出设

18、计方案,确定任务的目标,以设计出合理的仿真系统。首先,应该做上位机和下位机的任务分工:上位机主要用来完成仿真界面的制作过程,而下位机则主要用来完成PLC程序的编写。其次,要分别对上位机和下位机进行资料的查找与收集。例如在进行仿真界面的设计时可以去观看一下真正售货机的外观,必要时可以借助一些宣传图片来设计自动售货机的外型;在进行PLC程序的编写时需要先分配PLC的I/O点,确定上、下位机的接口。然后,分别对上、下位机进行设计工作。最后,进行上位机设计结果与下位机设计结果的配合工作,经调试后完成整个系统的设计。另外,上位机与下位机的设计工作是密切配合的。它们无论在通信中使用的变量,还是在仿真中控制

19、的对象都应该是一致的。总体上讲,仿真界面是被控对象,利用PLC来控制这个仿真的自动售货机,仿真的自动售货机接受PLC的控制指令并完成相应的动作;另一方面,仿真界面中的仿真自动售货机的运行,都是由组态界面所提供的命令语言来完成的。这是整个仿真系统内部各大部件之间的内在关系。我主要是对自动售货机中的下位机,也就是主要是对PLC在其中的程序进行设计。仿真程序只做了解,虽然只做了解,但是也将在下面有所介绍。清楚了仿真实验的整体设计思路,下面就可以开始着手设计了。3.3 程序设计部分这部分内容是整个系统设计的主体部分。所要完成的任务是仿真系统的上位机与下位机的程序设计,即在上述功能分析的基础上,有针对性

20、地进行设计。3.3.1程序设计说明下位机程序的编制则是利用松下PLC专用编程软件FPWIN-GR完成的。在设计的过程中,就像上面所叙述的那样,并非孤立地分别进行上位机和下位机的设计工作,而是互相配合的。因此在以下的详细设计过程中,并没有将上位机的设计与下位机的设计整体分开来写,而是相互交替,同时尽量清晰地叙述,在相应的设计部分中注明是上位机的设计还是下位的设计。3.3.2 PLC程序设计可以把一次交易过程分为几个程序块:运行初期电子标签价格的内部传递;投币过程;价格比较过程;选择商品过程;退币过程。(1) 运行初期电子标签价格的内部传递程序的设计仿真系统运行初期,要由PLC向仿真画面相应对象传

21、递已经存储好的价格,还要给投入显示,消费显示及余额显示存储器清零,同时也要给存储退币币值的存储器清零。程序编制过程中,要用到运行初期闭合继电器R9013、16位数据传送指令FO,同时在上位机ForceControl中,必须定义相应的变量,来实现与PLC程序的对接。系统初始化时,通过运行初期闭合继电器R9013在第一次扫描时将数值传递给上位机。给WR1-WR11及SV0-SV4赋初值,赋值功能通过高级指令FO实现。至于为什么要加入WR13、WR15、WR17、WR19及WR20,在以后的程序中将介绍它们的作用。(2) 投币过程在投币的过程中,每投下一枚硬币,投入显示将增加相应的币值,余额也增加同

22、样币制。先建立变量表,在编写程序。当按下投入1角时,相当于让R200接通,之所以用一个微分指令,就是要只在接通时检测一次,不能永远加下去。投入一角要投入显示,余额显示都相应增加相同的数值,加法是由16位加法指令E20来实现的。投入5角、1元、5元、10元,原理同上。(3) 价格比较过程价格的比较要贯穿实验过程的始终,只要余额大于某种商品价格时,就需要输出一个信号,提示可以购买。这里只要选择灯来表此信号。为了实现数据的实时比较,用一个特殊的内部继电器R9010,在程序执行过程中,R9010始终保持闭合,F60是16位数据比较指令,用它来比较余额和商品价格,R900A是大于价格,R900B是等于标

23、志。当余额大于等于某种商品价格时,程序使相应的指示灯闪烁表示可以购买某商品。(4) 选择商品的过程当投入的币值可以购买某种商品时,按下相应的“选择”按钮即可在出货框中出现该种商品,同时消费显示栏中显示已经消费掉的金额,余额也将扣除以消费的币值,接着余额继续与价格相比较,判断是否能继续购买,出现在出货口的商品在没有取走前,一直保持显示状态,用鼠标点击该商品代表已经取走,出货口中的商品隐藏。第四章 VHDL语言的概述4.1 VHDL语言的概述目前最通用的硬件描述语言有VHDL与Verilog两种。1982年美国国防部的一个分支专案要求所有的数字电路必须用VHDL语言设计。1983年的IBH及TI等

24、公司在此专案规定下,开始开发VHDL。随后IEEE1076号标准。后来将一种可配合集成工具的VHDL程序包,特别命名为IEEE1076.3,并成为1076号IEEE标准的一部分。最近,新标准包IEEE1076.4被开发出来,成为建立ASIC及FPGA的模型函数库。VHDL的设计层面可以划分为系统层、算法层、寄存器传输层、逻辑层以及电路层。另一支HDL语言的主流是Verilog,其建模能力可以涵盖所有范围。4.2 语言特性VHDL主要用于描述数字系统的结构、行为、功能和接口。除了含有许多硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。VHDL的程序结构特点是

25、将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可视部分及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部的概念是VHDL系统设计的基本点。应用VHDL进行工程设计的优点是多方面的。VHDL语言可描述一个数字电路的输入、输出以及相互间的行为与功能。而其硬件关联性的语法与形式虽类似于一般程序语言,但是涵盖许多与硬件关联的语法构造。其特有的层次性一一由上而下的结构式语法结构适合大型设计项目的分包下去,各自独立运行。从抽象的层次而言

26、,VHDL的语句分成一下4个大类。1 行为式采用语言逻辑方式直接描述硬件电路的工作,表示一个设计的功能或算法,描述IC内部电路行为。在此结构定义中可以同时包含并行描述与顺序语句。2 数据流从数据输入与输出的观点,大部分的并行语句都用于数据转换工作。3 结构式允许设计者以树状形式调用内置电路组件。通常以引脚图方式调用并连接。从硬件的角度说,调用组件就像在组合与连接电路元器件一样。4 寄存器传输式VHDL是一种类型化的语言,一种数据类型的数据内容不能指定给其他类型的数据,而且不同数据类型的数据需经过转换才能相互运算。每一种电路的VHDL码都是实体与结构的成对组合,先用实体来定义一个IC电路引脚规格

27、与基本参数,然后在用结构定义IC内部电路的功能运做,即构成一个完整的电路模块。44第五章 EPM7128S芯片简介本设计采用EPM7128S芯片,下面将对其进行简单介绍。ALTERA的EPM7128S系列CPLD是基于第二代MAX结构体系地高性能EEPROM结构CPLD。完全符合IEEE1149.1 JTAG边界扫描标准,具有5V ISP的功能。具有最小5ns的引脚到引脚的逻辑时延,最高可175.4MHZ的计数频率。引脚可配置为开漏输出。每个宏单元都有独立的课编程电源控制,最多可以节省50%的功耗。宏单元内的寄存器具有单独的时钟和复位信号。支持多种电压接口。MAX7128S是一种复杂课编程逻辑

28、器件,IC管脚参阅原理图2.1,是84pinPLCC封装,另外还有其他类型的管脚和封装,选择性强,该IC具有以下主要功能:以第二代多阵列矩阵(MAX)结构为基础,是一种高性能CMOS EEPROM 器件;通过JTAG(Joint Text Action Group联合测试组)接口可实现在线编程(ISP),本实验板提供JTAG接口;逻辑密度为2500个可用编程门电路,128个宏单元;68条可编程I/O,TTL逻辑电平为5V或3V;引脚到引脚的逻辑延时为5.0ns,计数器工作频率可达到151.5MHz;有集电路开路选择,可可编程宏单元触发器,具有专有的清除(clear)、时钟(clock)、输出使

29、能(OE)控制;与不同电源电压的系统接口,VCCIO引脚用于输出缓冲器接到5V电源时,输出电平与5V电源兼容,VCCIO引脚用于输出缓冲器接到3.3V电源时,输出电平与3.3V兼容,VCCINT用于内部电路和输出缓冲器;包括一个可编程的程序加密位,全面保护专利,防止程序被复制和读出设计。在本设计中,电源接5V,系统输入/出端口信号接I/O引脚,CLK接1024KHz频率,RESET接外部复位电路。图2.1 EPM7128S芯片引脚图第六章 MAX+plusII 概述本系统采用MAX+plusII进行仿真。下面将对该软件进行简单概述。ALTERA公司的MAX+plusII软件是易学、易用的可编程

30、逻辑器件开发软件。其界面友好,集成化程度高。有如下功能:支持的器件:所支持的器件有EPF10K10,EPF10K10A,EPF10K20,EPF10K30A,以及MAX700系列(含MAX7000A,MAX7000AE,MAX7000E,MAX7000S),EPM9320,EPM9320A,EPF8452A,EPF8282A,FLEX6000/A系列,MAX5000系列和ClassicTM系列。设计输入:常用的设计输入的方法有:通过MAX+plusII图形编译器,创建图形设计文件(-gdf);通过MAX+plusII文本编辑器,使用AHDL语言,创建文本设计文件(-tdf);使用VHDL语言,

31、创建文本设计文件(-vhd);使用VerilogHDL语言,创建文本设计文件(-v)。还可以通过MAX+plusII波形编译器,创建波形设计文件(-wdf)等。设计编译:通过MAX+plusII编译器完成,可检查项目是否有错,并对项目进行逻辑综合,然后配置到一个ALTERA器件中,同时产生报告文件、编程文件和用于时间仿真的输出文件。设计验证:通过MAX+plusII的定时分析器进行时序分析、功能仿真、时序仿真和波形分析,生成一些标准文件为其他EDA工具使用。器件编程和配置:MAX+plusII软件对计算机的要求较低。操作系统:Windows95/98或WindowsNT4.0,安装所占空间为8

32、0Mbytes。内存要求:可用内存48MB(物理内存及虚存和),其中物理内存至少16MB。第七章 自动售货机7.1 自动售货机功能概述本设计的自动售货机只销售传统型(cola)与减肥型(diet)两种灌装可乐,销售的价格均为15元。顾客可以由两种不同投币孔分别投入3个5元硬币或2个10元硬币。一次交易只能买一罐,且自动找零只要按下取消键就会马上无条件退币。本设计的硬件示范电路,用2个按键代替2个投币孔,以LED点亮的数量显示各币种的投入数量,再以4HZ闪烁的LED来显示退币种类和数量。因为投币是计次电路,应先经过抖动消除电路处理。本设计采用1024HZ的系统时钟信号来控制所有买卖行为。该电路为

33、一台自动售货机的控制核心,可以直接用来驱动机械装置。7.2 自动售货机外观自动售货机外观示意图如图4.1:图4.1 自动售货机外观示意图7.3 系统设计说明本系统的VHD计L程序设结构如下图4.2: 图4.2 VHD计L程序设结构7.3.1 entity定义此外,我们定义了系统的输入/输出端口信号,考虑顾客只有4种操作行为,即投币、选择、确定与取消,所以定义以下系统输入信号。Reset: 系统内部设置给其他顾客重新操作的复位信号;Clk: 由外接信号发射器提供1024b/s的系统时钟信号;Ok buy: 购买确认的按键信号;Cancle: 购买取消的按键信号;Coin 5: 投入5元硬币的动作

34、按键;Coin 10: 投入10元硬币的动作按键;Select cola: 选择传统可乐的按键信号;Select diet: 选择减肥可乐的按键信号;另外,系统必须响应顾客的各种操作行为,以利于顾客的选择判断,因此定义下列系统输出信号。Led cola ok: 灯亮显示还有传统可乐;Led diet ok: 灯亮显示还有减肥可乐;Led cola sel: 灯亮显示传统可乐选择按键被按;与Led diet sel只有一个灯亮,后按着优先;Led diet sel: 灯亮显示传统可乐选择按键被按;与Led cola sel只有一个灯亮,后按着优先;Led buy: 灯亮显示按了购买确认键;Led

35、 cancle: 灯亮显示按了购买取消键; Led five(1 to 3): 3个LED,投入1个5元硬币亮一个LED; Led ten(1 to 2): 2个LED,投入1个10元硬币亮一个LED;Led five return: 3个LED , 以每秒4次的闪烁代表被推出的硬币;Led ten renturn: 2个LED, 以每秒4次的闪烁代表被推出的硬币;Led cola out: 灯亮显示cola已出货;Led diet out: 灯亮显示diet已出货;在Xilinx的FPGA Express设计环境中,对所有VHDL程序都加入下列几行有关库及程序包的调用语句。Library i

36、eeeUse ieee.std_logic_1164.all;Use ieee.std_logic_arith.all;Use ieee.std_logic_unsigned.all;另外,应将抖动消除电路debounce放在my_pkg的程序包中,故在主程序中应加上一行:Use work.my_pkg.all下面列出entity 模块的程序代码。Entity模块的VHDL码- Library and package declaractionLibrary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use iee

37、e.std_logic_unsigned.all;use work my_pkg.all;-package including debouncecomponent-input and output pins declaractionentity vendor isport( reset:in std logic;-power reset to another buying. Clk:in std logic;-system clock lkhz ok_ in std logic;-button to confirm buyingcancle in std logic;-button to ca

38、ncle buyingcoin_5:in std_ logic;-button to throw coin $5coin_10:in std_ logic; -button to throw coin $10select cola in std_ logic;-button to choose drink colaselect diet in std_ logic;-button to choose drink dietled cola ok:out std_ logic;- led for cola avaiableled diet ok: out std_ logic;- led for

39、diet avaiableled cola sel:out std_ logic; -led to show coal choosenled diet sel: out std_ logic; -led to show diet choosenled buy:out std_ logic;-led to show buying confimedled cancle:out std_ logic;-led for cancleled five out std_ logic vector(2to0);-leds to show coin five numbers.led ten out std_

40、logic vector(1to0);- leds to show coin ten numbers.led five return: out std_ logic vector(2to0);- leds to show coin five returnedled ten renturn:out std_ logic vector(1to0);- leds to show coin ten returnedled cola out: out std_ logic; -led for cola deliveryled diet out: out std_ logic; -led for diet

41、 deliveryend.7.3.2 architecture模块此处,我们必须定义一些功能快之间整体共享的传递信号,以整合所有快的功能。这些信号将成为各个块外部输入或输出信号,诸如:ok: 用来维持ok _buy状态;cancle: 用来维持cancle状态;money_ok: 投入金额正确的指针;renturn_ok: 退币的闪烁警示信号;cola_choice: 用来维持cola_selection状态;diet_choice: 用来维持diet_selection状态;total amount five: 5元硬币的累计投入金额(最高为15元);total amount ten: 10

42、元硬币的累计投入金额(最高为20元);cola_out: cola 已经出货的信号;diet_out: diet 已经出货的信号;下面列出architecture模块的程序代码 architecture模块的VHDL码 -define the signal structure and flow of the device Architecture arch of vendor is -global signal flowing among different circuit blocks signal ok std_ logic;-edgad ok buy signal cancle std_

43、 logic; edged cancle buysignal money ok std_ logic; signal for sufficient moneysignal return std_ logic; twinkling singal for coin returnedsignal cola choice std_ logic; -to maintain the cola selection statussignal diet choice std_ logic; -to maintain the diet selection statussignal total amount fiv

44、e:integer range0 to 15; -total amount of coin fivesignal total amount ten:integer range0 to 20; -total amount of coin tensignal cola ok:out std_ logic;- signal for cola deliverysignal diet ok:out std_ logic;- signal for diet deliverybegin7.3.3 产生退币闪烁信号的电路模块(return_clk)为了提醒退币,设计输出4HZ闪烁信号给对应的LED。本模块的输

45、入信号reset与clk均为系统输入信号,输出信号return_clk为内部传递用的全局信号。本模块采用一个8位自动计数器,将1024HZ的系统时钟除以28=256,可以得到4HZ的闪烁信号。其中8位的计数信号为此模块的局部信号,该信号并不传递到模块外。下面列出return_clk模块的程序代码。 return_clk模块的VHDL码 -to generate 4hz renturn clk by dividing 1024hz clock by 256 return_clk:block -input_clk reset -output_clk reset singal count std_logic_vector(7downto0);-free count from 0 to 255 begin

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号