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


		end

DEBUT DE PAGE

1-5) Clignotement d'une seule LED sur un port en sortie à l'aide d'une tempo par boucles imbriquées

SOMMAIRE


Giampiero D'AQUINO
Enseignant en Genie Electronique