ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:30.75KB ,
资源ID:1356146      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-1356146.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(自动售邮票机的控制电路设计.docx)为本站会员(b****2)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

自动售邮票机的控制电路设计.docx

1、自动售邮票机的控制电路设计 公司内部档案编码:OPPTR-OPPT28-OPPTL98-OPPNN08自动售邮票机的控制电路设计题目:自动售邮票机的控制电路设计 用两个发光二极管分别模拟售出面值为6角和8角的邮票,购买者可以通过开关选择一种一种面值的邮票,灯亮表示邮票售出,用开关分别模拟1角、5角和1元硬币投入,用发光二极管分别代表找回的剩余的硬币,每次只能售出一枚邮票,当所投硬币达到或超过购买者所选面值时,售出一枚邮票,并找回剩余的硬币,回到初始状态;当所投硬币值不足面值时,可以通过一个复位键退回所投硬币,回到初始状态。EDA实验设计报告 题 目:自动售邮票机的控制电路设计 班 级: 姓 名

2、: 指导教师: 完成时间: 2011-5-30 1、设计目标与要求用两个发光二极管分别模拟售出面值为6角和8角的邮票,购买者可以通过开关选择一种一种面值的邮票,灯亮表示邮票售出,用开关分别模拟1角、5角和1元硬币投入,用发光二极管分别代表找回的剩余的硬币,每次只能售出一枚邮票,当所投硬币达到或超过购买者所选面值时,售出一枚邮票,并找回剩余的硬币,回到初始状态;当所投硬币值不足面值时,可以通过一个复位键退回所投硬币,回到初始状态。2、设计方案 1、整体方框图 售出邮票 2、设计原理利用状态机模拟输入累加的钱的总数,通过判决电路对输入的钱的总值进行判断,根据判断结果做出售票、找零、复位等相应的动作

3、。而对状态机得应用应注意其设计步骤:a 逻辑抽象。分析给定的逻辑问题,搞清楚输入和输出,通常取原因或者条件为输入,结果为输出。然后定义输入输出逻辑状态和每个电路状态的含义,并对电路各个状态进行排序和它们之间的转换关系搞清楚。这个过程非常需要严谨务实的作风,因为定义电路的状态的优劣会影响你的整个设计。如果大方向都没有搞好,接下来的设计会变得艰难,甚至走入死角。到时候又回过头来重新定义分析。b 通过从实际问题分析出来的时序问题,通过画出状态图一目了然搞清楚它们之间的转换关系。并对状态图进行化简优化。对在相同的输入下有相同输出,并转换到同样一个次态的。要进行合并,这样设计出来的状态机会更简单,高效。

4、 3、 设计思路利用状态机,分别模拟所输入的钱的累积值,根据输入的钱的面值的不同,进入不同的次态,在各个不同的状态下,又通过比较所输入的钱的总值与所选邮票的面值,做出售出邮票并找出相应的零钱。在下述实验原理中,进程一为脉冲发生电路,不断的通过脉冲变化来扫描是否有相应的输入。进程二是状态转换,将次态的值重新付给现态,不断的改变现有状态。进程三中,首先判断了是选择的何种面值的邮票,而且在复位信号没有被按下的情况下对所售面值为六毛的邮票进行了分析处理,从刚开始输入为零时,根据输入不同的面值的钱来判断下一个状态是什么,并且对在每个相应状态下应该做什么进行了指明,例如如果刚开始输入了一毛,则由初始状态转

5、到输入了一毛的这个状态,如果此时继续输入钱,根据输入的面值进入下一个对应状态,而如果此时按下复位信号,则找出这一毛钱,当然这时是不会售出邮票的,同时现态恢复为初始状态在选购六毛邮票的情况下,设投币初始状态为ST0,如果投入一枚一毛硬币为(累积一毛)ST1, 如果投入一枚五毛硬币为(累积五毛)ST5,如果投入一枚一元硬币则输出一枚邮票并且找零四毛且次态重新定义为初始状态ST0;在ST1状态下如果再次输入一枚一毛硬币(累计两毛)为ST2,如果投入一枚五毛硬币(累计六毛)则输出一枚邮票且次态重新定义为初始状态ST0,如果投入一枚一元硬币(累计一块一)则输出一枚邮票并且找零五毛且次态重新定义为初始状态

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

