毕业设计(论文)自动售货机的控制电路设计.doc

上传人:文库蛋蛋多 文档编号:3984686 上传时间:2023-03-30 格式:DOC 页数:43 大小:2.24MB
返回 下载 相关 举报
毕业设计(论文)自动售货机的控制电路设计.doc_第1页
第1页 / 共43页
毕业设计(论文)自动售货机的控制电路设计.doc_第2页
第2页 / 共43页
毕业设计(论文)自动售货机的控制电路设计.doc_第3页
第3页 / 共43页
毕业设计(论文)自动售货机的控制电路设计.doc_第4页
第4页 / 共43页
毕业设计(论文)自动售货机的控制电路设计.doc_第5页
第5页 / 共43页
点击查看更多>>
资源描述

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

1、分类号:TN406 编号:BY15 5543 11/12/2 23-0801沈阳化工大学本科毕业论文题 目: 自动售货机的控制电路设计院 系: 信息工程学院专 业: 电子科学与技术班 级: 电子科0801学生姓名: 指导教师: 论文提交日期: 2012 年 6 月 25 日论文答辩日期: 2012 年 6 月 26 日毕业设计(论文)任务书电子科学与技术专业0801班学生:何尧尧 毕业设计(论文)题目: 自动售货机的控制电路设计 毕业设计(论文)内容:1.当顾客投入硬币,总钱加和模块开始计算总额。2.当按下确认键后,开始计算应找零的数额或退还原款,同时信号灯亮,开始找零或退还原款。3.锁定模块

2、锁住所有按键,显示模块实时显示硬币数额。毕业设计(论文)专题部分: 以VerilogHDL为核心设计自动售货机的控制电路,实现电路功能。起止时间:2012年3月-2012年6月指导教师: 签字 年 月 日教研主任: 签字 年 月 日学院院长: 签字 年 月 日摘要 随着经济发展,21世纪进入信息化时代,生活得更好、更健康、更经济已成为人们追求的目标。小型自动售货机就是在这样的时代背景下产生的,由于它的操作方便便捷,能很好的符合人们的需求,很快形成了自己的市场,并日益扩大。本文设计的自动售货机控制电路划分为八个子模块:找零计算模块、确认取消控制模块、找零控制模块、总钱数加和模块、锁定模块、显示模

3、块、时钟分频模块和消抖模块。系统提供的时钟经分频后送给控制器使用,外部信号接入控制系统前需要先进行按键消抖操作。当顾客投入硬币后,总钱数加和模块计算收到的硬币数额。当顾客按下确认键后,找零计算模块计算找零或退还的钱数。同时确认取消控制模块的确认信号灯亮,找零控制模块开始找零或退还原款,锁定模块将锁住所有的按键,令所有按键均无效。当接收到复位信号后,所有标识信号和控制信号清零,系统处于等待指令状态。本文设计的自动售货机控制电路采用 VerilogHDL 硬件描述语言编程,在 ModelSim 及Project Navigator软件平台上进行编译和仿真,最后生成的目标文件下载到CPLD 芯片实现

4、电路功能。经验证,电路良好,满足设计要求。关键字:自动售货机;VerilogHDL;ModelSim;CPLDAbstractWith the development of economy, the 21st century into the information times, life better more healthy more economic is the goal for people small vending machine is in such times background, because of its convenient operation is conveni

5、ent, can be a very good with peoples needs, quickly formed its own market, and is expanding.In this paper the design vending machine control circuit is divided into eight modules: change calculation module confirming cancellation control module change control module total amount plus and module lock

6、 module display module clock frequency modules and shake away points of the system provided by the module clock frequency points to use after controller, external signal access control system needs to go to the keys away before shake when customers could put in a coin after operation, the total amou

7、nt plus and module of the calculation amount received COINS when customers press confirm key, the change and calculation module change or return the money to the calculation and confirming cancellation control module confirmation signal lights up, change control module began to change or returned to

