自动售货机控制系统

Xuzhou Institute of Technology

可编程器件及应用 课程设计报告

设计名称: 自动售货机控制系统

学 院: 信电工程学院 专业班级: 13电信

学生姓名: 学 号: 指导教师:

贾燕玲

2016 年 6 月 30 日

目 录

一、前言 ........................................................................................................................................ 2 二、设计项目及要求.................................................................................................................. 1 三、设计流程 ............................................................................................................................... 3

(一)设计说明 . .................................................................................................................. 3 (二)流程说明 . .................................................................................................................. 3 四、软件设计 ............................................................................................................................... 4

(一)顶层电路图 .............................................................................................................. 4 (一)状态转换 . .................................................................................................................. 4 (二)模块组成 . .................................................................................................................. 5

1、总控模块.................................................................................................................. 5 2、译码模块.................................................................................................................. 9 3、显示模块................................................................................................................ 10 五、各模块软件仿真及分析 .......................................................................................... 12 (一)顶层电路仿真 . ....................................................................................................... 12 (二)主控模块仿真 . ....................................................................................................... 1(三)显示模块仿真...........................................................................................................1(四)译码模块仿真.................................................................,........................................1 六、总结 ...................................................................................................................................... 15 附录 ............................................................................................................................................... 16

1、初始状态实物图 . ......................................................................................................... 16 2、购买状态实物图 . ......................................................................................................... 16

3、合作分工..........................................................................................................................17

一、前言

随着科技的发展和社会的进步,自动化商业机械有了越来越广泛的的应用,自动售货机作为自动化商业机械的代表被广泛用于公共场所自动售货,给人们的生活带来了极大的方便。特别在发达的国家,自动售货机已经十分普及,自动售货机可售出各种成型包装的小商品,各种袋装,盒装,软瓶装等小商品。因其无需专人值守而可以每天24 小时售货,被称为“无人小超市”。在我国,由于多种原因,自动售货机的市场推广缓慢,随着商品市场的不断繁荣,自动售货机和自动服务设施必将逐步得到广泛的应用。

本文设计研究自动售货机的主要功能模块,主要包括货币处理模块、余额计算模块、显示模块,延时和时控模块。相应的功能有选择货物,多次购买,出货找零。

本文是通过使用VHDL 语言,基于KX GW48FPGA 芯片,并通过使用QUARTUS II软件进行程序设计,模拟仿真,功能验证,以更好的来理解和掌握自动售货机控制系统的工作原理和设计方法,以及学习和掌握基于EDA 的电子产品设计方法,进一步加深对VHDL 语言以及QUARTUS II 软件、FPGA 可编程芯片的认识与了解。

FPGA 是现场可编程门阵列(Field programmable gates array) 的英文简称。是有可编程逻辑模块组成的数字集成电路(IC)。这些逻辑模块之间用可配置的互联资源。设计者可以对这些器件进行编程来完成各种各样的任务

二、设计项目及要求

设计一个自动售货机,它能够完成对货物信息的存储,硬币处理,余额计算和显示等功能。

(1)自动售货机可以出售四种货物,每种商品的数量和单价在初始化时设定,并存储在存储器中。

(2)采用模拟开关分别模拟5角和1元的硬币来进行购物,并通过按键来选择商品。 (3)系统能够根据用户输入的硬币,判断钱币是否够,当所投硬币达到或超过购物者所选面值时,则根据顾客的要求自动售货,并找回剩余的硬币,然后回到初始状态。当所投硬币不够时,则给出提示,并通过一个复位键退回所投硬币,然后回到初始状态。

(一)设计说明

本文设计的自动售货机可销售四种货物,售货机可识别1元和0.5元的两种货币,在一次购买过程中,可购买一个或多个商品,系统会自动计算所需钱数和找零的钱数并自动找零。另外有3个发光二极管、6个LCD 数码管:两个用来显示所需金额,两个用来显示已付金额,两个用来显示找零数。

(二)流程说明

本文设计的自动售货机当通电时,表示一次销售的开始。顾客选择一种商品或多种商品后就进入投币状态。若不投币,则自动返回初始状态。投币后,系统自动计算所投钱数。若投币够,则出货并找零。若投币不够,如果顾客没有继续投币,则退币并回到初始状态。本系统的投币销售流程图如图1所示。

图1 投币销售流程图

(一)顶层电路图

