>> Technologie Électronique >  >> Téléphones >> Systèmes de conférence

Assembleur 8085 : Compteur BCD ascendant avec interface afficheur 8279

Ci-dessous un programme assembleur 8085 structuré et commenté implémentant un compteur ascendant BCD (Binary-Coded Decimal) affiché via le contrôleur clavier/afficheur programmable 8279. Le code suppose le 8279 mappé sur ports E/S 10H-13H (configuration typique).

Vue d'ensemble programme

  • Compte 00-99 en format BCD
  • Met à jour afficheur 8279 temps réel
  • Inclut délai débouncing pour comptage visible
  • Gère retenue BCD entre chiffres

Code assembleur

 ORG 1000H ; Adresse début programme ; INITIALISATION 8279 INIT_8279: MVI A, 00H ; Mode set: Affichage seul, 8 digits, entrée gauche OUT 13H ; Port contrôle (13H) MVI A, 80H ; Efface affichage, pas matrice capteur OUT 13H MVI A, 27H ; Prescaler horloge pour scan 100kHz OUT 13H RET ; PROGRAMME PRINCIPAL MAIN: CALL INIT_8279 ; Initialise 8279 LXI H, 0000H ; HL = compteur BCD (L=unités, H=dizaines) MVI B, 00H ; Compteur délai COUNT_LOOP: CALL DISPLAY_BCD ; Affiche compteur actuel CALL DELAY ; Délai visible (~0,5 sec) CALL INCREMENT_BCD ; Incrémente compteur BCD JMP COUNT_LOOP ; Répète indéfiniment ; INCRÉMENT BCD AVEC GESTION RETENUE INCREMENT_BCD: MOV A, L ; Charge chiffre unités ADI 01H ; Ajoute 1 DAA ; Decimal Adjust Accumulator (correction BCD) MOV L, A ; Stocke unités JNC INC_DONE ; Pas de retenue ? Fini MOV A, H ; Charge chiffre dizaines ADI 01H ; Ajoute retenue DAA ; Correction BCD MOV H, A ; Stocke dizaines INC_DONE: RET ; AFFICHAGE VALEUR BCD SUR 8279 (2 CHIFFRES DROITES) DISPLAY_BCD: MOV A, L ; Chiffre unités ANI 0FH ; Masque nibble bas OUT 10H ; Port données A (afficheur le plus à droite) MOV A, H ; Chiffre dizaines ANI 0FH OUT 10H ; Prochain chiffre gauche RET ; DÉLAI LOGICIEL SIMPLE (~0,5 sec @ 3MHz) DELAY: LXI D, 0FFFFH ; Compteur délai max DLY_LOOP: DCX D ; Décrémente DE MOV A, D ORA E ; Vérifie si zéro JNZ DLY_LOOP RET END 

Notes implémentation clés

Mapping ports 8279 (Typique)

  • 10H : Port Données A (RAM afficheur)
  • 11H : Port Données B (clavier/capteur)
  • 12H : Commande/Statut
  • 13H : Registre Contrôle/Mode

Instructions critiques

  • DAA (Decimal Adjust Accumulator) — Essentiel arithmétique BCD. Ajuste résultat ALU en BCD valide après ADD/ADI.
  • OUT 10H — Écrit dans RAM afficheur. 8279 auto-incrémente position afficheur selon setting mode.

Connexions matérielles

Assurez RESET 8279 lié reset système, CLK correspond fréquence 8085 (typiquement 3MHz), et sorties afficheur (A0-A3, B0-B3) connectées drivers 7 segments avec afficheurs anode commune.

Personnalisation

  • Changez compteur DELAY pour comptage plus rapide/plus lent
  • Ajoutez scan clavier (Port 11H) pour contrôle start/stop/reset
  • Étendez à 4+ digits en utilisant H/L pour décennies additionnelles

Ce programme démontre arithmétique BCD fondamentale, interface 8279, et mise à jour afficheur temps réel — compétences cœur pour systèmes embarqués base 8085.

Systèmes de conférence