自动售货机控制器.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
自动售货机控制器

自动售货机功能: 自动售货机销售价格为25美分的糖果。机器:八个端口nickel_in为投入5美分;dime_in为投入10美分;quarter_in为存放25美分;clk为时钟;rst复位。candy_out用于控制发放糖果;nickel_out用于控制找回5美分的零钱;dime_out用于控制找回10美分的零钱。状态图:di=dime_in;qi=quarter_in;no=nickel_out;do=dime_out;co=candy_out圆圈里面的数代表顾客投进来的总钱数(5美分、10美分或25美分的硬币)。状态0是空闲状态。从它开始,如果投入5美分硬币,将跳转到状态5;如果投入10美分硬币,将跳转到状态10;如果投入25美分硬币,将跳转到状态25。随着投币数量的增加,状态不断跳转,如果投入的币值达到25美分,就可以进入状态25,然后售货机会会发放糖果,并跳转回状态0.如果投入的总币值超过了25美分,那么售货机要进入与找零钱相关的状态。代码:LIBRARY ieee; //标准库ieee说明USE ieee.std_logic_1164.all; //使用ieee库里面的std_logic_1164程序包里面的所有函数ENTITY vending_machine IS //实体声明,名字为vending_machine PORT(clk,rst:IN STD_LOGIC; //端口声明. //信号模式:IN(流入实体);信号类型:std_logic(九值逻辑) nickel_in,dime_in,quarter_in:IN BOOLEAN;//信号模式:IN(流入实体);信号类型:boolean(枚举 //类型) candy_out,nickel_out,dime_out:OUT STD_LOGIC);//信号模式:out(流出实体);信号类型: //std_logic(九值逻辑)END vending_machine; //结束实体说明ARCHITECTURE fsm OF vending_machine IS//实体vending_machine 的名为fsm的结构体声明 TYPE state IS(st0,st5,st10,st15,st20,st25,st30,st35,st40,st45); //声明数组state//st0代表机器里面有0分钱,st5则5分钱,st10则10分钱,st15则15分钱,st20则20分钱,st25则25分钱,st30则30分钱,st35则35分钱,st40则40分钱,st45则45分钱. SIGNAL present_state,next_state:STATE; //信号present_state,next_state声明BEGIN //结构体的格式,下面为并行语句 PROCESS(rst,clk) //进程语句,内语句为顺序关系,对外为一条并行语句 BEGIN //进程语句的格式,下面为顺序语句 IF(rst=1)THEN //复位状态,则为状态0 present_state=st0; ELSIF(clkEVENT AND clk=1)THEN //购买状态,将next_state赋值给present_state present_state=next_state; END IF; END PROCESS; //结束这一个进程语句 PROCESS(present_state,nickel_in,dime_in,quarter_in) //进程语句 BEGIN

文档评论(0)

hhuiws1482 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:5024214302000003

1亿VIP精品文档

相关文档