(二) 状态转换

本文所设计的自动售货机进程可以分为7个状态:a,b,c,d,e,f,g.a 为开始状态,当有商品选择键按下时即进入b 状态(投币状态)。当有货币投入,但投币不够时,即进入c 状态(继续投币),若投币够了,即进入d 状态(出货找零),之后进入f 状态(延时)后返回a(状态) 。

(三)模块组成

1、总控模块

(1)模块说明

总控模块是本系统最重要的模块,该模块大体有5个输入端口和6个输出端口,如图1-1所示。其输入端口包括clk 、coin1(投入一元货币)、coin5(投入0.5元货币)、

good1

(选择货物一)、good2(选择货物二)、good3(选择货物三)、good4(选择货物四),输出端口有paid (已投入多少钱)、needed (还需多少钱)moneyout (找零)、success (灯亮表示交易成功)、failure (灯亮表示交易失败)、showmoneyout (灯亮表示正在找零)。该模块实现了本系统最重要的交易过程,包括选择商品、投入货币,计算剩余金额,找零出货等。

(2)模块源程序

Library ieee;

use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity shouhuoji is

port(clk1: in std_logic; coin1:in std_logic; coin5:in std_logic; gd1:in std_logic; gd2:in std_logic; gd3:in std_logic; gd4:in std_logic;

paid:out std_logic_vector(7 downto 0); needed:out std_logic_vector(7 downto 0); success:out std_logic; failure:out std_logic;

showmoneyout:out std_logic;

moneyout:out std_logic_vector(7 downto 0)); end shouhuoji;

architecture behav of shouhuoji is

type state_type is (qa,qb,qe,qc,qg,qd,qf);--定义七个状态 signal current_state :state_type:=qa; signal q:integer range 0 to 100; begin

process(clk1)

variable paidtemp:std_logic_vector(7 downto 0);--定义变量 variable neededtemp:std_logic_vector(7 downto 0); variable backmoney:std_logic_vector(7 downto 0); variable pricetemp:std_logic_vector(7 downto 0); begin

if clk1'event and clk1='1' then case current_state is

when qa=>paidtemp:="00000000";neededtemp:="00000000"; backmoney:="00000000";pricetemp:="00000000";q

showmoneyout

if gd1='1' or gd2='1' or gd3='1' or gd4='1' then current_state

neededtemp:=pricetemp;

Elsif gd2='1' then pricetemp:=pricetemp+"00001010"; neededtemp:=pricetemp;

Elsif gd3='1' then pricetemp:=pricetemp+"00010100"; neededtemp:=pricetemp;

Elsif gd4='1' then pricetemp:=pricetemp+"00011001"; neededtemp:=pricetemp; end if; end if;

paid

when qb=> if coin1='1' or coin5='1' then

if coin1='1' then paidtemp:=paidtemp+"00001010"; else

paidtemp:=paidtemp+"00000101"; end if; end if;

if paidtemp>=pricetemp then backmoney:=paidtemp-pricetemp; neededtemp:="00000000";current_state

else neededtemp:=pricetemp-paidtemp;backmoney:="00000000"; current_state

paid

if gd1='1' or gd2='1' or gd3='1' or gd4='1'then q

Elsif gd2='1' then pricetemp:=pricetemp+"00000101"; neededtemp:=pricetemp;

Elsif gd3='1' then pricetemp:=pricetemp+"00010100"; neededtemp:=pricetemp;

Elsif gd4='1' then pricetemp:=pricetemp+"00011001"; neededtemp:=pricetemp; end if; end if;

paid

else current_state

when qe=>failure

else current_state

when qc=>if coin1='1' or coin5='1' then

if coin1='1'then paidtemp:=paidtemp+"00001010"; else

paidtemp:=paidtemp+"00000101"; end if;

if paidtemp>=pricetemp then backmoney:=paidtemp-pricetemp;

neededtemp:="00000000";current_state

else neededtemp:=pricetemp-paidtemp;backmoney:="00000000"; current_state

paid

if coin1/='1'and coin5/='1' then if q

else current_state

when qg=>failure

showmoneyout

when qd=>success

if backmoney>"00000000"then showmoneyout

current_stateif q

end process; end behav;

(3)总控模块封装电路图

图1-1 总控模块封装电路图

2、译码模块

(1)模块说明

