简易自动售货机.docx

上传人:b****4 文档编号:3930869 上传时间:2022-11-26 格式:DOCX 页数:13 大小:707.34KB
下载 相关 举报
简易自动售货机.docx_第1页
第1页 / 共13页
简易自动售货机.docx_第2页
第2页 / 共13页
简易自动售货机.docx_第3页
第3页 / 共13页
简易自动售货机.docx_第4页
第4页 / 共13页
简易自动售货机.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

简易自动售货机.docx

《简易自动售货机.docx》由会员分享,可在线阅读,更多相关《简易自动售货机.docx(13页珍藏版)》请在冰豆网上搜索。

简易自动售货机.docx

简易自动售货机

 

数字系统设计报告---

简易自动售货机

 

简易自动售货机

摘要

自动售货机是台机电一体化的自动化装置,在接收到货币已输入的前提下,靠触摸控制按钮输入信号使控制器启动相关位置的机械装置完成规定动作,将货物输出。

本文设计的自动售货机,用四个发光二极管分别模拟售出价值为5角、1元、1.5元和2元的小商品,购买者可以通过开关选择任意一种标价中的小商品,灯亮时表示该小商品售出。

用开关分别模拟5角、1元硬币投入,可以用几只发光二极管分别代表找回剩余的硬币。

当所投硬币值不足面值时,可通过一个复位键退回所投硬币,回到初始状态。

该设计实现了一个简单的自动售货机的功能,程序由硬件描述语言VHDL编写。

关键字:

自动售货机;商品价格;投币币额;LED;VHDL。

Abstract

Vendingmachineisanautomationstationofthemechanicalandelectricalintegration.Inthecontextofreceivingthemoneywhichhasbeenentered,touchtheinputsignaltohavethecontrollerstartthelocationofmechanicalequipmentandcompletetheaction.Sothegoodswillbeoutput.Thevendingmachinedesignedbyususesfourlight-emittingdiodestosimulatesomesmallcommoditieswhicharevalued0.5yuan,1yuan,1.5yuanand2yuan.Buyerscanselectthecommoditiesthroughtheswitch.Whenthelightsonindicatesthatthecommoditiesweresold.Usingtheswitchtosimulatethatbuyersinput0.5yuanor1yuancoinor5yuan.WeuseseveralLEDtorepresenttheremainingcoins.Whenthevalueofcoinislessthanthevalueofcommodities,itcanbereturnedthrougharesetbuttontobacktotheinitialstate.Thedesignimplementsasimplefunctionofvendingmachines.TheprogramispreparedbythehardwaredescriptionlanguageVHDL.

Keywords:

vendingmachine;commodityprice;coin;LED;VHDL

摘要················································2

一、课题概述·········································5

1.1自动售货机的发展历史···························5

1.2自动售货机的研究意义···························5

二、设计简介及设计方案论述··························5

2.1方案的主要组成部分·····························5

2.2设计流程·······································6

三、详细设计········································7

3.1任务要求·······································7

3.2总体思路·······································7

3.3主要过程·······································7

3.31控制模块·········································7

3.32分频模块·········································8

3.33译码显示模块·····································8

3.34组合电路·········································9

四、设计结果及分析··································9

4.1控制模块仿真···································9

4.2分频模块仿真···································10

4.3译码显示模块仿真·······························10

4.4组合电路仿真···································11

五、总结··········································11

六、致谢··········································12

七、参考文献······································12

八、附录···········································13

8.1组合电路原理图································14

8.2系统实现程序代码······························15

 

一、课题概述

1.1、自动售货机的发展历史

自动售货机是20世纪70年代在日本、欧美发展起来的高新技术现代应用产品,被称为24小时营业的微型超市,售货领域已扩展至小食品、小用品、香烟、电话卡、车票、邮票等。

钱币装置是自动售货机的核心,其主要功能是确认投入钱币的真伪,分选钱币的种类,计算金额。

如果投入的金额达到购买物品的数值即发出售货信号,并找出余钱。

自动售货机自动输出顾客所要的商品。

目前在40多个国家已经广泛使用,日本平均每23人一台,美国平均每40人一台,欧洲平均每60人一台。

