自动售货机课程设计 下载本文

内容发布更新时间 : 2024/6/26 20:17:29星期一 下面是文章的全部内容请认真阅读。

合 肥 学 院

课 程 设 计 报 告

题 目: 自动售货机课程设计

系 别: 电子信息与电气工程系

专 业: 通信工程

班 级:

学 号:___

姓 名:

导 师:

日期: 2016.5.30

成 绩:

一、引言

本次课程设计研究自动售货机的主要功能模块,主要包括商品选择模块、余额计算模块、退币模块,由于条件上的限制,对投币模块中的货币检测未进行处理。相应的主要功能有选择货物,购买,出货找零,显示,延时和时控功能。通过使用VHDL语言,基于FPGA可编程芯片,并通过使用QUARTUSⅡ软件进行程序设计,模拟仿真,功能验证,以更好的来理解和掌握自动售货机控制系统的工作原理和设计方法,以及学习和掌握基于EDA的电子产品设计方法,进一步加深对VHDL语言以及QUARTUSⅡ软件、FPGA可编程芯片的认识与了解。

二、项目要求

设计一个自动售货机控制程序,它的投币口每次可以投入1元、2元、5元,且规定投入1元或2元后不得再投入5元。当投入总值等于或超过设定值(4元),售货机就自动送出货物并找回多余的钱。

1、基本要求按照上面要求,编写程序,实现售单一商品的功能。

2、扩展要求:在基本要求的基础上,完善电路,实现售多个商品的功能(设定值应该相应增加)。

三、设计方案

本售货机可销售两种商品,单价分别为3元和4元。投币口每次可以投入1元、2元、5元,且规定投入1元或2元后不得再投入5元,投入总额为3元时,不能再投入2元或者5元,当投入总值超过设定值3元或者4元的情况下,选择商品一或者商品二,售货机就自动送出货物并找回多余的钱。

四、项目代码及其分析

VHDL程序代码:

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; ENTITY ZDSHJ IS

PORT(CLK,RESET:IN STD_LOGIC;

DIN:IN STD_LOGIC_VECTOR(2 DOWNTO 0); COMB_OUTPUTS,GIVE_CHANGE:OUT STD_LOGIC); END ENTITY;

ARCHITECTURE behav OF ZDSHJ IS TYPE FSM_ST IS (S0,S1,S2,S3,S4,S5); SIGNAL current_state,next_state:FSM_ST; BEGIN

REG:PROCESS(CLK)BEGIN

IF RESET='1' THEN current_state<=s0; ELSIF CLK'EVENT AND CLK='1' THEN current_state<=next_state; END IF; END PROCESS REG;

COM:PROCESS( DIN,current_state) BEGIN

CASE current_state IS WHEN s0=>COMB_OUTPUTS<='0'; GIVE_CHANGE<='0'; IF DIN=\ ELSIF DIN=\ ELSIF DIN=\ ELSE next_state<=s0; END IF;

WHEN s1=>COMB_OUTPUTS<='0'; GIVE_CHANGE<='0';

IF DIN=\