1-4) Clignotement d'une seule LED sur un port en sortie à l'aide d'une tempo par boucle.
Introduction d'un sous programme.
;**************************************** ;*Faire clignoter la LED 1 sur le PortB * ;**************************************** ; fichier 4_ledcli.asm ; Le clignotement n'est pas visible a l'oeil nu ; un oscilloscope sur la sortie clignotante permet de s'assurer du clignotement de la LED ; On pourra verifier aussi la mesure du temps à l'oscilloscope ; La comparer au calcul effectue ; ; ; Device = 16F84 ; Utilisation du circuit 16F84 ; Horloge = XT ; Déclaration et config du Circuit ; Equivalence registres ;*********************** PORTB equ 0x0006 ; Adresse du portb TRISB equ 0x0086 ; Adresse du registre de direction du porta STATUS equ 0x0003 ; Le bit 5 permet d'acceder à la Banque 1 ou 0 ; ce qui donne acces au TRIS ou au PORT ;* Reservation memoire * ;*********************** ; Les registres occupent la RAM jusqu'en OBh COMPT equ 0Ch ;*************** ;Initialisation* ;*************** org 00h ; Apres le reset le PC pointe l'adresse 00 goto debut ; On saute les 5 premiers octets car à l'adresse ; 04 on a l'adresse d'interruption ; On prend l'habitude de ne pas ecrire sur ce segment ; en sautant simplement jusqu'apres ce segment org 05h debut clrf PORTB ; Mise a zero des latches de sorties bsf STATUS,05 ; Selection de Bank 1 pour l'accès au TRIS movlw 00h ; movwf TRISB ; Declaration du portb en sortie bcf STATUS,05 ; Selection de Bank 0 pour l'accès au PORT ;********************* ;Programme principal * ;********************* boucle clrf PORTB ; Extinction de toutes les LEDS call tempo movlw 01h movwf PORTB ; on inverse l'etat de la LED 1 call tempo goto boucle ; recopie permanente ;****************** ;Sous Programmes * ;****************** tempo movlw 0x00ff ; chargement de COMPT de la valeur maximale movwf COMPT delai decfsz COMPT,1 ; Le temps de decompter 256 valeurs goto delai ; calcul du temps : 1 instruction =Tquartz/4=1µs =1 cycle ; l'instruction decfz est de 2 cycles ; 2 instructions = 3 µs repeter 256 fois t=768µs return end1-5) Clignotement d'une seule LED sur un port en sortie à l'aide d'une tempo par boucles imbriquées
Giampiero D'AQUINO
Enseignant en Genie Electronique