版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、HDL(Verilog)课程教课方案报告(自动售货机)_3721HDL(Verilog)课程教课方案报告(自动售货机)_372110/10HDL(Verilog)课程教课方案报告(自动售货机)_3721-/VerilogHDL课程设计报告实验名称:鉴于VerilogHDL的自动售货机指导老师:王冠军班级:信科12-1姓名:吴涛学号:06122485-/第一章系统设计1.1系统设计用四个发光二极管分别模拟售出价值为5角、1元、1.5元和2元的小商品,购置者能够经过开关选择随意一种标价中的小商品。灯亮时表示该小商品售出。(3)用开关分别模拟5角、1元硬币和5元纸币投入,能够用几个发光二极管(或数码
2、管)分别代表找回节余的硬币。每次只好售出一种小商品,当所投硬币达到或超出购置者所选面值时,售出货物并找回节余的硬币,回到初始状态;当所投硬币值不足面值时,可经过一个复位键退回所投硬币,回到初始状态。第二章详尽设计2.1自动售货机状态描绘判断开关被按下的个数N。若N=2表示所选本次选择无效,返回初始状态;若N=1则显示所选商品,并持续履行下边的流程。3个开关分别代表三种商品。4个开关分别代表投入0.5元,1元,2元,5元,统计投入总数。投入总数与商品价钱做比较,假如总数=商品价钱,则持续履行下边的程序。找零=总数-商品价钱,数码管显示找零金额。状态图如图2.1所示:2.2详尽状态描绘初始状态各变
3、量都设置为零,按下rst键后,全部恢复到初始状态。选商品状态分别有价钱为0.5元、1元、1.5元和2元的商品,每次选择商品前,设置一个标记位btn_sell表示选择商品状态。此自动售货机每一次售货时只好一次选择一种商品,当同时选择两种以上时,选择商品无效,数码管显示清零,从头进行商品选择。选择商品后,数码管显示所选商品价钱。投币状态-/入选好商品后,开始投币。相同有一标记位btn_price表示投币金额。投币口只接受三种面值的钱币0.5元、1元和5元,能够同时投入多种面值钱币。投完币后,先有一个确认买商品的过程,若投了币但又不购置商品了,就将所有投币金额退回;若确认购置商品,则进入下一状态找零
4、状态。找零状态投完币,并确认购置商品后,进入找零状态。第一要将所投的金额与所选商品的价钱做比较,若所投金额小于商品价钱,则退回所投钱币;若大于等于商品价钱,则二者做差,得到需要找零的钱。第三章软件设计3.1程序总流程图3.2程序-/moduleseller(clk,rst,dis_mony,btn_ok,btn_mon,btn_sell,led_warn,led,beep);inputclk,rst,btn_ok;input2:0btn_mon;/选择放入的钱input3:0btn_sell;/选择商品bbt_5,gz_10,kqs_15,kl_20output3:0led;/led_5,le
5、d_10,led_15,led_20outputled_warn;/钱不足,指示灯output10:0dis_mony;/数码管显示投入面值,dia_mony10:8=com位选,dis_mony7:0=段码outputbeep;integerr;regclk_500Hz;reg3:0led;/led_5,led_10,led_15,led_20regled_warn;/警示放入钱不足reg10:0dis_mony;reg31:0counter;reg9:0price,price_all;reg1:0flag=2b00;/数码管显示标记位regbeep=0;parameterCOUNT1=25
6、d10000;/*分频使数码管显示稳固*/always(posedgeclk)beginif(counter=0)begincounter=COUNT1;clk_500Hz=clk_500Hz;endelsecounter=counter-1;end-/always(negedgerstorposedgeclk)beginif(rst=0)beginled=4b0000;/LED灭price_all=0;/价钱清零led_warn=0;price=0;beep=0;endelsebegin/*三种面值共8种组合*/case(btn_mon)3b001:beginprice_all=5;end3
7、b010:beginprice_all=10;end3b100:beginprice_all=50;end3b011:beginprice_all=15;end3b101:beginprice_all=55;end3b110:beginprice_all=60;end3b111:beginprice_all=65;enddefault:beginprice_all=0;endendcasecase(btn_sell)4b0001:beginprice=5;end4b0010:beginprice=10;end4b0100:beginprice=15;-/end4b1000:beginprice
8、=20;enddefault:beginprice=0;endendcaseif(btn_ok=1)beginif(price_allprice)/放入钱不足beginled_warn=1;price=0;endelsebegin/金钱足够price_all=price_all-price;beep=1;case(price)/LED灯显示货物卖出beginled=4b0001;end10:beginled=4b0010;end15:beginled=4b0100;end20:beginled=4b1000;endendcaseendendelsebeep=0;-/endend/*分频后将时钟
9、给数码管,数码管分别显示放入钱的多少、商品价钱*/always(posedgeclk_500Hz)begincase(flag)2b00:beginr=price_all%10;case(r)0:begindis_mony=11b111_0011_1111;end1:begindis_mony=11b111_0000_0110;end2:begindis_mony=11b111_0101_1011;end3:begindis_mony=11b111_0100_1111;end4:begindis_mony=11b111_0110_0110;end5:begindis_mony=11b111_0
10、110_1101;end6:begindis_mony=11b111_0111_1101;end7:begindis_mony=11b111_0000_0111;end8:begindis_mony=11b111_0111_1111;end9:begindis_mony=11b111_0110_1111;endendcaseflag=2b01;end2b01:beginr=price_all/10;case(r)0:begindis_mony=11b110_1011_1111;end1:begindis_mony=11b110_1000_0110;end2:begindis_mony=11b1
11、10_1101_1011;end-/3:begindis_mony=11b110_1100_1111;end4:begindis_mony=11b110_1110_0110;end5:begindis_mony=11b110_1110_1101;end6:begindis_mony=11b110_1111_1101;end7:begindis_mony=11b110_1000_0111;end8:begindis_mony=11b110_1111_1111;end9:begindis_mony=11b110_1110_1111;endendcaseflag=2b00;endendcaseend
12、/*数码管段码表*/function7:0led7;input3:0dis_input;begincase(dis_input)0:led7=8b0011_1111;1:led7=8b0000_0110;2:led7=8b0101_1011;3:led7=8b0100_1111;4:led7=8b0110_0110;5:led7=8b0110_1101;6:led7=8b0111_1101;7:led7=8b0000_0111;8:led7=8b0111_1111;9:led7=8b0110_1111;default:led7=8b0011_1111;endcaseend-/endfuncti
13、onendmodule第四章结果与议论4.1实验调试调试步骤运转QuartusII软件,新建工程。成立文本文件VerilogHDLFile。在文件中写入程序。保留,编译。分派管脚。保留,编译。将生成的.sof文件写入FPGA试验箱中。依据要求选择几种买东西的可能状况,在实验箱上实验,察看记录结果。实验现象选择买0.5元的商品,投5元的金额,调试现象以下:选择0.5元商品数码管显示0.5,再选择一种商品,数码管显示清零,从头进行商品选择。按下5元投币键,对应数码管显示5.0。按下确认购置开关,找零时,对应数码管显示4.5,蜂鸣器响,对应0.5元商品的LED灯亮。选择1.5元的商品,投1元的金额,
14、调试现象以下:选择1.5元的商品,对应数码管显示1.5。按下1元的投币键,对应数码管显示1。找零显示1元,退回所投的钱,表示警示的LED灯亮(交易不可功)。4.2结果与剖析调试过程中出现的问题及原由:本程序定义了函数,注意函数构造的定义以及函数的调用(函数不可以作为独自的语句进行调用)。在编写完程序以后,编译运转成功后,注意数码管管脚的连结,参照实验指导书。后边全部正常后,可是仍旧出不了正确的结果,经过和同学的互相议论,才发现按钮按下是0,悬空是1。最后实时发现并得出了正确的实验结果。第五章总结-/经过几次实验,让我对VerilogHDL有了很深刻的认识,从刚开始接触EDA到此刻的VerilogHDL的学习,让我对这些硬件描绘语言有了进一步的理解。这些语言和c+,java软件编程语言比
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 掌握高分逻辑初中历史资产阶级革命对比暑假思维提升复习课
- 小学主题班会课件爱国主义精神扬
- 音乐制作人与作品创意度KPI考核表
- 能源行业技术工程师项目实施与技术创新KPI考核表
- 酒店前台服务操作指导书
- 电商订单处理系统服务流程优化实施方案
- 通讯行业5G网络优化师项目效率绩效衡量表
- 销售数据分析师产品销售数据报告分析绩效衡量表
- 财务分析师财务预算绩效衡量表
- 广告策划师创意执行及效果绩效衡量表
- 2026交管12123学法减分题库200题(含标准答案)
- 工程总承包(EPC)合同
- 2026年一级注册消防工程师考试模拟题(含3科)题库及答案(松原)
- 期货从业资格《期货基础知识》真题及解析(2026年)
- (2025年)陕西省西安市员额法官遴选面试考题及答案
- 2026年高等学校教师岗前培训暨教师资格笔题库高频重点提升及答案详解(名校卷)
- 自动扶梯安装施工工艺及质量控制要点
- 0-6岁孤独症工作制度
- T/CCIAS 012-2023川式火锅底料
- GB/T 1040.1-2025塑料拉伸性能的测定第1部分:总则
- 2019营口天成消防JB-TB-TC5120 火灾报警控制器(联动型)安装使用说明书
评论
0/150
提交评论