8、 the original model, and the lock module will lock shelter some key, make all the buttons are invalid when receiving to reset signal after, all marks signal and the control signal reset, the system in a waiting instructions state.In this paper the design vending machine control circuit using Verilog

9、HDL hardware description language program, in ModelSim and Project Navigator software platform compile and simulation, the last set goals download to CPLD chip circuit function realization verification, circuit is good, meet the design requirements.Keywords: The vending machine;VerilogHDL;ModelSim;C

10、PLD目录第一章 绪论11.1 研究意义11.2 国内外的发展状况31.3研究内容3第二章 软件介绍52.1 ModelSim仿真环境52.2 Verilog HDL语言简介62.2.1 Verilog HDL的主要能力62.2.2 Verilog HDL模块的结构82.2.3数据类型及常量、变量8第三章 自动售货机控制电路的总体设计113.1 设计思路113.2自动售货机的工作流程11第四章 自动售货机控制电路的设计和仿真134.1 找零计算模块(calculator)134.1.1 找零计算模块的程序设计134.1.2找零计算模块的仿真144.2 确认取消控制模块(ok_cancel)16

11、4.2.1 确认取消控制模块的程序设计164.2.2确认取消控制模块的仿真174.3 找零控制模块(refund)184.3.1 找零控制模块的程序设计184.3.2确认取消控制模块的仿真184.4总钱数加和模块(sum_cash)204.4.1 总钱加和模块的程序设计204.4.2 总钱加和模块的仿真214.5锁定模块(lock)224.5.1 锁定模块的程序设计224.5.2锁定模块的仿真234.6显示模块(disp)234.6.1 显示模块的程序设计244.6.2 显示模块的仿真244.7时钟分频模块(f_div)254.7.1 时钟分频模块的仿真254.8消抖模块(key_sync)2

12、64.8.1 消抖模块的仿真264.9顶层模块(total)264.9.1顶层模块的仿真26第五章 硬件实现305.1 CPLD简介305.1.1发展历史及应用领域305.1.2器件特点305.1.3 CPLD的运行步骤305.1.4 DPXilinx开发实验仪3152电路的硬件实现31第六章 总结346.1 研究成果346.2 设计心得与展望34致谢:35参考文献36第一章 绪论1.1 研究意义自动售货机是一种全新的商业零售形式, 世纪 70 年代自日本和欧美发展起 20 来。它又被称为24小时营业的微型超市。在日本,70的罐装饮料是通过自动售货机售出的;全球著名饮料商可口可乐公司在全世界就

13、布有50万台饮料自动售货机。在中国,自动售货机1999年开始进人中国市场。如今,在机场、地铁、商场、公园等客流较大的场所,已不难发现自动售货机的身影。从自动售货机的发展趋势来看,它的出现是由于劳动密集型的产业构造向技术密集型社会转变的产物。大量生产、大量消费以及消费模式和销售环境的变化,要求出现新的流通渠道;而相对的超市、百货购物中心等新的流通渠道的产生,人工费用也不断上升;再加上场地的局限性以及购物的便利性等这些因素的制约,无人自动售货机作为一种必须的机器便应运而生了。它的售货领域非常广泛,是发达国家商品零售的一种主要方式。自动售货机作为一种先进的消费方式,已经成为城市现代文明发达程度的重要

14、标志,其新颖、时尚的购物方式,24小时营业的特点给人们生活带来了便利,美化了城市环境,受到消费者的欢迎。但是在我国自动售货机的普及还不及发达国家,主要原因是我国EDA技术的应用水平长期落后于发达国家。随着经济发展,传统的固定地点人员售货方式暴露出许多弊端:人力资源需求大;受所需服务地点,地理条件的限制;而且在服务时间上不能最大限度的服务于消费者。自动售货机的出现解决了这些难题。自动售货机的出现解决了这些难题。品种繁多,对生活的覆盖面广,自动售货,效率高,可24小时不间断运营;选址容易,且方便改换场地;适合全职经营,也可兼职(副业)经营;作为广告载体,可赚高额外块。投资风险低,收益高。工作人员唯

