可乐定价为2.5元/瓶,投币可投0.5元或者1元硬币,若投入不超过2.5元,则不出可乐,若投入3元则可以出一瓶可乐,还要找回0.5元。与之前相比,这里的输入变量有时钟复位,一元输入pi_money_one,0.5元输入pi_money_half,输出为可乐po_cola和找零po_money;
输入只有两种情况,0.5元,1元;输出有三个:不出可乐/不找零,出可乐/找零,出可乐/找零
状态有五个:0,0.5,1,1.5,2,2.5,3
这里用00表示不投钱,01表示投入0.5元,10表示投入1元,还用00表示不出可乐不找零,10表示出可乐不找零,11表示即出可乐又找零。绘制状态转移图:
定义中间变量pi_money,表示投入的钱数,00表示0元,10表示投入1元,01表示0.5元。
状态变量的初始状态为IDLE,当投入1元时,状态跳转到ONE状态,不出可乐不找零即po_cola,po_money均为低电平0,再投入1元,状态跳转到TWO状态,不出可乐不找零po_cola,po_money均为低电平0,再投入1元