eda课程设计自动售货机的设计.doc

eda课程设计自动售货机的设计.doc
eda课程设计自动售货机的设计.doc

电子信息科学与技术专业课程设计任务书

学生姓名题目课题性质指导教师

主要内容任务要求参考文献审查意见

专业班级学号

自动售货机的设计

工程设计课题来源自拟课题

同组姓名

设计制作一个自动售货机,该自动售货机能完成货物信息存储、进程控制、硬

币处理、余额计算、显示等功能。自动售货机可以售 2 种货物,每种货物的数量和单价在初始化时设入,在存储器中存储。用户可以用硬币进行购物,按键进行选择。系统根据用户输入的货币,判断钱币是否够,钱币足够则根据顾客

要求自动售货;钱币不够则给出提示并退出。系统自动地计算出应找钱币余额、库存数量并显示。(提示:钱数以 5 角为单位。)

① 根据设计题目要求编写相应程序代码

②对编写的VHDL 程序代码进行编译和仿真

③ 总结设计内容,完成课程设计说明书

[1]焦素敏 .EDA 课程设计指导书 .郑州:河南工业大学, 2008

[2]潘松 ,黄继业 .EDA 技术实用教程 .北京:科学出版社, 2002

[3] 王国栋 ,潘松等 .VHDL实用教程 .成都:电子科技大学出版社,2000

[4]张亦华 ,延明 .数字电路 EDA 入门 .北京:电子工业出版社, 2003

[5]中国电子制作网网站

指导教师签字

教研室主任签字2012 年2月 20日

一.设计说明

根据要求可自动出售两种货物,本文设计的自动售货机可销售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 码,以便输出到七段数码管上显示出来。该模块的原理是将一个8 位的二进制转

换成 2 个 4 位的 BCD码,分为高四位和低四位。

BCD码译码模块:该模块有一个输入端口和一个输出端口

程序设计

主控模块完整程序如下:

Library ieee;

use shouhuoji is