该模块有一个输入端口和两个输出端口,如图1-2所示。输入端口是一个8位的二进制数,输出端口bcd0、bcd1是两个4位的BCD 码。该模块的主要的功能是实现将主控模块输出的二进制数(paid 、needed 、moneyout )转换成BCD 码,以便输出到七段数码管上显示出来。该模块的原理是将一个8位的二进制转换成2个4位的BCD 码,分为高四位和低四位。

(2)模块源程序

Library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all; entity code1 is

port(b:in std_logic_vector(7 downto 0); bcd0:out std_logic_vector(3 downto 0); bcd1:out std_logic_vector(3 downto 0)); end code1;

architecture one of code1 is begin process(b) begin case b is

when"00000000"=>bcd0bcd0bcd0bcd0bcd0bcd0bcd0

when"00000111"=>bcd0bcd0bcd0bcd0bcd0bcd0bcd0bcd0bcd0bcd0bcd0bcd0bcd0

when"00010100"=>bcd0null; end case; end process; end one;

(3)二进制译码模块封装电路图

图1-2 二进制译码模块封装电路图

3、显示模块

(1)模块说明

该模块有clk2、gao1、di1、gao2、di2、gao3、di3七个输入以及控制6个数码管显示的两个输出wei 和duan ,此外6个LCD 数码管,如图1-3所示:两个用来显示所需金额,两个用来显示已付金额,两个用来显示找零数。

(2)模块源程序 library ieee;

use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; entity erjinzhiyima is

port (clk2:in std_logic;

gao1,di1,gao2,di2,gao3,di3:in std_logic_vector(3 downto

0);

wei:out std_logic_vector(2 downto 0); duan1:out std_logic_vector(7 downto 0)); end entity erjinzhiyima;

architecture behv of erjinzhiyima is

signal dout: std_logic_vector(3 downto 0); signal wei1:std_logic_vector(2 downto 0); begin

process (clk2)

variable count:std_logic_vector(2 downto 0); begin

if RISING_EDGE(clk2) then --动态扫描显示输出 if count="101" then count:="000";

else count:=count+1; end if;

case count is

when "000"=>doutdoutdoutdoutdoutdoutnull; end case; end if;

end process; process(dout) begin

case dout is

when "0000"=>duan1duan1duan1duan1duan1duan1duan1duan1duan1duan1duan1

end behv;

(3)显示模块封装电路图

图1-3 显示模块封装电

五、各模块软件仿真及分析

(一)顶层电路仿真

图 5-1 顶层电路仿真图

此仿真显实的是顾客选择购买货物三,货物三的实际价格为2元,而顾客实际投入了

1.5元,购买失败,给出一个失败信号和退钱信号。

(二)主控模块仿真

图 5-2 主控模块仿真图

此仿真实现的是顾客购买货物三,货物三的价格为2元,而顾客实际投币1.5元,所以购买失败,退回投入的1.5元。

(三)显示模块仿真

图5-3 显示模块仿真图

此仿真实现的是顾客投入了1.5元,而购买货物还需投入0.5元,数码管上显示顾客已经投币1.5元,还需投入0.5元。

(四)译码模块仿真

图5-4 译码模块仿真图

此仿真实现的是将主控模块传过来的八位BCD 码分为两个四位BCD 码。

六、总结

这个设计实现了一个简单的自动售货机的功能,程序由硬件描述语言vhdl 编写。程序中采用分块编写的方式,将一个本来复杂的体系用简单的逻辑表述出来。这样做设计显得很流畅,每个成员都不是独立存在的。

通过完成本次课程设计,使我对EDA 技术有了更进一步的了解和掌握。从上世纪末以来,数字电子技术在迅速的发展,有力的推动了社会生产力的发展和社会信息化的提高。在其推动下,数字电子技术的应用已经渗透到了人类生活的各个方面,对于我们来说,学好EDA 这门课有着至关重要的意义。在编写程序中,让我们明白很多道理。虽然自己能够编写出实现基本要求的代码,可是在代码的很多地方都出现杂乱,冗长,完全背离了代码简练,易懂的原则,让我们明白了要多参考别人优秀的程序,借鉴别人的优点,使自己的编写能力得到提到。在各个进程中,对各个进程间的信号量传递要用易懂的字符替代,这对于读懂代码有很大的帮助。虽然在编程中犯了很多错误,但是通过不断的修改,不断的请教别人和借鉴别人的经验,最终实现了成功的编写了本次课程设计的代码,并且在解决错误,明白错误中让我们获益匪浅。对于本学期EDA 这门课有了更进一步的了解,对于一个陌生的题目也知道了如何下手。