在邻国日本,70%份额的罐装饮料市场是通过自动售货机售出的;美国可口可乐公司拥有五十余万台饮料自动售货机分布在世界各地。

通过自动售货机销售将成为商品零售业不可分割的重要组成部分。

1.2、自动售货机的研究意义

面对当前快速商品社会,人们的时间观念越来越重,如何才能更快的购买到顾客自己所需的商品,这都是顾客和商家共同面临的问题。

自动售货机不受时间、地点的限制,能节省人力、方便交易,能够实现商品的自动化。

因此,自动售货机在商业,食品行业越来越普及,更方便消费者购买自己所需的商品。

随着科技的发展及人们生活水平的提高,自动售货机市场的发展越来越呈现出多元化及个性化的需求。

通过自动售货机进行自助购物正逐渐成为市民的一种新的消费时尚,快捷方便的购物方式满足了人们在当今科技高速发展的现代社会追求高品质生活的需要。

自动售货机在城市商业区、写字楼大厅、风景区、车站、码头、繁华街道等公共场所的布设能够美化亮化城市环境,方便群众生活,已经成为城市各角落的一道亮丽风景线。

自动售货机已在国内普及,并成为城市现代文明程度的一种象征性标志。

二、设计简介及设计方案论述

2.1、方案的主要组成部分

(1)产生退币闪烁信号的电路模块

(2)投入壹圆硬币的处理电路模块

(3)投入五角硬币的处理电路模块

(4)商品选择处理电路模块

(5)确认与取消处理电路模块

(6)退币处理电路模块

(7)出货并计算存货电路模块

实体定义了系统的输入输出端口信号,顾客由4种操作行为,即投币、选择、确定与取消。

结构体定义功能模块之间整体共享的传递信号,以整合所有块的功能。

这些信号将成为各个功能块外部输入或输出信号。

2.1、设计流程

三、详细设计

3.1、任务要求

(1)用四个发光二极管分别模拟售出价值为5角、1元、1.5元和2元的小商品,购买者可以通过开关选择任意一种标价中的小商品。

(2)用开关分别模拟5角、1元硬币投入,可以用几只颜色不同的发光二极管分别代表找回剩余的硬币。

(3)灯亮时表示该小商品售出。

(4)每次只能售出一种小商品,当所投硬币总额大于或等于购买者所选商品物价时,输出货物并找回剩余的硬币,回到初始状态;

(5)当所投硬币值不足面值时,可通过一个复位键退还所投硬币并且回到初始状态。

3.2、总体思路

复杂的数字系统分解成基本门电路和寄存器电路单元,我们在采用VHDL语言进行数字系统设计过程中,将目标分解成三个模块:

控制模块、分频模块、译码显示模块。

对各个模块同时进行了设计,分别编译,仿真验证,定义具体的模块端口,最后将各个模块组合成一个系统,各模块通过一些信号进行相互驱动,实现电路功能。

3.3、主要过程

3.31控制模块(集成电路)

3.32分频模块(集成电路)

3.33译码显示模块(集成电路)

3.34组合电路(集成电路)

四、设计结果及分析

4.1控制模块仿真:

4.2分频模块仿真:

4.3译码显示模块仿真

4.4整体电路仿真

五、总结

这个设计实现了一个简单的自动售货机的功能,程序由硬件描述语言VHDL编写。

程序中采用分块编写的方式,将一个本来复杂的体系用简单的逻辑表述出来。

主时钟配合各个模块产生不同的信号,以这些信号为桥梁分别控制各个模块,这样做设计显得很流畅,每个成员都不是独立存在的。

我们这次设计的这个自动售货机用四个发光二极管分别模拟售出价值为5角、1元、1.5元和2元的小商品,购买者可以通过开关选择任意一种标价中的小商品。

数字系统设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.回顾起此次课程设计,至今我们仍感慨颇多,的确,从选题到定稿,从理论到实践,在短短的三个星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。

通过这次数字系统设计,让我们了解了电路设计的基本步骤,了解了关于自动售货机的原理与设计理念,让我们更进一步的了解到QuartusII7.1软件的使用以及它的编译,硬件调试,软件仿真。

