欢迎来到天天文库
浏览记录
ID:35627274
大小:57.31 KB
页数:8页
时间:2019-04-03
《EDA自动售货机课程设计》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、一、设计目的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及其设计技术是实用数字系统设计中实现高效率、高可靠逻辑控制的重要途径
2、。传统的状态机设计方法需进行繁琐的状态分配、绘制状态表、化简次态方程等,而利用VHDL可以避免这些繁琐的过程,直接利用状态转换图进行状态机的描述,所有的状态均可表达为CASE_WHEN结构中的一条CASE语句,而状态的转移则通过IF_THEN_ELsE语句实现。四、管脚分配实验符号对应附录符号管脚money[0]S1PIN_66money[1]S2PIN-67money[2]S3PIN_68rstRESETPIN_240commodity6D1_1PIN_215commodity8D1_2PIN_21
3、7give_change[0]D1_8PIN_224give_change[1]D1_7PIN_225give_change[2D1_6PIN_213stampS8PIN_75backS7PIN_76clk100hzClockPIN_29sellD1_4PIN_207五、使用说明本程序是一个自动处理人机信息交换的程序,它能根据人们的需要,显示邮票的面值,在付款和付款取消的时候给出相应指示,处理交易中出现的各种情况,并且能在交易后显示是否交易成功。初始定义投入壹角硬币的处理电路模块投入五角硬币的处理电路
4、模块投入壹元硬币的处理电路模块选择邮票模块确认与取消处理电路模块退币处理电路模块出货电路模块六、流程图设计七、程序设计如下:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_arith.all;useieee.std_logic_unsigned.all;entityvendorisport(reset:instd_logic;--系统内部给其他顾客重新操作的复位信号clk:instd_logic;--由外接信号发生器提供的1024Hz系
5、统时钟信号ok_buy:instd_logic;--购买确认的按键信号cancel_buy:instd_logic;--购买取消的按键信号coin_1:instd_logic;--投入壹角硬币的动作按键coin_5:instd_logic;--投入五角硬币的动作按键coin_10:instd_logic;--投入壹圆硬币的动作按键select_liu_yp:instd_logic;--选择六角邮票的按键信号select_ba_yp:instd_logic;--选择八角邮票的按键信号led_liu_yp
6、_ok:outstd_logic;--灯亮显示还有六角邮票led_ba_yp_ok:outstd_logic;--灯亮显示还有八角邮票led_liu_yp_sel:outstd_logic;--灯亮显示六角邮票选择键被按led_ba_yp_sel:outstd_logic;--灯亮显示八角邮票选择键被按led_buy:outstd_logic;--灯亮显示按了购买确认键led_cancel:outstd_logic;--灯亮显示按了购买取消键led_one:outstd_logic;--1个LED,投
7、入1个1角硬币亮一个LEDled_five:outstd_logic;--3个LED,投入1个五角硬币亮一个LEDled_ten:outstd_logic;--2个LED,投入1个壹圆硬币亮一个LEDDOUT:OUTSTD_LOGIC_VECTOR(6DOWNTO0);led_liu_yp_out:outstd_logic;--灯亮显示六角邮票已出货led_ba_yp_out:outstd_logic--灯亮显示八角邮票已出货);end;architecturearchofvendorissignal
8、ok:std_logic;--用来维持ok_buy的状态signalcancel:std_logic;--用来维持cancel_buy的状态signalmoney_ok1:std_logic;--投入金额正确signalmoney_ok2:std_logic;--投入金额正确signalreturn_clk:std_logic;--退币的闪烁信号4Hzsignalliu_yp_choice:std_logic;--用来维持select_liu_yp的状态
此文档下载收益归作者所有