15、一所需要做的就是添加商品取走货币。如此多的优点使得自动售货机在世界范围内得到广泛的应用。随着EDA技术的高速发展,电子系统的设计技术和工具发生了深刻的变化,大规模可编程逻辑器件 CPLDFPGA 的出现,给设计人员带来了诸多方便。利用它进行产品开发,不仅成本低、周期短、可靠性高,而且具有完全的知识产权。本文利用 VerilogHDL语言设计自动售货机,使其实现自动售货,找零钱等功能,突出了其作为硬件描述语言的良好的可读性、可移植性和易读性等优点。程序通过下载到特定芯片后,可应用于实际的自动售货机系统中,从而有效解决了成本,质量,运营等诸多问题。随着中国经济的快速发展和社会的巨大进步,自动售货机

16、的实际需求会更加大,必将深入到生活中的方方面面。从自动售货机的发展趋势来看,它的出现是由于劳动密集型的产业构造向技术密集型社会转变的产物。大量生产、大量消费以及消费模式和销售环境的变化,要求出现新的流通渠道;而超市、百货购物中心等新的流通渠道的产生,人工费用也不断上升;再加上场地的局限性以及购物的便利性等这些因素的制约,无人自动售货机作为一种必须的机器便应运而生了。自动售货机的机体内部结构已经相当完善,影响其普及的关键因素:在现有的各种通信网路平台上如何能让自动售货机形成一种销售连锁网,为其提供更方便的营销方式和管理机制,能最大限度地降低生产、运营成本。目前,无论是基于internet还是基于

17、移动通信网或其他网络平台,其运作的机制都不太成熟, 不过这并不影响自动售货机的发展潜力。因此,自动售货机未来的发展趋势是将其纳入到一个更广阔、更便利的移动商务网络平台。 社会将会更加需要能够合理利用能源的工业产品, 因此自动售货机的发展也会向着这个方向发展, 节能、 环保型的自动售货机将是未来社会所需要的主流产品。 因此,开发出高性价比的自动售货机,保持与国外同类产品在性价比同步的同时,打破国外技术垄断和封锁,对发展我国电子业有非常重大的意义,具有广泛的应用前景,加紧对这类产品的研制显得非常紧迫。自动售货机在一些发达国家应用非常普遍,在我国的安放和使用,也已经有10多年的时间,但一直没有全面普

18、及。从1992年开始有部分来自日、韩等国引进的旧机器摆放国内市场,到自行研制和生产自动售货机,我国各厂家、商家蹒跚起步,艰难创业,已为国内零售业开辟了一片新天地。目前国内自动售货机市场走势已逐渐明晰,自动售货机逐步从沿海经济发达地区和各大中城市向内陆和欠发达地区延伸。在中国,自动售货机将成为一个潜在的巨大产业,继百货商店、超市之后掀起第三次零售业革命,其前景非常广阔。并且,透过智能售货系统,存货、销售、物流信息可以准确、及时地反馈给客户和管理人员 。此外,还支持多种交易支付模式,同时方便实现较大金额的支付和交易结算。在 2004年,通过手机购物的无线自动售货机在国内开始出现, 天津南开戈德公司

19、已研制此种类型的自动售货机。这种新一代自动售货机除了更方便售卖货品之外,还被视为一种传播广泛的广告媒介。在国外,自动售货机发展相对成熟。日本的自动售货机已经有 2000 多种机型、6000 多种商品。在美国,运营商就多大 10800 家,并且具有与大饮料商、大食 品商的合作经验。在日本,由于其无所不在,24小时供应,自动售货机很受特别忙碌的人欢迎。1.2 国内外的发展状况目前,我国在研制自动售货机等方面有可喜的成果,但总的来说还没有形成真正的产业。在自动售货机相关的所有研究领域中,全球对其关键技术的研究主要集中在系统内部销售动作实现方式的研究、资金结算及销售信息统计管理的实现方式研究、 功耗节

