else
n_s<=s2; --没有确认则返回s2状态 end if;
elsif(fi='1')then --输入十元并确认进入s210状态 xianshi<=10; if(ok='1')then n_s<=s210; else
n_s<=s2; end if; else
n_s<=s2; end if;
when s3=> ao<='0'; bo<='0'; co<='0'; warn<='0';
xianshi<=10; if(di='1')then
xianshi<=1; if(ok='1')then n_s<=s31; else
n_s<=s3; end if; elsif(ei='1')then xianshi<=5; if(ok='1')then
n_s<=s35; else
n_s<=s3; end if; elsif(fi='1')then
--没有确认则返回s2状态 --没有投币则返回s2状态 --购买十元商品的销售服务状态 --价格显示十元 --输入一元并确认进入s31状态 --没有确认则返回s3状态 --输入五元并确认进入s35状态 --没有确认则返回s3状态 14
xianshi<=10; if(ok='1')then
n_s<=s310; --输入十元并确认进入s310状态 else
n_s<=s3; --没有确认则返回s3状态 end if; else
n_s<=s3; end if;
when s11=> ao<='1'; bo<='0'; co<='0'; warn<='0';
xianshi<=0; if(b='1')then
n_s<=s0; else
n_s<=s11; end if;
when s15=> ao<='1'; bo<='0'; co<='0'; warn<='0'; xianshi<=4; if(b='1')then
n_s<=s0; else
n_s<=s15; end if;
when s110=> ao<='1'; bo<='0';
--没有投币则返回s3状态 --成功购买一元商品的状态 --延时3s返回初态 --保持s11状态 --成功购买一元商品的状态,并显示找零钱数--延时3s返回初态 --保持s15状态 --成功购买一元商品的状态,并显示找零钱数 15
co<='0'; warn<='0'; xianshi<=9; if(b='1')then
n_s<=s0; --延时3s返回初态 else
n_s<=s110; --保持s110状态 end if;
when s21=> ao<='0'; bo<='0'; co<='0'; warn<='1'; xianshi<=1; if(b='1')then
n_s<=s0; else
n_s<=s21; end if;
when s25=> ao<='0'; bo<='1'; co<='0'; warn<='0'; xianshi<=0; if(b='1')then
n_s<=s0; else
n_s<=s25; end if;
when s210=> ao<='0'; bo<='1'; co<='0';
--购买五元商品的状态,显示警告并退出钱--延时3s返回初态 --保持s21状态 --成功购买五元商品的状态 --延时3s返回初态 --保持s25状态 --成功购买五元商品的状态 16
warn<='0'; xianshi<=5; if(b='1')then
n_s<=s0; --延时3s返回初态 else
n_s<=s210; --保持s210状态 end if;
when s31=> ao<='0'; bo<='0'; co<='0'; warn<='1'; xianshi<=1; if(b='1')then
n_s<=s0; else
n_s<=s31; end if;
when s35=> ao<='0'; bo<='0'; co<='0'; warn<='1'; xianshi<=5; if(b='1')then
n_s<=s0; else
n_s<=s35; end if;
when s310=> ao<='0'; bo<='0'; co<='1'; awrn<='0';
--购买十元商品的状态,显示警告并退出钱 --延时3s返回初态 --保持s31状态 --购买十元商品的状态,显示警告并退出钱 --延时3s返回初态 --保持s35状态 --成功购买十元商品的状态 17
xianshi<=0; if(b='1')then
n_s<=s0; --延时3s返回初态 else
n_s<=s310; --保持s310状态 end if; end case; end process; end bhv;
18