0% ont trouvé ce document utile (0 vote)
147 vues5 pages

Correction Rattrapage Microcontrôleurs

Le document contient les corrections d'un examen sur l'architecture des microcontrôleurs. Il présente une série de questions à choix multiples et un exercice sur la programmation d'un microcontrôleur PIC.

Transféré par

Bouabdellah Adjlout
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
147 vues5 pages

Correction Rattrapage Microcontrôleurs

Le document contient les corrections d'un examen sur l'architecture des microcontrôleurs. Il présente une série de questions à choix multiples et un exercice sur la programmation d'un microcontrôleur PIC.

Transféré par

Bouabdellah Adjlout
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

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 [Link]
__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