EDA课程设计自动售货机控制系统的设计与仿真

上传人:飞*** 文档编号:30020134 上传时间:2018-01-26 格式:DOC 页数:18 大小:1.99MB
返回 下载 相关 举报
EDA课程设计自动售货机控制系统的设计与仿真_第1页
第1页 / 共18页
EDA课程设计自动售货机控制系统的设计与仿真_第2页
第2页 / 共18页
EDA课程设计自动售货机控制系统的设计与仿真_第3页
第3页 / 共18页
EDA课程设计自动售货机控制系统的设计与仿真_第4页
第4页 / 共18页
EDA课程设计自动售货机控制系统的设计与仿真_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《EDA课程设计自动售货机控制系统的设计与仿真》由会员分享,可在线阅读,更多相关《EDA课程设计自动售货机控制系统的设计与仿真(18页珍藏版)》请在金锄头文库上搜索。

1、课程设计任务书学生姓名: 专业班级: 指导教师: 工作单位: 题 目: 自动售货机控制系统的设计与仿真 初始条件:设计一个自动售货机控制系统,具有投币和选择商品等功能。可出售四种商品,分别为纯净水(1.5 元) 、牛奶(2 元) 、果汁(2.5 元) 、可乐(3 元) 。在购买过程中,采取投币方式,只能投入 0.5 元和 1 元两种规格的硬币,且一次只能投入一枚硬币。要求完成的主要任务: 1. 顾客通过按键选择某种商品后,由数码管显示该商品价格。顾客投币过程中,数码管显示投币额。2. 投币后,按下确认键,判断投币额是否足够,若投币额足够则根据顾客的要求自动售货并找零。若投币额不够,则报警 5s

2、 并退钱。3. 投币后,按下取消键,则终止交易,自动退钱。4. 售货机还具有供商家使用的累加卖货额的功能,由数码管显示累加的售出金额。5. 广泛调研,提出几种可行的方案,多方论证,确定设计方案。在 EDA 仿真软件上完成设计和仿真。6. 按规定格式完成报告书。7. 近 5 年参考文献不少于 5 篇。时间安排:1. 06 月 24 日 布置设计任务;2. 06 月 30 日 收集资料并确定设计方案;3. 07 月 0103 日 系统设计、编程、仿真和调试; 4. 07 月 04 日 撰写课程设计报告; 5. 07 月 05 日 答辩。 课设答疑/答辩地点:鉴主 501 室指导教师签名: 2012

3、 年 6 月 23 日系主任(或责任教师)签名: 2012 年 6 月 23 日1 绪论 自动售货机(Vending Machine)起源于公元前 215 年的古埃及,当时用于人们在神庙里用金币购买圣水。19 世纪 70 年代,自动售货机在美国、日本迅猛发展,如今已成为世界上最大的现金交易市场。作为一种前卫的零售方式,自动售货机已在 45 个国家广泛普及。据统计,日本平均每 23人就拥有一台自动售货机,美国平均每 40 人拥有一台自动售货机,美国自动售货机的零售营业额高达 293 亿美元,日本每个消费者每年在自动售货机上的消费金额达 5.5 元。全世界每年通过自动售货机销售商品的总额已达 20

4、00 亿美元。 近些年,随着我国商品市场的不断繁荣和城市现代化程度的不断提高,自动售货机也已悄然步入了我国的大中城市。自动售货机在北京、上海、大连、沈阳、西安开始出现,成为不少年轻人时髦的购物选择。在国家相关政府部门的大力支持下,中国的自动售货机产业以超常规的速度迅猛发展,并带动了一批新的服务业、物流运输配送业的快速发展,丰富了中国的商业产业结构,开创了一个全新的自动销售和自助服务时代。 基于 FPGA 的自动售货机的设计,主要完成的任务是使用 VHDL 语言,在 MAXPLUSSII 上完成电路的设计,程序的编译,基本功能的完善、模拟整个自动售货机的工作过程。电路的设计模块分为几个模块:主控

5、模块、译码模块、顶层模块。各个模块完成不同的任务,合在一起就构成了一个自动售货机。在售货机的设计过程中,使用 VHDL 语言,根据各个模块的不同功能和它们之间的控制关系进行编写。软件模块直接在 MAXPLUSSII 上进行。进入 21 世纪,随着人们对效率的追求,人工售货已不能不满足人们的需求。对此,自动售货机的设计就用了很大的应用空间和市场。 基于 FPGA 的自动售货机设计,采用软件开发模块,开发成本底,而且功能设计上有很大的灵活度,需要在软件上进行简单的修该就能实现不同的功能要求,能够满足不同的环境要求。Quartus是 Altera 公司推出的新一代开发软件,适合于大规模逻辑电路设计。

6、它的设计流程概括为设计输入、设计编译、设计仿真和设计下载等过程。它支持多种编辑输入法,包括图形编辑输入法,VHDL、VerilogHDL 和 AHDL 的文本编辑输入法,符号编辑输入法,以及内存编辑输入法。Quartus与 MATLAB 和 DSP Builder 结合可以进行基于 FPGA的 DSP 系统开发,是 DSP 硬件系统实现的关键 EDA 工具,与 SOPC Builder结合,可实现 SOPC 系统开发。2 系统的工作原理2.1 设计要求及任务要求设计一个自动售货机控制系统,具有投币和选择商品等功能。可出售四种商品,分别为纯净水(1.5 元) 、牛奶(2 元) 、果汁(2.5 元

7、) 、可乐(3元) 。在购买过程中,采取投币方式,只能投入 0.5 元和 1 元两种规格的硬币,且一次只能投入一枚硬币。1.顾客通过按键选择某种商品后,由数码管显示该商品价格。顾客投币过程中,数码管显示投币额。2.投币后,按下确认键,判断投币额是否足够,若投币额足够则根据顾客的要求自动售货并找零。若投币额不够,则报警 5s 并退钱。3.投币后,按下取消键,则终止交易,自动退钱。4.售货机还具有供商家使用的累加卖货额的功能,由数码管显示累加的售出金额。2.2 系统设计方案论证方案一:通过一步一步的 process,按顺序将程序运行下去,并且用while loop 语句实现对售出金额的累加,完成目

