Correction Rattrapage MuC MPro 2011
Correction Rattrapage MuC MPro 2011
Correction Rattrapage MuC MPro 2011
Répondre aux questions en indiquant par une (ou plusieurs) croix la (ou les) réponse(s) que vous
jugerez être correctes.
2. Quelle est la taille d’une instruction en code machine du PIC 16F877 ? (1pt)
8 bits.........................................................................................................................................
12 bits.......................................................................................................................................
14 bits ......................................................................................................................................
16 bits ......................................................................................................................................
3. Quel est le rôle du Quartz dans un circuit électronique pour un microprocesseur ? (1pt)
Donner l'heure avec précision .................................................................................................
Fournir le signal de l'horloge système ....................................................................................
Permet le RESET du PIC ........................................................................................................
4. Quel type d'architecture matérielle et pour instruction possède-t-il le PIC 16F877 ? (1pt)
Architecture Harvard ..............................................................................................................
Architecture Von Neuman........................................................................................................
Architecture CISC ...................................................................................................................
Architecture RISC....................................................................................................................
1
7. La directive 'Liste' permet de : (0,75pt)
Lister les instructions du PIC ...................................................................................................
Donner le détail de l'assembleur du PIC ..................................................................................
Spécifier à l'assembleur le type de PIC à utiliser ....................................................................
8. Quel mode d'adressage est utilisé dans cette instruction "MOVLW 0x00F" ? (1pt)
Mode d'adressage immédiat .....................................................................................................
Mode d’adressage indirect .......................................................................................................
Mode d’adressage direct avec déplacement ............................................................................
Mode d’adressage indirect post décrémenté ............................................................................
12. On veut configurer le Timer0 pour générer un délai de 33 ms, que faut-t-il mettre dans le
registre suivant sachant que la fréquence du quartz est de 2MHz :
2
PARTIE II
Exercice 1 (8 pts)
Un interrupteur actionné donne un niveau logique (0) sur la ligne correspondante du PIC !!
Organigramme : (3pts)
Programme : (5pts)
list p=16f877A
#include P16f877A.inc
__CONFIG _CP_OFF & _DEBUG_OFF & _WRT_OFF & _CPD_OFF & _LVP_OFF & _BODEN_OFF
& _PWRTE_ON & _WDT_OFF & _HS_OSC
;------------ Définition des constantes ---------------
#define I2I1 0x03 ; interrupteur de commande
;**************************************************************
;------------ Programme principal ---------------
ORG 0x00 ; l'adresse du début du programme est toujours '0'
; Configuration des registres de directions des TRISE et TRISC
bsf STATUS, RP0 ; RP0 = 1 ; (Banque mémoire 1)
3
bcf STATUS, RP1 ; RP1 = 0 ==> facultataif si début du programme !!
;
movlw 0xFF ; Port E configuré en entrée
movwf TRISE
;
clrf TRISC ; PortC configuré en sortie
; désactivation du CA/N
movlw B'00000110' ;
movwf ADCON1
boucle
movfw PORTE
ANDLW I2I1
Btfsc STATUS, Z
Goto Decalage
Movwf memo
Sublw 0x01
Btfsc STATUS, Z
Goto Decompte
Movfw memo
Sublw 0x02
Btfss STATUS, Z
Goto init
Decompte
DECF cmpt, w ; décrémentation
suite
Movwf PORTC
4
Movwf cmpt
Movlw 0x02
Goto tempo
Decalage
Movfw Vdec
Btfsc STATUS, Z
INCF Vdec, W
RLF Vdec, w
Movwf PORTC
Movwf Vdec
Movlw 0x04
tempo
Movwf tcp
loop
BTFSS INTCON,T0IF ; test du l’indicateur de débordement du Timer0 si =1
GOTO loop
BCF INTCON,T0IF ; mise à 0 de l’indicateur de manière logiciel !!!
DECFSZ tcp, F
Goto loop ; retour au début de la boucle
GOTO boucle