EDA实习报告(自动售卖机)

时间:2024.4.29

EDA技术及应用实习报告

自动售卖机

信息13-2班06号

GMH

北华大学电气信息工程学院

目 录

一、设计任务功能简介... 3

1、设计任务... 3

2、主要功能... 3

二、原理、方案、框图及任务分解... 3

1、原理... 3

2、方案... 4

3、框图... 4

4、任务分解... 5

三、关键任务的设计代码及注释... 5

四、调试中出现的问题及解决方案... 7

1、问题一... 7

2、问题二... 7

五、产业化市场分析及预测... 7

六、测试及运行结果... 8

七、参考文献... 10

一、设计任务功能简介

1、设计任务

       自动售货机设计。利用软件QuartusII软件,使用VHDL语言结合硬件要求对本题目设计功能进行编程,并在完成整个硬件程序设计后,在软件平台上进行编译和电路仿真,最后生成的目标文件下载到DE2-70实验板上实现上述所有功能并验证程序的可行性。

2、主要功能

      本设计主要实现的功能为:货物信息存储功能、商品选择功能、输入钱数处理功能、货架商品更换功能、语音提示功能、信息显示等功能。

二、原理、方案、框图及任务分解

1、原理

      自动售货机(Vending Machine,VEM)是能根据投入的钱币自动付货的机器。自动售货机是商业自动化的常用设备,它不受时间、地点的限制,能节省人力、方便交易。是一种全新的商业零售形式,又被称为24小时营业的微型超市。能分为三种:饮料自动售货机、食品自动售货机、综合自动售货机。自动售货机是台机电一体化的自动化装置,在接受到货币已输入的前提下,靠触摸控制按 扭输入信号使控制器启动相关位置的机械装置完成规定动作,将货物输出。

2、方案

      根据题目要求机器设有2个投币孔,机器可以接受1元和5元的纸币,分别有八种商品,价格分别为1元,4元,2元,3元,6元, 7元,5元,8元,机器采用拨码开关模拟机器的复位键、确认购买键和商品选择,并且通过开发板上的LED等分别显示购买的不同情况,数码管实时显示购买金额,包括投入的价钱,找零的价钱。此设计按照EDA课程设计 的流程进行源代码的编写、仿真。本设计主要利用QuartusⅡ等设计软件进行设计。

3、框图

      依题目要求设计流程框图如下所示:


2-1 程序流程图

4、任务分解

      本设计主要包括按键模块、显示模块、语音提示模块。设计程序任务如下图:

2-2 程序任务图

       任务一:存储商品信息。商品名称及商品价格等信息。

      任务二:响应用户选择商品的操作。用户用过按键选择商品,售卖机要实时显示商品名称及价格信息。

      任务三:货币处理。待用户选择商品结束,售卖机要接收用户投币,包括判断纸币的面额、总金额、是否投币结束等信息。

      任务四:人性化设计。售卖机要有良好的人性化交互界面,以及必要的文字、语音等提示信息。

三、关键任务的设计代码及注释


商品选择进程设计:

data:process(START,sel_add)

begin

if  START='1' then

f sel_add'event and sel_add='1' then item<=item+1;

if item ="000" then item_dis <="11000000";money_dis<="10011001";

elsif item ="001" then item_dis <="11111001";money_dis<="11111000";

elsif item ="010" then item_dis <="10100100";money_dis<="10100100";

elsif item ="011" then item_dis <="10110000";money_dis<="10110000";

elsif item ="100" then item_dis <="10011001";money_dis<="11111001";

elsif item ="101" then item_dis <="10010010";money_dis<="10011001";

elsif item ="110" then item_dis <="10000010";money_dis<="10110000";

elsif item ="111" then item_dis <="11111000";money_dis<="10000000";

end if;

end if;

else  item_dis<="11111111";money_dis<="11111111";price <="0000";

end if; end process data;

----------------------------------------------------------------------------------------------------------------------

付钱进程设计:

pay:process(finish ,one,five)

begin  if  finish='1' then

if one'event and one ='1' then pay_money_one<=pay_money_one+1;

if five'event and five ='1' then pay_money_five<=pay_money_five+5; end if;