8、标要求。程序通俗易懂,按照大体的思路可以很容易的编出来,但过程有些繁琐,并且在仿真过程中无法正确的仿真出结果。 方案二:通过 VHDL 的状态机以及 CASE 语句进行编程,用 6 个状态分别表示商品选择、投币额累加、找零售货以及总销售额的累加等功能。程序编起来需要对整体有较好的理解,各个状态的切换与跳转要思路清晰,不过在仿真过程中运行成功,且程序分为多个状态,看起来比较清晰。 经比较,方案二更能较好的完成对实验目标的实验,且其仿真正确。所以选择方案二作为最终的方案。2.3 系统模块图和流程图根据设计要求,系统的组成框图如下图 2-1 所示时钟 分频器控制器按键 投币译码显示图 2-1 系统的

9、组成框图图 2-1 可知,该系统主要由分频、控制、译码和显示四个部分构成。当有人需要购买物品时,首先选择所要购买的物品,这时,前两个数码显示管选中商品的单价。之后顾客投币进行购买,后两个数码显示管显示总共投入了多少钱。当按下确认键时,将在系统内部进行比较,比较单价和所投入的金额。若投币金额大于或等于该商品单价时,系统显示成功售出该商品并进行找零,即投币金额与商品单价的差值,然后将售出总额加上这次的物品单价。若投币金额小于该商品单价时,系统显示购买失败,在五秒钟的延迟后退换投币金额,售出总额不变。无论哪种情况,完成后回到初始状态。系统的运行流程如图 2-2图 2-2 总流程图3 单元模块实现3.

10、1 译码驱动模块该二进制译码模块有一个输入端和两个输出端,输入端 b 是一个 7 位的二进制数,输出端 bcd0、bcd1,是两个 4 位的 BCD 码。该模块的主要功能是实现将主控模块输出的二进制数(paid、price、change)转换成 BCD 码,以便输出到七段显示数码器上而显示出来。该模块的原理是将一个 7 位的二进制数转换成 2 个 4 位的 BCD 码,分别为低 4 位和高 4 位。该模块的程序代码如下:Library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity qudong i

11、sport( b:in std_logic_vector(6 downto 0);bcd0:out std_logic_vector(3 downto 0);bcd1:out std_logic_vector(3 downto 0);end qudong;architecture one of qudong isbeginprocess(b)begincase b iswhen0000000=bcd0bcd0bcd0bcd0bcd0bcd0bcd0bcd0bcd0bcd0bcd0bcd0bcd0bcd0bcd0bcd0null;end case;end process;end one;相应的例

12、化元件如图 3-2:图 3-23.2 显示模块该模块有一个输入端和一个输出端。输入端 d 是一个 4 位的 BCD 码,输出端 q 是一个 7 位数,输出连接到一个 LED 数码管显示出来。library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity xianshi isport(d:in std_logic_vector(3 downto 0);q:out std_logic_vector(6 downto 0);end xianshi;architecture one of xianshi i

13、sbeginprocess(d)begincase d iswhen0000=qqqqqqqqqqqpaidtemp:=0000000;neededtemp:=0000000; backmoney:=0000000;pricetemp:=0000000;sumtemp:=0000000;qif coin5=0 or coin10=0then if coin5=0 then paidtemp:=paidtemp+5; else paidtemp:=paidtemp+10;end if;neededtemp:=pricetemp-paidtemp;backmoney:=0000000; paid

14、if coin5=0 or coin10=0then if coin5=0then paidtemp:=paidtemp+5;elsepaidtemp:=paidtemp+10;end if;if paidtemp=pricetemp then neededtemp:=0000000; backmoney:=paidtemp-pricetemp; paidif q0000000 then showchange if q failurecurrent_state=qa;end case;end if;end process;end behav;相应的例化元件如图: 图 3-44 总原理图及仿真波

15、形4.1 总原理图总原理图如图 4-15 各模块波形仿真结果5.1 主控模块仿真图5-1 主控模块仿真图当购买牛奶(2元) ,并投币2元时,程序仿真图如图5-1所示。数码管前两个将显示商品单价两元,后两个数码显示管将显示投币金额两元,并显示购买成功,找零金额为0元。5.2 二进制译码仿真图 5-2 二进制译码仿真图当七位二进制数为 00001010 时,代表十进制数 10。此时第一个数码显示管现实的数字为 1,第二个数码显示管显示的数字为 0。表明仿真正确。5.3 BCD 码译码仿真图 5-3 BCD 码译码仿真图当 BCD 码输入为 0000 时,数码显示管表示的二进制数为 0000001,代表十进制数 1。有仿真图可知,当 d 为 0000 时,q 为 1,表明仿真成功。6 心得体会刚开始做这个课程设计的时候,感觉挺难的,因为第一次接触 Quartus软件。让我无从下手。在这段时间里,我学到了很

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号