自动售货机控制系统的设计Word文档格式.docx

上传人:b****2 文档编号:15017884 上传时间:2022-10-26 格式:DOCX 页数:9 大小:77.62KB
下载 相关 举报
自动售货机控制系统的设计Word文档格式.docx_第1页
第1页 / 共9页
自动售货机控制系统的设计Word文档格式.docx_第2页
第2页 / 共9页
自动售货机控制系统的设计Word文档格式.docx_第3页
第3页 / 共9页
自动售货机控制系统的设计Word文档格式.docx_第4页
第4页 / 共9页
自动售货机控制系统的设计Word文档格式.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

自动售货机控制系统的设计Word文档格式.docx

《自动售货机控制系统的设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《自动售货机控制系统的设计Word文档格式.docx(9页珍藏版)》请在冰豆网上搜索。

自动售货机控制系统的设计Word文档格式.docx

系统按功能可分为分频模块、控制模块和译码输出模块。

(1)分频模块的作用是获得周期较长的时钟信号,便于操作,且不会产生按键抖动的现象。

其原理是定义两个中间信号Q、DIV_CLK,Q在外部时钟CLK的控制下循环计数,每当计数到一个设定的值时DIV_CLK的值翻转,最后将DIV_CLK赋给NEW_CLK即可,改变设定值可改变分频的大小。

(a2)控制模块是这个系统的核心模块,它具有判断按键、计算输入钱数总和、计算找零、控制显示四个作用。

它的工作原理是每当时钟上升沿到来时,判断哪个按键按下,若按下的是钱数键,则将钱数保存于中间信号COIN,若下次按下的仍是钱数键,COIN的值则加上相应的值并显示于数码管;

当物品键按下时,则将COIN的值与物品价格进行比较,然后控制找零。

(3)由于钱数可能大于9,所以译码显示模块的作用就是将钱数译码后用两个数码管显示,这样方便观察。

根据各个功能模块的功能并进行整合,可得到一个完整的自动售货机系统的整体组装设计原理图,如图2所示。

图2设计原理图

二、系统主要VHDL源程序

(1)分频器的源程序(外部时钟选用3MHz,实现3万分频)

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYCLKGENIS

PORT(CLK:

INSTD_LOGIC;

NEWCLK:

OUTSTD_LOGIC);

ENDCLKGEN;

ARCHITECTUREBEHAVEOFCLKGENIS

SIGNALQ:

INTEGERRANGE0TO14999;

SIGNALDIVCLK:

STD_LOGIC;

BEGIN

PROCESS(CLK)

IFCLK'

EVENTANDCLK='

1'

THEN

IFQ<

14999THENQ<

=Q+1;

ELSEDIVCLK<

=NOTDIVCLK;

Q<

=0;

ENDIF;

ENDPROCESS;

NEWCLK<

=DIVCLK;

ENDBEHAVE;

(2)自动售货机控制器源程序(3种钱数为1元、2元、5元;

3种物品的价格为2元、5元、10元)

LIBRARYIEEE;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYSHOUHUOJIIS

PORT(CLK:

INSTD_LOGIC;

COIN1:

--1元信号

COIN2:

--2元信号

COIN3:

--5元信号

PRICE1:

--2元商品

PRICE2:

--5元商品

PRICE3:

--10元商品

Y0:

OUTSTD_LOGIC;

--购买成功信号

Y1:

--退币信号

MONEY:

OUTSTD_LOGIC_VECTOR(3DOWNTO0);

PAYBACK:

OUTSTD_LOGIC_VECTOR(3DOWNTO0));

ENDSHOUHUOJI;

ARCHITECTUREBEHAVOFSHOUHUOJIIS

SIGNALCOIN:

STD_LOGIC_VECTOR(3DOWNTO0);

--保存钱数

SIGNALCOUT:

--保存找零

BEGIN

IFCLK'

THEN

IFCOIN1='

THENCOIN<

=COIN+1;

Y0<

='

0'

;

Y1<

ELSIFCOIN2='

=COIN+2;

ELSIFCOIN3='

=COIN+5;

ELSIFPRICE1='

THENIFCOIN>

="

0010"

THENY0<

COUT<

=COIN-2;

ELSEY0<

=COIN;

ELSIFPRICE2='

IFCOIN>

0101"

=COIN-5;

ELSEY0<

=COIN;

ENDIF;

ELSIFPRICE3='

1010"

=COIN-10;

ENDIF;

ENDPROCESS;

MONEY<

--输入的钱数

PAYBACK<

=COUT;

--找零

ENDBEHAV;

(3)译码显示源程序(总钱数应小于16元)

ENTITYXIANSHIIS

PORT(DIN:

INSTD_LOGIC_VECTOR(3DOWNTO0);

DOUT:

OUTSTD_LOGIC_VECTOR(7DOWNTO0));

ENDXIANSHI;

ARCHITECTUREBEHAVOFXIANSHIIS

PROCESS(DIN)

CASEDINIS

WHEN"

0000"

=>

DOUT<

="

00000000"

0001"

00000001"

00000010"

0011"

00000011"

WHEN"

0100"

00000100"

00000101"

0110"

00000110"

0111"

00000111"

1000"

00001000"

1001"

00001001"

00010000"

1011"

00010001"

1100"

00010010"

1101"

00010011"

1110"

00010100"

1111"

00010101"

WHENOTHERS=>

ENDCASE;

三、系统仿真与硬件验证

(1)系统的有关仿真

1)分频电路的仿真

如图3所示,为了便于仿真,在仿真时采用20分频,由图可看出

每经过10个外部时钟,新时钟翻转一次,实现了分频。

图3分频器仿真结果图

2)控制电路的仿真

如图4、图5、图6所示。

图4输入7元,购买5元商品,找零2元,Y0显示购买成功

图5输入13元,购买10元商品,找零3元,Y0显示购买成功

图6输入7元,购买10元商品,Y1显示购买失败,退币7元

3)显示电路的仿真

如图7所示,当大于9时分开显示。

图7显示电路仿真结果

系统的硬件验证

应用GW48实验系统,选择实验电路结构图NO.5,管脚定义如下:

CLK接CLOCK1、COIN1接PIO0、COIN2接PIO1、COIN3接PIO2、PRICE1接PIO3、PRICE2接PIO4、PRICE3接PIO5;

MONEY[7..0]接PIO16~PIO23(数码管1、数码管2)、PAYBACK[7...0]接PIO24~PIO31(数码管3、数码管4)、Y0接PIO8(二极管D1)、Y1接PIO9(二极管D2)。

硬件验证方法:

选择实验模式5,时钟信号CLK与CLOCK1信号组中的3MHz信号相连,用键1~键3输入钱数,用键4~键6选择商品,观察数码管及二极管的显示情况。

【本文档内容可以自由复制内容或自由编辑修改内容期待你的好评和关注,我们将会做得更好】

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1