- 49
- 0
- 约4.86千字
- 约 15页
- 2020-03-09 发布于江西
- 举报
Verilog 课程设计
------自动售货机
一、实验目的
设计一个自动售货机,此机能出售 1 元、2 元、5 元、10 元的四种商品。 出售哪种商品可有顾客按动相应的一个按键即可,并同时用数码管显示出此商 品的价格。
顾客投入硬币的钱数也是有 1 元、2 元、5 元、10 元四种,但每次只能投 入其中的一种硬币,此操作通过按动相应的一个按键来模拟,并同时用数码管 将投币额显示出来。
顾客投币后,按一次确认键,如果投币额不足时则报警,报警时间 3 秒 (可用点阵模拟报警)。如果投币额足够时自动送出货物(送出的货物用相应不 同的指示灯显示来模拟),同时多余的钱应找回,找回的钱数用数码管显示出来。
顾客一旦按动确认键 3 秒后,自动售货机即可自动恢复到初始状态,此 时才允许顾客进行下一次购货操作。
售货机还应具有供商家使用的累加卖货额的功能,累加的钱数要用数码管 显示,显示 2 位即可。此累加器只有商家可以控制清零。
此售货机要设有一个由商家控制的整体复位控制。
二、实验原理
首先应搭建识别模块,将代表每种硬币的拨码开关信号转变为 BCD 码进 行累加。当累加完成后,将累加结果与代表商品的 BCD 码相比较。如果大于 售出商品并对两个 BCD 码求差,求差的结果作为找钱信号;如果等于直接售 出商品;小于则报警。至于统计卖钱额,则是对售出的商品进行累加。
三、分析与设计思路
可分为以下模块
1)分频模块。
计时模块。用于控制确认键后到恢复初始化的 3 秒计时。
识别模块。将每种硬币、货品的拨码开关信号转变为编码 。
清零模块 。用于销售总额的清零。
初始化模块
控制模块。用于数据读入、投币不足、交易成功状态的控制及转化。
显示模块
四、程序代码段
module autoseller(clk,g,m,yes,read,zero,led_dig,led_seg,led_c,led_r,led); input clk,yes,read,zero;//确定键,商家读取键,清零键
input [3:0] g , m; //货品及投币选择键
output led_dig,led_seg,led_c,led_r,led;//数码管输出及点阵输出
reg f_100;//分频时钟
reg f_1;
reg [3:0] goods,money,led,change,g_c;
integer r,a,b, a_tmp2,a_tmp1;
integer ret=0;//用于控制各状态间的转换
reg [9:0]count;
reg [7:0] led_c,led_r,led_dig,led_seg;
reg [1:0]state;
integer i;
reg x;
always @ (posedge clk) //分频模块
begin
if(a_tmp2==999)
begin
f_100=~f_100;
a_tmp2=0;
end
else
a_tmp2=a_tmp2+1;
end
always @ (posedge clk)
begin
if(a_tmp1==9999999)
begin
f_1=~f_1;
a_tmp1=0;
end
else
a_tmp1=a_tmp1+1;
end
always @ (posedge f_1)
begin
if(ret!=0) //用于按确认键后的计时
begin
a=a+1;
end
else
begin
a=0;
end
end
always @ (posedge f_100)
begin
if(zero==0) //清零
=0;
end
if(read!=0) //非商家读取模式(普通读写模式)
begin //
识别模块
case(g) //表每种货品的拨码开关信号转变为编码 4b0001:begin goods=1;end
4b0010:begin goods=2;end
4b0100:begin goods=5;end
4b1000:begin goods=10;end
:begin goods=0;end
case(m) //表每种硬币的拨码开关信号转变为编码 4b0001:begin money=1;end
4b0010:begin money=2;end
4b0100:begin money=5;end
4b1000:begin money=10;end
:begin money=0;end
if(a==3) //初始化
begin
ret=0;
led=4b0000;
led_c=8b0000_0000;led_r=8b1111_1111;
x=0;
end
if(yes==0) //按确定键
begin
if(moneygoods) //金钱不足
begin
change=0;
r
原创力文档

文档评论(0)