eda自动售货机课程设计

上传人:第*** 文档编号:34190403 上传时间:2018-02-21 格式:DOCX 页数:8 大小:22KB
返回 下载 相关 举报
eda自动售货机课程设计_第1页
第1页 / 共8页
eda自动售货机课程设计_第2页
第2页 / 共8页
eda自动售货机课程设计_第3页
第3页 / 共8页
eda自动售货机课程设计_第4页
第4页 / 共8页
eda自动售货机课程设计_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《eda自动售货机课程设计》由会员分享,可在线阅读,更多相关《eda自动售货机课程设计(8页珍藏版)》请在金锄头文库上搜索。

1、一、设计目的 1.熟悉状态机的使用。2.了解用 VHDL 语言实现状态机的过程。二、设计内容本系统模拟一个自动售票机:所售邮票的价钱分别为:6 角和 8 角;按键设置 S1:按一下一角,S2:按一下 5 角,S3:按一下一元,S8:选择邮票面值,按一下当 D1_1 亮表示选择 6 角邮票,按一下 D1_2 亮表示选择 8 角邮票,S7: 取消操作。D1_6D1_8:找回的零钱 D1_1: 指示 6 角邮票D1_2: 指示 8 角邮票 D1_4: 提示邮票送出三、设计原理有限状态机 FSM 及其设计技术是实用数字系统设计中实现高效率、高可靠逻辑控制的重要途径。传统的状态机设计方法需进行繁琐的状态

2、分配、绘制状态表、化简次态方程等,而利用 VHDL 可以避免这些繁琐的过程,直接利用状态转换图进行状态机的描述,所有的状态均可表达为 CASE_WHEN 结构中的一条CASE 语句,而状态的转移则通过 IF_THEN_ELsE 语句实现。四、管脚分配 实验符号 对应附录符号 管脚money0 S1 PIN_66money1 S2 PIN-67money2 S3 PIN_68rst RESET PIN_240commodity6 D1_1 PIN_215commodity8 D1_2 PIN_217give_change0 D1_8 PIN_224give_change1 D1_7 PIN_22

3、5give_change2 D1_6 PIN_213stamp S8 PIN_75back S7 PIN_76clk100hz Clock PIN_29sell D1_4 PIN_207五、使用说明本程序是一个自动处理人机信息交换的程序,它能根据人们的需要,显示邮票的面值,在付款和付款取消的时候给出相应指示,处理交易中出现的各种情况,并且能在交易后显示是否交易成功。六、流程图设计七、程序设计如下:library ieee;初始定义投入壹角硬币的处理电路模块投入五角硬币的处理电路模块投入壹元硬币的处理电路模块选择邮票模块确认与取消处理电路模块退币处理电路模块出货电路模块use ieee.std_

4、logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity vendor isport(reset :in std_logic; -系统内部给其他顾客重新操作的复位信号clk :in std_logic; -由外接信号发生器提供的1024Hz 系统时钟信号ok_buy :in std_logic; -购买确认的按键信号cancel_buy :in std_logic; -购买取消的按键信号coin_1 :in std_logic;- 投入壹角硬币的动作按键coin_5 :in std_lo

5、gic; -投入五角硬币的动作按键coin_10 :in std_logic; -投入壹圆硬币的动作按键select_liu_yp :in std_logic; -选择六角邮票的按键信号select_ba_yp :in std_logic; -选择八角邮票的按键信号led_liu_yp_ok :out std_logic; -灯亮显示还有六角邮票led_ba_yp_ok :out std_logic; -灯亮显示还有八角邮票led_liu_yp_sel :out std_logic; -灯亮显示六角邮票选择键被按led_ba_yp_sel :out std_logic; -灯亮显示八角邮票选择

6、键被按led_buy :out std_logic; -灯亮显示按了购买确认键led_cancel :out std_logic; -灯亮显示按了购买取消键led_one :out std_logic;-1 个 LED,投入 1 个 1 角硬币亮一个 LEDled_five :out std_logic;-3 个 LED,投入 1 个五角硬币亮一个 LEDled_ten :out std_logic;-2 个 LED,投入 1 个壹圆硬币亮一个 LEDDOUT:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);led_liu_yp_out :out std_logic;-灯亮显

7、示六角邮票已出货led_ba_yp_out :out std_logic -灯亮显示八角邮票已出货);end;architecture arch of vendor issignal ok :std_logic;-用来维持 ok_buy 的状态signal cancel :std_logic;-用来维持 cancel_buy 的状态signal money_ok1 :std_logic;-投入金额正确signal money_ok2 :std_logic;-投入金额正确signal return_clk :std_logic;-退币的闪烁信号 4Hzsignal liu_yp_choice :

8、std_logic;-用来维持 select_liu_yp 的状态 signal ba_yp_choice :std_logic;-用来维持 select_ba_yp 的状态signal total_amount_one:integer range 0 to 1;-壹角硬币的累计投入金额signal total_amount_five:integer range 0 to 5;-五角硬币的累计投入金额signal total_amount_ten :integer range 0 to 10;-壹圆硬币的累计投入金额signal total_amount_6 :integer range 0

9、to 6;-壹圆硬币的累计投入金额signal total_amount_8 :integer range 0 to 8;-壹圆硬币的累计投入金额signal liu_yp_out :std_logic;-六角邮票已经出货的信号signal ba_yp_out :std_logic;-八角邮票已经出货的信号 begincoin_1_counting:block -投入壹角硬币的处理电路模块beginprocess(reset,coin_1)beginif reset=1 then total_amount_one=6 then money_ok1=8 then money_ok2DOUTDOU

10、TDOUTDOUTDOUTDOUTDOUTDOUTDOUTDOUTDOUTDOUTDOUTDOUTDOUTDOUTDOUTDOUTDOUTDOUTDOUTDOUTDOUTDOUTDOUTDOUTDOUTDOUTDOUTDOUTDOUTDOUTDOUTDOUTDOUTDOUT=1111111;END CASE;end if;end if;end process;end block;give_check:block -出货电路模块beginliu_yp_out=1 when (money_ok1=1 and ok=1 and liu_yp_choice=1)else 0;led_liu_yp_out=liu_yp_out; ba_yp_out=1 when (money_ok2=1 and ok=1 and ba_yp_choice=1)else 0;led_ba_yp_out=ba_yp_out; end block;end arch;八、设计总结:通过这次小学期设计让我更加深入的了解了 VHDL 语言的使用及其设计方法,在设计过程中遇到很多问题,通过自己和小组成员的共同努力,把所遇到的问题一一克服,在解决问题的过程中对 VHDL 的实际应用有了很大的提高九、参考文献:1 高峰.单片微型计算机原理与接口技术.科学出版社, 2007

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号