自动售货机控制系统设计.ppt

上传人:小飞机 文档编号:6601108 上传时间:2023-11-16 格式:PPT 页数:21 大小:341.64KB
返回 下载 相关 举报
自动售货机控制系统设计.ppt_第1页
第1页 / 共21页
自动售货机控制系统设计.ppt_第2页
第2页 / 共21页
自动售货机控制系统设计.ppt_第3页
第3页 / 共21页
自动售货机控制系统设计.ppt_第4页
第4页 / 共21页
自动售货机控制系统设计.ppt_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《自动售货机控制系统设计.ppt》由会员分享,可在线阅读,更多相关《自动售货机控制系统设计.ppt(21页珍藏版)》请在三一办公上搜索。

1、8.21 自动售货机控制系统设计,设计要求,设计制作一个自动售货机控制系统。该系统能完成货物信息存储,进程控制,硬币处理,余额计算,显示等功能。该系统可以管理四种货物,每种的数量和单价在初始化时输入,在存储器中存储。用户可以用硬币进行购物,按键进行选择。系统根据用户输入的货币,判断钱币是否够,钱币足够则根据顾客的要求自动售货,钱币不够则给出提示并退出。系统自动的计算出应找钱币余额、库存数量并显示。,系统组成,系统以FPGA器件为处理数据和控制核心。系统按功能分为:分频模块 控制模块 译码模块 译码显示模块。,系统组成方框图,首先由售货员把自动售货机里的每种商品的数量和单价通过set键和sel键

2、置入到RAM里。然后顾客通过sel键对所需要购买的商品进行选择,选定以后通过get键进行购买,再按finish键取回找币,同时结束此次交易。按get键时,如果投的钱数等于或则大于所购买的商品单价,则自动售货机会给出所购买的商品;如果投的钱数不够,自动售货机不做响应,继续等待顾客的下次操作。顾客的下次操作可以继续投币,直到钱数到达所要的商品单价进行购买;也可以直接按finish键退币。,自动售货机VHDL程序与仿真,自动售货机VHDL程序,-文件名:AUTO.vhd。-功能:货物信息存储,进程控制,硬币处理,余额计算,显示等功能。-说明:显示的钱数coin的 以5角为单位。-最后修改日期:200

3、4.3.23。library ieee;use ieee.std_logic_arith.all;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity AUTO isport(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 s

4、td_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 istype ram_type is array(3 downto 0)of std_logic_vector(7 downto 0);signal ram:ram_type;-定义RAMsignal item:std_logic_vector(1 downto 0);-商品种类

5、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 qua0000 and

6、coin=pri then coin=coin-pri;quan:=quan-1;ram(conv_integer(item)=pri,elsif finish=1 then-结束交易,退币(找币)if coin“0001”then act100000 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 q

7、uan(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;else clk1=0;end if;end process m32;,code0:process(item)-商品指示灯译码begin case item is when

8、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.系统仿真图-商品种类选择部分 4.系统仿真图-投币部分 5.系统仿真图-购买、找币结束交易部分,(1.系统仿真全图),(2.系统仿真图-预置部分),(3.系统仿真图-商品种类选择部分),(4.系统仿真图-投币部分),(5.系统仿真图-购买、找币结束交易部分),

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号