No se si aún necesitas ayuda ya que acabo de leer tu hilo.
Antes de proceder te preguntaría por tu circuito ya que para cuatro dígitos acomodados como décadas me imagino que estás utilizando algunos chips auxiliares para realizar el multiplexado del display y el barrido del teclado.
Te doy una idea utilizando uno de mis circuitos.
En mi caso para un contador utilizo el puerto B bits<3:0> conectándome a un 7447 para el desplegado de los dígitos. B<4> acciona el punto decimal. Los bits<7:5> se conectan a un 74138 para activar en secuencia ocho transistores PNP para realizar el multiplexado. El link siguiente muestra mi display.
http://www.imageshack.com/i/f5e5kpjLas mismas señales B<7:5> las utilizo para "barrer" las columnas de un teclado matricial 4X3 leyendo los renglones (líneas) en el puerto A. Lógicamente sólo tomo como válidas las señales cuando sólo un bit en B<7:5> está activa.
Mi aplicación con el contador mencionado es utilizar el teclado para programar un número de piezas que serán contadas en una máquina al cabo de las cuales se accionará la salida A<4>.
Internamente tiene un arreglo de memorias que forman el contador y que son la información que es desplegada.
Se lleva un procedimiento contador por cada dígito siempre actuándo en el menos significativo. Cuando éste pasa de 0 a 9 se analiza la década siguiente y nuevamente se inspecciona si pasa de 0 a 9. Si lo hace entonces analizamos la década siguiente y así.
Espero que esto te dé ideas.
Saludos.