Académique Documents
Professionnel Documents
Culture Documents
ère
Section GEC 1 Année
Matière Microcontrôleur
Correction TD N°1
Correction EX1
Correction EX 2
ORG 0X00
BCF STATUS, RP1 ; BANK 0OU 1
BCF STATUS, RP0 ; BANK 0
MOVLW D’12’
MOVWF 0X20
BSF STATUS, RP0 ; BANK 1
MOVLW 0XF
MOVWF 0XA0
BSF STATUS, RP1 ; BANK 2OU 3
BCF STATUS, RP0 ; BANK 2
MOVLW D’–5’
MOVWF 0X120
BSF STATUS, RP0 ; BANK 3
MOVLW 0X20
MOVWF 0X190
END
Correction EX 3
ORG 0x00
Debut BCF STATUS, RP1 ; bank 0 ou 1
BCF STATUS, RP0 ; bank 0
MOVF 0x6F,W ; chargement de la première valeur dans le registre de travail W
BSF STATUS, RP0 ; bank 1
SUBWF 0xEF,W ;W=F-W
BTFSS STATUS, Z ; F - W= 0 => Z=1 donc les deux valeurs sont égales
; => saut de l’instruction suivante (pas de branchement versdifferent)
; sinon Z= 0 donc les deux valeurs sont différentes
; =>pas de saut de l’instruction suivante (branchement versdifferent),
GOTO different ; l’instruction suivante n’est pas forcément un branchement vers
; une étiquette où on traite le cas d’égalité on passe directement pour
; traiter le cas de l’égalité
BSF STATUS, RP1 ; bank 2 ou 3
BCF STATUS, RP0 ; bank 2
MOVLW 0x00 ; les deux instructions peuvent être remplacé par une seule instruction :
ème
2 Semestre 2019-2020/ ENET’COM Page 1 sur 3
Année Universitaire : 2019 - 2020
ère
Section GEC 1 Année
Matière Microcontrôleur
CorrectionEX4
Correction EX 5
list p=16F877A
include<p16F877A.inc>
org 0x00
bcf STATUS, RP1 ; on sélectionne banque 0 ou 1
bsf STATUS, RP0 ; on passe en banque 1
bcf OPTION_REG, NOT_RBPU ; résistance de rappel en service,
; pas besoin de résistance externe
bcf TRISA, 2 ; bit 2 de TRISA à 0 => RA2 configurée comme sortie
; Inutile de configurer TRISB, car il est en entrée par défaut
; aureset du PIC
Correction EX6
list p=16F877A
include<p16F877A.inc>
org 0x00
Debut
BCF STATUS,IRP ;[0C,7F] EST DANS [00,FF]
MOVLW h'0c'
MOVWF FSR ; 0C dans FSR
Boucle CLRF INDF ; met zéro à l'adresse pointée par FSR
INCF FSR, F ; passe à FSR + 1
Correction EX 7
BTFSS FSR, 7 ; tester si on détecte la valeur 0x80 qui est égale à 0x7F+1
GOTO Boucle ; boucler si FSR < 7F
GOTO Debut
end
ème
2 Semestre 2019-2020/ ENET’COM Page 2 sur 3
Année Universitaire : 2019 - 2020
ère
Section GEC 1 Année
Matière Microcontrôleur
Oui
RA3 = 0 RA3 = 1
PORTB=0XF0 PORTB=0X0F
Les pins des ports A et E constituent un ensemble de 8 pins AnalogiqueNumérique (AN7 ..AN0) qui peuvent
être utilisés en trois modes différents (entrée analogique, entrée/sortie standard, ou tension de référence). Le
registre ADCON1 permet de sélectionner la configuration adéquate selon la valeur de ses 4 premiers bits
(PCFG3.. PCFG0). Le bit 7 n’a pas d’importance dans notre cas, c’est pour la configuration du décalage des 10
bits correspondants à la valeur Analogique convertie dans le cas « entrée analogique ».
list p=16F877
Include <p16f877.inc>
Org 0x00
BCF STATUS, RP1 ; préparation de la sélection banque 0 ou 1
BSF STATUS, RP0 ; on passe en banque 1
BSF TRISA, 1
BCF TRISA, 3
MOVLW 0x06
MOVWF ADCON1 ; les pin AN7.. AN0 sont des I/O digitales
CLRF TRISB ; PORTB en mode sortie
BCF STATUS, RP0 ; on passe en banque 0
test BTFSS PORTA, 1
GOTO case0
BCF PORTA, 3 ; RA3=0
MOVLW 0XF0
MOVWF PORTB ; portB<- 0XF0
GOTO test
case0 BSF PORTA, 3 ; RA3=1
MOVLW 0X0F
MOVWF PORTB ; portB<- 0X0F
GOTO test
end
ème
2 Semestre 2019-2020/ ENET’COM Page 3 sur 3