eda课程设计自动售货机的设计
EDA设计的自动售饮料机+[文档在线提供]
前言随着电子技术和计算机技术的飞速发展,电子线路的设计工作也日益显得重要。
经过人工设计、制作实验板、调试再修改的多次循环才定型的传统产品设计方法必然被计算机辅助设计所取代,因为这种费时费力又费资源的设计调试方法既增加了产品开发的成本,又受到实验工作场地及仪器设备的限制。
为了克服上述困难,加拿大Interactive Image Technologies公司推出的基于Windows 95/98/NT操作系统的EDA软件。
他可以将不同类型的电路组合成混合电路进行仿真。
此外,从另一角度来看,随着计算机技术和集成电路技术的发展,现代电子与电工设计,已经步入了电子设计自动化(EDA)的时代,采用虚拟仿真的手段对电子产品进行前期工作的调试,已成为一种发展的必然趋势。
通过对实际电子线路的仿真分析,从而提高对电路的分析、设计和创新能力。
数字集成电路本身在不断地进行更新换代。
它由早期的电子管、晶体管、小中规模集成电路、发展到超大规模集成电路(VLSIC,几万门以上)以及许多具有特定功能的专用集成电路。
但是,随着微电子技术的发展,设计与制造集成电路的任务已不完全由半导体厂商来独立承担。
系统设计师们更愿意自己设计专用集成电路(ASIC)芯片,而且希望ASIC的设计周期尽可能短,最好是在实验室里就能设计出合适的ASIC芯片,并且立即投入实际应用之中,因而出现了现场可编程逻辑器件(FPLD),其中应用最广泛的当属现场可编程门阵列(FPGA)和复杂可编程逻辑器件(CPLD)。
FPGA(现场可编程门阵列)与 CPLD(复杂可编程逻辑器件)都是可编程逻辑器件,它们是在PAL,GAL等逻辑器件的基础之上发展起来的。
同以往的PAL,GAL等相比较,FPGA/CPLD 的规模比较大,它可以替代几十甚至几千块通用IC芯片。
这样的FPGA/CPLD实际上就是一个子系统部件。
本次EDA课程设计就是利用VerilogHDL来设计基于ACEX1K30TC144-3型号的FPGA来设计一个自动售货机,机器设有2个投币孔,可以接受一元和五角的硬币,每瓶饮料2.5元,可用2个按键来代替。
EDA课程设计 自动售货机控制系统(DOC)
电子课程设计——自动售货机控制系统的设计学院:电子信息工程学院专业、班级:通信131503班姓名:学号: 2013150303指导老师:李斌2 0 1 5 年 1 2 月目录绪论 (2)一、设计任务与要求 (3)二、总体框图 (3)框图 (3)设计思路 (3)三、器件选择 (4)四、功能模块 (4)1、分频器模块 (4)2、数码管显示模块 (5)3、取货模块 (7)五、总体设计电路图 (8)1、总体设计电路原理图 (8)2、管脚分配表 (9)3、仿真图 (9)六、心得体会 (10)七、参考文献 (10)自动售货机控制系统的设计绪论近年来,集成电路技术的迅猛发展,特别是可编程逻辑器件的高速发展,电子设计自动化EDA技术成为电子设计工程师的新宠。
EDA技术以计算机为工具完成数字系统的逻辑综合、布局布线和设计仿真等工作。
电路设计者只需要完成对系统功能的描述,就可以由计算机软件进行系统处理,最后得到设计结果,并且修改设计方案如同修改软件一样方便。
利用EDA工具可以极大地提高设计效率。
本设计是一套结构简单,操作方便,性能可靠的自动饮料售卖机产品。
自动饮料售卖机电路设计采用选择商品电路、投币累加电路、统计卖出商品电路等四个基本电路构成。
自动售货机在接受投入钱币后,通过与商品价格比较,确定是否能够售出商品和把算出剩余的钱找回。
当商品输出后售货机自动把上次卖出商品的价格和投入的钱币的总和清零,这时才可以进行下次交易。
自动售货机还应满足商家查看销售商品的总和及使其清零,和控制该售货机进行整体复位。
该售货机可以帮助商家更好的销售商品,并且节省人力,获得更大的利润自动饮料售卖机是能够根据投入的钱币自动取出饮料的机器,它是商业自动化的常用设备,不受时间、地点的限制,能节省人力、方便交易。
现代的自动饮料售卖机的种类、结构和功能依出售的饮料种类而异。
钱币装置是自动饮料售卖机的核心,其主要功能是确认投入钱币的真伪,分选钱币的种类,计算金额。
EDA课程设计—自动售票机
EDA课程设计—自动售票机第一篇:EDA课程设计—自动售票机燕山大学EDA课程设计报告书题目:自动售票机姓名:班级:学号:成绩:(注:此文件应以同学学号为文件名)一、设计题目及要求 1.设计题目:自动售票机 2.设计要求:⑴、每次投一枚硬币,但可以连续投入数枚硬币。
硬币种类两种:1元和5角,各用一个按键表示。
⑵、设定票价为2.5元,每次售一张票。
购票时先投入硬币,当投入的硬币总金额达到或超过票的面值时,用LED发出指示,这时可以按取票键取出票。
⑶、如果所投硬币超过票的面值则会有LED提示找零钱,取完票以后按找零键则可以取出零钱。
⑷、用两位数码管显示已投币金额,若刚好投币2.5元,取票后金额归零;若投币超过2.5元,取票后显示找零金额,按下找零键后金额再归零。
1总体设计的文字描述,即由哪几个部分构二、设计过程及内容(包括○2主要模块比较详尽的文字描成的,各个部分的功能及如何实现方法;○述,并配以必要的图片加以说明,但图片数量无需太多)1.总体结构如下:总体设计思路:此自动售票系统总共有5个主要模块,分别是:累加模块,比较器模块,找零模块,数字转换模块,显示器模块。
⑴、累加模块实现金额的累加功能。
实现方法:该模块设置3个输入口(包括5角、1元、复位),8个输出口(B1—B8)。
该模块将在给五角或一元高电平的同时实现金额的累加,复位则会将会对其进行清零。
该模块由一片8位的加法器,2片4位寄存器及简单门电路组成,利用8位加法器将输入的金额(5、10)进行二进制相加(00000101、00001010),通过寄存器后返回到加法器实现累加功能。
复位键则与寄存器复位清零短CLRN相连,实现复位的功能。
⑵、比较器模块实现与票价进行比较的功能。
实现方法:该模块设置了8个输入口(A0—A7)1个取票口,4个输出口。
该模块将累加的钱币与2.5元的票价比较,如果累加金额高于票价则黄灯亮,小于票价则红灯亮,等于票价则绿灯亮。
EDA实验报告---自动售货机
自动售货机的设计一.实验内容:本自动售货机系统,结合EDA技术,采用ALTERA公司可编程逻辑器件(CPLD)EPM7128SLC84-15芯片作为控制核心,再配以必要的外围电路从而实现只销售两种饮料,售价均为15元,可以找零和退币等功能的EDA应用系统。
芯片的设计是以MAX_PLUS II 作为开发平台,VHDL语言作为开发语言,使用掌宇公司CIC_310 CPLD/FPGA数字开发系统完成软件测试。
自己制作下载板与外围电路。
二.实验分析:本自动售货机只销售两种罐装饮料。
售价均为15元。
顾客可以由两个不同投币孔分别投入3个5元硬币或2个10元硬币。
一次交易只能买一罐,且自动找零。
只要按下取消键就会马上无条件退币。
本设计的硬件电路用2个按键电路代替2个投币孔,以LED点亮的数量显示各币种的投入数量,在以4Hz闪烁的LED来显示退币种类与数量。
因为投币是计次电路,应先经过抖动消除电路处理。
本设计采用1000Hz的系统时钟信号来控制所有买卖行为。
系统中设计的复位键为管理人员所用,并未在用户界面中设计。
三.系统设计流程图:四.自动售货机外观图:(为指示灯)五.电路原理图六.PCB图:根据PROTEL99画的系统原理图,成生PCB图。
然后进行布局与布线。
注意:布线时将晶振这种易产生噪声的器件的输出端与芯片时钟输入端的连线尽量布为直线;将电源与地线的宽度定为30mil到100mil之间。
本系统的电流不是很大,所以不用将板子的两面分别布成电源与地。
七.系统实物图:八.软件系统框图九.源程序:1.产生系统频率和退币信号电路首先要根据硬件电路的晶振频率确定分频系数,先产生系统频率,在进一步分频产生退币信号。
由于掌宇公司的开发系统上的晶振频率为20MHz,所以要分频系数分别为20000(COUNT)和250(COUNT1)。
(注:由于在自制的下载板上使用了1MHz的有源晶振,所以把程序中的COUNT的范围改为0到1000即可。
EDA自动售货机课程设计
一、设计目的1.熟悉状态机的使用。
2.了解用VHDL语言实现状态机的过程。
二、设计内容本系统模拟一个自动售票机:所售邮票的价钱分别为:6角和8角;按键设置S1:按一下一角,S2:按一下5角,S3:按一下一元,S8:选择邮票面值,按一下当D1_1亮表示选择6角邮票,按一下D1_2亮表示选择8角邮票,S7:取消操作。
D1_6~D1_8:找回的零钱 D1_1:指示6角邮票D1_2:指示8角邮票 D1_4:提示邮票送出三、设计原理有限状态机FSM及其设计技术是实用数字系统设计中实现高效率、高可靠逻辑控制的重要途径。
传统的状态机设计方法需进行繁琐的状态分配、绘制状态表、化简次态方程等,而利用VHDL可以避免这些繁琐的过程,直接利用状态转换图进行状态机的描述,所有的状态均可表达为CASE_WHEN结构中的一条CASE语句,而状态的转移则通过IF_THEN_ELsE语句实现。
四、管脚分配实验符号对应附录符号管脚money[0] S1 PIN_66money[1] S2 PIN-67money[2] S3 PIN_68rst RESET PIN_240commodity6 D1_1 PIN_215commodity8 D1_2 PIN_217give_change[0] D1_8 PIN_224give_change[1] D1_7 PIN_225give_change[2 D1_6 PIN_213stamp S8 PIN_75back S7 PIN_76clk100hz Clock PIN_29sell D1_4 PIN_207五、使用说明本程序是一个自动处理人机信息交换的程序,它能根据人们的需要,显示邮票的面值,在付款和付款取消的时候给出相应指示,处理交易中出现的各种情况,并且能在交易后显示是否交易成功。
六、流程图设计七、程序设计如下:library ieee; 初始定义投入壹角硬币的处理电路模块投入五角硬币的处理电路模块投入壹元硬币的处理电路模块选择邮票模块确认与取消处理电路模块退币处理电路模块出货电路模块use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity vendor isport(reset :in std_logic; --系统内部给其他顾客重新操作的复位信号clk :in std_logic; --由外接信号发生器提供的1024Hz 系统时钟信号ok_buy :in std_logic; --购买确认的按键信号cancel_buy :in std_logic; --购买取消的按键信号coin_1 :in std_logic;-- 投入壹角硬币的动作按键coin_5 :in std_logic; --投入五角硬币的动作按键coin_10 :in std_logic; --投入壹圆硬币的动作按键select_liu_yp :in std_logic; --选择六角邮票的按键信号select_ba_yp :in std_logic; --选择八角邮票的按键信号led_liu_yp_ok :out std_logic; --灯亮显示还有六角邮票led_ba_yp_ok :out std_logic; --灯亮显示还有八角邮票led_liu_yp_sel :out std_logic; --灯亮显示六角邮票选择键被按 led_ba_yp_sel :out std_logic; --灯亮显示八角邮票选择键被按 led_buy :out std_logic; --灯亮显示按了购买确认键led_cancel :out std_logic; --灯亮显示按了购买取消键led_one :out std_logic;--1个LED,投入1个1角硬币亮一个LEDled_five :out std_logic;--3个LED,投入1个五角硬币亮一个LEDled_ten :out std_logic;--2个LED,投入1个壹圆硬币亮一个LEDDOUT:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);led_liu_yp_out :out std_logic;--灯亮显示六角邮票已出货led_ba_yp_out :out std_logic --灯亮显示八角邮票已出货);end;architecture arch of vendor issignal ok :std_logic;--用来维持ok_buy的状态signal cancel :std_logic;--用来维持cancel_buy的状态signal money_ok1 :std_logic;--投入金额正确signal money_ok2 :std_logic;--投入金额正确signal return_clk :std_logic;--退币的闪烁信号4Hzsignal liu_yp_choice :std_logic;--用来维持select_liu_yp的状态 signal ba_yp_choice :std_logic;--用来维持select_ba_yp的状态signal total_amount_one:integer range 0 to 1;--壹角硬币的累计投入金额signal total_amount_five:integer range 0 to 5;--五角硬币的累计投入金额signal total_amount_ten :integer range 0 to 10;--壹圆硬币的累计投入金额signal total_amount_6 :integer range 0 to 6;--壹圆硬币的累计投入金额signal total_amount_8 :integer range 0 to 8;--壹圆硬币的累计投入金额signal liu_yp_out :std_logic;--六角邮票已经出货的信号signal ba_yp_out :std_logic;--八角邮票已经出货的信号begincoin_1_counting:block --投入壹角硬币的处理电路模块beginprocess(reset,coin_1)beginif reset='1' then total_amount_one<=0; --复位led_one<='0';elsif rising_edge(coin_1) then --按下投入一角硬币的按钮total_amount_one<=1;led_one<='1'; --灯亮几盏表示投入多少个硬币end if;end process;end block;coin_10_counting:block --投入壹圆硬币的处理电路模块beginprocess(reset,coin_10)beginif reset='1' then total_amount_ten<=0; --复位led_ten<='0';elsif rising_edge(coin_10) then --按下投入一元硬币的按钮total_amount_ten<=10;led_ten<='1'; --灯亮几盏表示投入多少个硬币end if;end process;end block;coin_5_counting:block --投入五角硬币的处理电路模块signal no_coin_five:integer range 0 to 1;beginprocess(reset,coin_5)beginif reset='1' then total_amount_five<=0; --复位led_five<='0';elsif rising_edge(coin_5) then --按下投入五角钱硬币的按钮total_amount_five<=5;led_five<='1'; --灯亮几盏表示投入多少个硬币 end if;end process;end block;select_drink:blockbeginprocess(reset,clk)beginif reset='1' then led_liu_yp_sel<='0'; --复位led_ba_yp_sel<='0';ba_yp_choice<='0';liu_yp_choice<='0';elsif rising_edge(clk) then --时钟上升沿if select_liu_yp='1' then --选择led_liu_yp_sel<='1'; --相应的信号灯亮liu_yp_choice<='1'; --维持选择状态led_ba_yp_sel<='0';ba_yp_choice<='0';end if;if select_ba_yp='1' then --选择led_liu_yp_sel<='0';ba_yp_choice<='1'; --维持选择状态led_ba_yp_sel<='1'; --相应的灯亮liu_yp_choice<='0';end if;end if;end process;end block;ok_or_cancel:block --确认与取消处理电路模块beginp1:process(reset,ok_buy)beginif reset='1' then ok<='0'; --复位led_buy<='0';elsif rising_edge(ok_buy) then --按确认按钮ok<='1'; --维持状态led_buy<='1'; --确认灯亮end if;end process;p2:process(reset,cancel_buy)beginif reset='1' then cancel<='0'; --复位led_cancel<='0';elsif rising_edge(cancel_buy) then --按取消键cancel<='1'; --维持状态led_cancel<='1'; --取消灯亮end if;end process;end block;coin_returned:block --退币处理电路模块signal total_amount:integer range 0 to 16;signal ret:integer range 0 to 16;beginprocess(reset,clk)beginif reset='1' then --复位total_amount<=0;money_ok1<='0';money_ok2<='0';DOUT<="1000000";elsif rising_edge(clk) then --时钟上升沿total_amount<=total_amount_ten+total_amount_five+total_amount_one; --投入总钱数,十进制,单位角if total_amount>=6 then money_ok1<='1';else money_ok1<='0';end if;if total_amount>=8 then money_ok2<='1';else money_ok2<='0';end if;if (cancel='1') then --取消购买CASE total_amount ISWHEN 0=>DOUT<="1000000";--0WHEN 1=>DOUT<="1111001";--1WHEN 2=>DOUT<="0100100";--2WHEN 3=>DOUT<="0110000";--3WHEN 4=>DOUT<="0011001";--4WHEN 5=>DOUT<="0010010";--5WHEN 6=>DOUT<="0000010";--6WHEN 7=>DOUT<="1111000";--7WHEN 8=>DOUT<="0000000";--8WHEN 9=>DOUT<="0010000";--9WHEN 10=>DOUT<="0001000";--10WHEN 11=>DOUT<="0000011";--11WHEN 12=>DOUT<="1000110";--12WHEN 13=>DOUT<="0100001";--13WHEN 14=>DOUT<="0000110";--14WHEN 15=>DOUT<="0001110";--15WHEN 16=>DOUT<="0001001";--16WHEN OTHERS=>DOUT<="1111111";END CASE;end if;if (money_ok1='1' and ok='1' and liu_yp_choice='1') thentotal_amount_6<=6;ret<=total_amount-total_amount_6;elsif( money_ok2='1' and ok='1' and ba_yp_choice='1') thentotal_amount_8<=8;ret<=total_amount-total_amount_8;else ret<=total_amount;end if;if ( ok='1') then --取消购买CASE ret ISWHEN 0=>DOUT<="1000000";--0WHEN 1=>DOUT<="1111001";--1WHEN 2=>DOUT<="0100100";--2WHEN 3=>DOUT<="0110000";--3WHEN 4=>DOUT<="0011001";--4WHEN 5=>DOUT<="0010010";--5WHEN 6=>DOUT<="0000010";--6WHEN 7=>DOUT<="1111000";--7WHEN 8=>DOUT<="0000000";--8WHEN 9=>DOUT<="0010000";--9WHEN 10=>DOUT<="0001000";--10WHEN 11=>DOUT<="0000011";--11WHEN 12=>DOUT<="1000110";--12WHEN 13=>DOUT<="0100001";--13WHEN 14=>DOUT<="0000110";--14WHEN 15=>DOUT<="0001110";--15WHEN 16=>DOUT<="0001001";--16WHEN OTHERS=>DOUT<="1111111";END CASE;end if;end if;end process;end block;give_check:block --出货电路模块beginliu_yp_out<='1' when (money_ok1='1' and ok='1' and liu_yp_choice='1') else '0';led_liu_yp_out<=liu_yp_out;ba_yp_out<='1' when (money_ok2='1' and ok='1' and ba_yp_choice='1') else '0';led_ba_yp_out<=ba_yp_out;end block;end arch;八、设计总结:通过这次小学期设计让我更加深入的了解了VHDL语言的使用及其设计方法,在设计过程中遇到很多问题,通过自己和小组成员的共同努力,把所遇到的问题一一克服,在解决问题的过程中对VHDL的实际应用有了很大的提高九、参考文献:[1] 高峰.单片微型计算机原理与接口技术.科学出版社,2007。
eda自动售货票机课程设计
eda自动售货票机课程设计一、课程目标知识目标:1. 让学生理解EDA自动售货票机的基本工作原理和组成结构。
2. 掌握自动售货票机程序设计的基本步骤和关键算法。
3. 了解自动售货票机在生活中的应用及其对便捷性的提升。
技能目标:1. 培养学生运用所学知识进行EDA自动售货票机程序设计和调试的能力。
2. 提高学生动手实践和问题解决的能力,能针对实际问题设计相应的解决方案。
3. 培养学生的团队协作能力,通过分组合作完成项目任务。
情感态度价值观目标:1. 激发学生对电子设计自动化技术的兴趣,培养其探索精神和创新意识。
2. 培养学生关注社会发展,认识到科技对生活的积极影响,增强社会责任感。
3. 引导学生树立正确的价值观,认识到技术应服务于社会、造福于人类。
课程性质:本课程为实践性较强的课程,结合理论教学与实际操作,培养学生运用电子设计自动化技术解决实际问题的能力。
学生特点:学生具备一定的编程基础和电子技术知识,对新鲜事物充满好奇心,喜欢动手实践。
教学要求:教师应注重理论与实践相结合,充分调动学生的积极性和主动性,引导学生通过分组合作、自主探究等方式完成学习任务。
同时,关注学生的个体差异,给予个性化指导,确保课程目标的实现。
通过课程学习,使学生达到预定的学习成果,为后续学习奠定基础。
二、教学内容1. 自动售货票机原理介绍:讲解自动售货票机的工作原理、组成结构及其在各领域的应用。
相关教材章节:第二章 电子支付系统概述,第三节 自动售货机工作原理。
2. 程序设计基础:介绍EDA工具的使用,重点讲解Verilog和VHDL编程语言,为学生设计自动售货票机程序打下基础。
相关教材章节:第三章 现场可编程逻辑器件,第一节 EDA工具简介,第二节 Verilog和VHDL编程基础。
3. 自动售货票机程序设计:分析自动售货票机的需求,指导学生进行程序设计,包括硬件描述语言编写、仿真与调试。
相关教材章节:第四章 数字系统设计,第二节 硬件描述语言编程,第三节 数字系统仿真与调试。
eda课程设计自动售货机的设计
e d a课程设计自动售货机的设计(共14页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--电子信息科学与技术专业课程设计任务书一.设计说明根据要求可自动出售两种货物,本文设计的自动售货机可销售cola 和 pepsi 两种饮料:售货机可识别1元和元的两种货币,在一次购买过程中,可购买一个或多个商品,系统会自动计算所需钱数和找零的钱数并自动找零。
另外有3个发光二极管、6个LCD数码管:两个用来显示所需金额,两个用来显示已付金额,两个用来显示找零数。
流程说明本文设计的自动售货机当通电时,表示一次销售的开始。
顾客选择一种商品或多种商品后就进入投币状态。
若不投币,则自动返回初始状态。
投币后,系统自动计算所投钱数。
若投币够,则出货并找零。
若投币不够,如果顾客没有继续投币,则退币并回到初始状态。
本系统的投币销售流程图如图所示:各模块说明本文设计的自动售货机总体分三个模块:总控模块,二进制译码模块、BCD码译码模块。
总控模块:总控模块是本系统最重要的模块,该模块大体有5个输入端口和6个输出端口。
其输入端口包括clk、coin1(投入一元货币)、coin5(投入元货币)、cola(选择cola)、pepsi(选择pepsi),输出端口有paid(已投入多少钱)、needed(还需多少钱)moneyout(找零)、success(灯亮表示交易成功)、failure(灯亮表示交易失败)、showmoneyout(灯亮表示正在找零)。
该模块实现了本系统最重要的交易过程,包括选择商品、投入货币,计算剩余金额,找零出货等。
二进制译码模块:该模块有一个输入端口和两个输出端口。
输入端口是一个8位的二进制数输出端口bcd0、bcd1是两个4位的BCD码。
该模块的主要的功能是实现将主控模块输出的二进制数(paid、needed、moneyout)转换成BCD码,以便输出到七段数码管上显示出来。
EDA实习报告(自动售卖机)
EDA实习报告(自动售卖机)第一篇:EDA实习报告(自动售卖机)EDA技术及应用实习报告自动售卖机信息13-2班06号GMH北华大学电气信息工程学院目录一、设计任务功能简介 (2)1、设计任务 (2)2、主要功能 (2)二、原理、方案、框图及任务分解 (2)1、原理 (2)2、方案 (2)3、框图 (3)4、任务分解 (3)三、关键任务的设计代码及注释 (4)四、调试中出现的问题及解决方案 (8)1、问题一 (8)2、问题二 (8)五、产业化市场分析及预测 (8)六、测试及运行结果 (9)七、参考文献 (1)一、设计任务功能简介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课程设计自动售货机
EDA课程设计自动售货机一、教学目标本课程旨在通过学习自动售货机的EDA(电子设计自动化)课程设计,让学生掌握自动售货机的基本工作原理,了解其硬件和软件的设计与实现,培养学生的实际工程能力和创新意识。
知识目标:使学生了解自动售货机的基本组成、工作原理和相关电子技术;掌握自动售货机的硬件设计与软件编程方法。
技能目标:培养学生运用EDA工具进行自动售货机系统设计与仿真能力;培养学生解决实际工程问题的能力,提高学生的创新意识和团队协作能力。
情感态度价值观目标:培养学生对自动售货机及相关技术的兴趣,激发学生创新精神和实践能力;培养学生具备良好的职业道德,使其成为具有社会责任感的工程技术人才。
二、教学内容本课程的教学内容主要包括自动售货机的基本原理、硬件设计与软件编程。
1.自动售货机的基本原理:介绍自动售货机的工作原理、结构及其功能。
2.硬件设计与实现:讲解自动售货机的硬件系统设计,包括控制器、传感器、执行器等硬件组件的选择、连接与调试。
3.软件编程:介绍自动售货机软件系统的架构与设计,讲解控制算法、人机界面设计等软件方面的内容。
三、教学方法为了提高教学效果,本课程将采用多种教学方法相结合的方式进行教学。
1.讲授法:通过讲解自动售货机的基本原理、硬件设计与软件编程的相关知识,使学生掌握基本概念和理论。
2.案例分析法:分析实际自动售货机的案例,使学生了解自动售货机在实际工程中的应用和设计要点。
3.实验法:安排实验室实践环节,让学生动手搭建自动售货机硬件系统,编写软件程序,验证设计方案的可行性。
4.小组讨论法:学生分组讨论,培养学生的团队协作能力和解决问题的能力。
四、教学资源为了支持本课程的教学,我们将准备以下教学资源:1.教材:选用权威、实用的教材,为学生提供系统的学习资料。
2.参考书:推荐相关的参考书籍,丰富学生的知识体系。
3.多媒体资料:制作课件、教学视频等多媒体资料,提高课堂教学质量。
4.实验设备:准备自动售货机的实验设备,包括控制器、传感器、执行器等硬件组件,以及相应的调试工具。
EDA课程设计——自动售货机控制系统
《电子设计自动化(EDA)技术》课程设计报告题目: 自动售货机控制系统姓名:院系:专业:学号:指导教师:完成时间: 年月日一、课程设计题目、内容与要求………………………………………1、设计题目……………………………………………………………2、具体要求……………………………………………………………二、系统设计……………………………………………………………1、设计思路…………………………………………………………2 、系统原理(包含:框图等阐述)与设计说明等内容三、系统实现……………………………………………………………注:此部分阐述具体实现,包含主要逻辑单元、模块、源代码等内容四、系统仿真…………………………………………………………五、硬件验证(操作)说明………………………………………………六、总结………………………………………………………………七、参考书目…………………………………………………………一、课程设计题目、内容与要求1、设计题目自动售货机控制系统2、具体要求设计一个模拟自动售货机的逻辑控制电路1、它有两个投币口分别为一元投币口和五角投币口。
2、每次只能投入一枚一元或五角硬币。
3、投入一元五角硬币后机器自动给出一瓶矿泉水。
4、投入两元硬币后,在给出一瓶矿泉水的同时找回一枚五角的硬币二、系统设计1、设计思路根据设计要求可以对售货机的基本功能进行确定。
它应该能够区分一元和五角硬币,并且能够对投入的货币进行累加。
当所投币值达到商品售价。
就自动送出商品。
因为题目要求只有一种商品并且其售价为一元五。
根据这一特殊点可设计方案如下:用两个开关分别模拟投入一元和五角硬币时产生的信号,高电平有效。
用两颗LED分别模拟售出商品和找钱信号,灯亮有效。
具体功能实现如下:1、连续两次将IN-YUAN置1,则OUT灯会亮,且ZHAOQIAN也会亮。
表示买一元五的矿泉水,投了两元钱,则售出商品,找回五角零钱。
2、连续三次将IN-JIAO置1,则OUT灯会亮,而ZHAOJIAN不会亮。
自动售货机的EDA实现设计
《数电课程设计报告》题目:自动售货机的EDA实现设计学院:信息科学与工程学院专业班级:电子信息科学与技术08-1学生姓名:何伟伟组员:指导教师:张秀娟目录摘要 (3)一、自动售货机的系统结构 (4)1.1自动售货机的系统结构 (4)1.2自动售货实现的设计要求 (5)二、自动售货机的功能介绍 (5)2.1此次设计的自动售货机的功能简介 (5)2.2实现自动售货机的功能的设计思路 (6)三、分步模块设计及波形辅助分析 (6)3.1Verilog语言简介 (6)3.2程序变量名称解释 (6)3.3商家整体复位模块及分析 (6)3.4顾客货品选择模拟以及显示模块及分析 (8)3.5顾客货币选择以及显示模块及分析 (9)3.6投入货币不足引起警告准备找零显示模块及分析 (10)3.7货物送出及商家卖货额累加显示模块及分析 (10)3.8警告3s或者是按键3s后自动复位准备模块及分析 (11)四、设计仿真 (11)4.1Modelsim简介 (11)4.2完整的程序代码 (12)五、附录 (17)六、参考文献 (19)摘要随着经济发展,21世纪进入信息化,为更好的实现人们生活水平的提高,生活更好、更便捷、更经济已经成为人们追求的对象。
然而小型自动售货机就是在这样的时代背景下产生的,由于它的操作方便简洁等优越性能很好的符合人们需求,故它很快形成了自己市场,并日益扩大。
本文也是基于这个背景下,和读者一起探讨,本文详细介绍了自动售货机系统的方案设计、软件规划和编写,并重点描述了自动售货机系统的工作原理、系统设计、软件编程的原则和技巧,主要实现自动售货机的功能。
该系统以Verilog编程为核心,以Modelsim软件为辅助,程序结构分模块设计,故结构清晰,加上仿真器仿真结果最大程度说明问题,符合课程设计要求,并加以解释与说明。
另外,用Verilog编程时.v重要,_tb.v也重要,仿真结果只能根据波形图来说明问题,经过多次努力,测试文件已经相当成熟,很好的满足了设计要求,,.v文件穿插文中配合讲解的需要,_tb.v(测试文件)在附录中给出,以供查阅。
eda自动售货机课程设计
eda自动售货机课程设计一、课程目标知识目标:1. 学生理解EDA自动售货机的原理与结构,掌握相关电子元件的功能及工作方式。
2. 学生掌握自动售货机程序设计的基本流程,能运用所学知识对自动售货机进行简单的故障排查。
3. 学生了解自动售货机在日常生活中的应用,认识到电子产品在便捷人们生活方面的作用。
技能目标:1. 学生能够运用所学知识,设计并搭建一个简易的EDA自动售货机模型。
2. 学生能够编写简单的程序,实现对自动售货机的基本控制功能。
3. 学生通过实际操作,培养动手能力、团队协作能力和问题解决能力。
情感态度价值观目标:1. 学生培养对电子科技的兴趣,激发学习热情,树立创新意识。
2. 学生在学习过程中,养成积极主动、认真负责的学习态度,培养良好的学习习惯。
3. 学生认识到科技进步对生活的影响,增强社会责任感和环保意识。
本课程针对五年级学生,结合课程性质、学生特点和教学要求,将目标分解为具体的学习成果。
在教学过程中,注重理论与实践相结合,强调学生的主体地位,激发学生的探究欲望,培养其创新精神和实践能力。
通过本课程的学习,使学生能够将所学知识应用到实际生活中,提高学生的综合素质。
二、教学内容1. 自动售货机原理与结构介绍:包括自动售货机的工作原理、主要部件及其功能。
- 教材章节:第五章“自动控制技术与应用”,第一节“自动售货机的工作原理”2. 电子元件认知:学习常用电子元件(如传感器、微控制器等)的功能与使用方法。
- 教材章节:第四章“电子元件”,第二节“传感器及其应用”3. 程序设计基础:介绍自动售货机程序设计的基本流程和编程方法。
- 教材章节:第七章“程序设计与控制”,第一节“程序设计的基本流程”4. 简易自动售货机模型设计与搭建:分组进行实际操作,设计并搭建自动售货机模型。
- 教材章节:第五章“自动控制技术与应用”,第二节“自动售货机的设计与制作”5. 故障排查与维护:学习自动售货机常见故障的排查方法与维护技巧。
EDA课程设计报告(自动售货机)
E D A课程设计报告(自动售货机)-CAL-FENGHAI.-(YICAI)-Company One1EDA(Verilog)课程设计报告——自动售货机摘要本设计是以现场可编程逻辑器件(FPGA)为核心的自动售货机,利用QuartusⅡ软件编写verilog HDL硬件描述语言程序以实现自动售货功能。
本设计主要以程序为主,硬件方面则使用实验箱(芯片Cyclone II—EP2C35F672C8,基于MagicSOPC创新教学实验开发平台),将程序各变量端口与实验箱管脚进行相应的配置,用八个开关分别代表商品价格、所投钱币价格及确认付款找零操作。
当选择好商品并投币后,数码管显示所选商品价格及投入钱币价格;按下确认付款开关,数码管显示应找多少钱,若交易成功,则对应商品LED灯亮,同时步进电机转动将商品送出。
若所投钱币小于所选商品价格,此时交易不成功,同时对应警告的LED灯亮。
目录前言第一章系统设计1.1 系统设计1.2 总体设计1.3 方案设计第二章详细设计2.1 自动售货机状态描述2.2 详细状态描述2.2.1 初始状态2.2.2 选商品状态2.2.3 投币状态2.2.4 找零状态第三章软件设计3.1 程序总流程图3.2 verilog HDL源程序第四章结果与讨论4.1 实验调试4.1.1 调试步骤4.1.2 实验现象4.2 结果与分析第五章心得体会参考文献附录前言EDA是电子设计自动化(Electronic Design Automation)的缩写,在20世纪60年代中期从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。
Verilog HDL是众多EDA软件中的一个,结合我们这学期所学课程,本次设计采用的是Verilog公司推出的Verilog硬件描述语言,目的是为了将我们所学应用到实际生活中,同时加深我们对Verilog硬件描述语言,FPGA 芯片等等的认识与掌握。
EDA自动售货机设计
摘要人类社会已进入到高度发达的信息化社会,信息社会的发展离不开电子产品的进步。
现代电子产品在性能提高、复杂度增大的同时,价格却一直呈下降趋势,而且产品更新换代的步伐也越来越快,实现这种进步的主要原因就是生产制造技术和电子设计技术的发展。
自动售货是20世纪70年代在日本、欧美发展起来的一种全新的消费方式,自动售货机又被称为24小时营业的微型自助超市,它的售货领域非常广泛,是发达国家商品零售的一种主要方式。
本设计要实现自动售货机的基本功能,如投币处理、商品选择、购货撤销、异常退币、计算存货等功能。
采用VHDL硬件描述语言编程的设计方法设计系统核心电路的硬件程序,与一般的软件开发不同,VHDL编程更需要熟悉一些底层的硬件知识,特别是数字逻辑电路的设计,因此VHDL编程的方法、思路都要更多的与硬件电路联系起来。
完成系统各个功能模块的硬件程序设计后,在软件平台上进行编译和电路仿真,最后生成的目标文件下载到实验台内的FPGA芯片以实现该系统,并在实验台上对设计进行验证。
关键字:自动售货机;VHDL编程;编译;电路仿真AbstractHuman society has entered into a highly developed information community, social development of information on electronic products progress. the modern electronic products in the performance, the increased complexity of the same time, the price has been a downward trend, and the pace of product faster and faster, the realization of this progress is that of manufacturing technology and electronic design of technology.The coin is in the 70s of 20th century in japan, and develop a new and vending machine is called open 24 hours in the cafeteria, it is very widespread area of sale in retail in the developed countries, is a major way. this is designed to enable automatic machines in the basic functionality, such as a coin, choose and purchases of goods, money is retired, stock and functions. Complete system of the various functional modules of hardware, software design process in the compilation and circuit emulation, the target file download to the test stand in the chip to implement the system fpga, and on the stage of design validation.Keywords:Vending machine;Vhdl programming;Compilation;Circuit simulation目录引言 ........................................................... - 3 - 1 EDA技术简介................................................. - 10 -1.1 EDA技术的发展概况 ..................................... - 10 -1.2 EDA技术的基本特征 ..................................... - 10 -1.2.1“自顶向下”的设计方法 ............................ - 11 -1.2.2高层次设计........................................ - 11 - 2工作原理..................................................... - 11 -2. 1任务概述 .............................................. - 11 -2.2系统设计- 12 -2.3系统组成方框图 ......................................... - 12 -2.4工作过程 ............................................... - 12 - 3设计方案..................................................... - 13 -3.1自动售货机VHDL程序 .................................... - 13 -3.2各功能部件系统仿真图 ................................... - 16 - 结论 ........................................................ - 19 - 参考文献 ...................................................... - 20 -引言自动售货机能够根据投入钱币自动收货的机器,是商业自动化的常用设备。
自动售货机电路EDA课程设计
***设计要求:1、待售物品价钱1元、2元、3元、五元;2、只同意1元、5元、10元币值;3、机内存有1元零钱无穷;4、投入钱币之前以为售货机为空闲状态;投入钱币后需要按下物品标签吐出商品;5、自动找零。
EDA课程设计题目_____自动售货机电路_________院(系)电子工程与电气自动化学院专业电子信息工程学生姓名XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX学号XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX指导教师XXX 职称讲师完成日期:2021年6月18日自动售货机电路摘要自动售货机(Vending Machine,VEM)是能依照投入的钱币自动付货的机械。
自动售货机是商业自动化的经常使用设备,它不受时刻、地址的限制,能节省人力、方便交易。
是一种全新的商业零售形式,又被称为24小时营业的微型超市。
能分为三种:饮料自动售货机、食物自动售货机、综合自动售货机。
从自动售货机的进展趋势来看,它的显现是由于劳动密集型的产业构造向技术密集型社会转变的产物。
大量生产、大量消费和消费模式和销售环境的转变,要求显现新的流通渠道;而相对的超市、百货购物中心等新的流通渠道的产生,人工费用也不断上升;再加上场地的局限性和购物的便利性等这些因素的制约,无人自动售货机作为一种必需的机械便应运而生了。
而自动售货机电路是自动售货机的基础,一个好的自动售货机电路能够让自动售货机更好的提高工作效率,而且在那个以节约能源为主题的社会,有效的工作电路能够加倍有效的节约能源,更好地增进资源节约型和环境友好型社会进展。
从而自动售货机也将进一步向能源节约和智能化的方向进展。
关键词:自动售货机;电路;节约型社会The vending machine circuitAbstractThe vending machine is automatic delivery can invest the money according to the machine. The vending machine is a commonly used commercial automation equipment, it is not affected by time, place restrictions, can save manpower, convenient transactions. Is a new form of retail business, also known as the 24 - hour Mini supermarket.Can be divided into three types: drink vending machine, food vending machines, automatic vending machine.From the development trend of the vending machine, itis due to the emergence of labor-intensive industrial structure to the product technology intensive social change. Changes in mass production, mass consumption andconsumption patterns and sales environment, requirementsfor the emergence of new distribution channels; and t he relative supermarket, department store shopping center, new distribution channels, labor costs are rising; in addition, restricting the shopping convenience factors such as the limitation on site, vending as a necessary machine will emerge as the times require.And the vending machine circuit is the basis of the vending machine, a good automatic vending machine circuit allows the vending machine can increase the workefficiency, but also in the theme of energy conservation society, work efficient circuit can effectively save energy, promote resource-saving and environment-friendly society development. In order to promote the vending machines will also be further saving resources and energy and high functional direction.Key Wor ds:ventor;circuit;conservation-orientedsociety目录摘要 (1)引言 (4)一.自动售货机电路工作原理 (5)1.投币模块 (6)2.选择商品模块 (6)3.找零提取商品模块 (6)二.基于Quartus设计的自动售货机电路相应模块 (7)1.Quartus设计投币模块 (7)2.Quartus设计选择商品模块 (9)3.Quartus设计找零提取商品模块 (11)三.自动售货机整体电路 (14)1.自动售货机电路原理图 (15)2.自动售货机电路波形 (15)3.自动售货机电路相应功能及原理介绍 (17)引言自动售货机(Vending Machine)起源于公元前215年的古埃及,那时用于人们在神庙里用金币购买圣水。
基于eda的课程设计 自动售货机控制设计
基于eda的课程设计自动售货机控制设计eda 课程设计题目自动售卖机控制的设计系 (部) 班级姓名学号指导教师年月日至月周年月日共日目录1 引言............................................................................ ................................................ 12 EDA简介 ........................................................................... . (2)2.1 EDA技术含义 ........................................................................... ...................... 2 2.2 EDA技术相关概念 ........................................................................... .. (2)2.2.1 “自顶向下”的设计方法 (2)2.2.2 硬件描述语言............................................................................ ............ 2 2.2.3 系统框架结构............................................................................ ............ 3 2.3 EDA技术的基本特征 ........................................................................... .......... 3 3 QuartusII ........................................................................... .. (4)3.1 Quartus II简介 ........................................................................... ...................... 4 3.2 Quartus II特点 ........................................................................... ...................... 4 4 自动售货机的设计............................................................................ (6)4.1 自动售货机设计原理............................................................................ . (6)4.1.1 状态机原理分析............................................................................ ........ 6 4.1.2 状态转移图............................................................................ ................ 6 4.1.3 仿真图分析............................................................................ ................ 6 4.1.4 硬件封装图............................................................................ . (8)5 总结............................................................................ ................................................ 9 参考文献............................................................................ .......................................... 10 附录............................................................................ .. (11)1 引言随着生活节奏的不断加快,自动化已经成为人们日常生活之中不可缺少的组成部分。
EDA课程设计--自动售货机
EDA课程设计一自动售货机二、课程设计目的 (2)二、................................ 课程设计题目描述和要求2三、...................................... 课程设计报告内容23. 1、设计原理、方案论证 (2)3.2、设计过程 (2)3.2.1、系统框图 (2)3.2.2、设计总程序 (3)3.2.3、软件仿真 (4)3. 2. 4管脚定义 (5)3. 2. 5下载程序与仿真结果 (6)四、.................................... 设计总结和心得体会7参考文献 (8)附录 (8)一、课程设计目的:1)熟悉学习QuartusII的编程与调试方式,学会在QuartusII 中使用波形图进行软件仿真,并使用EDA6000进行硬件仿真与调试。
2)设计一个自动售货机,具有投币和选择商品等功能二、课程设计题目描述和要求:首先应搭建识别模块,将代表每种硬币的拨码开关信号和选择的商品信号转变为数码管显示信号。
两者要进行比较,如果钱数大于售出商品则对其进行求差,求差的结果作为找钱信号;如果等于直接售出商品;小于则报警。
程序中会有一个分频模块,对CLK进行分频,并有一个复位键。
三、课程设计报告内容3.1、设计原理、方案论证1)设说-一个自动售货机,此机能出售1元、2. 5元、3元、 3.5元的四种商品。
出售哪种商品可有顾客按动相应的按键即可, 并同时用数码管显示售出的是第几种商品;2)顾客可通过选择投入的钱数来购买商品,并且有一个确认键;3)如果选择投入的钱小于选择的商品价格,则显示出价格和选择的钱数,并且警告灯亮;4)如果选择投入的钱大于选择的商品价格,则显示出价格和找回的钱;5)此售货机有一个整体复位控制。
3. 2、设计过程3. 2. 1>系统框图:module autoseller |clk,ck z g, r3w,ni r led_gcocs z led_xcney_a z led_inoney_b r led_price_a f led_price__b,led^warn); input clk r ok z rst;//^J®r 謫走也渣 W確input [1:0] g; 〃货品选择键input [2:0] it;output [6:0]ledjnonev_b r led_price_b z led_coods;oucput [7:0]led_money_a r led_price^a;oucput iea_warn;rsg f_500;//分•频时钟reg [6:0]gocds;xcg led warn;integer a txp f price,xoney z noney a,money b r price a r price b;reg [6:0] led_jroney_b z led_price_b z led_gccds;rsg[7:0]led xcney a x led price a;alxays @ (pcsedge elk)beginif (a_tTO=499)beginr_5oo=-r_5oo; a_*inp<=0;endelsea_tnp<=a_tr^>41;endalways®(posedge f_500)beginif(rst=ljbeginxcney=0;price=o;led_warn=0;endelsebegin3・M00:Deam3'b30i:Deam3't>oio:Deain3・Mi2:teamprice=10;endprice=25;endprice=30;endprice=35;end10:begin25:cegin30:begin35:beginprice_t>=rrice-price_a w 10: case (noney_a)o :bsam led_irvoney_a=Blsb^am 1 e d_mon ey_a= B ・biooooi.l.0;er :a 2 :bsam led_nv2ney_a=B • bl 1011011; end 3: le d_nvoney_a=3'1511001111; end4 :b^gm led_cv2ney_a=8'1511100110;€1:<1 endcase case (money_b)0:begin led_xaoney_b=7 •i>011111i;end5:begin led_money_t>=7 ・61.203丄01; End endcaee case (prlce_a) 0:begin led_price_a=3•blOllllll^end 1:b«gin led_price_a —3 •blOOOOHO; end 2: B-gin led^price^a-S"bllOl1011;end 3:B-gin led^price^a-S■bliOOllll;end4 :k>-gin led_price_a —3 "blllGOHO; end endcase 0:begin led__price_b-7•bOllllll;end 5: begin lcd_price__b —7 • bii02101 ;cnd endcaseend end endnodulc3・2・3、软件仿真当选择钱数为100即为2元、选择商品为10即为3元时Jed 』arn 亮,led_price 和le(Lmoney\ led^good 分别显示应该显示的数据case (price__b)end*1 •17.?5”IX u>1«UC 5 irier/af20空530. [2 bS&BulatlOft ・od ・ T\ SUDCg 心)/0 ■ I i<U MUM--------------------------------------------------------------------------- 耳w 115 ■| 1亠NUM3- 2. 4管脚定义:-/ I29碍F0I IPlcdjx>x c[7.J) 1"WHIGiwuacs 曲. 31 ® fedjxke a[2] OU p.P0I 114 LW.<J^fcfefo...Irij欢e32 O "PggPUL113 UTT^UCCSyefa...33 0 w p6x 呦POi 112W JTO 母以 列a “皿闻P9LU1 皿uacs 陆・. ledjr^ej^oJ )35 ® Mgbraounraciio L/TTUQD5 怯饥. 拓 O Wjx>K_b{fl川P9L109 皿l 灿艾陆“砂tedj 如K amF0W ~1皿15)5 她. tedjxicej2(6・OS3OU pPflIK 皿116艾轴, ledj 血匝aQ衿也皿6贞 QUP FffIJJ ~pTTUVOO 如・•WjiKeJfo.XJ 40 0 lcdj )oceb[']i S ® 82 皿肋艾陆・, tedcr>x bfoj) ©[ ► A41 <J> ledjAam Ou qi RN.L30 Lvm&oiDs 诗... *2 IF n[2] Inp u* F0I L33 皿M 艾陆・,43 1*也 Inp utWI.B2 bmug 曲.M2..0]竹 IF n[0]I T F0I L31 皿側艾竝, 业q45• okInputP9LB7 皿ng 轴.,电46 IF 曲JWP0LL21L/TTUVO ■憐仕 fa.3. 2・5下载程序与仿真结果:商品选择第二个,投入钱币是5,结果显示中25为价格05为投入的钱,2是选择的商品,led_warn 亮;EDA6000/EDA2000 : E:\autoseller.Mod商品选择第一个,投币35,结果中10为商品价格,25为找零,1为选择的商品莒隧型』谖紡分折資口存睹甜|外部设备10管胆定黒|C lfDlJd 』r c ,d_pr i c«ACEX1K30A•d_none seLcood10 ==.06,05.0403.0201.0010 ==.17.16.15.141312.11 IO 25.2423.2221.20.19.18 IO ==.3433.32 29.28,27.26 IO 25,41.<39.38,37.36135LK L13 LI 2 L10 L9 LSj J J J J J j•30 01011011(5E)G1 DI ioi mo (Bs)G2 till I 111 (?F) G3 10110100(54) * tlO1tt1O(DE :i <35 11010010(02) 66 KC00101 (05) GT□rcoomo (03)LJ 八 J J J J J •-i J> LS L<12 L : 沁 AH :CLD)(KG0)| ECFIHt-JCLEJ g3】)| ioriHz ▼ I9 876 53 2 4 JI4 4 oooooooLA 7?5432100X100031 (01)四、设计总结和心得体会通过本次课程设计,我对Verilog HDL 语言有了更深刻的了解,能够比较 灵活地运用它来实现我们所想要要其实现的功能。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
电子信息科学与技术专业课程设计任务书一.设计说明根据要求可自动出售两种货物,本文设计的自动售货机可销售cola 和pepsi两种饮料:售货机可识别1元和0.5元的两种货币,在一次购买过程中,可购买一个或多个商品,系统会自动计算所需钱数和找零的钱数并自动找零。
另外有3个发光二极管、6个LCD数码管:两个用来显示所需金额,两个用来显示已付金额,两个用来显示找零数。
1.1.1 流程说明本文设计的自动售货机当通电时,表示一次销售的开始。
顾客选择一种商品或多种商品后就进入投币状态。
若不投币,则自动返回初始状态。
投币后,系统自动计算所投钱数。
若投币够,则出货并找零。
若投币不够,如果顾客没有继续投币,则退币并回到初始状态。
本系统的投币销售流程图如图所示:1.1.2各模块说明本文设计的自动售货机总体分三个模块:总控模块,二进制译码模块、BCD 码译码模块。
总控模块:总控模块是本系统最重要的模块,该模块大体有5个输入端口和6个输出端口。
其输入端口包括clk、coin1(投入一元货币)、coin5(投入0.5元货币)、cola(选择cola)、pepsi(选择pepsi),输出端口有paid(已投入多少钱)、needed(还需多少钱)moneyout(找零)、success(灯亮表示交易成功)、failure(灯亮表示交易失败)、showmoneyout(灯亮表示正在找零)。
该模块实现了本系统最重要的交易过程,包括选择商品、投入货币,计算剩余金额,找零出货等。
二进制译码模块:该模块有一个输入端口和两个输出端口。
输入端口是一个8位的二进制数输出端口bcd0、bcd1是两个4位的BCD码。
该模块的主要的功能是实现将主控模块输出的二进制数(paid、needed、moneyout)转换成BCD 码,以便输出到七段数码管上显示出来。
该模块的原理是将一个8位的二进制转换成2个4位的BCD码,分为高四位和低四位。
BCD码译码模块:该模块有一个输入端口和一个输出端口1.1.3 程序设计主控模块完整程序如下:Library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity shouhuoji isport(clk: in std_logic;coin1:in std_logic;coin5:in std_logic;cola:in std_logic;pepsi:in std_logic;paid:out std_logic_vector(7 downto 0);needed:out std_logic_vector(7 downto 0);success:out std_logic;failure:out std_logic;showmoneyout:out std_logic;moneyout:out std_logic_vector(7 downto 0));end shouhuoji;architecture behav of shouhuoji istype state_type is (qa,qb,qe,qc,qg,qd,qf);--定义七个状态signal current_state :state_type:=qa;signal q:integer range 0 to 100;beginprocess(clk)variable paidtemp:std_logic_vector(7 downto 0);--定义变量variable neededtemp:std_logic_vector(7 downto 0);variable backmoney:std_logic_vector(7 downto 0);variable pricetemp:std_logic_vector(7 downto 0);beginif clk'event and clk='1' thencase current_state iswhen qa=>paidtemp:="00000000";neededtemp:="00000000";backmoney:="00000000";pricetemp:="00000000";q<=0;showmoneyout<='0';moneyout<="00000000";paid<="00000000";needed<="00000000";failure<='0';success<='0';if cola='1' or pepsi='1' then current_state<=qb;if cola='1' then pricetemp:=pricetemp+"00001111";neededtemp:=pricetemp;Elsepricetemp:=pricetemp+"00010100";neededtemp:=pricetemp;end if;end if;paid<=paidtemp;needed<=neededtemp;when qb=>if coin1='1' or coin5='1' thenif coin1='1'then paidtemp:=paidtemp+"00001010";elsepaidtemp:=paidtemp+"00000101";end if;if paidtemp>=pricetemp then backmoney:=paidtemp-pricetemp; neededtemp:="00000000";current_state<=qd;else neededtemp:=pricetemp-paidtemp;backmoney:="00000000"; current_state<=qc;q<=0;end if;paid<=paidtemp;needed<=neededtemp;end if;if q<8 then q<=q+1;if cola='1' or pepsi='1'then q<=0;if cola='1' then pricetemp:=pricetemp+"00001111"; neededtemp:=neededtemp+"00001111";elsepricetemp:=pricetemp+"00010100";neededtemp:=neededtemp+"00010100";end if;paid<=paidtemp;needed<=neededtemp;end if;else current_state<=qe;q<=0;end if;when qe=>failure<='1';if q<4 then q<=q+1;else current_state<=qa;q<=0;end if;when qc=>if coin1='1' or coin5='1' thenif coin1='1'then paidtemp:=paidtemp+"00001010";elsepaidtemp:=paidtemp+"00000101";end if;if paidtemp>=pricetemp thenbackmoney:=paidtemp-pricetemp;neededtemp:="00000000";current_state<=qd;else neededtemp:=pricetemp-paidtemp;backmoney:="00000000"; current_state<=qc;end if;paid<=paidtemp;needed<=neededtemp;end if;if coin1/='1'and coin5/='1' thenif q<10 then q<=q+1;else current_state<=qg;end if;else q<=0;end if;when qg=>failure<='1';showmoneyout<='1';moneyout<=paidtemp;current_state<=qf;q<=0;success<='0';when qd=>success<='1';if backmoney>"00000000"then showmoneyout<='1';moneyout<=backmoney;end if;current_state<=qf;q<=0;when qf=>if q<4 then q<=q+1;else current_state<=qa;q<=0;end if;end case;elseend if;end process;end behav;BCD译码模块完整程序如下:Library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity code1 isport(b:in std_logic_vector(7 downto 0);bcd0:out std_logic_vector(3 downto 0);bcd1:out std_logic_vector(3 downto 0)) ;end code1;architecture one of code1 isbeginprocess(b)begincase b iswhen"00000000"=>bcd0<="0000";bcd1<="0000";--译码“0”;when"00000001"=>bcd0<="0001";bcd1<="0000";--译码“1”;when"00000010"=>bcd0<="0010";bcd1<="0000";--译码“2”;when"00000011"=>bcd0<="0011";bcd1<="0000";--译码“3”;when"00000100"=>bcd0<="0100";bcd1<="0000";--译码“4”;when"00000101"=>bcd0<="0101";bcd1<="0000";--译码“5”;when"00000110"=>bcd0<="0110";bcd1<="0000"; when"00000111"=>bcd0<="0111";bcd1<="0000"; when"00001000"=>bcd0<="1000";bcd1<="0000"; when"00001001"=>bcd0<="1001";bcd1<="0000"; when"00001010"=>bcd0<="0000";bcd1<="0001"; when"00001011"=>bcd0<="0001";bcd1<="0001"; when"00001100"=>bcd0<="0010";bcd1<="0001"; when"00001101"=>bcd0<="0011";bcd1<="0001"; when"00001110"=>bcd0<="0100";bcd1<="0001"; when"00001111"=>bcd0<="0101";bcd1<="0001";when"00010000"=>bcd0<="0110";bcd1<="0001"; when"00010001"=>bcd0<="0111";bcd1<="0001"; when"00010010"=>bcd0<="1000";bcd1<="0001"; when"00010011"=>bcd0<="1001";bcd1<="0001"; when"00010100"=>bcd0<="0000";bcd1<="0010";译码“20”when others=>null;end case;end process;end one;顶层模块完整程序如下:library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity top isPort( clk1:in std_logic;C1,C5,P1_5,P2:in std_logic;paid_lcd0,paid_lcd1,needed_lcd0,needed_lcd1,Mout_lcd0,Mout_lcd1:out std_logic_vector(3 downto 0);s,f,showout :out std_logic );end top;architecture one of top iscomponent shouhuojiport ( clk:in std_logic;coin1:in std_logic;coin5:in std_logic;cola:in std_logic;pepsi:in std_logic;paid:out std_logic_vector(7 downto 0);needed:out std_logic_vector(7 downto 0);success:out std_logic;failure:out std_logic;showmoneyout:out std_logic;moneyout:out std_logic_vector(7 downto 0));end component;component code1port(b:in std_logic_vector( 7 downto 0);bcd0:out std_logic_vector(3 downto 0);bcd1:out std_logic_vector(3 downto 0));end component;signal p,n,mo:std_logic_vector( 7 downto 0);--signal s1,s2,s3,s4,s5,s6:std_logic_vector(3 downto 0);beginu0:shouhuoji--各模块连接port map(clk=>clk1,coin1=>C1,coin5=>C5,cola=>P1_5,pepsi=>P2,success=>s,failure=>f,showmoneyout=>showout,paid=>p,needed=>n,moneyout=>m o);u1:code1 port map(b=>p,bcd0=>paid_lcd0,bcd1=>paid_lcd1);u2:code1 port map(b=>n,bcd0=>needed_lcd0,bcd1=>needed_lcd1);u3:code1 port map(b=>mo,bcd0=>Mout_lcd0,bcd1=>Mout_lcd1);end one;1.1.4各模块的连接各模块的连接如图所示:售货机主控系统和译码器模块图售货机顶层模块2、1 主控模块的仿真上图表示顾客选择了pepsi饮料后,且投了2个一元的硬币。