Vous êtes sur la page 1sur 4

TD : Microcontrôleur 2STE

EXERCICE 1 :

a) Configurer le PORTB en sortie et l’initialiser à FFH :


BIT 7 6 5 4 3 2 1 0
....................................................... ; BANK1
……………………………………… ; PORTB en sortie
PORTB
……………………………………... ; BANK0
TRISB
……………………………………… ; W FFH

……………………………………… ; PORTB  W
Mot en (H)

b) Configurer les broches RB1, RB3, RB5, RB7 du PORTB en entrée et les autres broches en sortie :

....................................................... ; BANK1
BIT 7 6 5 4 3 2 1 0
……………………………………… ;

……………………………………… ; config. PORTB PORTB

……………………………………... ; BANK0
TRISB

Mot en (H)

c) Configurer les broches RA2, RA3, RA4 du PORTA en entrée et les autres broches en sortie :

....................................................... ; BANK1
BIT 7 6 5 4 3 2 1 0
……………………………………… ;
……………………………………… ; config. PORTA PORTA

……………………………………... ; BANK0
TRISA

Mot en (H)

d) Configurer le PORTB en entrée et enregistrer son contenu à la case mémoire d’adresse OCH :

....................................................... ; BANK1
BIT 7 6 5 4 3 2 1 0
……………………………………… ;
……………………………………… ; config. PORTB PORTB

……………………………………... ; BANK0
TRISB
……………………………………… ; W PORTB

……………………………………… ; OCH  W Mot en (H)


TD : Microcontrôleur 2STE

EXERCICE 2 :

Compléter l’organigramme et le programme


assembleur qui permet de clignoter LED1, branchée à
RB0, pendant un délai d’une seconde (0.5s ON et 0.5s
OFF).

Le microcontrôleur utilise une horloge système de


32,768 KHz

Compléter l’organigramme et le programme ci-


dessous :

Organigramme :

Programme :
LIST P= 16F84 ; PIC utilisé est le 16F84.
ORG 0 ;adresse de début
GOTO Config ; goto config
TEMPO CLRF TMR0 ;initialiser TMR0.
LOOPB ……….. TMR0,…. ;WTMR0.
SUBLW ………….. ; incrémentation – 16
………….. STATUS,….. ; tester incrémentation-W = 0
GOTO ………….. ;incrémentation #16.
………….. ;retour.
Config BSF STATUS,5 ;Bank1.
…………. …………….
MOVWF ……….......... ;PORTB en sortie
MOVLW …………….. ;Prescaler est /256
MOVWF OPTION_R ;
BCF STATUS,5 ;Bank0.
CLRF PORTA ;Clear PortA.
CLRF PORTB ;Clear PortB.
BEGIN …….. PORTB,0 ;LED ON .
TD : Microcontrôleur 2STE

CALL ………….. ;0.5 seconds


……. PORTB,0 ;LED OFF.
CALL …………. ;0.5 seconds
GOTO BEGIN ; Répéter
END ;fin programme

EXERCICE 3 :

1- compléter le sous programme de « lecture_EEPROM » qui permet de lire la donnée se trouvant


dans l’eeprom à l’adresse 02H , puis l’enregistrer à l’adresse OCH de la RAM.
2- compléter le sous programme de « ecriture_EEPROM » qui permet d’enregistrer la donnée se
trouvant dans l’adresse OCH de la RAM à l’adresse 02H de l’EEPROM.
1- Sous programme de lecture :

Lecture_EEPROM ……………………………
…………………………… ; l’adresse à lire
…………………………… ;bank1
…………………………… ;lecture EEPROM
…………………………… .bank0
…………………………… ; W  EEDATA
…………………………… ; 0CH  W
RETURN

2- Sous programme d’écriture :

Ecriture_EEPROM ……………………………
…………………………… ;définition de l’adresse
…………………………… ;
…………………………… ;définition de la donnée
…………………………… ;bank1
…………………………… ;autorisation de l’écriture
……………………………
…………………………… ;écriture de 0x55
…………………………… ;
…………………………… ; écriture de 0xAA
…………………………… ; écriture dans EEPROM
TEST ……………………………
…………………………… ; écriture terminée
BCF EECON,EEIF ;remise à 0 de EEIF
BCF STATUS,RP0 ;bank0
RETURN
TD : Microcontrôleur 2STE

EXERCICE 4 :

Compléter le sous-programme (Clear) permettant d’effacer la zone mémoire utilisateur de la RAM,


en utilisant l’adressage indirecte.

CLEAR MOVLW 0X ...... ; initialisation pointeur en 0x30


MOVWF FSR ; pointeur indirect
INIT1 CLRF ......... ; effacer ram
INCF ......... ,1 ; pointer sur suivant
BTFSS ....... , ..... ; tester fin zone (0x40)
GOTO INIT1 ; non, boucler
………….. ; Retour

EXERCICE 5 :

traduire cette partie de l’organigramme en programme assembleur. Il s’agit d’un PIC 16F877 ; les
broches RC0 et RC1 en sortie et RC2 à RC7 en entée, et le PORTB en sortie :

…….. STATUS,RP1
…….. STATUS,RP0
CLRF TRISB
………….. …………..
MOVWF TRISC
……… STATUS,RP0
MOVF PORTC,W
ANDLW B’………………’
SUBLW B’………………’
BTFSS STATUS,Z
GOTO Loop
BSF PORTC,0
………….. Tempo1
………….. ………………..
BSF PORTB,0
…………. …………..
BCF PORTB,0
…………. ………….
MOVWF PORTB
……… …………

Vous aimerez peut-être aussi