基于VHDL语言自动售货机设计实验报告-绝对原创

基于VHDL语言自动售货机设计实验报告-绝对原创

ID:42329892

大小:122.51 KB

页数:7页

时间:2019-09-12

基于VHDL语言自动售货机设计实验报告-绝对原创_第1页
基于VHDL语言自动售货机设计实验报告-绝对原创_第2页
基于VHDL语言自动售货机设计实验报告-绝对原创_第3页
基于VHDL语言自动售货机设计实验报告-绝对原创_第4页
基于VHDL语言自动售货机设计实验报告-绝对原创_第5页
资源描述:

《基于VHDL语言自动售货机设计实验报告-绝对原创》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、自动售货机设计实验报告一设计题目:g)自动售货机设计FPGA模块模拟自动售货机的工作过程,要求如下(1)售货机有两个进币孔,可以输入硬币和纸币,售货机有两个进币孔,一个是输入硬币,一个是输入纸币,硬币的识别范围是5角和1元的硬币,纸币的识别范围是1元、5元,10元,20元,50元,100元。乘客可以连续多次投入钱币。(2)顾客可以选择的商品种类有16种,价格分别为1-16元,顾客可以通过输入商品的编号来实现商品的选择。即有一个小键盘(0-9按键)来完成,比如输入15时要先输入1,再输入5。(3)顾客选择完商品后,可以选择需要的数量。然后可以继续选择商品及其数量,每次可以选

2、择最多三个商品。然后显示出所需金额。顾客此时可以投币,并且显示已经投币的总币值。当投币值达到或超过所需币值后,售货机出货,并扣除所需金额,并找出多余金额。在投币期间,顾客可以按取消键取消本次操作,钱币自动退出。二程序代码:三程序实现功能:FPGA模块模拟自动售货机:(1)售货机有两个进币孔,分别输入硬币和纸币,硬币的识别范围是5角和1元的硬币,纸币的识别范围是1元、5元,10元,20元,50元,100元。乘客可以连续多次投入钱币。(2)顾客可以选择的商品种类有16种,价格分别为1-16元,顾客可以通过输入商品的编号来实现商品的选择。(3)顾客选择完商品后,可以选择需要的数

3、量。然后可以继续选择商品及其数量,每次最多选择最种商品,每种商品最多购买三个。然后显示出所需金额。顾客此时可以投币,并且显示已经投币的总币值。当投币值达到或超过所需币值后,售货机出货,并扣除所需金额,并找出多余金额。在投币期间,顾客可以按取消键取消本次操作,钱币自动退出。四程序功能模块分析:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_arith.all;useieee.std_logic_unsigned.all;实体说明:entitysellorisport(clk:instd_logic;--系统时

4、钟sel,cancel,reset:instd_logic;--选择、取消、开始(用于进入初始状态)变量定义:coin:instd_logic_vector(1downto0);--5角硬币、1元硬币crash:instd_logic_vector(5downto0);--100元、50元、20元、10元、5元、一元纸币item:instd_logic_vector(3downto0);--16种商品quantity:instd_logic_vector(1downto0);--商品数量(一次最多购买3件)change_out:outstd_logic_vector(10

5、downto0);--找零item_out:outstd_logic_vector(3downto0);--是否购买了商品(1表示有商品出来、0表示没有商品出来)change:outstd_logic);--是否有找零endsellor;结构体说明:architecturebehaveofsellorissignalprice:std_logic_vector(7downto0);signalcounter:std_logic_vector(10downto0);--币数计数器signaltotal_price:std_logic_vector(10downto0);--

6、控制系统的时钟信号typestate_typeis(initial_state,item1_state,quantity_state,money_state,sell_state,change_state);signalstate:state_type;signaltemp:std_logic_vector(1downto0);signalquan:std_logic_vector(3downto0);begincom:process(reset,sel,clk)beginif(clk'eventandclk='1')thenifreset='1'thenstate<=i

7、nitial_state;temp<="00";quan<="0000";endif;casestateiswheninitial_state=>item_out<="0000";--出票口关闭change_out<="00000000000";--找零口关闭total_price<="00000000000";--票价总额记录清零counter<="00000000000";--投入钱币总额记录清零change<='0';state<=item1_state;设定initial_state选择物品程序:whenitem1_s

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。