毕业论文-自动售货机汇总 联系客服

发布时间 : 星期一 文章毕业论文-自动售货机汇总更新完毕开始阅读917375d470fe910ef12d2af90242a8956becaa23

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

3 系统总体方案

3.1 设计要求

? 本文设计的售货机系统中只有一种,价格为13元;

? 可以投入三种不同的货币来购买商品,分别是1元、5元、10元;

? 每次只允许购买一个商品,若想要购买多个商品,则需要重复执行购买操作; ? 售货机的显示器会实时更新显示总共投入的货币的总额;

? 当投入货币后,如果不想购买商品了则可以通过按取消键来退还投入的货币,

否则就按确定键来获取商品;

? 设置两个指示灯,分别是购买指示灯和取消指示灯,当顾客按下确定键后购买

指示灯亮起;若顾客按下取消键,则取消指示灯亮起;

3.2 总体设计

通过分析系统的设计要求以及考虑到系统本身,本文对整个总动售货机系统采用自顶向下的设计方法,自顶向下的设计方法如图所示,采用自顶向下的设计方法的优点是很明显的。由于系统设计从顶层开始,所以在进行设计时就清楚实现整个系统的性能状况。随着设计向下一级进行,系统的性能就能进一步得到细化和表达,并且可以根据个人需要随时修改和调整,缩短了设计周期。

对整个系统的顶层文件进行如下端口设计:

? 输入端口:clk,输入时钟信号;rst,复位信号;C1,投入一张1元货币;C5,

投入一张5元货币;C10,投入一张10元货币;ok_in,确认信号;cancel_in,取消信号。

? 输出端口:led_buy,确认购买指示灯;led_cancel,取消购买指示灯;en_deliver,

出货信号;led1,投入货币总数的个位数(单位是元);led10,投入货币总数的十位数(单位是元)。

? 内部可读输出端口:RC1,1元退币控制信号;RC5,5元退币控制信号;RC10,10

元退币控制信号。

9

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

端口原理图如图所示:

在确定了整个系统的输入输出端口后,给出自动售货机的系统内部的工作原理: 当系统接收到复位信号后,其他所有的控制信号和标识信号都清空为零,系统处于等待指令的状态。

当系统接收到相关信号输入时,系统开始工作。顾客确定购买商品时,开始投入货币,当投入货币为1元、5元、10元时,将分别产生一个时钟宽度的信号C1、C5、C10。所投入的货币总额会实时计算并通过显示器显示出来。

当顾客确定购买商品并按下确认键的时候,自动售货机会产生一个时钟信号ok_in,而且由led_buy控制的代表确认购买的指示灯会闪烁。如果投入货币的总额大于商品价格时,则送出商品并计算出余额操作退出余额,此时出货指示灯闪烁。如果投入的货币不足以支付商品价格,自动售货机会退还所有货币。

当顾客投入货币又不想购买商品时,就可以通过按下取消键来取消购买,这时系统会产生一个时钟信号cancel_in,同时通过找零控制模块来执行相应操作退还货币。如果确认键或者取消键被按下后,自动售货机会产生一个lock_out_entry内部信号,当发出信号后,所有的操作都是无效的。

当完成所有的操作后,将产生一个clear清除信号,此时所有的信号都会被清除,自动售货机开始等待下一次操作。

整个系统的投币购物流程如图所示:

10

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

将整个系统划分成六个模块,分别是购买余额计算模块、找零控制模块、确认取消模块、总额加和模块、锁定模块和显示模块。各模块的功能:

余额计算模块:当顾客确认购买商品并按下了售货机的确认键后,找零模块就开始计算出应该退还的余额。

找零控制模块:在顾客确定购买商品后执行找零操作,或者是在顾客取消购买后执行退还原款操作。

确认取消模块:顾客在选择购买商品或者取消购买商品后,将输入的确认信号或者取消信号分别转换成单时钟周期的控制信号,并且控制相对应的信号灯的亮和不亮。

总额加和模块:不断的更新并计算售货机收到的总货币数量。

锁定模块:可以按下确认键或者取消键,当其中任意一个键被按下后,整个自动售货机系统的按键的输入都是无效的。

显示模块:通过控制两个显示器(led1和led10)来显示所投入货币的总额。 整个自动售货机的内部工作过程的总体框图如图所示:

对每一个子模块进行VHDL设计,然后对其进行编译,再编译没有错误后,通过编写TestBeach文件来对其进行仿真测试来验证每一个模块的功能是否正确。在顶层文件的

11

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

vhdl程序设计中,通过特定的例化语句将已经设计好的6个子模块进行例化,然后直接对各个模块进行调用,整个顶层程序的设计就是通过调用底层的6个模块来实现的,完成顶层设计后再对整个系统进行仿真测试。

12