1、简易自动售货机数字系统设计报告- 简易自动售货机 简易自动售货机摘要 自动售货机是台机电一体化的自动化装置,在接收到货币已输入的前提下,靠触摸控制按钮输入信号使控制器启动相关位置的机械装置完成规定动作,将货物输出。本文设计的自动售货机,用四个发光二极管分别模拟售出价值为5角、1元、15元和2元的小商品,购买者可以通过开关选择任意一种标价中的小商品,灯亮时表示该小商品售出。用开关分别模拟5角、1元硬币投入,可以用几只发光二极管分别代表找回剩余的硬币。当所投硬币值不足面值时,可通过一个复位键退回所投硬币,回到初始状态。该设计实现了一个简单的自动售货机的功能,程序由硬件描述语言VHDL编写。关键字:
2、自动售货机;商品价格;投币币额;LED;VHDL。AbstractVending machine is an automation station of the mechanical and electrical integration. In the context of receiving the money which has been entered, touch the input signal to have the controller start the location of mechanical equipment and complete the action. So t
3、he goods will be output. The vending machine designed by us uses four light-emitting diodes to simulate some small commodities which are valued 0.5 yuan, 1 yuan, 1.5 yuan and 2 yuan. Buyers can select the commodities through the switch. When the lights on indicates that the commodities were sold. Us
4、ing the switch to simulate that buyers input 0.5 yuan or 1 yuan coin or 5 yuan. We use several LED to represent the remaining coins. When the value of coin is less than the value of commodities, it can be returned through a reset button to back to the initial state. The design implements a simple fu
5、nction of vending machines. The program is prepared by the hardware description language VHDL.Key words: vending machine; commodity price; coin; LED; VHDL摘要 2一、课题概述 5 1.1 自动售货机的发展历史 51.2 自动售货机的研究意义 5二、设计简介及设计方案论述 5 2.1 方案的主要组成部分 52.2 设计流程 6 三、详细设计 73.1 任务要求 73.2 总体思路 73.3 主要过程 7 3.31 控制模块 7 3.32 分频模
6、块 8 3.33 译码显示模块 8 3.34 组合电路 9 四、设计结果及分析 9 4.1 控制模块仿真 9 4.2 分频模块仿真 104.3 译码显示模块仿真 104.4 组合电路仿真 11五、 总 结 11 六、 致 谢 12七、 参考文献 12八、 附录 13 8.1 组合电路原理图 14 8.2 系统实现程序代码 15一、课题概述 1.1、自动售货机的发展历史自动售货机是20世纪70年代在日本、欧美发展起来的高新技术现代应用产品,被称为24小时营业的微型超市,售货领域已扩展至小食品、小用品、香烟、电话卡、车票、邮票等。钱币装置是自动售货机的核心,其主要功能是确认投入钱币的真伪,分选钱币
7、的种类,计算金额。如果投入的金额达到购买物品的数值即发出售货信号,并找出余钱。自动售货机自动输出顾客所要的商品。目前在40多个国家已经广泛使用,日本平均每23人一台,美国平均每40人一台,欧洲平均每60人一台。在邻国日本,70%份额的罐装饮料市场是通过自动售货机售出的;美国可口可乐公司拥有五十余万台饮料自动售货机分布在世界各地。通过自动售货机销售将成为商品零售业不可分割的重要组成部分。1.2、自动售货机的研究意义面对当前快速商品社会,人们的时间观念越来越重,如何才能更快的购买到顾客自己所需的商品,这都是顾客和商家共同面临的问题。自动售货机不受时间、地点的限制,能节省人力、方便交易,能够实现商品
8、的自动化。因此,自动售货机在商业,食品行业越来越普及,更方便消费者购买自己所需的商品。随着科技的发展及人们生活水平的提高,自动售货机市场的发展越来越呈现出多元化及个性化的需求。通过自动售货机进行自助购物正逐渐成为市民的一种新的消费时尚,快捷方便的购物方式满足了人们在当今科技高速发展的现代社会追求高品质生活的需要。自动售货机在城市商业区、写字楼大厅、风景区、车站、码头、繁华街道等公共场所的布设能够美化亮化城市环境,方便群众生活,已经成为城市各角落的一道亮丽风景线。自动售货机已在国内普及,并成为城市现代文明程度的一种象征性标志。二、设计简介及设计方案论述 2.1、方案的主要组成部分(1)产生退币闪
9、烁信号的电路模块(2)投入壹圆硬币的处理电路模块(3)投入五角硬币的处理电路模块(4)商品选择处理电路模块(5)确认与取消处理电路模块(6)退币处理电路模块(7)出货并计算存货电路模块实体定义了系统的输入输出端口信号,顾客由4种操作行为,即投币、选择、确定与取消。结构体定义功能模块之间整体共享的传递信号,以整合所有块的功能。这些信号将成为各个功能块外部输入或输出信号。2.1、设计流程三、详细设计3.1、任务要求(1)用四个发光二极管分别模拟售出价值为5角、1元、15元和2元的小商品,购买者可以通过开关选择任意一种标价中的小商品。(2)用开关分别模拟5角、1元硬币投入,可以用几只颜色不同的发光二
10、极管分别代表找回剩余的硬币。(3)灯亮时表示该小商品售出。(4)每次只能售出一种小商品,当所投硬币总额大于或等于购买者所选商品物价时,输出货物并找回剩余的硬币,回到初始状态;(5)当所投硬币值不足面值时,可通过一个复位键退还所投硬币并且回到初始状态。3.2、总体思路复杂的数字系统分解成基本门电路和寄存器电路单元,我们在采用VHDL语言进行数字系统设计过程中,将目标分解成三个模块:控制模块、分频模块、译码显示模块。对各个模块同时进行了设计,分别编译,仿真验证,定义具体的模块端口,最后将各个模块组合成一个系统,各模块通过一些信号进行相互驱动,实现电路功能。3.3、主要过程3.31控制模块(集成电路
11、)3.32 分频模块(集成电路)3.33 译码显示模块(集成电路) 3.34 组合电路(集成电路)四、设计结果及分析 4.1控制模块仿真:4.2分频模块仿真:4.3译码显示模块仿真4.4整体电路仿真五、总 结这个设计实现了一个简单的自动售货机的功能,程序由硬件描述语言VHDL编写。程序中采用分块编写的方式,将一个本来复杂的体系用简单的逻辑表述出来。主时钟配合各个模块产生不同的信号,以这些信号为桥梁分别控制各个模块,这样做设计显得很流畅,每个成员都不是独立存在的。我们这次设计的这个自动售货机用四个发光二极管分别模拟售出价值为5角、1元、15元和2元的小商品,购买者可以通过开关选择任意一种标价中的
12、小商品。数字系统设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.回顾起此次课程设计,至今我们仍感慨颇多,的确,从选题到定稿,从理论到实践,在短短的三个星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次数字系统设计,让我们了解了电路设计的基本步骤,了解了关于自动售货机的原理与设计理念,让我们更进一步的了解到Quartus II 7.1 软件的使用以及它的编译,硬件调试,软件仿真。同时让我们认识到在此次课程设计中所存在
13、的问题;而通过不断的努力去解决这些问题.在解决设计问题的同时自己也在其中有所收获。使我们懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说自己动手画图仿真和用VHDL程序自动生成模块进行仿真时的各种操作及建立实体的命名。还有根目录文件路径中不能有中文字符,数码管的编译,时序图的分析最后老师的辛勤指导及自
14、身的努力下,终于游逆而解。总体来说,这次实习我们受益匪浅.在摸索该如何设计程序使之实现所需功能的过程中,特别有趣,培养了我们的设计思维,增加了实际操作能力.在让我们体会到了设计的艰辛的同时,更让我们体会到成功的喜悦和快乐. 这次数字系统设计,虽然短暂但是让我们得到多方面的提高:1、提高了我们的逻辑思维能力,使我们在逻辑电路的分析与设计上有了很大的进步。加深了我们对组合逻辑电路与时序逻辑电路的认识,进一步增进了对一些常见逻辑器件的了解。另外,我们还更加充分的认识到,数字电路这门课程在科学发展中的至关重要性2,查阅参考书的独立思考的能力以及培养非常重要,我们在设计电路时,遇到很多不理解的东西,有的
15、我们通过查阅参考书弄明白,有的通过网络查到,但由于时间和资料有限我们更多的还是独立思考。3,相互讨论共同研究也是很重要的,经常出现一些问题,比如电路设计中的分频器的设计,开始并不理解分频器的原理,但是和其他的专业同学讨论后,理解了分频器的基本原理后,很快的设计了电路原理图。六、致 谢 感谢老师的指导,感谢学长的指点,感谢所有帮助过我们的老师和同学!最后,感谢我们小组四人的团结合作及认真努力!七、参考文献VHDL数字控制系统设计范例林明全编,电子工业出版社,2003年1月可编程逻辑器件与EDA技术李景华,杜玉远编,东北大学出版社,2000年12月MAX+plus II和Quartus II应用与
16、开发技巧王辉编,机械工业出版社,2007年3月Quartus II简明教程黑杰克编八、附录 8.1 组合电路原理图8.2 系统实现程序代码LIBRARY IEEE;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY zidongshouhuoji ISPORT(CLK: IN STD_LOGIC; -系统时钟 SET: IN STD_LOGIC; -设置信号 GET: IN STD_LOGIC; -购买信号 SEL: IN STD_LOGIC; -商品选择
17、信号 FINISH: IN STD_LOGIC; -交易结束信号 COIN0: IN STD_LOGIC; -五角硬币投入信号 COIN1: IN STD_LOGIC; -一元硬币投入信号 PRICE: IN STD_LOGIC_VECTOR(3 DOWNTO 0); -单价信号 QUANTITY:IN STD_LOGIC_VECTOR(3 DOWNTO 0); -数量信号 ITEM0,ACT: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); -显示开关信号 Y0,Y1: OUT STD_LOGIC_VECTOR(6 DOWNTO 0); -译码输出信号 ACT10: OU
18、T STD_LOGIC; -一元硬币找零信号 ACT5: OUT STD_LOGIC); -五角硬币找零信号END zidongshouhuoji;ARCHITECTURE BEHAV OF zidongshouhuoji IS -控制模块TYPE RAM_TYPE IS ARRAY(3 DOWNTO 0)OF STD_LOGIC_VECTOR(7 DOWNTO 0);SIGNAL RAM: RAM_TYPE;SIGNAL ITEM: STD_LOGIC_VECTOR(1 DOWNTO 0);SIGNAL COIN: STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL PR
19、I,QUA: STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL CLK1: STD_LOGIC;BEGINCOM: PROCESS(SET,CLK1)VARIABLE QUAN: STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINIF SET=1 THEN RAM(CONV_INTEGER(ITEM)=PRICE&QUANTITY;ACT=0000;ELSIF CLK1EVENT AND CLK1=1 THEN ACT5=0;ACT10=0;IF COIN0=1 THEN IF COIN1001THEN COIN=COIN+1; ELSE COIN=00
20、00; END IF;ELSIF COIN1=1 THEN IF COIN1001THEN COIN=COIN+2; ELSE COIN=0000; END IF;ELSIF SEL=1 THEN ITEM0000AND COIN=PRI THEN COIN=COIN-PRI;QUAN:=QUAN-1; RAM(CONV_INTEGER(ITEM)=PRI&QUAN; IF ITEM=00THEN ACT=1000; ELSIF ITEM=01THEN ACT=0100; ELSIF ITEM=10THEN ACT=0010; ELSIF ITEM=11THEN ACT0001THEN ACT
21、10=1;COIN0000THEN ACT5=1;COIN=COIN-1; ELSE ACT5=0;ACT10=0; END IF;ELSIF GET=0 THEN ACT=0000;FOR I IN 4 TO 7 LOOPPRI(I-4)=RAM(CONV_INTEGER(ITEM)(I);END LOOP;FOR I IN 0TO 3 LOOPQUAN(I):=RAM(CONV_INTEGER(ITEM)(I);END LOOP;END IF;END IF;QUA=QUAN;END PROCESS COM;M32:PROCESS(CLK) -分频模块 VARIABLE Q: STD_LOGIC_VECTOR(24 DOWNTO 0);BEGIN IF(CLKEVENT AND CLK=1)THEN Q:=Q+1; END IF; IF(Q=111111111111111111111111)THEN CLK1=1; ELSE CLK1ITEM0ITEM0ITEM0ITEM0Y0Y0Y0Y0Y0Y0Y0Y0Y0Y0Y0Y1Y1Y1Y1Y1Y1Y1Y1Y1Y1Y1=1111111; END CASE;END PROCESS;END BEHAV;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1