毕设答辩自动售货机控制系统设计.ppt_第1页
毕设答辩自动售货机控制系统设计.ppt_第2页
毕设答辩自动售货机控制系统设计.ppt_第3页
毕设答辩自动售货机控制系统设计.ppt_第4页
毕设答辩自动售货机控制系统设计.ppt_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

8.21 自动售货机控制系统设计,设计要求,设计制作一个自动售货机控制系统。 该系统能完成货物信息存储,进程控制,硬币处理,余额计算,显示等功能。 该系统可以管理四种货物,每种的数量和单价在初始化时输入,在存储器中存储。用户可以用硬币进行购物,按键进行选择。 系统根据用户输入的货币,判断钱币是否够,钱币足够则根据顾客的要求自动售货,钱币不够则给出提示并退出。 系统自动的计算出应找钱币余额、库存数量并显示。,系统组成,系统以FPGA器件为处理数据和控制核心。 系统按功能分为: 分频模块 控制模块 译码模块 译码显示模块。,系统组成方框图,首先由售货员把自动售货机里的每种商品的数量和单价通过set键和sel键置入到RAM里。 然后顾客通过sel键对所需要购买的商品进行选择,选定以后通过get键进行购买,再按finish键取回找币,同时结束此次交易。 按get键时,如果投的钱数等于或则大于所购买的商品单价,则自动售货机会给出所购买的商品;如果投的钱数不够,自动售货机不做响应,继续等待顾客的下次操作。 顾客的下次操作可以继续投币,直到钱数到达所要的商品单价进行购买;也可以直接按finish键退币。,自动售货机VHDL程序与仿真,自动售货机VHDL程序,-文件名:AUTO.vhd。 -功能:货物信息存储,进程控制,硬币处理,余额计算,显示等功能。 -说明:显示的钱数coin的 以5角为单位。 -最后修改日期:2004.3.23。 library ieee; use ieee.std_logic_arith.all; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity AUTO is port ( clk:in std_logic; -系统时钟 set,get,sel,finish: in std_logic; -设定、买、选择、完成信号 coin0,coin1: in std_logic; -5角硬币、1元硬币 price,quantity :in std_logic_vector(3 downto 0); -价格、数量数据 item0 , act:out std_logic_vector(3 downto 0); -显示、开关信号 y0,y1 :out std_logic_vector(6 downto 0); -钱数、商品数量显示数据 act10,act5 :out std_logic); -1元硬币、5角硬币 end AUTO;,architecture behav of AUTO is type ram_type is array(3 downto 0)of std_logic_vector(7 downto 0); signal ram :ram_type; -定义RAM signal item: std_logic_vector(1 downto 0); -商品种类 signal coin: std_logic_vector(3 downto 0); -币数计数器 signal pri,qua:std_logic_vector(3 downto 0); -商品单价、数量 signal clk1: std_logic; -控制系统的时钟信号 begin,com:process(set,clk1) variable quan:std_logic_vector(3 downto 0); begin if set=1 then ram(conv_integer(item)=price -对商品进行循环选择,elsif get=1 then -对商品进行购买 if qua“0000“ and coin=pri then coin=coin-pri;quan:=quan-1; ram(conv_integer(item)=pri ,elsif finish=1 then -结束交易,退币(找币) if coin“0001” then act10“0000“ then act5=1; coin=coin-1; else act5=0; act10=0; end if; elsif get=0 then act=“0000“; for i in 4 to 7 loop pri(i-4)=ram (conv_integer(item)(i); -商品单价的读取 end loop; for i in 0 to 3 loop quan(i):=ram(conv_integer(item)(i); -商品数量的读取 end loop; end if; end if; qua=quan; end process com;,m32:process(clk) -此进程完成对32Mhz的脉冲分频 variable q: std_logic_vector( 24 downto 0); begin if clkevent and clk=1 then q:=q+1; end if; if q=“111111111111111111111111“ then clk1=1; else clk1=0; end if; end process m32;,code0:process(item) -商品指示灯译码 begin case item is when “00“=item0item0item0item0=“1110“; end case; end process;,code1: process (coin) -钱数的BCD到七段码的译码 Begin case coin is when “0000“=y0y0y0y0y0y0y0y0y0y0y0=“1111111“; end case; end process;,code2: process (qua) -单价的BCD到七段码的译码 Begin case qua is when “0000“=y1y1y1y1y1y1y1y1y1y1y1=“1111111“; end case; end process; end behav;,自动售货机VHDL程序仿真,1. 系统仿真全图 2. 系统仿真图-预置部分 3. 系统仿真

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论