EDA课程设计报告自动售邮票的控制电路11DOC文档格式.docx

上传人:b****5 文档编号:17511346 上传时间:2022-12-06 格式:DOCX 页数:17 大小:115.17KB
下载 相关 举报
EDA课程设计报告自动售邮票的控制电路11DOC文档格式.docx_第1页
第1页 / 共17页
EDA课程设计报告自动售邮票的控制电路11DOC文档格式.docx_第2页
第2页 / 共17页
EDA课程设计报告自动售邮票的控制电路11DOC文档格式.docx_第3页
第3页 / 共17页
EDA课程设计报告自动售邮票的控制电路11DOC文档格式.docx_第4页
第4页 / 共17页
EDA课程设计报告自动售邮票的控制电路11DOC文档格式.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

EDA课程设计报告自动售邮票的控制电路11DOC文档格式.docx

《EDA课程设计报告自动售邮票的控制电路11DOC文档格式.docx》由会员分享,可在线阅读,更多相关《EDA课程设计报告自动售邮票的控制电路11DOC文档格式.docx(17页珍藏版)》请在冰豆网上搜索。

EDA课程设计报告自动售邮票的控制电路11DOC文档格式.docx

3.撰写课程设计报告.设计报告要求及格式见附件。

二、功能要求:

每次只能售出一枚邮票,当所投硬币达到或超过购买者所选面值时,售出一枚邮票,并找回剩余的硬币,回到初始状态;

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

三、进度安排:

课程设计时间为10天(2周)

1、调研、查资料1天。

2、总体方案设计2天。

3、代码设计与调试5天。

4、撰写报告1天。

5、验收1天。

指导教师:

2015年月日

专业负责人:

2015年月日

学院教学副院长:

1概述1

1.1设计背景和意义2

1.2设计任务3

1.3设计要求4

2原理设计及层次划分5

2.1工作原理6

2.2层次划分7

3软件设计8

3.1XX模块代码设计9

3.2XX模块代码设计10

4仿真及测试11

4.1XX模块仿真12

4.2XX模块仿真13

5总结14

6参考文献15

1概述

1.1设计背景和意义

EDA技术是先进的电子设计手段,随着现代社会的发展,人类社会日趋走向一个物质文明社会。

伴随着我国经济的迅速发展,人们生活水平日益提高,人们对各服务行业的自动化程序要求也就越来越高,作为服务行业的自动化装置,已经开始进入到使用单位,自动售货

机更是随处可见极大程人们的生活

1.2设计任务

用两个发光二极管分别模拟售出面值为6角和8角的邮票,购买者可以通过开关选择一种一种面值的邮票,灯亮表示邮票售出,用开关分别模拟1角、5角和1元硬币投入,用发光二极管分别代表找回的剩余的硬币,每次只能售出一枚邮票,当所投硬币达到或超过购买者所选面值时,售出一枚邮票,并找回剩余的硬币,回到初始状态;

1.3设计要求

利用所学的EDA设计方法设计自动售邮票的控制电路,熟练使用使用QUARTUSII应用软件,进一步学习使用VHDL语言、原理图等EDA设计方法进行综合题目的方法。

2原理设计及层次划分

2.1工作原理

利用状态机模拟输入累加的钱的总数,通过判决电路对输入的钱的总值进行判断,根据判断结果做出售票、找零、复位等相应的动作。

而对状态机得应用应注意其设计步骤:

a.逻辑抽象。

分析给定的逻辑问题,搞清楚输入和输出,通常取原因或者条件为输入,结果为输出。

然后定义输入输出逻辑状态和每个电路状态的含义,并对电路各个状态进行排序和它们之间的转换关系搞清楚。

这个过程非常需要严谨务实的作风,因为定义电路的状态的优劣会影响你的整个设计。

如果大方向都没有搞好,接下来的设计会变得艰难,甚至走入死角。

到时候又回过头来重新定义分析。

b.通过从实际问题分析出来的时序问题,通过画出状态图一目了然搞清楚它们之间的转换关系。

并对状态图进行化简优化。

对在相同的输入下有相同输出,并转换到同样一个次态的。

要进行合并,这样设计出来的状态机会更简单,高效。

2.2层次划分

找零

售出邮票

利用状态机,分别模拟所输入的钱的累积值,根据输入的钱的面值的不同,进入不同的次态,在各个不同的状态下,又通过比较所输入的钱的总值与所选邮票的面值,做出售出邮票并找出相应的零钱。

在下述实验原理中,进程一为脉冲发生电路,不断的通过脉冲变化来扫描是否有相应的输入。

进程二是状态转换,将次态的值重新付给现态,不断的改变现有状态。

进程三中,首先判断了是选择的何种面值的邮票,而且在复位信号没有被按下的情况下对所售面值为六毛的邮票进行了分析处理,从刚开始输入为零时,根据输入不同的面值的钱来判断下一个状态是什么,并且对在每个相应状态下应该做什么进行了指明,例如如果刚开始输入了一毛,则由初始状态转到输入了一毛的这个状态,如果此时继续输入钱,根据输入的面值进入下一个对应状态,而如果此时按下复位信号,则找出这一毛钱,当然这时是不会售出邮票的,同时现态恢复为初始状态

在选购六毛邮票的情况下,设投币初始状态为ST0,如果投入一枚一毛硬币为(累积一毛)ST1,如果投入一枚五毛硬币为(累积五毛)ST5,如果投入一枚一元硬币则输出一枚邮票并且找零四毛且次态重新定义为初始状态ST0;

