1 les microcontrôleurs pic de microchip le 16f84


20

;************************************************************************************************************************ ; programme led-tmr0-2.asm ; faire clignoter une LED connectée sur une sortie du port B. La temporisation permettant d’ajuster la ; fréquence est obtenue en comptant les débordements du timer TMR0 à l’interieur de l’interruption T0I ; TMR0 est utilisé en timer avec un prédiviseur de 256. En comptant 5 débordement on obtient une ; temporisation de 4 x 256 x 256 µs ;********************************************************************************************************************** list p=16f84,f=inhx8m,r=dec

__config _PWRTE_OFF & _CP_OFF & _WDT_OFF & _XT_OSC

#include « p16f84.inc »

CTR equ 0x0C ; varible de comptage

; ================= démarrage sur RESET org 0

goto start

;================= procedure d’interruption org 4

bcf INTCON,T0IF ; baisser le drapeau levé par l’interruption

decfsz CTR,f

retfie comf PORTB,f ; changer l’état de la LED

movlw 5 ; initializer compteur

movwf CTR

retfie ;================= Programme principal start bsf STATUS,RP0 ; select bank1

clrf TRISB ; programme tous les bits du bort B en sortie

movlw B’00000111′ ; mode timer, prédiviseur pour TMR0, div=256

movwf OPTION_REG

bcf STATUS,RP0 ; select bank0

movlw B’10100000′ ; autorisation Interruption T0I

movwf INTCON

movlw 5 ; initialise CTR pour le premier passage

movwf CTR

Loop goto Loop ; le PIC reste planté ici et n’en sort que pour aller

; executer une interuption due au débordement de TMR0

end

Laisser un commentaire