7、且找零三毛且次态重新定义为初始状态ST0,如果投入一枚一元硬币(累计一块四)则输出一枚邮票并且找零八毛且次态重新定义为初始状态ST0;在ST5状态下如果再次输入一枚一毛硬币(累计六毛)则输出一枚邮票并且态重新定义为初始状态ST0,如果投入一枚五毛硬币(累计一元)则输出一枚邮票并且找零四毛且次态重新定义为初始状态ST0,如果投入一枚一元硬币(累计一块五)则输出一枚邮票并且找零九毛且次态重新定义为初始状态ST0。如果选择的邮票面值为八毛,七基本原理和六毛面值邮票的一样,在这里就不赘述了。如果在累计钱数小于邮票面值的情况下按下复位键,这时找零端口的输出为此时的钱的总和,能够实现退钱是通过在每个状态下

8、定义了两个找零信号,在为按复位键的情况下是将信号SIG_ZHAO赋值给找零信号端口,而在按下复位键的情况下,找零信号端口的输出为ZHAORE这个信号的值,而这两个信号的值在不同状态下有相应的不同的值,根据以上思路我们便可以进行程序的编写了。4 实验程序 LIBRARY IEEE;USE ZIDONG ISPORT ( RESET : IN STD_LOGIC; -复位信号CLK,LIU,BA : IN STD_LOGIC; -INYM,INWM,INYY : IN STD_LOGIC; -钱输入端口YOU : OUT STD_LOGIC; -邮票出口ZHAO : OUT STD_LOGIC_V

9、ECTOR(3 DOWNTO 0); -找钱出口END ZIDONG;ARCHITECTURE BEHAV OF ZIDONG ISTYPE STATES IS (ST0,ST1,ST2,ST3,ST4,ST5,ST6,ST7);-状态定义SIGNAL YIMAO,WUMAO,YIKUAI : STD_LOGIC; -钱输入信号SIGNAL SIG_YOU : STD_LOGIC; -输出对应信号SIGNAL SIG_ZHAO : STD_LOGIC_VECTOR(3 DOWNTO 0);-找零对应信号SIGNAL ZHAORE :STD_LOGIC_VECTOR(3 DOWNTO 0);-复

10、位时的找零SIGNAL CURRENT_STATE : STATES; -现态SIGNAL NEXT_STATE : STATES; -次态BEGINP1 :PROCESS(CLK) -将输入送相应的信号BEGINIF CLKEVENT AND CLK=1 THENYIMAO = INYM;WUMAO = INWM;YIKUAI =INYY;END IF;END PROCESS P1;p2 :PROCESS(RESET,CLK)-次态给现态BEGINIF RESET = 1 THEN CURRENT_STATE = ST0;ELSIF CLKEVENT AND CLK=1 THENCURREN

11、T_STATE = NEXT_STATE;END IF;END PROCESS p2;p3 :PROCESS(CLK,CURRENT_STATE,NEXT_STATE,YIMAO,WUMAO,YIKUAI)-状态转换BEGINIF RESET =1 THEN SIG_ZHAO=ZHAORE;NEXT_STATE ZHAORE=0000; -状态S0 IF YIMAO = 1 THEN -输入1毛 SIG_YOU = 0; -不出邮票 SIG_ZHAO = 0000; -不找钱 NEXT_STATE = ST1; -次态为ST1 ELSIF WUMAO = 1 THEN -输入5毛 SIG_YO

12、U = 1; -出邮票 SIG_ZHAO = 0000; -不找钱 NEXT_STATE = ST5; -次态为ST5 ELSIF YIKUAI =1 THEN -输入1块 SIG_YOU = 1; -出邮票 SIG_ZHAO = 0100; -找4毛 NEXT_STATE = ST0; -次态为ST0 ELSE SIG_YOU = 0; SIG_ZHAO = 0000; -不输入 都不变 NEXT_STATE ZHAORE=0001 ; IF YIMAO = 1 THEN SIG_YOU = 0; SIG_ZHAO = 0000; NEXT_STATE = ST2; ELSIF WUMAO

13、= 1 THEN SIG_YOU = 1; SIG_ZHAO = 0000; NEXT_STATE = ST0; ELSIF YIKUAI = 1 THEN SIG_YOU = 1; SIG_ZHAO = 0101; NEXT_STATE = ST0; ELSE SIG_YOU = 0; SIG_ZHAO = 0000; NEXT_STATE ZHAORE=0010; IF YIMAO = 1 THEN SIG_YOU = 0; SIG_ZHAO = 0000; NEXT_STATE = ST3; ELSIF WUMAO = 1 THEN SIG_YOU = 1; SIG_ZHAO = 000

14、1; NEXT_STATE = ST0; ELSIF YIKUAI = 1 THEN SIG_YOU = 1; SIG_ZHAO = 0110; NEXT_STATE = ST0; ELSE SIG_YOU = 0; SIG_ZHAO = 0000; NEXT_STATE ZHAORE=0011; IF YIMAO = 1 THEN SIG_YOU = 0; SIG_ZHAO = 0000; NEXT_STATE = ST4; ELSIF WUMAO= 1 THEN SIG_YOU = 1; SIG_ZHAO = 0010; NEXT_STATE = ST0; ELSIF YIKUAI= 1

15、THEN SIG_YOU = 1; SIG_ZHAO = 0111; NEXT_STATE = ST0; ELSE SIG_YOU = 0; SIG_ZHAO = 0000; NEXT_STATE ZHAORE=0100; IF YIMAO = 1 THEN SIG_YOU = 0; SIG_ZHAO = 0000; NEXT_STATE = ST5; ELSIF WUMAO= 1 THEN SIG_YOU = 1; SIG_ZHAO = 0011; NEXT_STATE = ST0; ELSIF YIKUAI= 1 THEN SIG_YOU = 1; SIG_ZHAO = 1000; NEX

16、T_STATE = ST0; ELSE SIG_YOU = 0; SIG_ZHAO = 0000; NEXT_STATE ZHAORE=0101; IF YIMAO = 1 THEN SIG_YOU = 1; SIG_ZHAO = 0000; NEXT_STATE = ST0; ELSIF WUMAO= 1 THEN SIG_YOU = 1; SIG_ZHAO = 0100; NEXT_STATE = ST0; ELSIF YIKUAI= 1 THEN SIG_YOU = 1; SIG_ZHAO = 1001; NEXT_STATE = ST0; ELSE SIG_YOU = 0; SIG_Z

17、HAO = 0000; NEXT_STATE NULL; -其他状态 空操作END CASE;ELSIF BA=1THEN -选择8毛的邮票CASE CURRENT_STATE ISWHEN ST0 = ZHAORE=0000; -状态S0 IF YIMAO = 1 THEN -输入1毛 SIG_YOU = 0; -不出邮票 SIG_ZHAO = 0000; -不找钱 NEXT_STATE = ST1; -次态为ST1 ELSIF WUMAO = 1 THEN -输入5毛 SIG_YOU = 0; -不出邮票 SIG_ZHAO = 0000; -不找钱 NEXT_STATE = ST5; -次

18、态为ST5 ELSIF YIKUAI =1 THEN -输入1块 SIG_YOU = 1; -出邮票 SIG_ZHAO = 0010; -找2毛 NEXT_STATE = ST0; -次态为ST0 ELSE SIG_YOU = 0; SIG_ZHAO = 0000; -不输入 都不变 NEXT_STATE ZHAORE=0001 ; IF YIMAO = 1 THEN SIG_YOU = 0; SIG_ZHAO = 0000; NEXT_STATE = ST2; ELSIF WUMAO = 1 THEN SIG_YOU = 0; SIG_ZHAO = 0000; NEXT_STATE = ST

19、6; ELSIF YIKUAI = 1 THEN SIG_YOU = 1; SIG_ZHAO = 0011; NEXT_STATE = ST0; ELSE SIG_YOU = 0; SIG_ZHAO = 0000; NEXT_STATE ZHAORE=0010; IF YIMAO = 1 THEN SIG_YOU = 0; SIG_ZHAO = 0000; NEXT_STATE = ST3; ELSIF WUMAO = 1 THEN SIG_YOU = 0; SIG_ZHAO = 0000; NEXT_STATE = ST7; ELSIF YIKUAI = 1 THEN SIG_YOU = 1

20、; SIG_ZHAO = 0100; NEXT_STATE = ST0; ELSE SIG_YOU = 0; SIG_ZHAO = 0000; NEXT_STATE ZHAORE=0011; IF YIMAO = 1 THEN SIG_YOU = 0; SIG_ZHAO = 0000; NEXT_STATE = ST4; ELSIF WUMAO= 1 THEN SIG_YOU = 1; SIG_ZHAO = 0000; NEXT_STATE = ST0; ELSIF YIKUAI= 1 THEN SIG_YOU = 1; SIG_ZHAO = 0101; NEXT_STATE = ST0; E

21、LSE SIG_YOU = 0; SIG_ZHAO = 0000; NEXT_STATE ZHAORE=0100; IF YIMAO = 1 THEN SIG_YOU = 0; SIG_ZHAO = 0000; NEXT_STATE = ST5; ELSIF WUMAO= 1 THEN SIG_YOU = 1; SIG_ZHAO = 0001; NEXT_STATE = ST0; ELSIF YIKUAI= 1 THEN SIG_YOU = 1; SIG_ZHAO = 0110; NEXT_STATE = ST0; ELSE SIG_YOU = 0; SIG_ZHAO = 0000; NEXT

22、_STATE ZHAORE=0101; IF YIMAO = 1 THEN SIG_YOU = 0; SIG_ZHAO = 0000; NEXT_STATE = ST6; ELSIF WUMAO= 1 THEN SIG_YOU = 1; SIG_ZHAO = 0010; NEXT_STATE = ST0; ELSIF YIKUAI= 1 THEN SIG_YOU = 1; SIG_ZHAO = 0111; NEXT_STATE = ST0; ELSE SIG_YOU = 0; SIG_ZHAO = 0000; NEXT_STATE ZHAORE=0110; IF YIMAO = 1 THEN

23、SIG_YOU = 0; SIG_ZHAO = 0000; NEXT_STATE = ST7; ELSIF WUMAO= 1 THEN SIG_YOU = 1; SIG_ZHAO = 0011; NEXT_STATE = ST0; ELSIF YIKUAI= 1 THEN SIG_YOU = 1; SIG_ZHAO = 1000; NEXT_STATE = ST0; ELSE SIG_YOU = 0; SIG_ZHAO = 0000; NEXT_STATE ZHAORE=0111; IF YIMAO = 1 THEN SIG_YOU = 1; SIG_ZHAO = 0000; NEXT_STA

24、TE = ST0; ELSIF WUMAO= 1 THEN SIG_YOU = 1; SIG_ZHAO = 0100; NEXT_STATE = ST0; ELSIF YIKUAI= 1 THEN SIG_YOU = 1; SIG_ZHAO = 1001; NEXT_STATE = ST0; ELSE SIG_YOU = 0; SIG_ZHAO = 0000; NEXT_STATE NULL; -其他状态 空操作END CASE;END IF;END PROCESS p3;p4 :PROCESS(CLK,SIG_YOU,SIG_ZHAO)-将输出信号送输出端BEGINIF CLKEVENT A

25、ND CLK=1 THENYOU = SIG_YOU;ZHAO = SIG_ZHAO;END IF;END PROCESS p4;END BEHAV;三、电路的连接调试与问题 在程序编写完毕后按照编译仿真后的下载图正确连接电路,通过高低电平开关模拟钱的输入,通过在实验箱上的模拟仿真,发现在输入端存在输入一次而模拟机却扫描到有多次输入这一问题,后来我们将扫描脉冲与输入端的脉冲进行了分离,也就是定义了两个脉冲,扫描脉冲依旧频率很快,不断对输入信号进行扫描,另外将输入端得脉冲频率调低,经过这样的改进有所进步,不再是输入一次而被多次的扫描,但是这样的改进也并没有彻底解决问题,经过我们的讨论我们发现,我

26、们的设计最适合弹片式的输入端,那样在一次输入的情况下,弹片只可能被压下一次,这样脉冲也只能在弹片被压下的那一刻扫描到有输入存在,在很短的时间内弹片又恢复原有状态,这样就避免了一次输入被误认为有多次输入的这一问题。四、自我评价与心得体会 这是一次有意义的EDA实验设计课题,也是一次综合性很强的实验,通过这次实验课题设计,不仅加深了我们对EDA设计思路的理解,更重要的是对VHDL语言以及其中的状态机的设计与应用有了更进一步的了解,使我们的设计思路有了进一步的提高,而且进一步的回顾并巩固了以前所学的知识。也让我们尝到一步步将问题克服收获到成功的喜悦,坚定了我们克服困难解决问题的意志,在这一次实验中,我们小组也充分发挥了小组的力量,认识到合作的精神所在,通过集体的合作,培养了我们每个人实际动手、分析问题、解决问题的能力,让我们每个人都受益匪浅!

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2