总之,只有通过自己的动手,才能真正的理解上课时的内容,才能真正的掌握EDA 这门技术。

附录

1、初始状态实物图

2、购买状态实物图

3、合作分工

Xuzhou Institute of Technology

可编程器件及应用 课程设计报告

设计名称: 自动售货机控制系统

学 院: 信电工程学院 专业班级: 13电信

学生姓名: 学 号: 指导教师:

贾燕玲

2016 年 6 月 30 日

目 录

一、前言 ........................................................................................................................................ 2 二、设计项目及要求.................................................................................................................. 1 三、设计流程 ............................................................................................................................... 3

(一)设计说明 . .................................................................................................................. 3 (二)流程说明 . .................................................................................................................. 3 四、软件设计 ............................................................................................................................... 4

(一)顶层电路图 .............................................................................................................. 4 (一)状态转换 . .................................................................................................................. 4 (二)模块组成 . .................................................................................................................. 5

1、总控模块.................................................................................................................. 5 2、译码模块.................................................................................................................. 9 3、显示模块................................................................................................................ 10 五、各模块软件仿真及分析 .......................................................................................... 12 (一)顶层电路仿真 . ....................................................................................................... 12 (二)主控模块仿真 . ....................................................................................................... 1(三)显示模块仿真...........................................................................................................1(四)译码模块仿真.................................................................,........................................1 六、总结 ...................................................................................................................................... 15 附录 ............................................................................................................................................... 16

1、初始状态实物图 . ......................................................................................................... 16 2、购买状态实物图 . ......................................................................................................... 16

3、合作分工..........................................................................................................................17

一、前言

随着科技的发展和社会的进步,自动化商业机械有了越来越广泛的的应用,自动售货机作为自动化商业机械的代表被广泛用于公共场所自动售货,给人们的生活带来了极大的方便。特别在发达的国家,自动售货机已经十分普及,自动售货机可售出各种成型包装的小商品,各种袋装,盒装,软瓶装等小商品。因其无需专人值守而可以每天24 小时售货,被称为“无人小超市”。在我国,由于多种原因,自动售货机的市场推广缓慢,随着商品市场的不断繁荣,自动售货机和自动服务设施必将逐步得到广泛的应用。

本文设计研究自动售货机的主要功能模块,主要包括货币处理模块、余额计算模块、显示模块,延时和时控模块。相应的功能有选择货物,多次购买,出货找零。

本文是通过使用VHDL 语言,基于KX GW48FPGA 芯片,并通过使用QUARTUS II软件进行程序设计,模拟仿真,功能验证,以更好的来理解和掌握自动售货机控制系统的工作原理和设计方法,以及学习和掌握基于EDA 的电子产品设计方法,进一步加深对VHDL 语言以及QUARTUS II 软件、FPGA 可编程芯片的认识与了解。

FPGA 是现场可编程门阵列(Field programmable gates array) 的英文简称。是有可编程逻辑模块组成的数字集成电路(IC)。这些逻辑模块之间用可配置的互联资源。设计者可以对这些器件进行编程来完成各种各样的任务

二、设计项目及要求

设计一个自动售货机,它能够完成对货物信息的存储,硬币处理,余额计算和显示等功能。

(1)自动售货机可以出售四种货物,每种商品的数量和单价在初始化时设定,并存储在存储器中。

(2)采用模拟开关分别模拟5角和1元的硬币来进行购物,并通过按键来选择商品。 (3)系统能够根据用户输入的硬币,判断钱币是否够,当所投硬币达到或超过购物者所选面值时,则根据顾客的要求自动售货,并找回剩余的硬币,然后回到初始状态。当所投硬币不够时,则给出提示,并通过一个复位键退回所投硬币,然后回到初始状态。

(一)设计说明

本文设计的自动售货机可销售四种货物,售货机可识别1元和0.5元的两种货币,在一次购买过程中,可购买一个或多个商品,系统会自动计算所需钱数和找零的钱数并自动找零。另外有3个发光二极管、6个LCD 数码管:两个用来显示所需金额,两个用来显示已付金额,两个用来显示找零数。

(二)流程说明

