自动售饮料机设计

自动售饮料机设计

ID:8532543

大小:58.50 KB

页数:7页

时间:2018-03-31

自动售饮料机设计_第1页
自动售饮料机设计_第2页
自动售饮料机设计_第3页
自动售饮料机设计_第4页
自动售饮料机设计_第5页
资源描述:

《自动售饮料机设计》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、现代电路与系统设计自动售饮料机设计7自动售饮料机设计1设计要求的提出和功能的构想[1][2]①该饮料机能识别0.5元和1.0元两种硬币;②售出3种不同价格的饮料,饮料价格分别为2.5元、3.0元和3.5元;③具有找零功能;④购买者能自主选择所购买的饮料;⑤饮料机在每卖出一次饮料后能自动复位。因为饮料的价格最高为3.5元,所以设计饮料机最多可接受4.0元的硬币。2分析设计要求并画出原始状态图该自动售饮料机设有一个投币孔,通过传感器来识别两种硬币,给出两个不同的信号。在此用half_dollar和one_dollar分别表示投入0.5元和1.0元硬币后电路接收

2、到的两个信号;三个饮料选择按键choose01表示选择价格为2.5元的饮料,choose10表示选择价格为3.0元的饮料,choose11表示选择价格为3.5元的饮料;rest表示复位按键;有2个输出口分别为饮料出口dispense和找零出口out1;用s0表示初始状态,s1表示投入0.5元硬币时的状态,s2表示投入1.0元硬币时的状态,s3表示投入1.5元硬币时的状态,s4表示投入2.0元时的状态;clk表示时钟信号;机器最多接受的钱币为4.0元。当投入的钱币到达2.5元或高于2.5元时机器处于开始出售饮料的状态。当到达2.5元时如果选择购买2.5元的饮

3、料(choose01)则系统给出一个饮料,即dispense为高电平一次。如果投入的钱币到达3.0元并且选择购买2.5元的饮料则系统显示给出一个饮料并找出1枚0.5元的硬币,即dispense为高电平一次out1为高电平一次。如果选择购买3.0元的饮料(choose10),则系统显示给出一个3.0元的饮料,即饮料输出信号dispense为高电平一次。依次类推。图1.1为本次设计所构想的状态图。7状态2状态1状态4状态3购买01投入0.5元投入0.5元投入1.0元投入0.5元投入0.5元投入0.5元投入1.0元投入1.0元状态5状态6状态7状态8投入0.5元

4、不购买01购买11购买10不购买11不购买10投入1.0元投入1.0元投入1.0元投入1.0元图1.1状态图3程序设计根据上述对自动售饮料机逻辑状态的分析,编写程序如下:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitystmch1isport(clk,rst,half_dollar,one_dollar:instd_logic;choose:instd_logic_vector(1downto0);out1,dispense:outstd_logic);

5、endstmch1;7architecturebehaveofstmch1istypestate_valuesis(s0,s1,s2,s3,s4,s5,s6,s7);signalstate,next_state:state_values;beginprocess(clk,rst)beginifrst='1'thenstate<=s0;elsif(clk'eventandclk='1')thenstate<=next_state;endif;endprocess;process(state,half_dollar,one_dollar,choose)begi

6、nout1<='0';dispense<='0';next_state<=s0;casestateiswhens0=>if(half_dollar='1')thennext_state<=s1;elsif(one_dollar='1')thennext_state<=s2;elsenext_state<=s0;endif;whens1=>if(half_dollar='1')thennext_state<=s2;elsif(one_dollar='1')thennext_state<=s3;elsenext_state<=s1;endif;whens2=>

7、if(half_dollar='1')thennext_state<=s3;elsif(one_dollar='1')thennext_state<=s4;elsenext_state<=s2;endif;whens3=>if(half_dollar='1')thennext_state<=s4;elsif(one_dollar='1')then7next_state<=s5;elsenext_state<=s3;endif;whens4=>if(half_dollar='1')thenif(choose="01")thendispense<='1';el

8、senext_state<=s4;endif;elsif(one_

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。