port(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 is

type state_type is (qa,qb,qe,qc,qg,qd,qf);--定义七个状

态 signal current_state :state_type:=qa; signal q:integer

range 0 to 100;

begin

process(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); begin

if clk'event and clk='1' then

case current_state is

when 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;

Else

pricetemp:=pricetemp+"00010100";

neededtemp:=pricetemp;

end if;

end if;

paid<=paidtemp;

needed<=neededtemp;

when qb=>if coin1='1' or coin5='1' then

if coin1='1'then paidtemp:=paidtemp+"00001010";

else

paidtemp:=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";

else

pricetemp:=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' then

if coin1='1'then paidtemp:=paidtemp+"00001010";

else

paidtemp:=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;

end if;

paid<=paidtemp;

needed<=neededtemp;

end if;

if coin1/='1'and coin5/='1' then

if 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;

else

end if;

end process;

end behav;

BCD译码模块完整程序如下:

Library ieee;

use code1 is

port(

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 is

begin

process(b)

begin

case b is

when"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 top is

Port( 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 is

component shouhuoji

port ( 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 code1

port(

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);

begin

u0: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;

各模块的连接

各模块的连接如图所示:

售货机主控系统和译码器模块图

售货机顶层模块

2、1 主控模块的仿真

上图表示顾客选择了pepsi 饮料后,且投了 2 个一元的硬币。 Success为高电平,代表售货机有饮料售出。且余额为0.

上图表示顾客选择了pepsi 饮料后,且投 1 个一元的硬币和一个元的硬币。failure 为高电平,代表售货机无饮料售出。且余额为已投的金额,将钱退还给顾客。 .

码译码的仿真

上图表示自动售货机的译码系统,上图表示将8 位数字转换成4位BCD码。

文件的仿真

上图表示顾客选择了 pepsi 饮料后,且投了 2 个一元的硬币。 Success为高电平,代表售货机有饮料售出。且余额为 0.

上图表示顾客选择了 pepsi 饮料后,且投 1 个一元的硬币和一个元的硬币。Failure 为高电平,代表售货机无饮料售出。 Show out 为退币指示灯。 .Mout_lcd0 和 Mout_lcd1 ,显示退币的金额。 Paided _lcd0 和 Paided_lcd1 needed _lcd0 和needed_lcd1 分别显示已付金额和还需要的金额数。

3.下载验证

在无数次的调试与修改中,下载验证能够实现题目的要求

4.参考文献: [1] 焦素敏 .EDA 课程设计指导书 .郑州:河南工业大学, 2008

[2]潘松 ,黄继业 .EDA技术实用教程 .北京:科学出版社, 2002

[3]王国栋 ,潘松等 .VHDL实用教程 .成都:电子科技大学出版社, 2000

[4]张亦华 ,延明 .数字电路 EDA 入门 .北京:电子工业出版社, 2003

[5]中国电子制作网网站

5.心得体会

自动售货机系统的设计经过一个星期的设计已经全部完成,能按预期的效果进行多次购买、找零出货、并且在数码管上显示出已投货币的金额、还需金额、找零,同时有指示灯提示交易成功、交易失败、正在找零。在自动售货机系统的

3 个模块中,最主要的是主控模块,其次的还有二进制译码模块和BCD码译码模块。各模块完成后,将它们组合成完整的自动售货机系统。在设计过程中还需改进的是。本文所用的VHDL语言虽然语法规则与其他计算机高级语言如C 语言在很多方面很类似,但它毕竟是硬件描述语言,其本质作用在于描述硬件,因而会受硬件环境的限制。因此,为了达到设计的预期效果,在代码编写前,应做到对

硬件电路心中有数,不能一味的追求代码的完美,而应该已实现的硬件电路的性能优劣为标准。

EDA课程设计——多功能数字钟

哈尔滨工业大学(威海) 电子学课程设计报告带有整点报时的数字钟设计与制作 姓名: 蒋栋栋 班级: 0802503 学号: 080250331 指导教师: 井岩

目录 一、课程设计的性质、目的和任务 (3) 二、课程设计基本要求 (3) 三、设计课题要求 (3) 四、课程设计所需要仪器 (4) 五、设计步骤 (4) 1、整体设计框图 (4) 2、各个模块的设计与仿真 (4) 2.1分频模块 (4) 2.2计数器模块 (6) 2.3控制模块 (10) 2.4数码管分配 (13) 2.5显示模块 (14) 2.6报时模块 (16) 六、调试中遇到的问题及解决的方法 (18) 七、心得体会 (18)

一、课程设计的性质、目的和任务 创新精神和实践能力二者之中,实践能力是基础和根本。这是由于创新基于实践、源于实践,实践出真知,实践检验真理。实践活动是创新的源泉,也是人才成长的必由之路。 通过课程设计的锻炼,要求学生掌握电路的一般设计方法,具备初步的独立设计能力,提高综合运用所学的理论知识独立分析和解决问题的能力,培养学生的创新精神。 二、课程设计基本要求 掌握现代大规模集成数字逻辑电路的应用设计方法,进一步掌握电子仪器的正确使用方法,以及掌握利用计算机进行电子设计自动化(EDA)的基本方法。 三、设计课题要求 (1)构造一个24小时制的数字钟。要求能显示时、分、秒。 (2)要求时、分、秒能各自独立的进行调整。 (3)能利用喇叭作整点报时。从59分50秒时开始报时,每隔一秒报时一秒,到达00分00秒时,整点报时。整点报时声的频率应与其它的报时声频有明显区别。 #设计提示(仅供参考): (1)对频率输入的考虑 数字钟内所需的时钟频率有:基准时钟应为周期一秒的标准信号。报时频率可选用1KHz和2KHz左右(两种频率相差八度音,即频率相差一倍)。另外,为防止按键反跳、抖动,微动开关输入应采用寄存器输入形式,其时钟应为几十赫兹。 (2)计时部分计数器设计的考虑 分、秒计数器均为模60计数器。 小时计数为模24计数器,同理可建一个24进制计数器的模块。 (3)校时设计的考虑 数字钟校准有3个控制键:时校准、分校准和秒校准。 微动开关不工作,计数器正常工作。按下微动开关后,计数器以8Hz频率连续计数(若只按一下,则计数器增加一位),可调用元件库中的逻辑门建一个控制按键的模块,即建立开关去抖动电路(见书70页)。 (4)报时设计的考虑

自动售货机控制系统的设计(最终版)

课程设计任务书 设计题目:饮料自动售货机PLC控制系统设计 学院:机械工程学院 专业:机械测控 班级: 姓名: 组员: 指导老师:

【摘要】 本文介绍了自动售货机的基本原理以及工作流程,然后以一次交易过程为例,把交易过程分为几个程序块,然后分别对程序块进行编程。具体说明了可编程序控制器在自动售货机中的作用。程序涉及到了自动售货机工作的绝大部分过程。利用PLC控制的自动售货机提高了系统的稳定性,保证自动售货机能够长期稳定运行。 关键词:自动售货机;可编程序控制器;梯形图 Abstract:This paper introduces the basic principles of vending machines, as well as workflow, and then to a transaction process as an example, the transaction process is divided into several blo ck, and then the block were programmed. Specify the PLC in the r ole of vending machines. Procedures related to the work of the va st majority of vending machine process. PLC control of the use of vending machines enhance the stability of the system to ensure t hat vending machines capable of long-term stable operation. Key words:Vending machines; PLC; Ladder Diagram 一.PLC的概述 1.1 PLC的产生

自动售货机控制系统设计

综合课程设计报告书 自动售货机控制系统设计 题目: 学院:机械与电气工程学院 专业:电气工程及其自动化 班级:13级2班 姓名:付少官 学号: 指导教师:崔茂齐 教师职称:讲师 2016年6月29日

机械与电气工程学院综合课程设计任务书 专业:电气工程及其自动化班级:2013-2 姓名:付少官 自动售货机控制系统设计 (1) 摘要 (1)

Abstrct (1) 1、绪论 (1) 2、自动售货控制系统设计总体方案 (2) 元器件选择 (2) 开发工具 (2) 3、自动售货控制系统硬件设计 (3) 硬件总体框图 (3) AT89C51单片机模块(介绍本次设计所到的功能) (3) (3) (4) 本次所应用的管脚说明 (4) 单片机驱动模块 (5) 选择按键模块 (5) (6) (6) 系统显示模块 (6) 数码管显示器 (6) 显示器的驱动电路 (7) 出货以及退币模块 (8) 4、自动售货控制系统软件设计 (8) 系统流程图 (8) 元器件计算 (9) 5、系统总电路图及调试仿真 (10) 总电路图 (10) 系统调试 (11) 系统仿真 (11) 总结及致谢 (14) 参考文献 (15) 附录 (16) 附录1、元件清单 (16) 附录2、源程序 (16) 附录3、自动售货机控制系统protel99se原理图 (23)

自动售货机控制系统设计 付少官 摘要本文详细介绍了自动售货机系统的方案设计、硬件选择、软件规划和编写,并重点描述了自动售货机系统的工作原理、系统设计、软件编程的原则和技巧。该系统以单片机AT89C51芯片为核心,采用集中控制方式实现了对自动售货机全过程的自动控制。本系统选择独立式键盘按键作为货物选择端,实现了投币总数的显示功能。此外,系统程序采用keil软件进行程序的编写和编译,该软件具有编程简单、查错方便、阅读容易等特点。汇编语言是程序的基本语言,具有容易理解,便于记忆和使用等特点。 关键词:自动售货机,AT89C51,LCD显示 Abstrct T his paper describes a vending machine system design, hardware selection, software planning and preparation, and describes the focus of the work vending machine system theory, system design, software programming principles and techniques. AT89C51in the system as the core chip, the realization of a centralized control of the vending machine's automatic control the entire process. Choice of the system as a stand-alone keyboard keys to choose the goods side, the realization of the coin shows the total number of features. In addition, the system program using keil software to prepare and compile procedures, the software programming is simple, convenient error checking, easy to read and so on. Assembly language is the basic language program with easy to understand, easy to remember and use and so on. Key words:Vending Machines,AT89C51,LED Display 1、绪论 自动售货机是一种全新的商业零售形式,从自动售货机的发展趋势来看,它的出现是由于劳动密集型的产业构造向技术密集型社会转变的产物。大量生产、大量消费以及消费模式和销售环境的变化,要求出现新的流通渠道;而相对的超市、百货购物中心等新的流通渠道的产生,人工费用也不断上升;再加上场地的局限性以及购物的便利性等这些因素的制约,无人自动售货机作为一种必须的机器便应运而生了。 随着科技的发展及人们生活水平的提高,自动售货机市场越来越呈现出多元化及个性化的需求。人们通过自动售货机自助购物,这种简单、快捷的方式正逐渐成为市民的一种新的消费时尚,并且满足了人们在当今科技高速发展的现代社会追求高品质生活的需要。自动售货机在城市商业区、写字楼大厅、风景区、车站、码头、繁华街道等公共场所的布设能够美化城市环境,方便群众生活,它已经成为城市各角落的一道亮丽风景线。 自动售货机必将在国内普及,并成为城市现代文明程度的一种象征性标志。本文详细介绍了如何控制、要求进行自动售货机系统的方案设计、硬件选择、软件规划和编写,并重点描述了自动售货机系统的工作原理、系统设计、软件编程的原则和技巧。

eda课程设计报告多功能数字钟设计大学论文

湖北大学物电学院EDA课程设计报告(论文) 题目:多功能数字钟设计 专业班级: 14微电子科学与工程 姓名:黄山 时间:2016年12月20日 指导教师:万美琳卢仕 完成日期:2015年12月20日

多功能数字钟设计任务书 1.设计目的与要求 了解多功能数字钟的工作原理,加深利用EDA技术实现数字系统的理解 2.设计内容 1,能正常走时,时分秒各占2个数码管,时分秒之间用小时个位和分钟个位所在数码管的小数点隔开; 2,能用按键调时调分; 3,能整点报时,到达整点时,蜂鸣器响一秒; 4,拓展功能:秒表,闹钟,闹钟可调 3.编写设计报告 写出设计的全过程,附上有关资料和图纸,有心得体会。 4.答辩 在规定时间内,完成叙述并回答问题。

目录(四号仿宋_GB2312加粗居中) (空一行) 1 引言 (1) 2 总体设计方案 (1) 2.1 设计思路 (1) 2.2总体设计框图 (2) 3设计原理分析 (3) 3.1分频器 (4) 3.2计时器和时间调节 (4) 3.3秒表模块 (5) 3.4状态机模块 (6) 3.5数码管显示模块 (7) 3.6顶层模块 (8) 3.7管脚绑定和顶层原理图 (9) 4 总结与体会 (11)

多功能电子表 摘要:本EDA课程主要利用QuartusII软件Verilog语言的基本运用设计一个多功能数字钟,进行试验设计和软件仿真调试,分别实现时分秒计时,闹钟闹铃,时分手动较时,时分秒清零,时间保持和整点报时等多种基本功能 关键词:Verilog语言,多功能数字钟,数码管显示; 1 引言 QuartusII是Altera公司的综合性PLD/FPGA开发软件,支持原理图、VHDL、VerilogHDL 以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程,解决了传统硬件电路连线麻烦,出错率高且不易修改,很难控制成本的缺点。利用软件电路设计连线方便,修改容易;电路结构清楚,功能一目了然 2 总体设计方案 2.1 设计思路 根据系统设计的要求,系统设计采用自顶层向下的设计方法,由时钟分频部分,计时部分,按键调时部分,数码管显示部分,蜂鸣器四部分组成。这些模块在顶层原理图中相互连接作用 3 设计原理分析 3.1 分频器 分频模块:将20Mhz晶振分频为1hz,100hz,1000hz分别用于计数模块,秒表模块,状态机模块 module oclk(CLK,oclk,rst,clk_10,clk_100); input CLK,rst; output oclk,clk_10,clk_100;

EDA课程设计---流水灯设计

EDA课程设计流水灯设计

目录 一、摘要··3 二、流水灯设计目的··4 三、流水灯设计流程··4 四、流水灯设计程序··5 五、流水灯设计管脚分配··7 六、功能仿真图··8 七、原理图波形图··9 八、设计注意事项··10

九、课程设计总结··11 十、参考文献··12 十一、评分表··13 一、摘要 随着EDA技术发展和应用领域的扩大与深入,EDA技术在电子信息、通讯、

自动控制及计算机应用等领域的重要性突出。随着技术市场与人才市场对EDA 的需求不断提高,产品的市场需求和技术市场的要求也必然会反映到教学领域和科研领域中来。因此学好EDA技术对我们有很大的益处。EDA是指以计算机为工具,在EDA软件平台上,根据设计社描述的源文件(原理图文件、硬件描述语言文件或波形图文件),自动完成系统的设计,包括编译、仿真、优化、综合、适配(或布局布线)以及下载。 流水灯是一串按一定的规律像流水一样连续闪亮,流水灯控制是可编程控制器的一个应用,其控制思想在工业控制技术领域也同样适用。流水灯控制可用多种方法实现,但对现代可编程控制器而言,基于EDA技术的流水灯设计也是很普遍的。 课程设计主要的目的是通过某一电路的综合设计,了解一般电路综合设计过程、设计要求、应完成的工作内容和具体的设计方法、通过设计也有助于复习、巩固以往的学习内容、达到灵活应用的目的。在设计完成后,还要将设计的电路进行安装、调试以加强学生的动手能力。在此过程中培养从事设计工作的整体观念。 课程设计应强调以能力培养为主,在独立完成设计及制作任务同时注意多方面能力的培养与提高,主要包括以下方面: ·独立工作能力和创造力。 ·综合运用专业及基础知识,解决实际工程技术问题的能力。 ·查阅图书资料、产品手册和各种工具书的能力。 ·写技术报告和编制技术资料的能力。 ·实际动手能力。

EDA技术课程设计报告

课程设计任务书设计题目1:数码管显示数字钟设计

院(系)分管领导:教研室主任:指导教师: 2017年6月23日

目录 第1章引言 0 第2章电路原理 0 第3章程序设计 (1) 顶层模块设计 (2) 时钟分频模块设计 (2) 按键驱动模块设计 (2) 时钟计数模块设计 (3) 整点报时模块 (4) LED灯花样显示模块 (5) 数码管显示模块设计 (5) 第4章调试、测试分析及结果 (7)

调试 (7) 测试分析 (7) 结果 (9) 第5章小结 (10) 参考文献 (11) 附录电路图及程序 (11)

第1章引言 EDA是电子设计自动化(Electronic Design Automation)的缩写,在20世纪60年代中期从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。 EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言VHDL 或者Verilog HDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。EDA技术的出现,极大地提高了电路设计的效率和可操作性,减轻了设计者的劳动强度。 Verilog HDL是一种硬件描述语言,以文本形式来描述数字系统硬件的结构和行为的语言,用它可以表示逻辑电路图、逻辑表达式,还可以表示数字逻辑系统所完成的逻辑功能。 此次课程设计我们运用QuartusⅡ这个软件,使用Verilog HDL语言进行编程。 数字钟是一种用数字电路技术实现时、分、秒计时的钟表。与机械钟相比具有更高的准确性和直观性,具有更长的使用寿命,已得到广泛的使用。数字钟的设计方法有许多种,例如可用中小规模集成电路组成电子钟,也可以利用专用的电子钟芯片配以显示电路及其所需要的外围电路组成电子钟,还可以利用单片机来实现电子钟等等。这些方法都各有其特点,其中利用单片机实现的电子钟具有编程灵活,以便于功能的扩展。 本次课程设计要求利用EDA技术,设计一个数码管显示数字钟的样品,数字钟要求具备以下功能: 1、具有时、分、秒,计数显示功能,以24小时循环计时; 2、具有清零,调节小时、分钟功能; 3、具有整点报时功能,整点报时的同时LED花样显示。 第2章电路原理 数码管显示数字钟设计,运用到8位数码管,要求其中6位数码管动态显示,分别显示时、分、秒的计数,同时对时间进行设置,数字钟的总体功能按照要求可以分为基本的数字时钟显示(具有时、分、秒,计数显示功能,以24小时循环计时)、手动校准(具有清零,调节小时、分钟功能)、整点报时、LED灯花样显示

PLC的自动售货机的课程设计

湖南工学院课程设计说明书 课题名称:自动售货机的控制设计 专业名称:自动化 学生班级:自本0701 学生学号: 410070131 学生姓名:冯源 指导老师:陆秀令

课程设计任务书 自动售货机的控制设计 一、控制要求 1.自动售货机有3个投币孔,分别为1元、5元和10元。 2.售货共有3种饮料供选择,分别为汽水、花茶和咖啡。 3.如投币总额超过销售价格,将可由退币钮找回余额。 4.投币总额或当前值显示在7段数码管上。 5.投币值等于或大于12元时,汽水指示灯亮,表示只可选择汽水。 6.投币值等于或大于15元时,汽水和花茶指示灯亮,表示只可选择汽水和花茶。 7.投币值等于或大于20元时,汽水、花茶和咖啡指示灯亮,表示3种均可选择。 8.按下要饮用的饮料按钮,则相对应的指示灯开始闪烁,3s后自动停止,表示饮料已经掉出。 9.动作停止后按退币钮,可以退回余额,退回金额如果大于10元,则先退10元再退1元,如果小于10元则直接退1元的。 二、设计任务 学生根据控制要求,明确设计任务,拟定设计方案与进度计划,运用所学的理论知识,进行自动售货机运行原理设计、硬件系统设计、软件系统设计、创新设计,提高理论知识工程应用能力、系统调试能力、分析问题与解决问题的能力。主要内容包括: 1. 设计出硬件系统的结构图、接线图、时序图等; 2. 系统有启动、停止功能; 3. 运用功能指令进行PLC控制程序设计,并有主程序、子程序和中断程序; 4. 程序结构与控制功能自行创新设计; 5. 进行系统调试,实现自动售货机的控制要求。

三、设计报告 课程设计报告要做到层次清晰,论述清楚,图表正确,书写工整;详见“课程设计报告写作要求”。

EDA课程设计报告资料

课程设计 设计题目: 学生姓名: 学号: 专业班级: 指导教师: 2015年月日

设计 题目成绩 课 程 设 计 主 要 内 容 指 导 教 师 评 语 签名:20 年月日

设计题目:测量放大器电路原理图和PCB板设计 一、实验目的 1.了解学习Protel 99SE的目的与意义; 2.掌握Protel 99SE绘制电路原理图方法与技巧; 3.掌握PCB设计方法与技巧。 二、实验要求 1.利用Protel 99SE绘制一张电路图; 2.对绘制好的电路图进行ERC检查; 3.生成网络表; 4.生成元件列表; 5.利用Protel 99SE完成对应的双面印刷电路板设计。 三、功率放大器设计 实验原理图如下图所示: 图1

四、protel制图 4.1设计电路原理图 1.电路原理图 电路原理图的设计是整个电路设计的基础,因此电路原理图要设计好,以免影响后面的设计工作。电路原理图的设计一般有如下步骤: (1)设置原理图设计环境; (2)放置元件; (3)原理图布线; (4)编辑和调整; (5)检查原理图; (6)生成网络表。 2.设计印刷电路板 印刷电路板设计是从电路原理图变成一个具体产品的必经之路,因此,印刷电路板设计是电路设计中最重要、最关键的一步。通常,印刷电路板设计的具体步骤如下: (1)规划电路板; (2)设置参数; (3)装入网络表; (4)元器件布局; (5)自动布线; (6)手工调整。 4.2 绘制测量放大器电路原理图 原理图设计最基本的要求是正确性,其次是布局合理,最后是在正确性和布局合理的前提下力求美观。根据以上所述的电路原理图设计步骤,两级放大器电路原理图设计过程如下: 1.启动原理图设计服务器 进入Protel 99 SE,创建一个数据库,执行菜单File/New命令,从框中选择原理图服务器(Schematic Document)图标,双击该图标,建立原理图设计文档。双击文档图标,进入原理图设计服务器界面。如图2

EDA课程设计报告

湖北职业技术学院《EDA技术》课程设计报告 题目动态输出4位十进制频率计的设计所在学院电子信息工程学院 专业班级电信08304 学生姓名马强 学号08024839 指导教师王芳 完成日期2010年11月18 日

目录 一、概述 (3) 二、设计正文 (4) (一)设计目的 (4) (二)设计实现 (4) 1、端口说明 (4) 2、Cnt10模块说明 (5) 3、Tctl模块说明 (6) 4、锁存器reg16模块说明 (8) 5、Scan_led模块说明 (9) 6、顶层文件仿真 (10) 7、硬件下载 (11) 三、总结 (13) 四、感言 (14) 五、参考文献 (15)

概述 此次设计的主要目的是学习掌握频率计的设计方法;掌握动态扫描输出电路的实现方法;学习较复杂的数字系统设计方法。通过单位时间(1秒)内频率的计数来实现频率计的设计。此设计主要用四位十进制计数器,所以频率计数范围为100~9999Hz。然后锁存防止闪烁显示,最后由译码扫描显示电路输出到数码管进行显示输出。并且下载后会有一秒钟的延时后才会显示输出所计频率输出。设计下载后能够进行仿真频率的计数和静态显示,但是分频的设计程序有所缺陷导致长时间显示后会有1Hz的抖动。通过这次的设计能够更清楚的理解VHDL程序的描述语言,进行简单程序的编写和仿真。

动态输出4位十进制频率计的设计 一、目的 1.学习掌握频率计的设计方法。 2.掌握动态扫描输出电路的实现方法。 3.学习较复杂的数字系统设计方法 二、设计实现 4位十进制频率计外部接口如图1所示,顶层文件如图2所示,包含4中模块;Tctl、reg16、scan_led和4个cnt10。 (1)端口说明 F1Hz:给Tctl模块提供1Hz的频率输入。 Fin:被测频率输入。 scan_led:给scan_led模块提供扫描输入频率输入。 bt[1..0]:片选信号输出。 sg[6..0]:译码信号输出。 cout:进位输出。

EDA课程设计

课程设计说明书 课程:EDA技术基础 题目:数字钟的设计 闹钟与整点报时模块 学生姓名:XXX 学号201265110204 班级 :1203班 专业:电子信息与科学 指导教师:XXX 2014年12月20日 长沙理工大学课程设计任务书 物理与电子科学学院电子信息与科学专业1203班姓名王玲课程名称EDA技术基础 题目数字钟的设计

长沙理工大学课程设计成绩评定表

目录 1数字钟设计闹钟模块基本任务要求4 2设计思想4 3简述闹钟模块的输入与输出5 4分进程描述6 5仿真结果与分析7 6简述数字钟的设计总成果10 7总结11 参考文献13 代码附件13

基本任务要求:运用QuartusⅡ13.1软件平台,用VHDL语言描述并设计的闹钟模块满足可调闹钟时间,当时钟时间到达闹钟时间后会响闹铃,(由于实验室权限问题会以FPGA开发板上12个LED灯交替发光来表现);整点报时过程表现为整点的前十秒内响铃,(以FPGA开发板上一个LED灯交替发光来实现)。 设计思想:闹钟模块要以分频模块、计数器模块和译码显示模块为基础,将闹钟模块分为三个进程,一个进程用来实现调闹钟,一个进程来实现闹响闹钟(即实现LED灯交替发光),另一个进程来是实现整点报时。 (上面截图为数字钟整体编译后的RTL电路的闹钟模块) 简述闹钟模块图的输入与输出:上图中的输入粗黑实线为计数器模块输出的小时、分钟的高低位和秒钟的高位(都用四位的二进制表示);输出的粗黑实线为定的闹钟时间(包括小时和分钟),将送到译码显示模块显示闹钟时间,闹钟时间与时钟都在FPGA上的数码管显示,用二选一实现交替显示。clk和clk1都是经过分频器分出的不同频率的信号分别用于整点报时的闪灯脉冲与闹钟调时、闹响的闪灯脉冲。

自动贩卖机电子技术课程设计..

目录 综述 (1) 1方案比较与选定 (2) 2方案设计与分析 (2) 2.1逻辑抽象 (2) 2.2单元模块设计 (3) 2.2.1可供选择商品的指示灯模块 (3) 2.2.2商品输出模块 (5) 2.2.3找零模块 (6) 3整体电路及仿真 (8) 3.1电路原理 (8) 3.2电路仿真 (9) 3.2.1投一元买矿泉水 (9) 3.2.2投一块五买饮料 (10) 3.2.3投两元买饮料并找零 (11) 心得体会 (12) 参考文献 (13)

哈尔滨工业大学电子技术课程设计 综述 自动售货机是能根据投入的钱币自动付货的机器。一般的自动售货机由钱币装置、指示装置、贮藏售货装置等组成。钱币装置是售货机的核心,其主要功能是确认投入钱币的真伪,分选钱币的种类,计算金额。如果投入的金额达到购买物品的数值即发出售货信号,并找出余钱。指示装置用以指示顾客所选商品的品种。贮藏售货装置保存商品,接收出售指示信号,把顾客选择的商品送至付货口。一般售货机的钱币装置由投币口、选别装置、确认钱币真伪的检查装置、计算金额的计算装置和找钱装置组成。七十年代以来,出现了采用微型计算机控制的各种新型自动售货机和利用信用卡代替钱币并与计算机连接的更大规模的无人售货系统,如无人自选商场、车站的自动售票和检票系统、银行的现金自动支付机等。 本设计用JK触发器和基本逻辑门电路通过时序电路的设计方法完成了一种自动贩卖机的设计,该贩卖机能够售卖三种商品,要求系统能够自动完成:投币识别,价格比较,选择商品同时对应的指示灯亮,输出商品和找零过程。 1

自动贩卖机逻辑电路设计 1方案比较与选定 方案一:采用开关控制的计数器,通过加法器投硬币的方式将来确定投入的数值大小,再通过控制减法器的方式来减掉花费的数值,输出需要找回的数值,原理简单,设计也相对简约,思路清晰便于操作。逻辑电路图如图1-1所示。 图1-1 自动贩卖机逻辑电路图 方案二:采用JK触发器和基本逻辑门电路通过时序电路的设计方法完成了一种自动贩卖机的设计,具体思路是通过传感器产生的硬币信号,在电路中输入不同的状态,来表示所投硬币的数值,然后根据所需,通过开关电路,确认各种状态,达到目的。优点是采用简单触发器,和简单门电路就设计出方案。 综上所述,采取方案二,尽管稍微有些复杂,但是可以使我对时序逻辑电路的设计方法有更深的理解。该方案成本低,性价比高。 2方案设计与分析 2.1逻辑抽象 输入变量: 2

EDA技术实践课程设计--24进制计数器课件

东北石油大学EDA技术实践课程设计 课程EDA技术实践课程设计 题目24进制计数器 院系电气信息工程学院电气系 专业班级 学生姓名 学生学号 指导教师 年7月25日

EDA技术实践课程设计任务书 课程EDA技术实践课程设计 题目24进制计数器 专业电气工程及其自动化姓名学号 主要内容: 1.熟练掌握Quartus II软件的使用。 2.熟练掌握在QuartusII平台上用原理图或者VHDL语言进行电路设计的方法。 3.学会用例化语句对EDA电路设计中顶层电路进行描述。 基本要求: 1.熟悉仿真开发软件Quartus II的使用; 2.根据功能要求,用原理图或文本输入方式完成设计; 3.用Quartus II做波形仿真调试; 4.下载至EDA试验仪调试设计。 主要参考资料: [1]潘松,黄继业. 《EDA技术实用教程》[M].北京:科学出版社,2002. [2]卢杰,赖毅. 《VHDL与数字电路设计》[M].北京:科学出版社,2001. [3]张明. 《Verilog HDL实用教程》[M].成都:电子科技大学出版社,1999. [4]郑家龙,王小海,章安元.《集成电子技术基础教程》[M].北京:高等教育出版社,2002. [5]王金明,杨吉斌. 《数字系统设计与Verilog HDL》[M].北京:电子工业出版社,2002. 完成期限 指导教师 专业负责人 年7 月18日

目录 1设计 (1) 2方案选择与电路原理图的设计 (1) 2.124进制计数器的基本原理 (1) 2.2设计流程图 (1) 2.3原理图 (1) 374LS161元件说明 (2) 3.1 简介 (2) 3.274ls161管脚图与介绍 (2) 3.374ls161功能表 (3) 3.474ls161主要特点 (3) 4设计过程 (4) 4.1新文件的建立 (4) 4.2宏功能模块的使用 (5) 4.3普通元件的添加 (8) 4.4 电路连接 (9) 5功能仿真 (9) 6出现的问题及调试方法 (11) 7总结 (11) 参考文献 (12) 附录VHDL语言编写的该程序清单 (13)

基于VHDL的自动售货机的设计与实现

自动售货机实验报告 一、设计任务 设计一个自动售货饮料机,设每瓶饮料2.5元,投币口有两个,1元硬币(one)或5角硬币(half),每个时刻可以输入其中一种硬币,自动售货机有找零钱功能,oute为出货,outm为找零。 二、设计过程 1.设计思路: 状态定义:s0表示初态,s1表示投入5角,s2表示投入1元,s3表示投入1元5角,s4表示投入2元,s5表示投入2元5角,s6表示投入3元。 输入信号:state_outputs(0)表示输入货物,comb_outputs(1)表示找5角硬币,输入信号为1 表示投入硬币,输入信号为1表示未投入硬币。 输出信号:comb_outputs(0)表示输出货物,comb_outputs(1)表示找5角零钱,输出信号为1表示输出货物或找零,输入信号为0表示不输出货物或找零。 根据设计要求分析,得到状态转化图如下图所示,其中状态为s0、S1、S2、S3、S4、S5、S6;输入为state_inputs(0,1);输出为comb_outouts(0,1);输入仅与状态有关,因此将输入写在状态圈内部。

2.设计步骤: (1)创建工程。打开QuartusII ,创建一个新的工程并命名。根据实验室条件,选择的芯片为cyclone 系列中的EP1C6Q240C8芯片。 00

输入VHDL文本文件。新建文本文件VHDL file。输入程序并保存。程序如下:library ieee; use ieee.std_logic_1164.all; entity autosell is port(clk,reset :in std_logic; state_inputs:in std_logic_vector(0 to 1); comb_outputs:out std_logic_vector(0 to 1)); end autosell; architecture be of autosell is type fsm_st is(s0,s1,s2,s3,s4,s5,s6); signal current_state,next_state:fsm_st; begin reg:process(reset,clk) begin if reset='1'then current_state<=s0; elsif rising_edge(clk)then

自动售货机报告C语言课程设计

自动售货机图形模拟系统 需求分析 课题名称:自动售货机图形模拟系统 小组成员:朱伟鑫U201314490 班级:测控1301班 指导老师:周纯杰、何顶新、彭刚、周凯波 上交日期:贰零壹肆年玖月贰拾壹日

目录 1.引言--现实中的自动售货机 (2) 2.运行环境 (3) 3.功能设计 (3) 3.1触摸屏 (3) 3.2自动换零 (3) 3.3销量统计 (3) 3.4提前补货 (4) 3.5显示商品信息 (4) 3.6自动售货机网络 (4) 3.7无响应自动处理 (4) 4.软件系统需求分析 (4) 4.1图形显示 (4) 4.2菜单模块 (5) 4.3交易模块 (5) 4.4管理模块 (5) 5.系统流程图 (5) 6.时间安排 (6)

自动售货机图形模拟系统 朱伟鑫 课题要求 以自动售货机为对象,图形化模拟投币、找零、出货的基本流程;能对售货机的商品进行管理:补货、查询、统计等功能。 1引言--现实中的自动售货机 自动售货机是能根据投入的钱币自动付货的机器。自动售货机是商业自动化的常用设备,它不受时间、地点的限制,能节省人力、方便交易。是一种全新的商业零售形式,又被称为24小时营业的微型超市。能分为三种:饮料自动售货机、食品自动售货机、综合自动售货机。 从自动售货机的发展趋势来看,它的出现是由于劳动密集型的产业构造向技术密集型社会转变的产物。大量生产、大量消费以及消费模式和销售环境的变化,要求出现新的流通渠道;而相对的超市、百货购物中心等新的流通渠道的产生,人工费用也不断上升;再加上场地的局限性以及购物的便利性等这些因素的制约,无人自动售货机作为一种必须的机器便应运而生了。 从广义来讲投入硬币、纸币、信用卡等后便可以销售商品的机械,从狭义来讲就是自动销售商品的机械。从供给的条件看,自动售货机可以充分补充人力资源的不足,适应消费环境和消费模式的变化,24小时无人售货的系统可以更省力,运营时需要的资本少、面积小,有吸引人们购买好奇心的自身性能,可以很好地解决人工费用上升的问题等各项优点。 2运行环境 根据课题要求,在DOS环境下,用TC或BC开发软件编写C语言程序模拟自动售货机的工作,因此本系统将会有较高的兼容性,能够在大多数操作系统上运行,包括Windows XP系统和Windows732位系统,但Windows764位操作系统除外。

EDA课程设计报告8线-3线优先编码器

Xxxxx学院 《EDA技术》课程报告 设计题目:8线-3线优先编码器班级:应用电子1101班姓名: 学号: 指导老师: 日期:

目录 一、8-3优先编码器设计原理分析 (3) 二、8-3优先编码器模块的源程序 (3) 三、8-3优先编码器仿真结果 (4) 四、设计总结和心得体会 (5) 五、参考资料 (5)

一、8-3优先编码器设计原理分析 8-3优先编码器输入信号为din0,d in1,din2,din3,din4,din5,din6和din7,输出信号为out2、out1、out0。输入信号中din7的优先级别最低,依次类推,din0的优先级别最高。也就是说若din0输入为1(即为高电平)则无论后续的输入信号怎么样,对应的这种状态一样,如若din0输入为0(即为低电平)则看优先级仅次于din0的din1状态决定,依次类推。因为din0到din7共8中状态,可以用3位二进制编码来表示。8-3优先编码器真值表如下表所示。 表1 8-3优先编码器真值表 二、8-3优先编码器模块的源程序 8-3优先编码器由VHDL程序来实现,VHDL语言描述如下: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY coder IS PORT ( din : IN STD_LOGIC_VECTOR(0 TO 7);output : OUT STD_LOGIC_VECTOR(0 TO 2);EANABLE: in std_logic ); END coder; ARCHITECTURE behav OF coder IS SIGNAL SINT : STD_LOGIC_VECTOR(4 DOWNTO 0); BEGIN PROCESS (din) BEGIN IF (EANABLE='0') THEN IF (din(0)='1') THEN output <= "000" ; ELSIF (din(1)='1') THEN output <= "100" ;

EDA课程设计

可编程逻辑器件电路设计课程设计报告 出租车计费器的FPGA实现 姓名:邱建华,欧鹏逸,吴丹阳 班级:09电信1 学号:200930580120 200930580117 200930690122 指导老师:陈楚 日期:2011.12.12~2011.12.20 华南农业大学工程学院

摘要 近年,随着城市活动频繁增多,市民生活节奏加快,出租车日益成为我们日常的出行必不可少得交通工具,它为我们提供了极大的便利。出租车计费器是乘客与司机双方的交易准则,是出租车中最重要的工具,它关系着交易双方的利益,用户对出租车计费器的要求也越来越高。因此,设计一个性能稳定,计费准确,易操作和可靠耐用的出租车计费器势在必行。 本课程设计内容是利用VHDL语言、PLD设计基于FPGA的出租车计费系统,选用ALTERA公司低功耗、低成本、高性能的FPGA芯片,以MAX+PLUSⅡ软件作为开发平台,设计了出租车计费器系统程序并进行了编译,功能仿真和下载。使其实现计费以及预置和模拟汽车启动、加速、停止、暂停等功能,并动态扫描显示车费数目。将计费器分成计费电路模块,数据转换模块,动态扫描模块,选择信号模块,显示模块,译码模块进行模拟仿真设计加以实现。运用顶层设计思路设计好各个底层文件对各个底层文件进行功能仿真,并用文本方法来实现顶层文件的设计,对顶层文件进行功能仿真,并把顶层文件下载到实验箱的FPGA 加以硬件分析。 关键词: 出租车计费器VHDL MAX+PLUS ⅡFPGA

目录 1 方案比较与选择(须详细阐述创新点或新见解) (01) 1.1 课题选择 (01) 1.2 方案一选择分析 (01) 1.3 方案二选择分析 (02) 1.4 选择方案一 (04) 2 底层文件仿真与分析 (04) 2.1 计数模块 (04) 2.2 转换模块 (06) 2.3 显示模块 (07) 2.4 译码模块 (08) 2.5 通道选择模块 (08) 3 顶层文件仿真与分析 (09) 3.1 顶层文件分析 (09) 3.2 顶层文件仿真 (10) 4硬件验证分析 (11) 5课程设计心得 (11) Abstract (13) 参考文献 (14) 附录(源代码)

EDA技术实践课程设计--24进制计数器

E D A技术实践课程设计 --24进制计数器 -CAL-FENGHAI.-(YICAI)-Company One1

东北石油大学EDA技术实践课程设计 年 7月 25日

EDA技术实践课程设计任务书 课程 EDA技术实践课程设计 题目 24进制计数器 专业电气工程及其自动化姓名学号 主要内容: 1.熟练掌握Quartus II软件的使用。 2.熟练掌握在QuartusII平台上用原理图或者VHDL语言进行电路设计的方法。 3.学会用例化语句对EDA电路设计中顶层电路进行描述。 基本要求: 1.熟悉仿真开发软件Quartus II的使用; 2.根据功能要求,用原理图或文本输入方式完成设计; 3.用Quartus II做波形仿真调试; 4.下载至EDA试验仪调试设计。 主要参考资料: [1]潘松,黄继业. 《EDA技术实用教程》[M].北京:科学出版社,2002. [2]卢杰,赖毅. 《VHDL与数字电路设计》[M].北京:科学出版社,2001. [3]张明. 《Verilog HDL实用教程》[M].成都:电子科技大学出版社,1999. [4]郑家龙,王小海,章安元.《集成电子技术基础教程》[M].北京:高等教育出版社,2002. [5]王金明,杨吉斌. 《数字系统设计与Verilog HDL》[M].北京:电子工业出版社,2002. 完成期限 指导教师 专业负责人 年 7 月18日

目录 1设计 (1) 2方案选择与电路原理图的设计 (1) 2.124进制计数器的基本原理 (1) 2.2设计流程图 (1) 2.3原理图 (1) 374LS161元件说明 (2) 3.1 简介 (2) 3.274ls161管脚图与介绍 (2) 3.374ls161功能表 (3) 3.474ls161主要特点 (3) 4设计过程 (4) 4.1新文件的建立 (4) 4.2宏功能模块的使用 (5) 4.3普通元件的添加 (8) 4.4 电路连接 (9) 5功能仿真 (9) 6出现的问题及调试方法 (11) 7总结 (11) 参考文献 (12) 附录VHDL语言编写的该程序清单 (13)

软件工程课程设计(自动售货机)

《软件工程》课程设计报告

一、问题描述 (一)关于自动售货机 自动售货机像磁卡、银行柜员机一样,以方便、新颖、文明、昼夜服务等特点,成为发达国家不可缺少的便民配套设施。如今的自动售货机可以为顾客提供多种服务。顾客可以根据自己的需要选择商品并投入钱币,售货机接收钱币,售出商品。 (二)自动售货机的设计 自动售货机系统是一种无人售货系统。售货时,顾客把硬币投入机器的投币口中,机器检查硬币的大小、重量、厚度及边缘类型。有效的硬币是一元币、五角币、一角币、五分币和一分币。其它货币都被认为是假币。机器拒收假币,并将其从退币孔退出。当机器接收了有效的硬币之后,将之送入硬币储藏器。顾客支付的货币根据硬币的面值进行累加。 自动售货机装有货物分配器,每个分配器中包含0 个或多个价格相同的货物。顾客通过选择货物分配器来选择货物。如果有货,且顾客支付的货币值不小于该货物的价格,货物将被分配到货物传送孔送给顾客,并将找零返回到退币孔。如果无货,则和顾客支付的货币值相等的硬币将被送到退币孔。如果顾客支付的货币值小于所选货物的价格,机器将等待顾客投进更多的货币。如果顾客决定不买所选择的货物,他投放进的硬币将从退币孔中退出。 二、需求分析 (一)UML自动售货机系统功能需求: 自动售货机系统是一种无一元等3个硬币投币口。顾客确认购货后,售货机可根据硬币的面值进行累加。 自动售货机装有货物分配器。每个货物分配器中包含零个或多个价格相同的货物。顾客通过

选择货物分配器来选择货物。如果货物分配器中有货物,而且顾客支付的货币值不小于该货物的价格,货物将被分配到货物传送孔送给顾客,并将适当的零钱返回到退币孔。如果分配器是空的,则和顾客支付的货币值相等的硬币将被送加到退币孔。如果顾客支付的货币值少于所选择的分配器中的货物的价格,机器将等待顾客投进更多的货币。如果顾客决定不买所选择的货物,将所投硬币从退币孔退出。 (二)UML自动售货机系统控制要求: 根据售货机自动控制系统的流程可以知道自动售货机的主要系统包括:计币系统、比较系统、选择系统、饮料供应系统、退币系统和报警系统。 1.计币系统: 当有顾额色买饮料时,投入的钱币经过感应器,感应器记忆投币的个数关且传送到检测系统(即电子天平)和计币系统。只有当电子天平测量的重量少于误差值时,允许计币系统进行叠加钱币,叠加的钱币数据存放在数据寄存器中。如果不正确时,认为是假币。既定出投币,既定出系统,等待新顾客。 2.比较系统: 投入完毕后,系统会把钱币数据和可以购买饮料的价格进行区间比较,当投入的钱币小于2元时,指示灯亮,显示投入的钱币不足。此时可以再投币或选择退币。当投稿的钱币在2~3元之间时,汔水选择指示灯长亮。当大于3元时,汔水和咖啡的指示灯同时长亮。此时可以选择饮料或选择退币。 3.选择系统: 比较电路完成后选择电路指示灯是长亮的,当按下汽水或咖啡选择时,相应的选择指示灯由长亮转为以1秒为周期闪烁。当饮料供应完毕时,闪烁同时停止。

相关文档
最新文档