实验题目:自动售货机设计
一、 设计任务
设计一个自动销售饮料机,设每瓶饮料 1.5 元,投币口两个一元硬币(one)或五角硬币(half),
每个时刻可以输入一种硬币,自动售货机有找零功能,outdrink 为出货,outmoney 为找零。用数码管
显示投入和找零的金额。
二、 设计过程
设计思路:
首 先 设 计 5 种 状 态 , , 当 前 金 额 每 增 加 五 角 则 为 一 个 状 态 , 分 别 对 每 个 状 态 的
outmoney,outdrink 进行定义。通过扫描信号使第一个数码管、第 2 个数码管显示已投入的钱数。通
过拨码开关来模拟投钱。
设计方案:
module zj(one,half,reset,clk,,outdrink,outmoney,dig,out);
parameter s0=0,s1=1,s2=2,s3=3,s4=4;
input one,half,reset,clk;
output outdrink,outmoney;
output[7:0]dig;
output[6:0]out;
reg[7:0]dig;
reg[6:0]out;
reg[3:0]temp,temp_a,temp_b;
reg[6:0]c;
reg outdrink,outmoney;
reg[2:0] state;
reg state1,d;
reg y,j;
reg count;
always @(negedge reset or posedge one or posedge half or posedge clk )
begin
if(!reset)
begin
outdrink=0; outmoney=0;
state=s0;
y=0; j=0;
{temp_a,temp_b}=0;
end
else if(half) j=1;
else if(one) y=1;
else
begin
case(state)
s0:begin outmoney=0;outdrink=0;
{temp_a,temp_b}=0;
if(j==1)begin state=s1;j=0; end
else if(y==1) begin state=s2;y=0; end
1
评论0