自动售货机控制系统.doc_第1页
自动售货机控制系统.doc_第2页
自动售货机控制系统.doc_第3页
自动售货机控制系统.doc_第4页
自动售货机控制系统.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1设计题目自动售货机控制系统设计要求设计一个模拟自动售货机的逻辑控制电路1、它有两个投币口分别为一元投币口和五角投币口。2、每次只能投入一枚一元或五角硬币。3、投入一元五角硬币后机器自动给出一瓶矿泉水。4、投入两元硬币后,在给出一瓶矿泉水的同时找回一枚五角的硬币。设计过程使用VHDL语言的原因:利用语言的灵活性及功能强大的EDA工具,可以轻松完成硬件的功能扩充与升级,还可以实现更复杂的数字系统,整个设计过程相对于传统的设计方法,有较大的突破。VHDL语言作为现代数字系统的重要设计工具,以其灵活、简洁的设计风格在电路设计中发挥着越来越重要的作用。选用状态机的原因:我们提出了两套方案:一种是进程,一种是状态机。进程就是把程序分割成很多个独立的版快。相互之间用信号连接,设计过程中出现了很多问题。因为VHDL语言跟纯软件语言存在很大的区别,必须考虑硬件是否能够实现,所以VHDL语言不能随便使用信号,且不可以随便使用时钟上升沿驱动进程。因此我们选用了另一种方案状态机实现。有限状态机FSM(FiniteStateMachine)及其设计技术是实用数字系统设计中实现高效率、高可靠逻辑控制的重要途径。所有的状态均可表达为CASE_WHEN结构中的一条CASE语句,而状态的转移则通过IF_THEN_ELsE语句实现。此外,与VHDL的其它描述方式相比,状态机的VHDL表述丰富多样,程序层次分明,结构清晰,易读易懂;在排错、修改和模块移植方面也有其独到的特点。成绩评定指导教师评语课程设计等级2目录一、课程设计题目、内容与要求1、设计题目2、具体要求二、系统设计1、设计思路2、系统原理(包含:框图等阐述)与设计说明等内容三、系统实现注:此部分阐述具体实现,包含主要逻辑单元、模块、源代码等内容四、系统仿真五、硬件验证(操作)说明六、总结七、参考书目3一、课程设计题目、内容与要求1、设计题目自动售货机控制系统2、具体要求设计一个模拟自动售货机的逻辑控制电路1、它有两个投币口分别为一元投币口和五角投币口。2、每次只能投入一枚一元或五角硬币。3、投入一元五角硬币后机器自动给出一瓶矿泉水。4、投入两元硬币后,在给出一瓶矿泉水的同时找回一枚五角的硬币二、系统设计1、设计思路根据设计要求可以对售货机的基本功能进行确定。它应该能够区分一元和五角硬币,并且能够对投入的货币进行累加。当所投币值达到商品售价。就自动送出商品。因为题目要求只有一种商品并且其售价为一元五。根据这一特殊点可设计方案如下:用两个开关分别模拟投入一元和五角硬币时产生的信号,高电平有效。用两颗LED分别模拟售出商品和找钱信号,灯亮有效。具体功能实现如下:1、连续两次将IN-YUAN置1,则OUT灯会亮,且ZHAOQIAN也会亮。表示买一元五的矿泉水,投了两元钱,则售出商品,找回五角零钱。2、连续三次将IN-JIAO置1,则OUT灯会亮,而ZHAOJIAN不会亮。表示买一元五的矿泉水,当所投钱币达到一元五时就自动售出商品,完成交易。3、分别将IN-YUAN,IN-JIAO置1,则OUT灯会亮,而ZHAOJIAN不会亮。原理同2。2、系统原理自动售货机的所有信号均由同步时钟信号clk的正边沿触发。由于售货机的硬币接受器一般是一个机械设置装置,投币时产生的信号要比同步信号clk要慢得多,一般可持续好几个周期,必须对投币输入信号进行处理,使每一次投币时在clk脉冲周期内只能产生一个脉冲作为功能控制模块的投币驱动信号。因此可将该系统分为两个模块。ShuruSHJ_CTRLOUTZHAOJIAN(图一)自动售货机控制系统各模块连接图自动售货机控制系统模块之间连接如图一所示,其中“shuru”为投币输入信PIN-YUANAPIN-JIAOBCLKAZBYCLK4号处理模块,它是利用D触发器和几个门电路组成的一个简单时序逻辑电路。主要起到对输入信号进行存储和延时的作用。其输出信号作为功能控制模块“SHJ_CTRL”的输入驱动信号。功能控制模块“SHJ_CTRL”则用VHDL语言实现。它主要起到对输入信号进行分析处理的作用。是整个系统的核心。其中,OUT为自动售货机的矿泉水输出信号,ZHAOQIAN为找钱输出信号。三、系统实现1、功能控制模块1)自动售货机控制功能的状态描述取投币信号为输入逻辑变量,投入一枚一元硬币时用A=1表示,未投入时A=0。投入一枚五角硬币用B=1表示,未投入时B=0。给出矿泉水和找钱为两个输出变量,分别用Z和Y表示,给出矿泉水时Z=1,不给时Z=0,找回一枚五角硬币时Y=1,不找时Y=0。根据上面的功能描述,可用三个状态S0,S1,S2表示,未投币前的初始状态为S0,投入五角硬币以后为S1,投入一元硬币后(包括投入一枚一元硬币和投入两枚五角硬币的情况)为S2,再投入一枚五角硬币后电路返回S0,同时输出为Z=1,Y=0;如果投入的是一枚一元硬币,则电路也应能返回S0,同时输出为Z=1,Y=1。根据上面的分析可得到状态转换图如图二所示。00/00AB/ZY01/1001/00或10/1110/1010/0000/0001/0000/00图二2)自动售货机功能控制模块的VHDL实现根据上面所示的状态转换图,用VHDL语言中的CASE_WHEN结构和IF_THEN_ELSE语句实现控制功能,源程序如下:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYshj_ctrlISPORT(A,B:INSTD_LOGIC;clk:INSTD_LOGIC;Z,Y:OUTSTD_LOGIC);ENDshj_ctrl;ARCHITECTUREbehaOFshj_ctrlISTYPEstatesIS(S0,S1,S2);S2222S0oo0O0S15SIGNALstate:states;SIGNALX:STD_LOGIC_VECTOR(1DOWNTO0);BEGINXZ=0;Y=0;IF(X=01)THENstate=s1;ELSIF(X=10)THENstate=s2;ELSEstateZ=0;Y=0;IF(X=01)THENstate=s2;ELSIF(X=10)THENstate=S0;Z=1;Y=0;ELSEstateZ=0;Y=0;IF(X=01)THENstate=S0;Z=1;Y=0;ELSIF(X=10)THENstate=s0;Z=1;Y=1;ELSEstate=s2;ENDIF;ENDCASE;ENDIF;ENDPROCESS;ENDbeha;上面程序中,A、B分别为一元硬币和五角硬币驱动信号,Z为矿泉水输出信号,Y为找钱输出信号。3、投币输入信号处理模块6投币输入信号的处理电路如图三所示,其中IN_yuan和IN_jiao作为一元硬币和五角硬币的投币输入信号,A和B为相应的输出信号,作为功能控制模块的输入信号,而且A、B输出是在投币输入信号IN_yuan和IN_jiao为高电平1之后的一个周期内被设置为1。(图三)投币输入信号的处理电路(图四)投币输入电路的仿真图经过仿真结果如图四所示,实现了每次投币后在一个clk周期内只产生一个可靠的脉冲驱动信号。四、系统仿真自动售货机控制系统功能仿真整个控制系统通过MAX+PLUSII软件进行编译和仿真,仿真结果如图五所示符合电路设计要求。并把程序下载到芯片MAXEP1K10TC100-3进行验证与实际相符。图五控制系统功能仿真图7五、硬件验证(操作)说明因为实验室条件有限,无法进行具体的硬件验证。则可以先拟订方案如下:(本次实验采用EDA2000实验系统,配合相关仪器设备,进行验证。)1、将程序下载到芯片MAXEP1K10TC100-32、实物连接1)将A,B分别用导线连接开关2)CLK连接板载时钟3)Z,Y分别接LED灯4、进行模拟仿真1)连续两次将IN-YUAN置1,观察结果。2)连续三次将IN-JIAO置1,观察结果。3)分别将IN-YUAN,IN-JIAO置1,观察结果。4、分析硬件模拟和软件仿真,两者结果是否相同。六、总结通过这次EDA的实训课,我又对VHDL语言有了许多新的了解。在使用VHDL语言编程时,应合理选择信号、变量以及数据类型。因为VHDL语言是一种硬件描述语言,信号、变量均具有一定的硬件性质,并占有相应的内部资源。它与C+语言看示没有什么区别,都属高级语言。但是VH

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论