20、省模式的研究。根据相关文献资料,系统内部销售动作实现方式的研究已基本成熟,研究最多的主要集中在资金结算及销售信息统计管理的实现方式和功耗节省模式上。在CPLD基础上,采用Verilog描述语言实现自动售货机系统的销售动作,并完成整个系统的其他相关功能。本文是在Verilog的基础上对自动售货机进行设计来实现其基本功能的。由于以往的设计主要是通过两种方式:通过数字电路和模拟电路设计、基于单片机的设计。第一种方式的缺点是所设计的整体电路规模较大,所用的器件较多,造成故障率高,导致计价器不够准确;而基于单片机的设计,虽然有着开发及制作成本低,能较大程度的利用资源,但其外围电路较多,且调试复杂,抗干扰

21、能力差。而本文所用到的Verilog具有上手容易,灵活,大小写敏感等特点,且非常适合作为自动售货机的控制核心,所以选择用Verilog来对自动售货机进行设计来实现其功能。1.3研究内容本文设计的自动售货机控制电路按模块将系统划分为八个子模块,分别是找零计算模块(calculator)、确认取消控制模块(ok_cancel)、找零控制模块(refund)、总钱数加和模块(sum_cash)、锁定模块(lock)、显示模块(disp)、时钟分频模块(f_div)和消抖模块(key_sync),通过顶层模块(total)连接在一起。本文设计的自动售货机的系统提供的时钟通过分频后提供给控制器使用,外部

22、信号接入控制系统前需要先进行按键消抖操作。当顾客投入硬币后,自动售货机的总钱数加和模块开始计算收到的硬币数额。当顾客按下确认键后,找零计算模块开始计算找零或退还的钱数。同时确认取消控制模块的确认的信号灯亮。而且找零控制模块开始找零或退还原款。这时锁定模块将锁住所有的按键,所有按键输入均无效。当接收到复位信号后,所有标识信号和控制信号清零,系统处于等待指令的状态。当顾客投入一个一角硬币时,自动售货机产生一个时钟宽度的信号才c10,并传给控制器。当投入五角和一元硬币时,分别产生一个时钟宽度的信号c50和c100。投入的硬币总额被计算出来,并通过2个7段显示器(由信号led1和led10控制)显示出

23、来。当顾客按确认键后,则表示顾客确认购买商品,这时自动售货机产生一个时钟宽度的信号ok_in,购买确认指示灯(由led_buy控制)闪烁两下。如果顾客投入的硬币数额不够商品的价格,则自动售货机退出顾客所有投入的硬币;如果顾客投入的硬币数额多于商品价格,则自动售货机送粗商品(由en_deliver信号控制)并找零。送货时送货信号指示灯(led_cancel)闪烁两下。当顾客按取消键后,则表示顾客取消购买商品,此时自动售货机产生一个时钟宽度的信号cancel_in,同时自动售货机退回顾客投入的硬币。当顾客按下取消或确认键后,所有按键操作无效(由内部信号lock_out_entry控制)。当所有操作

24、结束,由内部的clear信号清除所有标识和中间信号,等待下一次操作。本文的自动售货机控制电路的设计采用 Verilog 硬件描述语言编程的设计方法设计系统核心电路的硬件程序, 在 ModelSim 软件平台上进行编译和仿真,最后生成的目标文件下载到实验台内的 CPLD 芯片以模拟实现该系统,并在实验台上对设计进行验证。第二章 软件介绍2.1 ModelSim仿真环境Mentor公司的ModelSim是业界最优秀的HDL语言仿真软件,它能提供友好的仿真环境,是业界唯一的单内核支持VHDL和Verilog混合仿真的仿真器。它采用直接优化的编译技术、Tcl/Tk技术、和单一内核仿真技术,编译仿真速度

