Bonsoir "tuss",
Pour générer depuis deux touches dédiées UP et DOWN selon une autre méthode on peut te laisser un peu chercher mais ta solution est correcte dans son raisonnement.
Ce qui est certain pourtant c'est qu'il est normal que "dans la vraie vie" tu rencontres l'anomalie en mode décomptage.
Le fonctionnement en compteur ascendant fonctionne parfaitement car la touche UP ne bascule pas l'entrée U/D donc elle est parfaitement anticipée par rapport au signal d'horloge. Dans le cas du compteur descendant l'entrée U/D a très peu d'anticipation sur le signal d'horloge car avec les classiques CMOS sous 5V on doit avoir :
- 350nS pour TPLH ou TPHL sur un EXNOR 14077B
- 300nS + 300nS en TPLH ou TPHL sur les OR 14071B et AND 14081B.
Donc le signal d'horloge arrive 250nS après que le signal UP/DOWN soit arrivé alors que la fiche de caractéristique du 14516B prévoit un minimum de 500nS (avec quelques espoirs que 250nS suffisent sans garanties).
Tu peux améliorer le fonctionnement en ajoutant quelques portes inutilisées des boîtiers sur le chemin du signal d'horloge. Deux portes devraient suffire et trois devraient garantir le fonctionnement sans failles sous réserve d'utiliser les composants qui tiennent ces "performances".
Pour ton problème de contenu des compteurs c'est une autre histoire où déjà il est impossible que tu aies 0F,0F,0F car dans ce cas tu aurais 8 bits par compteur. Tu peux avoir F,F,F.
Il n'y a pas de solution si tu utilises un compteur 4 bits pour le digit le plus élevé. Tel qu'il est conçu ton montage boucle sur 4096 valeurs. Il te faudra réaliser un compteur/décompteur sur 2 bits si tu veux limiter à 1024 valeurs.
Amicalement, Yves.