本文设计的自动售货机当通电时,表示一次销售的开始。顾客选择一种商品或多种商品后就进入投币状态。若不投币,则自动返回初始状态。投币后,系统自动计算所投钱数。若投币够,则出货并找零。若投币不够,如果顾客没有继续投币,则退币并回到初始状态。本系统的投币销售流程图如图1所示。

图1 投币销售流程图

(一)顶层电路图

(二) 状态转换

本文所设计的自动售货机进程可以分为7个状态:a,b,c,d,e,f,g.a 为开始状态,当有商品选择键按下时即进入b 状态(投币状态)。当有货币投入,但投币不够时,即进入c 状态(继续投币),若投币够了,即进入d 状态(出货找零),之后进入f 状态(延时)后返回a(状态) 。

(三)模块组成

1、总控模块

(1)模块说明

总控模块是本系统最重要的模块,该模块大体有5个输入端口和6个输出端口,如图1-1所示。其输入端口包括clk 、coin1(投入一元货币)、coin5(投入0.5元货币)、

good1

(选择货物一)、good2(选择货物二)、good3(选择货物三)、good4(选择货物四),输出端口有paid (已投入多少钱)、needed (还需多少钱)moneyout (找零)、success (灯亮表示交易成功)、failure (灯亮表示交易失败)、showmoneyout (灯亮表示正在找零)。该模块实现了本系统最重要的交易过程,包括选择商品、投入货币,计算剩余金额,找零出货等。

(2)模块源程序

Library ieee;

use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity shouhuoji is

port(clk1: in std_logic; coin1:in std_logic; coin5:in std_logic; gd1:in std_logic; gd2:in std_logic; gd3:in std_logic; gd4:in std_logic;

paid:out std_logic_vector(7 downto 0); needed:out std_logic_vector(7 downto 0); success:out std_logic; failure:out std_logic;

showmoneyout:out std_logic;

moneyout:out std_logic_vector(7 downto 0)); end shouhuoji;

architecture behav of shouhuoji is

type state_type is (qa,qb,qe,qc,qg,qd,qf);--定义七个状态 signal current_state :state_type:=qa; signal q:integer range 0 to 100; begin

process(clk1)

variable paidtemp:std_logic_vector(7 downto 0);--定义变量 variable neededtemp:std_logic_vector(7 downto 0); variable backmoney:std_logic_vector(7 downto 0); variable pricetemp:std_logic_vector(7 downto 0); begin

if clk1'event and clk1='1' then case current_state is

when qa=>paidtemp:="00000000";neededtemp:="00000000"; backmoney:="00000000";pricetemp:="00000000";q

showmoneyout

if gd1='1' or gd2='1' or gd3='1' or gd4='1' then current_state

neededtemp:=pricetemp;

Elsif gd2='1' then pricetemp:=pricetemp+"00001010"; neededtemp:=pricetemp;

Elsif gd3='1' then pricetemp:=pricetemp+"00010100"; neededtemp:=pricetemp;

Elsif gd4='1' then pricetemp:=pricetemp+"00011001"; neededtemp:=pricetemp; end if; end if;

paid

when qb=> if coin1='1' or coin5='1' then

if coin1='1' then paidtemp:=paidtemp+"00001010"; else

paidtemp:=paidtemp+"00000101"; end if; end if;

if paidtemp>=pricetemp then backmoney:=paidtemp-pricetemp; neededtemp:="00000000";current_state

else neededtemp:=pricetemp-paidtemp;backmoney:="00000000"; current_state

paid

if gd1='1' or gd2='1' or gd3='1' or gd4='1'then q

Elsif gd2='1' then pricetemp:=pricetemp+"00000101"; neededtemp:=pricetemp;

Elsif gd3='1' then pricetemp:=pricetemp+"00010100"; neededtemp:=pricetemp;

Elsif gd4='1' then pricetemp:=pricetemp+"00011001"; neededtemp:=pricetemp; end if; end if;

paid

else current_state

when qe=>failure

else current_state

when qc=>if coin1='1' or coin5='1' then

if coin1='1'then paidtemp:=paidtemp+"00001010"; else

paidtemp:=paidtemp+"00000101"; end if;

if paidtemp>=pricetemp then backmoney:=paidtemp-pricetemp;

neededtemp:="00000000";current_state

else neededtemp:=pricetemp-paidtemp;backmoney:="00000000"; current_state

paid