pay_money <= pay_money_five+pay_money_one;

case pay_money is

when "0000" => pay_money_dis_g <= "11000000";pay_money_dis_s <= "11000000";

when "0001" => pay_money_dis_g <= "11111001";pay_money_dis_s <= "11000000";

when "0010" => pay_money_dis_g <= "10100100";pay_money_dis_s <= "11000000";

when "0011" => pay_money_dis_g <= "10110000";pay_money_dis_s <= "11000000";

when "0100" => pay_money_dis_g <= "10011001";pay_money_dis_s <= "11000000";

when "0101" => pay_money_dis_g <= "10010010";pay_money_dis_s <= "11000000";

when "0110" => pay_money_dis_g <= "10000010";pay_money_dis_s <= "11000000";

when "0111" => pay_money_dis_g <= "11111000";pay_money_dis_s <= "11000000";

when "1000" => pay_money_dis_g <= "10000000";pay_money_dis_s <= "11000000";

when "1001" => pay_money_dis_g <= "10010000";pay_money_dis_s <= "11000000";

when "1010" => pay_money_dis_g <= "11000000";pay_money_dis_s <= "11111001";

when "1011" => pay_money_dis_g <= "11111001";pay_money_dis_s <= "11111001";

when "1100" => pay_money_dis_g <= "10100100";pay_money_dis_s <= "11111001";

when "1101" => pay_money_dis_g <= "10110000";pay_money_dis_s <= "11111001";

when "1110" => pay_money_dis_g <= "10011001";pay_money_dis_s <= "11111001";

when "1111" => pay_money_dis_g <= "10010010";pay_money_dis_s <= "11111001";

when others => pay_money_dis_g <="11000000";    pay_money_dis_s <= "11000000";

end case;

if pay_money >= price then

back <= pay_money-price;

case back is

when "0000" => money_back_dis <= "11000000";

when "0001" => money_back_dis <= "11111001";

when "0010" => money_back_dis <= "10100100";

when "0011" => money_back_dis <= "10110000";

when "0100" => money_back_dis <= "10011001";

when "0101" => money_back_dis <= "10010010";

when "0110" => money_back_dis <= "10000010";

when "0111" => money_back_dis <= "11111000";

when "1000" => money_back_dis <= "10000000";

when "1001" => money_back_dis <= "10010000";

when others => money_back_dis <="11000000";           

------------------------------------------------------------------------------------

声音提示进程设计:    

int:process(START,finish)

      begin    

                 if    START ='1' and finish = '0' then sound<="01";

                 elsif START ='1' and finish = '1' then sound<="10";

                 elsif START ='0' and finish = '0' then sound<="11";

                 end if;      

      end process int;

------------------------------------------------------------------------------------

end architecture behav;


四、调试中出现的问题及解决方案

1、问题一

      问题描述:本设计语音芯片采用LJ600,     选择扬声器输出模式,可存储6段语音片段,对应6个引脚下降沿触发且低电平至少维持1ms,语音触发之后必须处于高电平状态,否则影响其他语音输出。综上描述,触发信号应为一个门信号。由于系统未引入时钟,且在同一进程中不可对输出信号重复赋值,产生问题。


   解决办法:代码如下图,在if语句中实现状态跳转。

2、问题二

      变量初始化状态必须明确定义高低电平。即状态输出时,必须考虑高低电平两种状态,不可以出现不确定状态。完全按照语法要求。

五、产业化市场分析及预测

      随着信息技术的发展及人们生活水平的不断提高,人们的消费观念及消费需求都在不断地改变和提高。自动售卖机正是为了满足人们的这种需求而在多年前被引入国内的。但早期的自动售卖机在国内并未获得预期的市场反应及消费者的广泛使用。现阶段大多数的自动售卖机只投放在国内一线城市,销售的货品也只停留在零食、饮料、饮用水、计生用品等有限的几样品种。

      在零售业市场竞争日趋白热化的今天,压缩经营成本是增强企业市场竞争力的一个主要手段。然而无论是连锁超市还是便利店,日益高涨的店面租金及人力成本,已经成为他们无法忽视也无法回避的沉重负担。而自动售卖机却完全没有上述所说的麻烦,它24小时营业、售货便利、方便找零,占地面积小(一般仅需1平方米)、移动性强,无须常驻人员盯守、省人工成本,时尚新颖、个性独特、集高科技于一体,有利于树立品牌形象,养护费用低,日常免维护……这些优势势必引领潮流,使得自动售卖机日发成为市场新宠,在零售业市场占领一席之地。