25、快,编译的代码与平台无关,便于保护IP核,个性化的图形界面和用户接口,为用户加快调错提供强有力的手段,是FPGA/ASIC设计的首选仿真软件。作为一种简单易用,功能强大的逻辑仿真工具,Modelsim具有广泛的应用。 代码仿真在完成一个设计的代码编写工作之后,可以直接对代码进行仿真,检测源代码是否符合功能要求。这时,仿真的对象为HDL代码,比较直观,速度比较快,可以进行与软件相类似的多种手段的调试(如单步执行等)。在设计的最初阶段发现问题,可以节省大量的精力。 代码仿真需要的文件 设计HDL源代码:可以使VHDL语言或Verilog语言。测试激励代码:根据设计要求输入/输出的激励程序,由于不需

26、要进行综合,书写具有很大的灵活性。仿真模型/库:根据设计内调用的器件供应商提供的模块而定,如:FIFO(Altera常用的FIFO有:lpm_fifo /lpm_fifo_dc等)、DPRAM等。 主要特点:RTL和门级优化,本地编译结构,编译仿真速度快,跨平台跨版本仿真;单内核VHDL和Verilog混合仿真;源代码模板和助手,项目管理;集成性能分析、波形分析、代码覆盖、数据流ChaseX、Signal Spy、虚拟对象Virtual Object、Memory窗口、Assertion窗口、源码窗口显示信号值、信号条件断点等众多调试功能;C和Tcl/Tk接口,C调试;对SystemC的直接支

27、持,和HDL任意混合;支持SystemVerilog的设计功能;对系统级描述的最全面支持,SystemVerilog, SystemC, PSL; ASIC Sign off1。2.2 Verilog HDL语言简介Verilog HDL 是目前应用最为广泛的硬件描述语言,Verilog HDL可以用来进行各种层次的逻辑设计,也可以进行数字系统的逻辑综合,仿真验证和时序分析等。Verilog HDL适合算法级,寄存器级,逻辑级,门级和版图级等各个层次的设计和描述。Verilog HDL进行设计最大的优点是其工艺无关性这使得工程师在功能设计,逻辑验证阶段可以不必过多考虑门级及工艺实现的具体细节,

28、只需根据系统设计的要求施加不同的约束条件,即可设计出实际电路。Verilog HDL是一种硬件描述语言(hardware description language),为了制作数字电路而用来描述ASICs和FPGA的设计之用。Verilog 的设计者想要以 C 编程语言为基础设计一种语言,可以使工程师比较容易学习。Verilog 是由en:Gateway Design Automation公司于大约1984年开始发展。Gateway Design Automation公司后来被 Cadence Design Systems于1990年所购并2。2.2.1 Verilog HDL的主要能力下面列出

29、的是Ve r i l o g硬件描述语言的主要能力: 基本逻辑门,例如a n d、o r和n a n d等都内置在语言中。 用户定义原语( U D P)创建的灵活性。用户定义的原语既可以是组合逻辑原语,也可以是时序逻辑原语。 开关级基本结构模型,例如p m o s 和n m o s等也被内置在语言中。 提供显式语言结构指定设计中的端口到端口的时延及路径时延和设计的时序检查。 可采用三种不同方式或混合方式对设计建模。这些方式包括:行为描述方式使用过程化结构建模;数据流方式使用连续赋值语句方式建模;结构化方式使用门和模块实例语句描述建模。 Verilog HDL中有两类数据类型:线网数据类型和寄存

30、器数据类型。线网类型表示构件间的物理连线,而寄存器类型表示抽象的数据存储元件。 能够描述层次设计,可使用模块实例结构描述任何层次。 设计的规模可以是任意的;语言不对设计的规模(大小)施加任何限制。 Verilog HDL不再是某些公司的专有语言而是I E E E标准。 人和机器都可阅读Verilog 语言,因此它可作为E D A的工具和设计者之间的交互语言。 Verilog HDL语言的描述能力能够通过使用编程语言接口( P L I)机制进一步扩展。P L I是允许外部函数访问Verilog 模块内信息、允许设计者与模拟器交互的例程集合。 设计能够在多个层次上加以描述,从开关级、门级、寄存器传

