余额如果大于1元,再退1元,如果小于1元则直接退05元的。
二、部分程序注释1、投币部分
fX0、X1、X2为投币识别,每识别一次,即X0、X1或X2接通一次,往寄存器D10中累加按键代表的相应金额,但是在报警和退币的时候不可投币,此时M206和M208会分别断开,此时投币无效,只有在退币过程结束4s后,再投币方才有效,若在4s内投币则直接退币。M204在系统上电按下启动键X6后接通后,M205接通时方可开始下一次操作。
2、价格比较部分
寄存在D10中的货币金额和商品的单价相比较,如第一句中如果(D10)45,则M61;(D10)45,则M71;(D10)45,则M81。
最后一句用于判断用户投币金额是否大于99,只有当(D10)100时,即M91时方可调用下列程序,否则系统自动调用退币程序。
f当投币金额不大于99时,并且大于相应商品的单价时,对应的指示灯会点亮,当某种商品被选择后,对应的指示灯会以1s为周期闪烁。在退币时LED灯不在点亮,即M300的常闭触点断开。
3、选择商品和送出部分选择商品部分由三段程序构成,分别用来处理汽水,花茶和咖啡的选择,下面以选择汽水为例进行详细说明。
汽水的单价为3元,当汽水指示灯点亮,即Y10接通时,每按键一次汽水选择按钮X10,系统将把用户的可消费余额减去3元,如按键前数码管显示50元,按键后则显示2元,并由M40控制汽水输出。这里须注意的是按键X10时,不可同时按X11,X12,否则,按键无效。同样在商品送出时按选择商品键也是无效的,这里由M30的常闭来实现。
商品的送出由代表该商品的指示灯闪烁4次来表示。当选择该商品后在实现上述处理的同时,将M30置“1”,它的常闭触点可以屏蔽用户再次选择该商品,它的一对常开触点用于产生四个周期为4s的方波,每个方波的占空比为50。其波形如下所示。
f当C0在四次计数完毕后,释放M30,并将C0复位清零。4、退币找零部分
退币键为X7,当接通X7后,退币指示灯Y14亮,以表示系统退币正在进行中。亮的时间由T14设置,这里设置T1440,就是亮4s。
M207的常开在用户投币金额大于99元系统自动调用退币时接通。
退币时,系统根据用户所剩余额进行比较,当余额大于或者等于5元时,先退币面值为5元的货币,然后再根据大于或者等于1元的余额退1元的货币,最后再退回05元的用户余额退回给用户。
f在按退币键X7后,为保证系统的可靠性,用户在4s内后才可在投币,即T26的常闭触点接通M208,而前面已经说明M208的常闭触点可以实现阻止用户投币的作用。
f三、梯形图
r