




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
大连理工大学本科实验报告自动售货机课程名称: 数字电路课程设计 学院(系):电子信息与电气工程学部专 业: 电气工程及其自动化 班 级: 电气1404 学生姓名: 学 号: 完成日期: 2016.07.15 成 绩: 2016年 07月15日自动售货机1 设计要求(1)设计一个自动售货机,能够提供4种不同价格的货物。(2)可以进行投币,投币的钱数为3种,钱数在售货机中能够进行累加并用数码管显示。(3)进行交易的时候,如投入钱数高于所购买商品价格,则交易成功,出货物,并可以选择是找零或是继续购买;若钱数不够,则提示钱数不够。要求通过数码管显示余额。2 设计分析及系统方案设计2.1设计分析(1)四个开关用于选择价值分别为1.0、2.0、5.0、10.0元的商品,购买者可以选择任意一种或几种商品,总价用数码管显示。(2)三个按键分别模拟0.5、1.0、5.0元钱币投入,数码管用于显示投入总额。(3)当总额大于选中商品总价时,被选中的商品对应的指示灯亮,可进行购买;当总额小于选中商品总价格时,商品指示灯灭,余额指示灯亮,提示余额不足。(4)按确定键购买,成功后显示余额,此时可继续购买或通过退款开关退款,余额显示清零。2.2系统框图图1 自动售货机系统框图2.3显示界面图2 自动售货机显示界面3系统以及模块硬件电路设计 (1)Sw开关及key电路: 图3 Sw开关及key电路(2)LED电路:图4 LED电路(3)数码显示电路:图5 数码显示电路(4)各元件管脚编号:图6 各元件引脚编号4 系统的Verilog设计4.1流程图图7 自动售货机系统流程图4.2 源代码module salemachine (a,b,c,hex7,hex6,hex5,hex4,hex3,hex2,hex1,hex0,w,x,y,z,LEDR1,LEDG,buy,reset);input a,b,c,w,x,y,z,buy,reset; /a,b,c投币,w,x,y,z选择商品output6:0 hex7,hex6,hex5,hex3,hex2,hex1; /数码管output3:0LEDG; /商品指示灯output hex4,hex0;output LEDR1; /余额指示灯,提示余额不足reg 9:0total,h,i,j,k,price;reg6:0 hex7,hex6,hex5,hex3,hex2,hex1;reg3:0d,e,f,l,m,n,products,LEDG;reg LEDR1;always(posedge a or posedge reset) /投币模块:a:0.5,b:1.0,c:5.0beginif(reset=1)h=0;elseh=h+5;endalways(posedge b or posedge reset)beginif(reset=1)i=0;elsei=i+10;endalways(posedge c or posedge reset)beginif(reset=1)j=0;elsej=j+50;endalways(posedge a or posedge b or posedge c or posedge buy )/计算投币总额begintotal=h+i+j-k;f=total-(total/10)*10;e=(total-f)/10-(total-f)/100*10;d=total/100;endassign hex4=1,hex0=1; /优化显示always (d) /显示余额begincase(d)4d0:hex7=7b1000000;4d1:hex7=7b1111001;4d2:hex7=7b0100100;4d3:hex7=7b0110000;4d4:hex7=7b0011001;4d5:hex7=7b0010010;4d6:hex7=7b0000010;4d7:hex7=7b1111000;4d8:hex7=7b0000000;4d9:hex7=7b0010000;default:hex7=7b1111111;endcaseendalways (e)begincase(e)4d0:hex6=7b1000000;4d1:hex6=7b1111001;4d2:hex6=7b0100100;4d3:hex6=7b0110000;4d4:hex6=7b0011001;4d5:hex6=7b0010010;4d6:hex6=7b0000010;4d7:hex6=7b1111000;4d8:hex6=7b0000000;4d9:hex6=7b0010000;default:hex6=7b1111111;endcaseendalways (f)begincase(f)4d0:hex5=7b1000000;4d5:hex5=7b0010010;default:hex5=7b1111111;endcaseendalways(products) /计算商品总额beginproducts=w,x,y,z; case(products)4b0000:price=0;4b0001:price=10;4b0010:price=20;4b0011:price=30;4b0100:price=50;4b0101:price=60;4b0110:price=70;4b0111:price=80;4b1000:price=100;4b1001:price=110;4b1010:price=120;4b1011:price=130;4b1100:price=150;4b1101:price=160;4b1110:price=170;4b1111:price=180;default:price=0;endcasen=price-(price/10)*10; m=(price-n)/10-(price-n)/100*10; l=price/100;if(totalprice)beginLEDR1=1;price=0;endelseLEDR1=0;case(price) /显示选择的商品00:LEDG=4b0000;10:LEDG=4b0001;20:LEDG=4b0010;30:LEDG=4b0011;50:LEDG=4b0100;60:LEDG=4b0101;70:LEDG=4b0110;80:LEDG=4b0111;100:LEDG=4b1000;110:LEDG=4b1001;120:LEDG=4b1010;130:LEDG=4b1011;150:LEDG=4b1100;160:LEDG=4b1101;170:LEDG=4b1110;180:LEDG=4b1111;default:LEDG=4b1111;endcaseendalways (l) /显示商品总额begincase(l)4d0:hex3=7b1000000;4d1:hex3=7b1111001;4d2:hex3=7b0100100;4d3:hex3=7b0110000;4d4:hex3=7b0011001;4d5:hex3=7b0010010;4d6:hex3=7b0000010;4d7:hex3=7b1111000;4d8:hex3=7b0000000;4d9:hex3=7b0010000;default:hex3=7b1111111;endcaseendalways (m)begincase(m)4d0:hex2=7b1000000;4d1:hex2=7b1111001;4d2:hex2=7b0100100;4d3:hex2=7b0110000;4d4:hex2=7b0011001;4d5:hex2=7b0010010;4d6:hex2=7b0000010;4d7:hex2=7b1111000;4d8:hex2=7b0000000;4d9:hex2=7b0010000;default:hex2=7b1111111;endcaseendalways (n)begincase(n)4d0:hex1=7b1000000;4d5:hex1=7b0010010;default:hex1=7b1111111;endcaseendalways(posedge buy or posedge reset) /交易or退款beginif(reset=1)k=0;elsek=k+price;endendmodule5 结论以及结果说明(1)软件环境:Quartus II(2)计算机平台:DELL电脑(3)硬件环境:DE2-115开发板(4)仿真结果:选择商品z(1.0),商品y(2.0),商品x(5.0),商品总额显示0800(hex3、hex2、hex1、hex0)此时余额指示灯(LEDR1)亮,表示余额不足,不能购买,按确认键(buy)无反应,投入四个0.5(a),两个1.0(b),一个5.0(c),投币总额显示0900(hex7、hex6、hex5、hex4),此时余额指示灯灭,对应商品指示灯亮(LEDG),表示可以购买,按确认键购买,余额显示0100,余额指示灯亮,商品指示灯灭,推动退款开关(reset),找零,余额显示清零。图8 仿真时序图6 心得体会出于对下学期的学业规划,我和室友选择了在小学期提前修读数电课设,凭借之前C语言的编程经验,我以为Verilog HDL不是什么问题。在开始之初,我能很好的编出一些小程序,例如计数器,译码器等,随着编程的深入,我发现Verilog HDL并不简单,作为硬件编程语言,他和C语言之间还是有很大不同的,一切程序结构的实现都是基于硬件电路的,你要遵守硬件连接的规则,而不能像C语言一样灵活的嵌套、跳转,想到哪里编到哪里。同时Verilog HDL的并行结构也让熟悉了C语言串行的我遇到不少问题,一个变量不能在多个模块中赋值,阻塞式赋值和非阻塞式赋值会有不同结果等等,但最终,通过与室友交流讨论,查阅各种资料,以及求助于老师,我们解决了以上问题。看到程序编译通过、仿真得到波形、最后下载到板子上实现
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公司股份转让法律合同范文
- 创意孵化合同续签
- 熟食供应合同范本与注意事项
- 农村智慧农业项目合作协议
- 交通安全统筹服务协议
- 汽车销售流程及客户关系维护
- 学校职业生涯规划教学方案
- 人力资源培训需求调研与分析报告
- 金融行业风险管理与内部控制实务
- 建筑行业施工质量与安全管理
- 租车合同免责协议模板
- 院感相关法律法规知识培训
- 《化妆品生产工艺验证指南》
- T-CPHA 36-2024 煤炭矿石码头露天堆场堆料机洒水系统技术要求
- 绿色简约实拍杨善洲介绍
- 手术室护理术中低体温预防
- 高血压科普健康宣教课件
- 2025年上半年内蒙古森工集团公开招聘工勤技能人员605名易考易错模拟试题(共500题)试卷后附参考答案
- 电力系统自动化技术培训课件
- 真空断路器拆除施工方案
- 《向长庚医院学管理》读后感
评论
0/150
提交评论