module auto_seller(clk,rst,display,btn_ok,btn_mon,btn_sell,led_warn,led,Dir,StepDrive);
input clk,rst,btn_ok;
input [2:0] btn_mon;//选择放入的钱
input [3:0] btn_sell;//选择商品bbt_5,gz_10,kqs_15,kl_20
output [6:0] led;//led_5,led_10,led_15,led_20
output led_warn;//钱不足,指示灯
output [15:0] display;//数码管显示投入面值,diaplay[15:8]位选,display[7:0]段码
input Dir;
reg StepEnable;
output[3:0] StepDrive;
reg [3:0] StepDrive;
reg [2:0] state;
reg [31:0] StepCounter = 32'b0;
parameter StepLockOut = 32'd200000; //250HZ
reg InternalStepEnable;
reg clk1;
reg [6:0] led;
reg led_warn;//警告放入钱不足
reg [15:0] display;
reg [31:0] counter;
(* synthesis,keep *)reg [9:0] price,price_all;
reg [1:0] flag = 2'b00;//数码管显示标志位
reg [1:0] flag1 = 2'b00;
reg [1:0] flag2 = 2'b00;
parameter COUNT1 = 25'd10000;
/*分频使数码管显示稳定*/
always @ (posedge clk)
begin
if(counter== 0)
begin
counter <= COUNT1;
clk1 <= ~clk1;
end
else
counter <= counter-1;
end
always @(negedge rst or posedge clk)
begin
if(!rst)
begin
led = 7'b111_1111;//LED灭
price_all = 0;//价格清零
led_warn = 1;
price = 0;
end
else
begin/*三种面值共8种组合*/
case(btn_mon)
3'b001: begin price_all = 5;end
3'b010: begin price_all = 10;end
3'b100: begin price_all = 50;end
3'b011: begin price_all = 15;end
3'b101: begin price_all = 55;end
多功能自动售货机 来自淘豆网m.daumloan.com转载请标明出处.