自动售饮料机的设计.doc_第1页
自动售饮料机的设计.doc_第2页
自动售饮料机的设计.doc_第3页
自动售饮料机的设计.doc_第4页
自动售饮料机的设计.doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

此文档收集于网络,如有侵权,请联系网站删除 EDA课程设计报告 自动售饮料机的设计院 系: 信息工程学院 专 业: 学 号: 姓 名: 指导教师: 目 录一 、课程设计目的3二、课程设计题目描述及要求3三、课程设计报告内容3四、设计总结和心得体会8 自动售饮料机的设计一、课程设计目的:通过这次课程设计对自己以前学过的知识加以巩固,再次熟悉EDA设计软件QuartusII的使用方法,掌握EDA的设计流程,更加熟练进行综合、仿真、调试、分配管脚、下载等操作,并再次基础上初步学会如何设计一个工程,与实际生活结合起来,既锻炼自己的动手能力,又锻炼了自己的思维能力,为以后进行工程实际问题的研究打下设计基础。二、课程设计题目描述及要求: 自动售饮料机的题目描术及功能要求:(1)、该系统能完成货物信息存储,进程控制,硬币处理,余额计算,显示等功能。(2)、该系统可以管理四种货物,每种的数量和单价在初始化时输入,存储器中存储。用户可以用硬币进行购物,按键进行选择。(3)、系统根据用户输入的货币,判断钱币是否够,钱币足够则根据顾客的要求自动售货,钱币不够则给出提示并退出。(4)、系统自动的计算出应找钱币余额、库存数量并显示。 三、课程设计报告内容: 3.1、设计原理及方案论证: 本次课程设计中自动售饮料机存储四种饮料,价钱分别为2元、2.5元、3元、3.5元,每种饮料存储9瓶。该售货机有复位和选择功能,通过reset键复位,number键确定购买数量,sel键选择饮料,coin1,coin05键进行投币一元和五角,按get键进行购买,并且还能用数码管显示所购买饮料的单价及其剩余数量,显示投币总数及购买数量,并能找钱。通过程序编写,综合仿真测试,对设计方案进行了论证。 3.2、系统设计描述: (1)程序代码: module sell(clk,reset,sel,coin05,coin1,get,item,act05,act1,TOT1,TOT2,PRE1,PRE2,NUM,number,SYS);parameter p1=4b0100,p2=4b0101,p3=4b0110,p4=4b0111;/ 设置四种饮料价格input clk,reset,sel,coin05,coin1,get;input 3:0number;output item,act05;output 3:0act1,NUM,TOT1,PRE1,PRE2,TOT2,SYS;reg item,act05;reg c;reg 2:0Q;reg 3:0TOT2,PRE2,NU1,NU2,NU3,NU4,SYS; reg 3:0a,p,act1,TOT1,NUM,PRE1;reg 4:0totle,m,TOT;integer i;always (posedge clk) begin if(reset)/ 高电平进行复位 begin item=0;act05=0;act1=0;TOT=0;PRE1=0;PRE2=0;NUM=0;totle=0;m=0;NU1=4b1001;NU2=4b1001;NU3=4b1001;NU4=4b1001; end else begin if(sel) /四种饮料可以进行循环选择 begin a=number; if(Q4) Q=0; else if(Q1) Q=0; Q=Q+1; if(Q=1) begin p=p1;SYS=NU1; end if(Q=2) begin p=p2;SYS=NU2; end if(Q=3) begin p=p3;SYS=NU3; end if(Q=4) begin p=p4;SYS=NU4; end end totle=0; a=number; for(i=1;i=1&sel!=1) begin totle=totle+p; a=a-1; end TOT2=TOT0;/对投币总数及饮料单价译码为五角的个数 TOT13:0=TOT4:1;/将投币总数的高四位译码为一元的个数 PRE12:0=p3:1;/对价格进行译码 PRE2=p0; if(TOT2=0) TOT2=4b0000; if(TOT2=1) TOT2=4b0101; if(PRE2=0) PRE2=4b0000; if(PRE2=1) PRE2=4b0101; NUM=number; m=0; item=0; act05=0; act1=0; if(coin05) TOT=TOT+1; if(coin1) TOT=TOT+2; if(get) begin if(SYStotle) /投钱大于饮料总价则输出饮料并找钱 begin item=1; m=TOT-totle; 将要找的钱送给一个变量m TOT=0; end else if(TOT=totle) /投钱等于饮料总价输出饮料不找钱 begin item=1; TOT=0; end else begin/否则不输出饮料, 找钱 item=0; m=TOT; TOT=0; end end c=m0; act13:0=m4:1; if(c!=0) act05=1; else act05=0;/显示每种饮料剩余数量 if(p=p1&item=1) begin NU1=NU1-number;SYS=NU1; end if(p=p2&item=1) begin NU2=NU2-number;SYS=NU2; end if(p=p3&item=1) begin NU3=NU3-number;SYS=NU3; end if(p=p4&item=1) begin NU4=NU4-number;SYS=NU4; end end end endendmodule(2)、原理框图: (3)、仿真波形:(3)、电路连接图:(4):管脚分配:(5):注释:按reset键复位,按sel键一次选择第一种饮料,按number键2次表示够买2瓶,然后按coin键投币五元,按get键进行购买,购买成功后item灯亮表示输出饮料,数码管NUM显示购买数量,SYS显示该饮料剩余数量,act1显示找钱一元,TOT1、TOT2显示投币总数,PRE1,PRE2显示所购买的饮料单价。3.3、系统设计工作进程:这次课程设计我和刘远一组,第一周主要进行程序编写修改,综合及波形仿真,经过多次调试修改,最终波形仿真成功。第二周主要分配管脚、编译下载及功能仿真,解决在其中遇到的问题,最后在老师的指导下又增加了一些其他功能,再次改写程序,综合仿真下载完成整个课程设计。这次设计整个过程两人都参与,一起分析并解决问题,并各自独操作了整个过程,每人都学到了很多知识。3.4、设计和调试过程中出现的问题及解决方法:课程设计中遇到的问题主要有:(1)、程序编写错误:由于程序语法错误导致综合不成功,为此多次修改程序直至综合成功;(2)、波形仿真错误:主要由于程序编写逻辑错误,很多功能都不能仿真出来,例如按get键后,一直找钱、输出饮料,为此我们添加act05=0、act1=0、item=0等语句使该问题得到解决;利用for语句循环在一个clk内计算购买饮料的总价。(3)、功能仿真中也遇到了一些问题,最终通过多次尝试使问题得到了解决。四、设计总结和

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论