赞
踩
名称:基于FPGA的手机配件自动售货机设计VHDL代码ISE basys2开发板(文末获取)
软件:ISE
语言:VHDL
代码功能:
手机配件自动售货机
以华为手机配件为例,可供选择的产品及价格如下:半入耳式耳机38元,5A数据线44元,快充充电器60元,P30硅胶保护壳99元。一次只买一种产品,只能插入10元、50元和100元三种面值的钞票。功能:①选择所要购买的配件。②插入钞票。当插入的钞票总金额=售价时,输出相应配件;当钞票总金额<售价时,等待继续插入钞票;当钞票总金额>售价时,在输出相应配件的同时找零。③完成交易,等待下一次交易。
用按钮代表插入10元、50元或100元钞票,用拨码开关选择配件,用LED灯显示是否获得配件和是否找零,用数码管显示插入的总金额(若插入100元,只显示后两位00)和找零金额。用有限状态机进行设计,详细描述所有可能的状态,画出状态转换关系图。用VHDL语言编程实现各功能模块,用顶层文件将各功能模块连接起来,画出模块间的连接关系图;完成软硬件设计、仿真、综合、下载、测试与实现。
本代码已在basys2开发板验证,basys2开发板如下,其他开发板可以修改管脚适配:
1. 工程文件
2. 程序文件
3. 程序编译
4. RTL图
5. 管脚分配
6. Testbench
分频模块
控制模块
显示模块
7. 仿真图
分频模块
控制模块
显示模块
部分代码展示:
LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY auto_sell IS PORT ( clk : IN STD_LOGIC; rst : IN STD_LOGIC;--复位 HUAWEI_parts : IN STD_LOGIC_VECTOR(1 DOWNTO 0);--手机配件选择 toubi_10_btn : IN STD_LOGIC;--投币10元 toubi_50_btn : IN STD_LOGIC;--投币50元 toubi_100_btn : IN STD_LOGIC;--投币100元 confirm : IN STD_LOGIC;--确认 parts_out_led : OUT STD_LOGIC;--输出配件指示灯 charge_out_led : OUT STD_LOGIC;--找零指示灯 bit_sel : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);--数码管位选 seg_sel : OUT STD_LOGIC_VECTOR(7 DOWNTO 0)--数码管段选 ); END auto_sell; ARCHITECTURE behave OF auto_sell IS --状态机模块 COMPONENT state_machine IS PORT ( clk : IN STD_LOGIC; rst : IN STD_LOGIC;--复位 HUAWEI_parts : IN STD_LOGIC_VECTOR(1 DOWNTO 0);--手机配件选择 toubi_10_btn : IN STD_LOGIC;--投币10元 toubi_50_btn : IN STD_LOGIC;--投币50元 toubi_100_btn : IN STD_LOGIC;--投币100元 confirm : IN STD_LOGIC;--确认 money_in : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);--总投币 money_charge : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);--找零 parts_out_led : OUT STD_LOGIC;--输出配件指示灯 charge_out_led : OUT STD_LOGIC--找零指示灯 );
扫描文章末尾的公众号二维码
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。