本项目采用VHDL语言进行硬件描述,实现了自动售货机的核心控制逻辑。通过模块化设计,确保了系统的可扩展性和可靠性,并进行了详细的仿真验证。
某自动售货机内有两种饮料可供选择:一种售价2元,另一种3元。该机器能够识别1元与5元的货币,并具有找零功能,在投入金额等于或超过所需价格的情况下会释放相应的饮料。
(1)用户可以选择多次购买不同种类的饮料。一旦选择了某种饮料,售货机会等待投币操作开始;如果在选择后未进行任何动作的时间超过了10秒,则系统将自动返回到待机状态以准备下一次交易。若在此期间重新选定了一种饮品,则会再次进入等待投币的状态。
(2)每次完成购买之后,机器都会回到初始的等候模式,为后续顾客提供服务。
(3)通过按键来模拟投入1元或5元的操作,并且可以连续多次进行此类操作;与此同时屏幕上将实时更新已投入与剩余待支付金额。如果在某次投币后发现总金额仍然不足,则需继续添加更多货币以完成交易流程,否则若超过一定时间未做任何补充(大约为10秒),则认定此次购买失败,并返还所有已经插入的硬币和显示退还的具体数目。
(4)系统设置有指示装置用于告知用户当前状态:包括成功购得商品、因故未能达成协议退回款项以及需要领取找零等情况时分别亮起不同的信号灯。
(5)该设备配备了延迟及定时功能,以便于实现上述各项操作的顺畅过渡。