同时让我们认识到在此次课程设计中所存在的问题;而通过不断的努力去解决这些问题.在解决设计问题的同时自己也在其中有所收获。

使我们懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,从而提高自己的实际动手能力和独立思考的能力。

在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说自己动手画图仿真和用VHDL程序自动生成模块进行仿真时的各种操作及建立实体的命名。

还有根目录文件路径中不能有中文字符,数码管的编译,时序图的分析……最后老师的辛勤指导及自身的努力下,终于游逆而解。

总体来说,这次实习我们受益匪浅.在摸索该如何设计程序使之实现所需功能的过程中,特别有趣,培养了我们的设计思维,增加了实际操作能力.在让我们体会到了设计的艰辛的同时,更让我们体会到成功的喜悦和快乐.这次数字系统设计,虽然短暂但是让我们得到多方面的提高:

1、提高了我们的逻辑思维能力,使我们在逻辑电路的分析与设计上有了很大的进步。

加深了我们对组合逻辑电路与时序逻辑电路的认识,进一步增进了对一些常见逻辑器件的了解。

另外,我们还更加充分的认识到,数字电路这门课程在科学发展中的至关重要性2,查阅参考书的独立思考的能力以及培养非常重要,我们在设计电路时,遇到很多不理解的东西,有的我们通过查阅参考书弄明白,有的通过网络查到,但由于时间和资料有限我们更多的还是独立思考。

3,相互讨论共同研究也是很重要的,经常出现一些问题,比如电路设计中的分频器的设计,开始并不理解分频器的原理,但是和其他的专业同学讨论后,理解了分频器的基本原理后,很快的设计了电路原理图。

六、致谢

感谢老师的指导,感谢学长的指点,感谢所有帮助过我们的老师和同学!

最后,感谢我们小组四人的团结合作及认真努力!

七、参考文献

《VHDL数字控制系统设计范例》林明全编,电子工业出版社,2003年1月

《可编程逻辑器件与EDA技术》李景华,杜玉远编,东北大学出版社,2000年12月

《MAX+plusII和QuartusII应用与开发技巧》王辉编,机械工业出版社,2007年3月

《QuartusII简明教程》黑杰克编

八、附录

8.1组合电路原理图

8.2系统实现程序代码

LIBRARYIEEE;

USEIEEE.STD_LOGIC_ARITH.ALL;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYzidongshouhuojiIS

PORT(

CLK:

INSTD_LOGIC;--系统时钟

SET:

INSTD_LOGIC;--设置信号

GET:

INSTD_LOGIC;--购买信号

SEL:

INSTD_LOGIC;--商品选择信号

FINISH:

INSTD_LOGIC;--交易结束信号

COIN0:

INSTD_LOGIC;--五角硬币投入信号

COIN1:

INSTD_LOGIC;--一元硬币投入信号

PRICE:

INSTD_LOGIC_VECTOR(3DOWNTO0);--单价信号

QUANTITY:

INSTD_LOGIC_VECTOR(3DOWNTO0);--数量信号

ITEM0,ACT:

OUTSTD_LOGIC_VECTOR(3DOWNTO0);--显示开关信号

Y0,Y1:

OUTSTD_LOGIC_VECTOR(6DOWNTO0);--译码输出信号

ACT10:

OUTSTD_LOGIC;--一元硬币找零信号

ACT5:

OUTSTD_LOGIC);--五角硬币找零信号

ENDzidongshouhuoji;

ARCHITECTUREBEHAVOFzidongshouhuojiIS--控制模块

TYPERAM_TYPEISARRAY(3DOWNTO0)OFSTD_LOGIC_VECTOR(7DOWNTO0);

SIGNALRAM:

RAM_TYPE;

SIGNALITEM:

STD_LOGIC_VECTOR(1DOWNTO0);

SIGNALCOIN:

STD_LOGIC_VECTOR(3DOWNTO0);

SIGNALPRI,QUA:

STD_LOGIC_VECTOR(3DOWNTO0);

SIGNALCLK1:

STD_LOGIC;

BEGIN

COM:

PROCESS(SET,CLK1)

VARIABLEQUAN:

STD_LOGIC_VECTOR(3DOWNTO0);

BEGIN

IFSET='1'THENRAM(CONV_INTEGER(ITEM))<=PRICE&QUANTITY;ACT<="0000";

ELSIFCLK1'EVENTANDCLK1='1'THENACT5<='0';ACT10<='0';

IFCOIN0='1'THEN

IFCOIN<"1001"THEN

COIN<=COIN+1;

ELSE

COIN<="0000";

ENDIF;

ELSIFCOIN1='1'THEN

IFCOIN<"1001"THEN

COIN<=COIN+2;

ELSECOIN<="0000";

ENDIF;

ELSIFSEL='1'THEN

ITEM<=ITEM+1;

ELSIFGET='1'THEN

IFQUA>"0000"ANDCOIN>=PRITHEN

COIN<=COIN-PRI;QUAN:

=QUAN-1;

RAM(CONV_INTEGER(ITEM))<=PRI&QUAN;

IFITEM="00"THENACT<="1000";

ELSIFITEM="01"THENACT<="0100";

ELSIFITEM="10"THENACT<="0010";

ELSIFITEM="11"THENACT<="0001";

ENDIF;

ENDIF;

ELSIFFINISH='1'THEN

IFCOIN>"0001"THENACT10<='1';COIN<=COIN-2;

ELSIFCOIN>"0000"THENACT5<='1';COIN<=COIN-1;

ELSEACT5<='0';ACT10<='0';

ENDIF;

ELSIFGET='0'THENACT<="0000";

FORIIN4TO7LOOP

PRI(I-4)<=RAM(CONV_INTEGER(ITEM))(I);

ENDLOOP;

FORIIN0TO3LOOP

QUAN(I):

=RAM(CONV_INTEGER(ITEM))(I);

ENDLOOP;

ENDIF;

ENDIF;

QUA<=QUAN;

ENDPROCESSCOM;

M32:

PROCESS(CLK)--分频模块

VARIABLEQ:

STD_LOGIC_VECTOR(24DOWNTO0);

BEGIN

IF(CLK'EVENTANDCLK='1')THEN

Q:

=Q+1;

ENDIF;

IF(Q="111111111111111111111111")THEN

CLK1<='1';

ELSE

CLK1<='0';

ENDIF;

ENDPROCESSM32;

CODE0:

PROCESS(ITEM)

BEGIN

CASEITEMIS

WHEN"00"=>ITEM0<="0111";

WHEN"01"=>ITEM0<="1011";

WHEN"10"=>ITEM0<="1101";

WHENOTHERS=>ITEM0<="1110";

ENDCASE;

ENDPROCESS;

CODE1:

PROCESS(COIN)--译码显示模块

BEGIN

CASECOINIS

WHEN"0000"=>Y0<="0000001";

WHEN"0001"=>Y0<="1001111";

WHEN"0010"=>Y0<="0010010";

WHEN"0011"=>Y0<="0000110";

WHEN"0100"=>Y0<="1001100";

WHEN"0101"=>Y0<="0100100";

WHEN"0110"=>Y0<="0100000";

WHEN"0111"=>Y0<="0001111";

WHEN"1000"=>Y0<="0000000";

WHEN"1001"=>Y0<="0000100";

WHENOTHERS=>Y0<="1111111";

ENDCASE;

ENDPROCESS;

CODE2:

PROCESS(QUA)

BEGIN

CASEQUAIS

WHEN"0000"=>Y1<="0000001";

WHEN"0001"=>Y1<="1001111";

WHEN"0010"=>Y1<="0010010";

WHEN"0011"=>Y1<="0000110";

WHEN"0100"=>Y1<="1001100";

WHEN"0101"=>Y1<="0100100";

WHEN"0110"=>Y1<="0100000";

WHEN"0111"=>Y1<="0001111";

WHEN"1000"=>Y1<="0000000";

WHEN"1001"=>Y1<="0000100";

WHENOTHERS=>Y1<="1111111";

ENDCASE;

ENDPROCESS;

ENDBEHAV;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 互联网

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1