Evaluation programmation Partie 1 : questionnement écrit (9 pages

found in Section 4.0 of this data sheet. ... the CPU and peripheral modules for controlling the ..... EEPROM Control Register2 (not a physical register). ---- ----. 41.
571KB taille 4 téléchargements 35 vues
Evaluation programmation Partie 1 : questionnement écrit (9 pages) Partie 2 : questionnement TP (10 pages) Partie 3 : document ressource (4 pages) Partie 4 : extrait documentation constructeur PIC16F877

Evaluation programmation Partie 1 Questionnement écrit

Siège 406 – Evaluation programmation Questionnement de la partie écrite I Analyse de la version en langage assembleur I.1 Sous programme INIT Question1 A partir du schéma structurel du PIC16F877, indiquer dans le tableau du document réponse 1, les configurations des différents ports d’entrées/sorties. Indiquer également quel est le signal affecté à chacune des broches. Question2 Par défaut et d’une manière générale, comment sont configurées les broches d’entrées/sorties du PIC16F877 ? Configuration du PORTD : Question3 Ecrire les instructions assembleurs permettant d’accéder à la banque0. Justifier votre réponse. Compléter alors la partie intitulée « sélection de la banque 0 par défaut » du document réponse 2. Question4 Quel est le nom du registre de configuration du PORTD ? Quelle doit être la valeur stockée dans ce registre pour configurer correctement le PORTD. Justifier votre réponse. Question5 Ecrire les instructions assembleurs permettant de configurer le PORTD correctement. Compléter alors la partie intitulée « Configuration du PORTD » du document réponse 2. Question6 En considérant les signaux affectés aux broches du PORTD, indiquer quels devront être leurs états logiques lorsque le système est mis sous tension. Justifier votre réponse. Ecrire les instructions assembleurs permettant d’initialiser correctement ces broches. Compléter la partie intitulée « Configuration du PORTD » du document réponse2. Configuration du PORTA et du PORTD : La particularité de ces entrées est qu’elles peuvent être configurées soit en analogique soit en numérique. Question7 Dans le cas de notre système technique, doit on utiliser ces broches en numériques ou en analogiques. Justifier votre réponse. Question8 D’après la documentation constructeur, quel est le registre permettant de configurer l’utilisation des entrées en analogique ou en numérique. Dans quelle banque se trouve ce registre ?

G BERTHOME

Page 1/9

Siège 406 – Evaluation programmation Questionnement de la partie écrite Question9 En supposant que le bit ADFM=1, indiquer quelle devra être la valeur de ce registre. Justifier votre réponse. Question10 Ecrire les instructions assembleurs permettant de configurer correctement le PORTA et le PORTE. Compléter la partie intitulée « configuration du PORTA et du PORTE » du document réponse 2.

I.2 Programme principal On souhaite écrire en langage assembleur, le programme correspondant à l’algorigramme du programme principal (voir document ressource). On utilisera les déclarations du fichier Decla.h pour une lisibilité du programme. Test FC_AV=0 : Dans le fichier de déclarations on a la ligne suivante : #DEFINE

FC_AV

PORTE,1

Test VAR_GV=1 : VAR_GV est le bit0 de la variable 8 bits VAR_GRANDE_VIT : #DEFINE

VAR_GV

VAR_GRANDE_VIT,0

Test BP_MVT_SENS actifs On décomposera ce test de cette manière.

W=$FF BP_MVT_SENS actifs ?

NON PORTC-W

OUI Z=0 ?

NON

OUI

Z est un bit du registre STATUS. Pour tester ce bit on pourra utiliser la syntaxe suivante : « STATUS,Z » Action sur VAR_DEP : VAR_DEP est une variable sur 8 bits.

G BERTHOME

Page 2/9

Siège 406 – Evaluation programmation Questionnement de la partie écrite Test IMA_ACC : Dans le fichier de déclarations on a la ligne suivante : #DEFINE

IMA_ACC

PORTE,0

Test BP_M=0, BP_CONDUCT1=0 et BP_CONDUCT2=0 : Dans le fichier de déclarations on a les lignes suivantes : #DEFINE #DEFINE #DEFINE

BP_M BP_CONDUCT1 BP_CONDUCT2

PORTB,1 PORTB,2 PORTB,3

Question11 Ecrire le programme principal en langage assembleur correspondant à l’algorigramme du programme principal. Justifier toutes vos instructions par des commentaires. Compléter le document réponse 3.

II Analyse de la version en langage C II.1 Etude du sous programme « detect_sens » Question12 Définir la sortie DIR (voir description de F1.3.3 « Détecter le sens de rotation des moteurs »). Question13 Rappeler le résultats des opérations suivantes : -a•0, -a•1, -a+0, -a+1. Sachant que a correspond à une variable sur 1 bit. Question14 En déduire quelle est l’opération à réaliser avec DIR pour mettre à 1 la variable DIR_GLI sans modifier les autres variables. Question15 Quelle est l’opération à réaliser avec DIR pour mettre à 0 la variable DIR_GLI sans modifier les autres variables.

G BERTHOME

Page 3/9

Siège 406 – Evaluation programmation Questionnement de la partie écrite On rappelle les instructions suivantes du langage C :

Les opérateurs logiques bit à bit : Ces opérateurs agissent sur des mots binaires. Ils effectuent entre deux mots une opération logique sur les bits de même rang. Opérateur

Fonction

Notation

& | ^ ~

ET OU OU exclusif NON

>>

Décalage à droite des bits


4 (Z prend la valeur de X après le décalage à droite de 4 bits) Z=X