Correction Rattrapage MuC MPro 2011

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 5

Université Abdelhamid Ibn Badis de Mostaganem

Faculté des Sciences et de la Technologie


Département Génie Electrique

Master Professionnel Automatique & Informatique Industrielle (M1)


Avril 2011
Correction Rattrapage Module : Architecture des Microcontrôleurs (AMC)
PARTIE I

Nom et prénom de l'étudiant : ……………………………………….…………

Répondre aux questions en indiquant par une (ou plusieurs) croix la (ou les) réponse(s) que vous
jugerez être correctes.

1. Quelle est la principale caractéristique d’une mémoire de type ROM ? (1pt)


Elle est effaçable électriquement .............................................................................................
Elle peut être programmé plusieurs fois ..................................................................................
Elle contient des données non volatiles ...................................................................................

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....................................................................................................................

5. Quel est le rôle du registre STATUS du PIC 16F877 : (1pt)


Contient les indicateurs d'état .................................................................................................
Permet l'initialisation des ports d'entrée / sortie .....................................................................
Permet l'accès à la RAM .........................................................................................................

6. Le registre STATUS est un registre de travail : (0,75pt)


Vrai ..........................................................................................................................................
Faut...........................................................................................................................................
Pas toujours vrai ......................................................................................................................

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é ............................................................................

9. On langage assembleur du PIC, la directive 'EQU' permet de : (1pt)


Définir un paramètre système .................................................................................................
Initialiser une variable .............................................................................................................
Définir des constantes .............................................................................................................
Déclarer des variables .............................................................................................................

10. Suite à l’exécution de l’instruction "call ads", le microcontrôleur procède à : (1pt)


Un saut vers l'adresse des interruptions ..................................................................................
Un saut vers un sous-programme.............................................................................................
La sauve garde du contenu du registre PC ..............................................................................
Un appel d'une instruction à l'adresse ads................................................................................

11. Pour obtenir la configuration suivante avec un PIC16F877A :


RE2 : entrée logique, RE1 : entrée logique, RE0 : sortie logique
RA4 : sortie logique et le reste du port A en entrée analogique; que faut-t-il mettre dans les registres
suivants :
TRISA = 0x..EF..= b 1 1 1 0 1 1 1 1 (0,5pt)
TRISE = 0x..06 .= b 0 0 0 0 0 1 1 0 (0,5pt)
ADCON1 = 0x 09.= b 0 0 0 0 1 0 0 1 (0,5pt)

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 :

OPTION_REG = 0x05.= b 0 0 0 0 0 1 0 1 (1pt)

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

;------------ Définition des registres temporaires --------


cmpt EQU 0x30 ; registre mémoire
Vdec EQU 0x31 ;
memo EQU 0x32 ;
tcp EQU 0x33 ;

;**************************************************************
;------------ 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

MOVLW b’00000111’ ; validation des résistances pulup et init. TIMER0


MOVWF OPTION_REG
Timer 0  8bits  256
Prédiviseur 256  256  65536
;
Quartz1MHz  un cycle  4  s
temporisation  4  s  65536  262 ms
;
bcf STATUS, RP0 ; RP0 = 0 ; Retour en banque mémoire 0
;
;-------------------- ----------------------
;
CLRF cmpt ;
Movlw 0x01
Movwf Vdec

;-------------------- Boucle principale ----------------------


init

CLRF PORTC ; on met 0 sur le port C ( leds sont éteintes )

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

INCF cmpt, w ; incrémentation


goto suite

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

END ; fin programme en assembleur

Vous aimerez peut-être aussi