欢迎来到天天文库
浏览记录
ID:20627326
大小:248.00 KB
页数:10页
时间:2018-10-14
《hdl(verilog)课程设计报告(自动售货机)》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、VerilogHDL课程设计报告实验名称:基于VerilogHDL的自动售货机指导老师:王冠军班级:信科12。1姓名:吴涛学号:06122485第一章系统设计1.1系统设计(1)用四个发光二极管分别模拟售!li价值为5角、1元、1.5元和2元的小商晶,购买者可以通过开关选择任意一种标价中的小商品。(2)灯焭吋表示该小商品售出。(3)川开关分别模拟5角、1元硬rp和5元纸rp投入,可以川儿只发光二极管(或数码管)分别代表找回剩余的硬币。(4)每次只能售!li-•种小尚品,当所投硬iTi达到或超过购买者所选面值时,售出货物并找回剩余的硬币,回到初始状态;(5)当所投
2、硬币值不足而值吋,可通过一个复位键退回所投硬币,回到初始状态。第二章详细设计2.1自动售货机状态描述判断丌关被按下的个数N。若N>=2表示所选木次选择无效,返回初始状态;若N=1则显示所选商品,并继续执行卜'面的流程。3个开关分别代表三种商品。4个开关分别代表投入0.5元,1元,2元,5元,统计投入总额。投入总额与商品价格做比较,如果总额<商品价格,退钱并返冋初始状态如果总额>=尚品价格,则继续执行下面的程序。找零=总额-商品价格,数码管显示找零金额。状态图如图2.1所示:2.2详细状态描述2.2.1初始状态各变量都设置为零,按卜键后,一切恢复到初始状态。2.2
3、.2选尚品状态分别冇价格为0.5元、1元、1.5元和2元的商品,每次选择商品前,设置一个标志位btn_sdl表示选择商品状态。此lb动竹货机每一次饩货时只能一次选择一种商品,当同时选择两种以I:吋,选择商品无效,数码管显示淸零,重新进行商品选择。选择商品后,数码管显示所选商品价格。2.2.3投Hl状态当选好商品后,开始投币。同样有一标志位btivprice表示投币金额。投币口只接受三种而值的钱币0.5元、1元和5元,4以M时投入多种而伉钱币。投完币后,先有一个确认买商品的过程,芯投了币但又不购买商品了,就将全部投币金额退回;苦确认购买商品,则进入K一状态——找零
4、状态。2.2.4找零状态投完币,并确汄购买商品后,进入找零状态。首先要将所投的金额与所选商品的价格做比较,若所投金额小于商品价格,则退回所投钱币;若大于等于商品价格,则两者做差,得到耑要找零的钱。第三章软件设计3.1程序总流程图开始w结束3.2程序moduleseller(clk,rst,dis_mony,btn_ok,btn_inon,btn_sell,led_warn,led,beep);inputclk,rst,btn_ok;input[2:0]btn_mon;//选择故入的钱input[3:0]btn_sell;//选择商品bbt_5,gz_10,kqs
5、_15,kl_20output[3:0]led;//led_5,led_10,led_15,led_20outputlecLwam;//钱不足,指示灯output[10:0]dis_mony;//数码管显示投入面值,dia_mony[10:8J=com位选,dis_mony[7:0]=段码outputbeep;integerr;regclk_500Hz;reg[3:0]led;//led_5Jed_10,led_15,led_20regled_warn;//警告放入钱不足reg[10:0]dis_mony;reg[31:0]counter;regL9:0Jpri
6、ce,price_all;reg11:0]flag=2’b00;//数码管显示标志位regbeep=0;parameterCOUNT1=25’d10000;/*分频使数码管显示稳定*/always@(posedgeelk)beginif(counter==0)begincounter<=COUNT1;clk_500Hz<=〜clk_500Hz;endelsecounter<=counter-1;endalways@(negedgerstorposedgeelk)beginif(rst==O)beginled=fbOOOCV/LED灭price_all=0;//价
7、格清零led_warn=0;price=0;beep=0;endelsebegin/*三种面值共8种组合*/case(btn_mon)3’b001:beginprice_all=5;end3'b010:beginprice_all=10;end3’blOO:beginprice_all=50;end3’b011:beginprice_all=15;end3’bl01:beginprice_all=55;end3’bl10:beginprice_all=60;end3’bl11:beginprice_al1=65;enddefault:beginprice_all
8、=0;endendcas
此文档下载收益归作者所有