if coin1/='1'and coin5/='1' then if q

else current_state

when qg=>failure

showmoneyout

when qd=>success

if backmoney>"00000000"then showmoneyout

current_stateif q

end process; end behav;

(3)总控模块封装电路图

图1-1 总控模块封装电路图

2、译码模块

(1)模块说明

该模块有一个输入端口和两个输出端口,如图1-2所示。输入端口是一个8位的二进制数,输出端口bcd0、bcd1是两个4位的BCD 码。该模块的主要的功能是实现将主控模块输出的二进制数(paid 、needed 、moneyout )转换成BCD 码,以便输出到七段数码管上显示出来。该模块的原理是将一个8位的二进制转换成2个4位的BCD 码,分为高四位和低四位。

(2)模块源程序

Library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all; entity code1 is

port(b:in std_logic_vector(7 downto 0); bcd0:out std_logic_vector(3 downto 0); bcd1:out std_logic_vector(3 downto 0)); end code1;

architecture one of code1 is begin process(b) begin case b is

when"00000000"=>bcd0bcd0bcd0bcd0bcd0bcd0bcd0

when"00000111"=>bcd0bcd0bcd0bcd0bcd0bcd0bcd0bcd0bcd0bcd0bcd0bcd0bcd0

when"00010100"=>bcd0null; end case; end process; end one;

(3)二进制译码模块封装电路图

图1-2 二进制译码模块封装电路图

3、显示模块

(1)模块说明

该模块有clk2、gao1、di1、gao2、di2、gao3、di3七个输入以及控制6个数码管显示的两个输出wei 和duan ,此外6个LCD 数码管,如图1-3所示:两个用来显示所需金额,两个用来显示已付金额,两个用来显示找零数。

(2)模块源程序 library ieee;

use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; entity erjinzhiyima is

port (clk2:in std_logic;

gao1,di1,gao2,di2,gao3,di3:in std_logic_vector(3 downto

0);

wei:out std_logic_vector(2 downto 0); duan1:out std_logic_vector(7 downto 0)); end entity erjinzhiyima;

architecture behv of erjinzhiyima is

signal dout: std_logic_vector(3 downto 0); signal wei1:std_logic_vector(2 downto 0); begin

process (clk2)

variable count:std_logic_vector(2 downto 0); begin

if RISING_EDGE(clk2) then --动态扫描显示输出 if count="101" then count:="000";

else count:=count+1; end if;

case count is

when "000"=>doutdoutdoutdoutdoutdoutnull; end case; end if;

end process; process(dout) begin

case dout is

when "0000"=>duan1duan1duan1duan1duan1duan1duan1duan1duan1duan1duan1

end behv;

(3)显示模块封装电路图

图1-3 显示模块封装电

五、各模块软件仿真及分析

(一)顶层电路仿真

图 5-1 顶层电路仿真图

此仿真显实的是顾客选择购买货物三,货物三的实际价格为2元,而顾客实际投入了

1.5元,购买失败,给出一个失败信号和退钱信号。

(二)主控模块仿真

图 5-2 主控模块仿真图

此仿真实现的是顾客购买货物三,货物三的价格为2元,而顾客实际投币1.5元,所以购买失败,退回投入的1.5元。

(三)显示模块仿真

图5-3 显示模块仿真图

此仿真实现的是顾客投入了1.5元,而购买货物还需投入0.5元,数码管上显示顾客已经投币1.5元,还需投入0.5元。

(四)译码模块仿真

图5-4 译码模块仿真图

此仿真实现的是将主控模块传过来的八位BCD 码分为两个四位BCD 码。

六、总结

这个设计实现了一个简单的自动售货机的功能,程序由硬件描述语言vhdl 编写。程序中采用分块编写的方式,将一个本来复杂的体系用简单的逻辑表述出来。这样做设计显得很流畅,每个成员都不是独立存在的。