31、送级( RT L)到算法级,包括进程和队列级。 能够使用内置开关级原语在开关级对设计完整建模。 同一语言可用于生成模拟激励和指定测试的验证约束条件,例如输入值的指定。 Verilog HDL 能够监控模拟验证的执行,即模拟验证执行过程中设计的值能够被监控和显示。这些值也能够用于与期望值比较,在不匹配的情况下,打印报告消息。 在行为级描述中, Verilog HDL不仅能够在RT L级上进行设计描述,而且能够在体系结构级描述及其算 法级行为上进行设计描述。 能够使用门和模块实例化语句在结构级进行结构描述。 在Verilog HDL 的混合方式建模能力,即在一个设计中每个模块均可以在不同设计层次上

32、建模。 Verilog HDL 还具有内置逻辑函数,例如&(按位与)和|(按位或)。 对高级编程语言结构,例如条件语句、情况语句和循环语句,语言中都可以使用。 可以显式地对并发和定时进行建模。 提供强有力的文件读写能力。 语言在特定情况下是非确定性的,即在不同的模拟器上模型可以产生不同的结果3。2.2.2 Verilog HDL模块的结构模块是Verilog 的基本描述单位,用于描述某个设计的功能或结构及其与其他模块通信的 外部端口。一个设计的结构可使用开关级原语、门级原语和用户定义的原语方式描述 ; 设计的 数据流行为使用连续赋值语句进行描述 ; 时序行为使用过程结构描述。一个模块可以在另一

33、个 模块中使用。 模块的端口定义模块的端口声明了模块的输人和输出口。其格式如下:模块名( ) module 模块名(口 1,口 2,口 3,口 4,);模块内容 模块内容包括 I/O 说明,信号类型声明和功能定义。 I/O 说明的格式如下:输入口: input 端口名 1,端口名 2,端口名 N; 输出口: output 端口名 l,端口名 2,端口名 N; I/O 说明也可以写在端口声明语句里。其格式如下: module module_name(input portl,input port2, output portl,output port2, );信号类型声明:它是说明逻辑描述中所用信号

34、的数据类型及函数声明。如reg7:0 out; /定义 out 的数据类型为reg(寄存器)型对于端口信号的缺省定义类型为wire(连线)型4。2.2.3数据类型及常量、变量Verilog HDL 中共有 19 种数据类型。数据类型是用来表示数字电路中的数据存储和传送单元的。在此介绍4个最基本的数据类型: integer型、parameter 型、reg 型和 wire 型。 Verilog HDL中也有常量和变量之分,他们分属以上这些类型。 常量在程序运行过程中,其值不能被改变的量称为常量。数字 整数 在 Verilog HDL 中,整数型常量(即整常数)有以下4种进制表示形式: 二进制整数

35、(b 或 B); 十进制整数(d 或 D); 十六进制整数(h 或 H); 八进制整数(o 或 O)。 完整的数字表达式为: ,位宽为对应二迸制数的宽度,如: 4 8b11000101 /位宽为8位的二进制数 11000101; 8hc5 /位宽为8位的十六进制数 c5; 十进制的数可以缺省位宽和进制说明,如: 197 /代表十进制数 197 x 和 z 值 x 表示不定值,z 表示高阻值。每个字符代表的宽度取决于所用的进制,例如:8b1001xxxx; 等价于 8h9x;8b1010zzzz; 等价于 8haz; 当常量不说明位数时,默认值为32位。此外, “?”是高阻态的z的另一种表示符号

36、。常量 在 Verilog HDL 中,用parameter来定义常量,即用 parameter 来定义一个标志符, 代表一个常量,称为符号常量。其定义格式如下:1=表达式 表达式, 2=表达式 表达式, 3=表达式; 表达式 parameter 参数名 1=表达式,参数名 2=表达式,参数名 3=表达式; 例如: parameter sel=8,code=8ha3; /分别定义参数sel为常数8(十进制),参数code为常数a3(十六进制)变量变量是在程序运行过程中其值可以改变的量。变量分为两种一种为网络型(nets type),另一种为寄存器型(register type)。 nets 型

