São usados 7 estados representando desde 0 centavos (estado inicial) até 25 centavos recolhidos.
Estando num estado representando um determinado valor já depositado, toda vez que receber mais uma moeda cujo valor somado ao valor do estado ficar igual ou ultrapassar 30 centavos, é liberada uma coca e faz-se a troca se necessário, voltando depois ao estado inicial (0 centavos). A única exceção é quando esse valor atingir 50 centavos, quando será necessário um estado auxiliar (ver adiante).
São usados então 3 bits para codificar um estado: E0, E1, E2 para codificar o presente estado; F0, F1, F2 para codificar o próximo estado. Adota-se a codificação seguinte, que pode ser facilmente memorizada assim: o número binário multiplicado por 5 dá o valor em centavos.
Estado 0 centavos | 000 |
Estado 5 centavos | 001 |
Estado 10 centavos | 010 |
Estado 15 centavos | 011 |
Estado 20 centavos | 100 |
Estado 25 centavos | 101 |
Estado auxiliar | 110 |
Além do estado presente, as outras entradas são X5, X10 e X25.
Além do próximo estado, as outras saídas são Libera (sinal para liberar uma coca) e (i>Y5 e Y10.
O estado 110 é um estado auxiliar que serve para dar o troco de uma moeda de 10 centavos.
Entradas: | Saídas: | ||||||||||||||
E0 | E1 | E2 | X5 | X10 | X25 | Libera | Y5 | Y10 | F0 | F1 | F2 | ||||
0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | ||||
0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | ||||
0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 1 | ||||
0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | ||||
0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | ||||
0 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | ||||
0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | ||||
0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | ||||
0 | 1 | 0 | 0 | 0 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | ||||
0 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | ||||
0 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | ||||
0 | 1 | 1 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | ||||
1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | ||||
1 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | ||||
1 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | ||||
1 | 0 | 1 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | ||||
1 | 0 | 1 | 0 | 1 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | ||||
1 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 1 | 1 | 1 | 0 | ||||
1 | 1 | 0 | X | X | X | 0 | 0 | 1 | 0 | 0 | 0 |
Falta ainda a PLA para implementar a lógica descrita.