Utiliser les PIC 16F et 18F/Exercices/Architecture du 16F84


La partie exercice reprend la division de la partie cours. Ainsi, chaque cours aura une partie exercice qui aura un titre à peu près identique. Avant de vous lancer dans les exercices, il vous est donc fortement conseillé de lire la partie cours correspondante.

Architecture du 16F84
Image logo représentative de la faculté
Exercices no1
Leçon : Utiliser les PIC 16F et 18F
Chapitre du cours : Architecture du 16F84

Exercices de niveau 15.

Exo préc. :Sommaire
Exo suiv. :Arithmétique et assembleur
En raison de limitations techniques, la typographie souhaitable du titre, « Exercice : Architecture du 16F84
Utiliser les PIC 16F et 18F/Exercices/Architecture du 16F84
 », n'a pu être restituée correctement ci-dessus.



Exercice 1

modifier

1°) Calculer la valeur de chacune des étiquettes "w_temp", "montableau" et "mavaraible", puis assembler l'instruction movf du programme ci-dessus.

2°)On donne le contenu de la RAM correspondant à la directive.

adresse contenu Instruction (directive ici)
$00C
09 02 03 04 0A 0A 0B 05 09 1F 2E
CBLOCK 0x0C ; début de la zone variables
     w_temp :1      ; Zone de 1 byte 
     montableau : 8  ; zone de 8 byte
     mavariable :1 ; zone de 1 bytes     
 ENDC ; Fin de la zone

Quelle sera la valeur de l'étiquette mavariable (en hexadécimal) ? Une instruction movf mavariable ,w ;(mavariable) -> W est exécutée, quelle valeur est chargée dans W (W, registre de travail 8 bits) ?

3°) Assemblez l'instruction de la question 2°)

4°) On ajoute l'instruction

 
 	movwf PORTA		; W -> PORTA	

en fin de programme. Que fait cette instruction ? Assemblez cette instruction en vous servant de l'architecture mémoire pour trouver la valeur de PORTA.

Exercice 2 (données en hexadécimal)

modifier

La directive utilisée pour réserver la mémoire RAM dans cet exercice est

CBLOCK 0x0C ; début de la zone variables en ACCESS RAM
		somme_pdsfort :1     ; Zone de 1 byte 
		somme_pdsfaible : 1 	; zone de 1 bytes 
		compteur :1  ; zone de 1 byte
		moyenne :1 ; le resultat sera ici
ENDC ; Fin de la zone

On donne l'état (connaissance partielle : on ne connaît pas tout, mais c’est suffisant) suivant :

 
État du PIC16F84

1°) D'après le schéma donné ci-dessus, désassembler la partie utile du code.

2°) Exécuter ensuite les instructions que vous pouvez, et donner les états successifs.

Exercice 3

modifier

Écrire un programme qui transfert la valeur qui est dans "w_temp" dans la variable "mavariable".