37、变量 wirenets 型变量指输出始终根据输入的变化而更新其值的变量, 它一般指的是硬件电路中的各种物理连接。Verilog HDL 中提供了多种 nets 型变量。这里着重介绍 wire 型变量。wire 是一种常用的 nets 型变量,wire 型数据常用来表示 assign 语句赋值的组合逻辑信号。Verilog HDL 模块中的输入/输出信号类型缺省时自 动定义为 wire 型。 Wire 型信号可以用作任何方程式的输入,也可以用作 assign 语句和实 例元件的输出,其取值为 0,1,x,z。register 型变量 reg register 型变量对应的是具有状态保持作用的电路

38、元件,如触发器、寄存器等。 register 型变量与 nets变量的根本区别在于:register需要被明确地赋值,并在被重新 赋值前一直保持原值。 在设计中必须将寄存器型变量放在过程块语句(如 initial, always) 中,通过过程赋值语句赋值。另外,在 always 过程块内被赋值的每一个信号都必须定义成寄存器型。Integer、real、time 等3种寄存器型变量都是纯数学的抽象描述,不对应任何具体 的硬件电路。reg型变量是最常用的一种寄存器型变量6。第三章 自动售货机控制电路的总体设计3.1 设计思路一般的自动售货机由钱币装置、指示装置、贮藏售货装置等组成。钱币装置是售货

39、机的核心,其主要功能是确认投入钱币的真伪,分选钱币的种类,计算金额。如果投入的金额达到购买物品的数值即发出售货信号,售出货物并找出余钱。指示装置用以指示顾客所选商品的品种。贮藏售货装置保存商品,接收出售指示信号,把顾客选择的商品送至出货口。一般售货机的钱币装置由投币口、选别装置、确认钱币真伪的检查装置、计算金额的计算装置和找钱装置组成。本文在Verilog基础上,采用Verilog硬件描述语言模拟实现自动售货机系统的销售动作。自动售货机通电复位时,自动进入到系统初始状态。售货机会实时显示当前投入售货机的货币,直到购买结束。当投入硬币后按确定键来获得商品或按取消键退出投入的货币。 顾客按下确定键

40、后,购买指示灯亮起;顾客按下取消键后,取消指示灯亮起。3.2自动售货机的工作流程本文设计的自动售货机控制电路按模块将系统划分为八个子模块,分别是找零计算模块、确认取消控制模块、找零控制模块、总钱数加和模块、锁定模块、显示模块、时钟分频模块和消抖模块,通过顶层模块(total)连接在一起。本次自动售货机只能出售一种商品,即1.3元的商品。本设计中假设商品存货无限,找零钱币无限。出售的商品由顾客按动相应的按键即可,并同时用数码管显示出此商品的价格;顾客投入硬币的钱数有1角、5角、1元三种,假设每次投入其中的一种币分别由c10、c50、c100控制,顾客投币后,按一次确认键(ok_in),如果投币额

41、不足时则会原数退回所投硬币,如果投币额足够时自动送出货物,同时多余的钱应找回,顾客一旦按动确认键(ok_in)或取消键(cancel_in)后,则所有按键输入均无效。当所有操作结束,由内部的由内部的clear信号清除所有标识和中间信号,自动售货机即可自动恢复到初始状态,此时才允许顾客进行下一次购货操作;顾客一次只能购买一种商品的一个,若需要更多商品,需要重复操作。本文主要研究自动售货机工作过程中的主要控制部分,流程图如下图3.1所示:大于商品价格小于商品价格初始状态选择商品找零,退币投入货币送出商品准备退币比较币价结束图3.1工作过程流程图第四章 自动售货机控制电路的设计和仿真本设计分为八个子

