EDA课程设计简易售货机
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技术,采用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自动售邮票机课程设计一、课程目标知识目标:1. 学生理解EDA自动售邮票机的基本工作原理和功能;2. 学生掌握自动售邮票机中的主要电子元件及其作用;3. 学生了解程序设计在自动售邮票机中的应用。
技能目标:1. 学生能够运用所学知识,设计并搭建简单的自动售邮票机模型;2. 学生通过编程实现对自动售邮票机的控制,完成邮票的自动售卖;3. 学生培养解决实际问题的能力,将理论知识应用于实践。
情感态度价值观目标:1. 学生培养对电子科技的兴趣和热情,激发创新意识;2. 学生树立团队协作意识,学会与他人共同解决问题;3. 学生认识到科技改变生活的重要性,增强社会责任感。
课程性质:本课程属于电子设计与实践类课程,旨在培养学生的动手能力、创新意识和实际操作技能。
学生特点:五年级学生已具备一定的电子知识基础,对新鲜事物充满好奇,动手能力较强,喜欢实际操作。
教学要求:结合学生特点,课程目标需具备实际操作性和趣味性,注重培养学生的动手能力和创新精神,将理论知识与实际应用相结合。
通过本课程的学习,使学生能够将所学知识应用于实际生活,提高解决实际问题的能力。
二、教学内容1. 自动售邮票机原理介绍:讲解自动售邮票机的工作原理、功能特点及其在日常生活中的应用。
- 教材章节:第五章《自动售货机》- 内容:自动售邮票机的基本结构、工作流程、电子元件作用。
2. 电子元件认识与使用:学习自动售邮票机中的主要电子元件,如微控制器、传感器、执行器等。
- 教材章节:第三章《电子元件》- 内容:电子元件的分类、功能、连接方式及在自动售邮票机中的应用。
3. 程序设计与应用:通过编程实现对自动售邮票机的控制,完成邮票售卖功能。
- 教材章节:第四章《程序设计》- 内容:编程基础知识、控制语句、函数调用等。
4. 实践操作:设计并搭建自动售邮票机模型,进行实际操作。
- 教材章节:第六章《实践操作》- 内容:模型设计、组装、调试及优化。
5. 课程总结与展示:对所学内容进行总结,展示学生作品,进行交流分享。
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.实验设备:准备自动售货机的实验设备,包括控制器、传感器、执行器等硬件组件,以及相应的调试工具。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
燕山大学
课程设计说明书题目:简易售货机
院(系):基层教学单位:
说明:此表一式四份,学生、指导教师、基层教学单位、系部各一份。
年月日
目录
第1章摘要 (1)
第2章引言 (2)
第3章基本原理与设计思路 (3)
第4章设计说明与模块介绍 (5)
4.1 显示模块 (5)
4.2 蜂鸣器模块 (8)
4.3 总体设计电路 (10)
第5章管脚锁定与硬件连线 (14)
课程设计心得体会 (17)
参考文献 (18)
第一章摘要
本题目是设计简易售货机,首先要用数字开关设置大小在0-15内的购物金额和付款金额,然后要以十进制形式显示购物金额、付款金额和找零金额,若付款金额小于购物金额则蜂鸣5s。
实现的关键在于三个方面:1将二进制的输入转化为十进制输出,用数码管显示,采用74283加法器构成BCD码加法器实现二进制数转化为十进制,以驱动数码管的显示,连线较简单;2 减法运算得出结果,结果为负数时,输出为0,采用74283加法器,将一个输入端与另一个输入端的补码相加,即可得到减法运算,然后利用其借位输出与减法运算的结果相与,再通过数码管输出;3 蜂鸣器响5秒,并能连续工作,利用74160加法计数器,频率1 HZ,计数5次,输出高电平以实现驱动蜂鸣器响5秒,蜂鸣期间,通过反馈利用T’FF来实现对原来外部状态的锁存,避免外部状态改变使得蜂鸣器过早中断,以保证能够可靠工作。
关键字:二-十进制、显示、74283、减法、74160、蜂鸣器。
第二章引言
售货机在我们的日常生活中随处可见,比如说我们去超市购物,收银员只要输入顾客的购物金额和付款金额,电脑就会自动的显示并计算出应找的钱数。
从自动售货机的发展趋势来看,它的出现是由于劳动密集型的产业构造向技术密集型社会转变的产物。
大量生产、大量消费以及消费模式和销售环境的变化,要求出现新的流通渠道;而相对的超市、百货购物中心等新的流通渠道的产生,人工费用也不断上升;再加上场地的局限性以及购物的便利性等这些因素的制约,无人自动售货机作为一种必须的机器便应运而生了。
自动售货机可以充分补充人力资源的不足,适应消费环境和消费模式的变化,24小时无人售货的系统可以更省力,运营时需要的资本少、面积小,有吸引人们购买好奇心的自身性能,可以很好地解决人工费用上升的问题等各项优点。
第三章基本原理
此简易售货机要解决的主要问题集中在:1将二进制的输入转化为十进制输出,用数码管显示;2 减法运算得出结果,结果为负数时,输出为0。
3 蜂鸣器响5秒,并能连续工作。
二进制的输入转化为十进制输出显示模块:
方法1:有输入G4,G3,G2,G1,F4,F3,F2,F1共八个变量,输出S4,S3,S2,S1,根据真值表写出逻辑表达式,通过组合逻辑电路将二进制数转化为十进制。
方法2:利用74283加法器构成BCD码加法器实现二进制数转化为十进制。
考虑到输入变量很多,列写真值表,由简单的与门,与非门等组合逻辑电路,有些繁琐不便,故用封装好的74283进行组合构成BCD码加法器,连线比较简单。
减法运算得出结果,结果为负数时,输出为0:
方法1:利用74283加法器,将一个输入端与另一个输入端的补码相加,即可得到减法运算。
然后,利用7485比较器,将两个输入端相比较,当结果大于等于0时,和减法运算结果相与,通过数码管输出。
方法2:也是利用74283加法器得到减法运算,然后利用其借位输出与减法运算的结果相与,再通过数码管输出。
由于方法1又增加了一个芯片,连接线路增加很多,不利于电路图的简洁,故采用方法2,简单可靠。
蜂鸣器响5秒:
利用74160加法计数器,频率1 HZ,计数5次,输出高电平以实现驱动蜂鸣器响5秒,蜂鸣期间,通过反馈利用T’FF来实现对原来外部状态的锁存,避免外部状态改变使得蜂鸣器过早中断。
第四章设计说明与模块介绍
4.1显示模块:二进制的输入转化为十进制输出显示
表1 BCD码加法器真值表
图1 BCD加法器卡诺图
其逻辑表达式为:
Y=SUM4SUM3+SUM4SUM2
S21= SUM4SUM3+SUM4SUM2+COUT (S21为最终的进位输出) BCD 加法器电路图:
经封装创建元件后:其波形图:
4.2蜂鸣器模块:蜂鸣器电路图:
经封装创建元件后:
其波形图:
4.3总设计电路图:
G4,G3,G2,G1表示四位数字开关表示物品的购物金额;
F4,F3,F2,F1表示四位数字开关表示物品的付款金额;
S24,S23,S22,S21,S14,S13,S12,S11表示物品的付款金额的数码管输出端;
S244,S233,S222,S211,S144,S133,S122,S111表示物品的购物金额的数码管输出端;
S2444,S2333,S2222,S2111,S1444,S1333,S1222,S1111表示物品的找零金额的数码管输出端。
总波形图
第五章管脚锁定与硬件连线:
1控制购物金额的4位数字开关:G4=PIN45,G3= PIN46,G2= PIN47,G1= PIN53;2控制付款金额的4位数字开关:F4=PIN39,F3= PIN40,F2= PIN41,F1= PIN44;3显示购物金额的两个4位数码管:
S244=PIN136, S233=PIN135, S222=PIN134, S211=PIN133, S144=PIN132,
S133=PIN131, S122=PIN128, S111=PIN127;
4显示付款金额的两个4位数码管:
S24=PIN148, S23=PIN147, S22=PIN144, S21=PIN143, S14=PIN142, S13=PIN141,S12=PIN140, S11=PIN139;
5显示找零金额的两个4位数码管:
S2444=PIN90, S2333=PIN89, S2222=PIN88, S2111=PIN87, S1444=PIN86,
S1333=PIN85, S1222=PIN83, S1111=PIN75;
6 六个数码管的位控位分别锁定为:
S1=PIN94, S2=PIN95, S3=PIN96, S4PIN97, S5=PIN99, S6=PIN100;
7显示找零金额的数码管需要连线,在试验箱上的对应分别是:
3D0=PIN75,3D1=PIN83,3D2=PIN85,3D3=PIN86,3D4=PIN87,3D5=PIN88,3D6=PIN89,3D7=PI N90;
8时钟信号:CLK=PIN73;
9蜂鸣器:FIVES=PIN38;
课程设计心得体会
短短的几天,虽然让我有前两天时间里着急上火,脑汁穷尽,为了本课题很晚才睡,但现在想来,真有种意犹未尽,重来一次的感觉。
不是喜欢那种熬夜的紊乱生活,而是很长时间没有那么认真谨慎地专注于思考一个课题。
将上学期的数字电子技术中理论知识应用到一个小小的实践中,理论联系实际,须得有强大的理论知识和对知识的深入理解,把握总体布局,整合全部电路,划分部分模块,深入子块分析,除此之外,我觉得,还需有将课题设计要求进行细致的问题抽象,转换成各个电路的研究,以及课题与现实实际问题充分对比,最后的设计要与人们生活中的某些行为习惯相符,因为设计的最初目标是为了解决人们生活中的不便和对已有产品的再次优化,以达到更加满足人们要求的目的。
此次课题的设计,我遇到的瓶颈问题在第一次当购物金额大于付款金额时,蜂鸣器
作用响五秒,然而当停止后,紧接着再输入一次购物金额大于付款金额,蜂鸣器不发生反应。
须得中间间隔一次购物金额小于付款金额。
关于这个问题,我一度认为现实生活中有售货员在旁边看着,不会有这种情况的出现,所以一直没有想出更好的解决办法。
然而课设快要结束的时候,我觉得我错了,自动售货机又该怎么办,后来经过几次改进,终于算是简单地实现了,然而只是过了给定的期限,也没什么可遗憾的,态度很重要的。
感觉对MAX+Plus2的学习还是太少,比如说其程序语言的描述这方面,还是一头雾水,没有涉及,等等。
今后加强对理论,对软件的深入理解与学习吧。
参考文献
《数字电子技术基础》.阎石主编.高等教育出版社.
《EDA课程设计B指导书》.
燕山大学课程设计评审意见表。