DS Semestre : 2 Module : Architecture des microcontrôleurs Enseignants : Hassen Jedidi & Hichem BARGAOUI Classes : 3 Info B1, Tel B1, Tel B2, 2A1 et 2A2 Documents autorisés : Date : 20/04/2011 Non Nombre de pages : 4 Heure 9h Durée : 1H Exercice 1 : Le but de cet exercice est d’écrire un programme en assembleur qui permet de faire clignoter une LED. Le schéma du circuit est donné dans la figure suivante. C1 33p X? CRYSTAL U? 16 15 4 C2 33p OSC1/CLKIN OSC2/CLKOUT MCLR R1 RA0 RA1 RA2 RA3 RA4/T0CKI RB0/INT RB1 RB2 RB3 RB4 RB5 RB6 RB7 100 17 18 1 2 3 6 7 8 9 10 11 12 13 D1 LED-GREEN PIC16F84A R2 470 C3 Dés que le système est mis sous tension, la LED devra clignoter indéfiniment. 1. Dessiner l’organigramme de l’application. Pour la temporisation on fera apparaitre une fonction « Tempo » 2. Fonction Tempo Le code assembleur suivant est celui d’une fonction de temporisation. Les variables Tempo_value_B2 et Tempo_value_B1 sont stocké respectivement dans l’adresse 0X020 et 0X021. Le microcontrôleur est cadencé à 4 MHZ. Tempo_Wms: 2 BCF STATUS, RP0 ; 3 CLRF Tempo_value_B1 ; 4 Tempo_B1: 5 MOVLW 0xF9 ; 6 MOVWF Tempo_value_B2 ; 7 Tempo_B2: 8 NOP ; 9 DECFSZ Tempo_value_B2,1; 10 GOTO Tempo_B2 ; 11 DECFSZ Tempo_value_B1,1; 12 GOTO Tempo_B1 ; 13 RETURN a. b. c. Indiquez pour chaque ligne de cette fonction ce qui est réalisé par le microcontrôleur. En déduire l’organigramme de la fonction Tempo_Wms. En déduire le temps d’exécution de la fonction Tempo_Wms. 3. Programme Principal a. Donner les instructions qui permettent de configurer le port B. b. Ecrire une macro LEDON et une macro LEDOFF qui permettent réciproquement d’allumer et d’éteindre la LED. c. Ecrire en assembleur le programme principal qui permet de réaliser le fonctionnement demandé. 2 Nom & Prénom :………………………………………………………………………………. Classe :………………………………………………………………………………………… Exercice 2 : Cocher la ou les bonnes réponses : 1. Le microcontrôleur 16F84 implémente une mémoire programme: dont l’adresse est comprise entre 0x000 et 0x3FF dont l’adresse est comprise entre 0x000 et 0x3FFF dont l’adresse est comprise entre 0x000 et 0x3FFFF 2. Un microcontrôleur PIC exécute 5 millions d’instructions par seconde: possède un cycle instruction de 100 nano sec ; possède un cycle instruction de 200 nano sec ; possède un cycle instruction de 500 nano sec ; 3. Soit le code suivant : SUITE1 SUITE2 TEST …… …… ……. …… INCFSZ reg,1 GOTO SUITE1 GOTO SUITE2 Si avant l’exécution de l’instruction « INCFSZ » le registre « reg » contient la valeur décimale 255, alors l’instruction qui s’exécute après « INCFSZ » aura comme label : SUITE1; FIN ; TEST; SUITE2; 4. La technique de pagination : Permet de réduire le temps d’accès à la mémoire ; Permet de réduire le nombre de ligne d’adresse pour l’accès à la mémoire; D’augmenter le nombre de cellules accessibles utilisant le même nombre de lignes d’adresses ; Est indispensable lorsque le microcontrôleur adopte l’architecture harvard. 5. Dans un programme, le PIC 16F84: A la possibilité d’exécuter 5 appels consécutifs imbriqués de sousprogrammes ; A la possibilité d’exécuter 8 appels consécutifs imbriqués de sousprogrammes ; A la possibilité d’exécuter 14 appels consécutifs imbriqués de sousprogrammes ; 3 4