1 MICROCONTROLEUR MICROCONTROLEUR PIC 16F84 PIC 16F84 Application 1: Application 1: Générateur Générateur d’un signal Carré d’un signal Carré Réalisé par: Réalisé par: ilyas Mimouni ilyas Mimouni
11
MICROCONTROLEUR MICROCONTROLEUR PIC 16F84PIC 16F84
Application 1:Application 1:
Générateur Générateur d’un signal Carréd’un signal Carré
Réalisé par:Réalisé par: ilyas Mimouniilyas Mimouni
Générateur d'un Signal CarréGénérateur d'un Signal Carré 22
PLANPLAN
IntroductionIntroduction MéthodologieMéthodologie Méthode 1:Méthode 1: Utilisation d’une boucle de Utilisation d’une boucle de
décrémentationdécrémentation Méthode 2:Méthode 2: Utilisation du TimerUtilisation du Timer ConclusionConclusion
Générateur d'un Signal CarréGénérateur d'un Signal Carré 33
IntroductionIntroduction
Les signaux carrés sont très utilisés Les signaux carrés sont très utilisés en électronique numérique.en électronique numérique.
Ces signaux peuvent être générés Ces signaux peuvent être générés par plusieurs circuit par plusieurs circuit (NE555,PIC16F84…).(NE555,PIC16F84…).
Générateur d'un Signal CarréGénérateur d'un Signal Carré 44
MéthodologieMéthodologie
Objectif:Objectif: générer un signal carré de générer un signal carré de fréquence connuefréquence connue sur la sur la
broche broche RB0 du port B. RB0 du port B. Principe:Principe: Changer l’état de RB0 par Changer l’état de RB0 par
intervalles de temps intervalles de temps réguliers.réguliers.
La diversité des fonctionsLa diversité des fonctions du programmeur du programmeur permet d’utiliser plusieurs méthodes pour permet d’utiliser plusieurs méthodes pour la génération de ce signal.la génération de ce signal.
Générateur d'un Signal CarréGénérateur d'un Signal Carré 55
Présentation des fonctions clés:Présentation des fonctions clés:
DECFSZDECFSZ f,d f,d
XORWFXORWF f,d f,d
BTFSSBTFSS f,b f,b
ORGORG
RETFIE RETFIE
MéthodologieMéthodologie
Générateur d'un Signal CarréGénérateur d'un Signal Carré 66
Méthode 1:Méthode 1: Boucle de décrémentation Boucle de décrémentation;Directives d’assemblage;Directives d’assemblage
p=16f84 p=16f84 __config_wdt_off&_XT_OSC__config_wdt_off&_XT_OSC
;---deifinition des constantes-------;---deifinition des constantes-------RB0 equ 0RB0 equ 0RP0 equ 0RP0 equ 0RP1 equ 1RP1 equ 1
;----definition des registres---;----definition des registres---STATUS EQU 0X03STATUS EQU 0X03PORTB EQU 0X06PORTB EQU 0X06TRISB EQU 0X86TRISB EQU 0X86COMPT1 EQU 0X0CCOMPT1 EQU 0X0CCOMPT2 EQU 0X0DCOMPT2 EQU 0X0D
Générateur d'un Signal CarréGénérateur d'un Signal Carré 77
; ---Programme général------; ---Programme général------
BSF STATUS,RP0BSF STATUS,RP0 ;---Activation de la BANK1;---Activation de la BANK1
BCF TRISB,0BCF TRISB,0 ;---Configuration du RB0 en sortie;---Configuration du RB0 en sortie
BCF STATUS,RP0BCF STATUS,RP0 ;---Activation de la BANK0;---Activation de la BANK0
BCF PORTB,RB0BCF PORTB,RB0 ;---Valeur initiale à zero;---Valeur initiale à zero
Générateur d'un Signal CarréGénérateur d'un Signal Carré 88
DEBUTDEBUT CALL CALL TEMPO TEMPO ;Appel du sous programme TEMPO ;Appel du sous programme TEMPO MOVLW b'00000001‘ ;MasqueMOVLW b'00000001‘ ;Masque XORWF PORTB,0 XORWF PORTB,0 MOVWF PORTBMOVWF PORTB ;Modifier le bit de RB0 ;Modifier le bit de RB0 GOTO GOTO DEBUTDEBUT
TEMPOTEMPO ; Début du sous programme ; Début du sous programme MOVLW 0XFFMOVLW 0XFF ;Charger W avec FF ;Charger W avec FF MOVWF COMPT1MOVWF COMPT1
BOUCLE1BOUCLE1MOVWF COMPT2MOVWF COMPT2
BOUCLE2BOUCLE2DECFSZ COMPT2,1 ;Décrémenter jusqu’à zéroDECFSZ COMPT2,1 ;Décrémenter jusqu’à zéro
GOTO GOTO BOUCLE2BOUCLE2 DECFSZ COMPT1,1DECFSZ COMPT1,1 ;Décrémenter jusqu’à zéro;Décrémenter jusqu’à zéro
GOTO GOTO BOUCLE1BOUCLE1 RETURNRETURN ENDEND
Générateur d'un Signal CarréGénérateur d'un Signal Carré 99
Méthode 2:Méthode 2: Utilisation du Timer Utilisation du Timer;Directives d’assemblage;Directives d’assemblage
list p=16f84list p=16f84__CONFIG__WDT_OFF_XT_OSC__CONFIG__WDT_OFF_XT_OSC
;---définition des constantes-------;---définition des constantes------- RB0 EQU 0RB0 EQU 0 RP0 EQU 0RP0 EQU 0 RP1 EQU 1RP1 EQU 1 TOIF EQU 2TOIF EQU 2 TOIE EQU 5TOIE EQU 5 GIE EQU 7GIE EQU 7
;----definition des registres---;----definition des registres--- STATUS STATUS EQU 0X03 EQU 0X03 PORTB PORTB EQU 0X06 EQU 0X06 TRISB TRISB EQU 0X86 EQU 0X86 OPTION_REGOPTION_REG EQU 0x81 EQU 0x81 INTCONINTCON EQU 0x0B EQU 0x0B
Générateur d'un Signal CarréGénérateur d'un Signal Carré 1010
;---Programme general---;---Programme general---
BSF STATUS,0 BSF STATUS,0 ;---Activation de la BANK1;---Activation de la BANK1
BCF TRISB,0 BCF TRISB,0 ;---Configuration du RB0 en sortie;---Configuration du RB0 en sortie
MOVLW MOVLW b'00000111b'00000111‘ ‘ ; ---valeur de OPTION_REG; ---valeur de OPTION_REG
MOVWF OPTION_REG MOVWF OPTION_REG BCF STATUS,0 BCF STATUS,0 ;---Activation de la BANK0;---Activation de la BANK0
BSF INTCON,GIE BSF INTCON,GIE ;---Autorisation des interruptions;---Autorisation des interruptions BSF INTCON,TOIE ;BSF INTCON,TOIE ;---Autor---Autor. i. interruption du nterruption du timer timer
BCF PORTB,RB0 BCF PORTB,RB0 ;---Valeur initiale à zero;---Valeur initiale à zero
Générateur d'un Signal CarréGénérateur d'un Signal Carré 1111
DEBUTDEBUTBOUCLEBOUCLEBTFSS INTCON,TOIF ;-Test de l'etat du comptageBTFSS INTCON,TOIF ;-Test de l'etat du comptage GOTO GOTO BOUCLEBOUCLE
ORGORG h’0004’ h’0004’CALL CALL INTERUPINTERUPGOTO GOTO DEBUTDEBUT
INTERUPINTERUP MOVLW b'00000001'MOVLW b'00000001'
XORWF PORTB,1XORWF PORTB,1BCF INTCON,TOIFBCF INTCON,TOIFRETFIERETFIE ;--Retour de l’interruption---- ;--Retour de l’interruption----
ENDEND
Générateur d'un Signal CarréGénérateur d'un Signal Carré 1212
ConclusionConclusion
Générateur d'un Signal CarréGénérateur d'un Signal Carré 1313
Merci de votre attentionMerci de votre attention