通过完成本次课程设计,使我对EDA 技术有了更进一步的了解和掌握。从上世纪末以来,数字电子技术在迅速的发展,有力的推动了社会生产力的发展和社会信息化的提高。在其推动下,数字电子技术的应用已经渗透到了人类生活的各个方面,对于我们来说,学好EDA 这门课有着至关重要的意义。在编写程序中,让我们明白很多道理。虽然自己能够编写出实现基本要求的代码,可是在代码的很多地方都出现杂乱,冗长,完全背离了代码简练,易懂的原则,让我们明白了要多参考别人优秀的程序,借鉴别人的优点,使自己的编写能力得到提到。在各个进程中,对各个进程间的信号量传递要用易懂的字符替代,这对于读懂代码有很大的帮助。虽然在编程中犯了很多错误,但是通过不断的修改,不断的请教别人和借鉴别人的经验,最终实现了成功的编写了本次课程设计的代码,并且在解决错误,明白错误中让我们获益匪浅。对于本学期EDA 这门课有了更进一步的了解,对于一个陌生的题目也知道了如何下手。

总之,只有通过自己的动手,才能真正的理解上课时的内容,才能真正的掌握EDA 这门技术。

附录

1、初始状态实物图

2、购买状态实物图

3、合作分工


相关文章

  • 基于PLC的自动门设计
  • 摘 要 随着科学技术的日新月异,我们的生活发生了巨大的变化.一个智能化.自动化的社会已经开始呈现于我们的眼前,这为我们提供了非常多的便利.其中自动门就是自动化进程中的一个典型代表,此设计就是运用所学的知识,结合实际需要而进行研究的. 为了增 ...查看


  • 工业自动化行业现状及发展趋势分析
  • 工业自动化行业现状调研分析及市场前景 预测报告(2015版) 报告编号:1A39175 行业市场研究属于企业战略研究范畴,作为当前应用最为广泛的咨询服务,其研究成果以报告形式呈现,通常包含以下内容: 一份专业的行业研究报告,注重指导企业或投 ...查看


  • 电气自动化考研方向
  • 电机 与电器 电力系统 高低压绝缘技术 电力电子 电工理论与新技术 就这5个 了 考数一 和电路 其实也不难的 看你考什么学校了 建议考电力系统 电气工程及自动化专业考研要考哪些专业课? 初试多为 电路 或电路与数字电子技术 复试多为 电机 ...查看


  • 电气工程及自动化专业考研学校科目
  • 电气工程及自动化专业考研学校科目 2008年03月21日 星期五 20:29 北京工业大学 421自动控制原理 复试:1.电子技术 2.计算机原理 北京航空航天大学 [双控] 432控制理论综合或433控制工程综合 [检测] 433控制工程 ...查看


  • 自动化概论论文
  • 我对自动化的认识 摘要:简要介绍对自动化的认识,专业知识和对自动化未来的展望,通过本文可以了解自动化的应用范围.发展历史.作用与地位和自动化简单的专业知识,同时发表一下本人对自动化学习的一些观点. 关键词:自动化 概念 专业知识 展望 学习 ...查看


  • 专业课考试科目
  • 北京工业大学 421自动控制原理 复试:1.电子技术2.计算机原理 北京航空航天大学 [双控]432控制理论综合或433控制工程综合 [检测]433控制工程综合或436检测技术综合 [系统]431自动控制原理或451材料力学或841概率与数 ...查看


  • 认识自动化专业
  • 认识自动化专业 作者:熊诗远华中科技大学自动化学院江西80801 摘要 根据在信息技术导论课程上所学的知识,表达对自动化专业的认识.自动化是一个具有时代特征.包含内容丰富的学科. 关键词:认识:发展:方向:就业:信心. 引言 自动化是指机器 ...查看


  • 机械自动化概述
  • 第一章 概述 制造自动化是人类在长期的社会生产实践中不断追求的主要目标.随着科学技术的不断进步,自动化制造的水平也愈来愈高.采用自动化技术,不仅可以大大降低劳动强度,而且还可以提高产品质量,改善制造系统适应市场变化的能力,从而提高企业的市场 ...查看


  • 电力系统调度自动化论文
  • 电网调度自动化系统可靠性的应用研究 课程名称:电力系统调度自动化 学 院: 专 业:电气工程及其自动化 班 级: 学 号: 姓 名: 2015年11月 摘要 电力二次设备和系统是电网安全稳定运行的根本保障,可靠性是其基本要求之一.近年来,世 ...查看


  • 办公自动化意义
  • 政府要上网,企业要效益,办公自动化已成为机关和企业现代化管理的必然趋势.在目前政府机构及企事业单位大力改革的外部环境下,办公自动化对提高政府机关或企业各部门的办公效率,提高决策的科学性.正确性,提高综合管理水平和竞争能力都有着十分重要的意义 ...查看


热门内容