42、模块,分别是找零计算模块、确认取消控制模块、找零控制模块、总钱数加和模块、锁定模块、显示模块、时钟分频模块和消抖模块。通过顶层模块(total)连接在一起。其中,为了编写程序方便对程序中的各个执行动作用了相应的符号表示:clk,输入时钟信号;rst,复位信号;c10,投入一个一角硬币;c50,投入一个五角硬币;c100,投入一个一元硬币;ok_in,确认信号;cancel_in,取消信号;en_deliver,给货信号;led_buy,购买确认指示灯;led_cancel,取消指示灯;led10,总投入货币数的十位数(单位是角);led1,总投入货币数的个位数(单位是角)。各个模块对应的设计和

43、仿真如下所示:1姜雪松VHDL 设计实例与仿真 M北京:机械工业出版社,2007年:10-201刘波 精通VerilogHDL语言编程M.电子工业出版社;20073 刘国钧,王连成图书馆史研究M北京:高等教育出版社,1979:15-184.1 找零计算模块(calculator)在自动化售货机的系统中,找零计算模块的功能是在顾客按下确认键后开始计算找零或退还的钱数。4.1.1 找零计算模块的程序设计找零计算模块的程序流程图如下图4.1所示:按下确认键比较币价退币找零清零大于商品小于商品图4.1 找零计算模块的程序流程图4.1.2找零计算模块的仿真投入硬币过量仿真如图4.2所示,仿真图中:rst

44、,复位信号;ok,确认信号;clear,清零信号;sum,投入硬币总和内部信号;sum_10,投入一角硬币内部信号;sum_50,投入五角硬币内部信号;sum_100,投入一元硬币内部信号;rsum_10,退一角硬币内部信号;rsum_50,退五角硬币内部信号;rsum_100,退一元硬币内部信号;s=sum;x=rsum_100;y=rsum_50;z=rsum_10;value=13。图4.2 找零计算模块投入硬币过量仿真波形通过分析仿真波形,可以看出:在5ns前,系统复位;在25ns时,投入2枚1元和2枚1角硬币;55ns时接收到购买确认信号,计算出来应该退回9角,rsum_10被赋值4

45、,rsum_50被赋值1,其他模块接收到rsum_10和rsum_50信号后会完成对应的操作;125ns时操作结束,发出内部清零操作,清除所有标识位和内部信号。投入硬币不足仿真如图4.3所示,仿真图中:rst,复位信号;ok,确认信号;clear,清零信号sum,投入硬币总和内部信号;sum_10,投入一角硬币内部信号;sum_50,投入五角硬币内部信号;sum_100,投入一元硬币内部信号;rsum_10,退一角硬币内部信号;rsum_50,退五角硬币内部信号;rsum_100,退一元硬币内部信号;s=sum;x=rsum_100;y=rsum_50;z=rsum_10;value=13。图

46、4.3 找零计算模块投入硬币不足仿真波形通过分析仿真波形,可以看出:在5ns前,系统复位;在25ns时,投入1元和1角硬币各一枚;55ns时接收到购买确认信号,计算出来应该退回原款,rsum_10被赋值1,rsum_100被赋值1,其他模块接收到rsum_10和rsum_100信号后会完成对应的操作;125ns时操作结束,发出内部清零操作,清除所有标识位和内部信号。投入硬币正好仿真如图4.4所示,仿真图中:rst,复位信号;ok,确认内部控制信号;clear,清零信号;sum,投入硬币总和内部信号;sum_10,投入一角硬币内部信号;sum_50,投入五角硬币内部信号;sum_100,投入一元硬币内部信号;rsum_10,退一角硬币内部信号;rsum_50,退五角硬币内部信号;rsum_100,退一元硬币内部信号;s=sum;x=rsum_100;y=rsum_50;z=rsum_10;value=13。图4.4 找零计算模块投入硬币正好仿真波形通过分析仿真波形,可以看出:在5ns前,系统复位;在25ns时,投入1枚1元和3枚1角硬币;55ns时接收到购买确认信号,计算出来投入硬币数额等于商品价格,不用退币操作; 125ns时操作结束,发出内部清零操作,清除所有标识位和内部信号。4.2 确认取消控制模块(ok_cancel)

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

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号