Академический Документы
Профессиональный Документы
Культура Документы
2
Les interruptions du PIC 16F877
2) les interruptions périphériques :
- Fin de programmation d’une case mémoire de l’EEPROM.
- Changement d’état sur le PORTD (PSPIE).
- Fin de conversion analogique numérique (ADIE).
- Réception d’une information sur la liaison série (RCIE).
- Fin d’émission d’une information sur la liaison série (TXIE).
- Interruption SPI ou I2C du module MSSP (SSPIE).
- Interruption du registre de capture et/ou de comparaison 1 (CCPI1E).
- Interruption du registre de capture et/ou de comparaison 2 (CCPI2E).
- Débordement du TIMER1 (TMR1E).
- Débordement du TIMER2 (TMR2E).
- Collision de BUS (BCLIE)
Elles sont gérées par les registres :
3
Les interruptions du PIC 16F877
Toutes les interruptions peuvent être validées/interdites par le bit INTCON.GIE
Toutes les interruptions périphériques peuvent être validées/interdites par le bit
INTCON.PEIE
Chaque interruption peut être validée/interdite par son bit de validation individuel
4
Les interruptions du PIC 16F877
Lors d’une interruption valide et autorisée, le programme en cours d’exécution est
interrompu et le microcontrôleur exécute le programme d’interruption à partir de
l’adresse 0x0004. Au début de celui-ci il faut que le logiciel vérifie quel source a
déclenché l’interruption.
Rem :
Seul le registre PC est empilé automatiquement. Si cela est nécessaire, le sous
programme d’interruption doit sauvegarder le contexte et le restituer à la fin, c’est
à dire les valeurs des registres W, PCLATCH et STATUS, pour que le
microcontrôleur puisse reprendre le programme principal dans les mêmes
conditions où il l'a laissé.
5
Exemple de programmation d’interruption
Par interruption, pour chaque action sur le BP1 , on incrémente le port C
6
Exemple de programmation d’interruption
Le programme
; Directives !!
list p=16f877A
#include "p16f877A.inc"
__CONFIG _CP_OFF & _DEBUG_OFF & _WRT_OFF & _CPD_OFF & _LVP_OFF &
_BODEN_OFF & _PWRTE_ON & _WDT_OFF & _HS_OSC
7
Programme principal
;------------ Programme principal ---------------
ORG 0x100 ; l'adresse du début du programme est toujours '0'
Start
bsf STATUS,5 ; vers page 1 de la RAM
10
Interruptions multiples
11