在ST1状态下如果再次输入一枚一毛硬币(累计两毛)为ST2,如果投入一枚五毛硬币(累计六毛)则输出一枚邮票且次态重新定义为初始状态ST0,如果投入一枚一元硬币(累计一块一)则输出一枚邮票并且找零五毛且次态重新定义为初始状态ST0;

在ST2状态下如果再次输入一枚一毛硬币(累计三毛)为ST3,如果投入一枚五毛硬币(累计七毛)则输出一枚邮票并且找零一毛且次态重新定义为初始状态ST0,如果投入一枚一元硬币(累计一块二)则输出一枚邮票并且找零六毛且次态重新定义为初始状态ST0;

在ST3状态下如果再次输入一枚一毛硬币(累计四毛)为ST4,如果投入一枚五毛硬币(累计八毛)则输出一枚邮票并且找零两毛且次态重新定义为初始状态ST0,如果投入一枚一元硬币(累计一块三)则输出一枚邮票并且找零七毛且次态重新定义为初始状态ST0;

在ST4状态下如果再次输入一枚一毛硬币(累计五毛)为ST5,如果投入一枚五毛硬币(累计九毛)则输出一枚邮票并且找零三毛且次态重新定义为初始状态ST0,如果投入一枚一元硬币(累计一块四)则输出一枚邮票并且找零八毛且次态重新定义为初始状态ST0;

在ST5状态下如果再次输入一枚一毛硬币(累计六毛)则输出一枚邮票并且态重新定义为初始状态ST0,如果投入一枚五毛硬币(累计一元)则输出一枚邮票并且找零四毛且次态重新定义为初始状态ST0,如果投入一枚一元硬币(累计一块五)则输出一枚邮票并且找零九毛且次态重新定义为初始状态ST0。

如果选择的邮票面值为八毛,七基本原理和六毛面值邮票的一样,在这里就不赘述了。

如果在累计钱数小于邮票面值的情况下按下复位键,这时找零端口的输出为此时的钱的总和,能够实现退钱是通过在每个状态下定义了两个找零信号,在为按复位键的情况下是将信号SIG_ZHAO赋值给找零信号端口,而在按下复位键的情况下,找零信号端口的输出为ZHAORE这个信号的值,而这两个信号的值在不同状态下有相应的不同的值,根据以上思路我们便可以进行程序的编写了。

3软件设计

4代码描述

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYZIDONGIS

PORT(RESET:

INSTD_LOGIC;

--复位信号

CLK,LIU,BA:

--

INYM,INWM,INYY:

--钱输入端口

YOU:

OUTSTD_LOGIC;

--邮票出口

ZHAO:

OUTSTD_LOGIC_VECTOR(3DOWNTO0));

--找钱出口

ENDZIDONG;

ARCHITECTUREBEHAVOFZIDONGIS

TYPESTATESIS(ST0,ST1,ST2,ST3,ST4,ST5,ST6,ST7);

--状态定义

SIGNALYIMAO,WUMAO,YIKUAI:

STD_LOGIC;

--钱输入信号

SIGNALSIG_YOU:

--输出对应信号

SIGNALSIG_ZHAO:

STD_LOGIC_VECTOR(3DOWNTO0);

--找零对应信号

SIGNALZHAORE:

STD_LOGIC_VECTOR(3DOWNTO0);

--复位时的找零

SIGNALCURRENT_STATE:

STATES;

--现态

SIGNALNEXT_STATE:

--次态

BEGIN

P1:

PROCESS(CLK)--将输入送相应的信号

IFCLK'

EVENTANDCLK='

1'

THEN

YIMAO<

=INYM;

WUMAO<

=INWM;

YIKUAI<

=INYY;

ENDIF;

ENDPROCESSP1;

p2:

PROCESS(RESET,CLK)--次态给现态

IFRESET='

THEN

CURRENT_STATE<

=ST0;

ELSIFCLK'

=NEXT_STATE;

ENDPROCESSp2;

p3:

PROCESS(CLK,CURRENT_STATE,NEXT_STATE,YIMAO,WUMAO,YIKUAI)--状态转换

IFRESET='

THENSIG_ZHAO<

=ZHAORE;

NEXT_STATE<

=ST0;

--复位找钱

ELSIFLIU='

THEN

CASECURRENT_STATEIS

WHENST0=>

ZHAORE<

="

0000"

;

--状态S0

IFYIMAO='

THEN--输入1毛

SIG_YOU<

='

0'

--不出邮票

SIG_ZHAO<

="

--不找钱

NEXT_STATE<

=ST1;

--次态为ST1

ELSIFWUMAO='

THEN--输入5毛

--不出邮票

SIG_ZHAO<

--不找钱

NEXT_STATE<

=ST5;

--次态为ST5

ELSIFYIKUAI='

THEN--输入1块

SIG_YOU<

--出邮票

SIG_ZHAO<

0100"

--找4毛

NEXT_STATE<

--次态为ST0

ELSE

--不输入都不变

ENDIF;

WHENST1=>

0001"

;

=ST2;

ELSIFWUMAO='

SIG_YOU<

ELSIFYIKUAI='

0101"

WHENST2=>

0010"

=ST3;

0110"

WHENST3=>

0011"

=ST4;

ELSIFWUMAO='

ELSIFYIKUAI='

0111"

WHENST4=>

ZHAORE<

1000"

WHENST5=>

1001"

WHENOTHERS=>

NULL;

--其他状态空操作

ENDCASE;

ELSIFBA='

THEN--选择8毛的邮票

--找2毛

=ST6;

=ST7;

WHENST6=>

WHENST7=>

ENDPROCESSp3;

p4:

PROCESS(CLK,SIG_YOU,SIG_ZHAO)--将输出信号送输出端

EVENTAN

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

当前位置:首页 > 自然科学 > 化学

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

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