自动饮料售货机 目录1.前言。。.。。.。。。。.。.。.。。。..。.。。。。。。。。....。。。。。.。.。。.。。。。.。。12.设计流程图。。..。.。。...。。..。。.。。。.。.。。。...。。.。。.。。。.。...。。23.源代码编写。.。.。。.。.。..。。。。。。..。....。。..。。。。。。。。.。。.。。。.。34.仿真时序图。。。.。...。。。.。.。。.。。.。。。。。..。。.。。.。。...。.。.。.。。65.分析与总结。。。....。。。.。。...。....。。。。。。.。.。。。.。..。。。。.。。.。76.参考文献。.。。.。。.。。。。。。.。。.。.。。。。。。.。.。..。。。。。.。。。。。..。。.71. 前言本人在本科阶段自学了一部分 PLC,并运用 PLC 完成了本科的毕业设计,同在毕业设计课题组的同学选做基于 PLC 自动饮料售货机的设计,当时对自动饮料售货机的控制系统了解仅限于基于单片机与 PLC 的控制没有亲自动手去尝试设计.在本学期,全新的接触和学习了 FPGA 课程,正处于一个 FPGA 的入门阶段,基于以前的兴趣,该次尝试基于 FPGA 简单设计自动饮料售货机的一部分控制。本次是采纳 Quartus II 13。0sp1 进行了程序源代码的编写和时序仿真。图 1-1 自动饮料售货机内部结构图图 1-2 自动饮料售货机内部结构图2.设计流程图3。源代码编写/*信号定义: clk: 表示时钟输入; rst_n: 为系统复位信号; half_yuan: 代表投入 5 角钱币; one_yuan: 代表投入 1 元钱币; half_out: 代表找零信号; dispense: 代表机器售出一瓶饮料; collect: 用于提示投币者取走饮料. seg1: LCDA 数码管显示; seg2: LCDB 数码管显示; seg3: LCDC 数码管显示;*/ module SCD(half_yuan ,one_yuan,half_out,collect,dispense,rst_n,clk,seg1,seg2,seg3); parameter idle=0,half=1,one=2,two=3,three=4; // idle,half,one,two,three 代表投入钱币的几种状态 input half_yuan,one_yuan,rst_n,clk; output collect,half_out,dispense,seg1,seg2,seg3; reg[2:0]D; //D 代表当前时刻投币的状态 reg temp1,temp2; reg collect,half_out,dispense; reg [3:0]seg1; reg[3:0]seg2; reg[7:0]seg3; always @(posedge clk or negedge rst_n) begin if (!rst_n) begin dispense〈=0;collect〈=0; half_out<=0;D〈=idle; temp1〈=0;temp2〈=0; {seg...