Cronometro com 89S8253

Olá.
Quero fazer um cronometro que vai de 1s a 5min. Com três displays de 7S. Mas decrescente.
Mas da forma que estou pensando, o programa vai ficar muito grande e confuso.
Pretendo fazer o seguinte: Serão 3 displays de 7S com uma micro chave tactil embaixo de cada um dos displays. Tipo, vamos supor que a chave do display que representa 8s(que é o primeiro da direita para esquerda) seja pressionada, então esse display passará para 9s e se for pressionado mais uma vez, passará para 0 e o segundo display a sua esquerda, continuaria em 0. Portanto, se eu quiser um cronometro decrescente de 10s, eu terei que deixar o primeiro display em 0 e o segundo em 1. E se quiser 1:10s, eu deixaria o terceiro display em 1, o segundo em 1 e o primeiro em 0, perfazendo 1min e 10s. Entenderam? rs
O problema é, como desenvolver uma lógica pra isso. De inicio eu estou tentando fazer com apenas um display para ficar mais simples, depois eu implemento os outros dois.
Quero fazer um cronometro que vai de 1s a 5min. Com três displays de 7S. Mas decrescente.
Mas da forma que estou pensando, o programa vai ficar muito grande e confuso.
Pretendo fazer o seguinte: Serão 3 displays de 7S com uma micro chave tactil embaixo de cada um dos displays. Tipo, vamos supor que a chave do display que representa 8s(que é o primeiro da direita para esquerda) seja pressionada, então esse display passará para 9s e se for pressionado mais uma vez, passará para 0 e o segundo display a sua esquerda, continuaria em 0. Portanto, se eu quiser um cronometro decrescente de 10s, eu terei que deixar o primeiro display em 0 e o segundo em 1. E se quiser 1:10s, eu deixaria o terceiro display em 1, o segundo em 1 e o primeiro em 0, perfazendo 1min e 10s. Entenderam? rs
O problema é, como desenvolver uma lógica pra isso. De inicio eu estou tentando fazer com apenas um display para ficar mais simples, depois eu implemento os outros dois.