六、测试及运行结果

      售卖机整体结构如下图所示:

6-1 整体结构

商品0的价格为4元。

商品1价格为7元。

商品7价格为8元,输入11元,找零3元。

商品选择按钮及确定按键。

七、参考文献

[1]潘松,黄继业. EDA技术与VHDL. 第4版. 北京:清华大学出版社,2013.4

[2]潘松,王国栋. VHDL实用教程(修订版). 成都:成都电子科技大学出版社,2001

[3]曾繁泰,陈美金. VHDL程序设计. 北京:清华大学出版社,2001.1

更多相关推荐:
机械设计制造及其自动化生产实习报告

大学实习报告姓名:_____***______学号:____********____学院(系):__机械工程学院__专业:机械设计制造及其自动化班级:___机械0701班_____指导教师:___**_,**_…

机械制造及其自动化毕业实习报告

目录一、概述...................................................................................................…

机械设计制造及其自动化实习报告

陕西服装工程学院实习报告实习课程名称:机械设计制造及其自动化学院:信息工程学院专业班级:机械设计制造及其自动化指导教师:学生姓名:学号:时间:20xx年1月15日20xx年1月25日地点:2015年1月25日一…

机械制造与自动化毕业实习总结

天津工程职业技术学院毕业实习总结院(系)别:机电系专业:机械制造与自动化班级:机械10-1学号:**姓名:**指导教师:**第一章绪论实践,是检验理论的唯一真理!我们在学校,由小学开始,就不断学习书本上的理论知…

机械制造与自动化专业 实习报告书

毕业生就业顶岗实习报告书姓名:班级:专业:机械制造与自动化校外指导教师:校内指导教师:实习单位:实习岗位:设备管理年月一、实习简介

机械制造与自动化实习总结

机械制造与自动化实习总结,内容附图。

机械制造与自动化专业实习报告

机械制造与自动化专业实习报告一、概述这次为期六个月的毕业实习是我顺利完成大学所有课程以及参与社会实践活动很重要的一部分。在就业指导处老师帮助下我在烟台富士康科技集团参加毕业实习。可以说我在这里的实习中学到了很多…

机械设计制造及其自动化专业实习报告

本科毕业设计论文通过答辩毕业实习报告专业机械设计制造及其自动化学生姓名班级BD机制031学号0320xx0107指导教师陈树祥日期20xx年4月1日实习报告一概述为期几个星期的毕业实习已经落下帷幕这次毕业实习的...

机械制造与自动化专业实习报告

河北联合大学迁安学院实习报告系别机电与信息系专业机械制造与自动化学号姓名实习单位名称河北钢铁集团燕山钢铁有限公司校内指导教师完成日期20xx年4月10日一实习目的1河北钢铁集团燕山钢铁有限公司炼铁二厂运转工算水...

机械设计制造及其自动化专业认知实习报告

江苏科技大学实习时间认识实习报告学院机械工程学院专业班级10机制3班姓名学号指导老师20xx年4月21日20xx年4月28日1一实习目的二实习单位三实习内容及过程四实习总结2认识实习报告一实习目的认识实习是教学...

机械设计制造及其自动化生产实习报告

前言经过近三年的学习我们迎来了大学专业课程学习中的一个重要实践环节专业实习老师给我们班上的全体同学做了实习动员老师给我们布置了实习中要用心学习和了解的各项内容出发前的准备工作还有一些注意事项我们要认真刻苦多观察...

11级机械设计制造及其自动化实习报告大全

机械专业工程实习报告生产实习是我们机械专业学习的一个重要环节是将课堂上学到的理论知识与实际相结合的一个很好的机会对强化我们所学到的知识和检测所学知识的掌握程度有很好的帮助为期7天的生产实习我们先后去了柳州工程机...

机械自动化实习报告(46篇)