Etape 1: Le Code
"lorsque vous modifiez l’état de la broche de la PortB.0, la LED sera
' couper pendant 0,5 seconde, puis remet en marche
"vous pouvez changer la façon dont cette interruption se comporte en
« jongler avec les bits OPTION_REG et INTCON
« Voir le fond du présent code pour les définitions du bit
voyant var PORTB.7
OPTION_REG = % 01111111' activez PORTB pullups
Sur Interrupt Goto myint ' gestionnaire d’interruption de définir
INTCON = % 10010000' INTE activer interruption
boucle : haut conduit ' LED tourner sur
Goto boucle « faites-le pour toujours
"Interrompre gestionnaire
Désactiver "sans interruptions au-delà de ce point
Myint :
Bas conduit ' si nous obtenons ici, éteignez LED
Faire une pause 500' attente.5 secondes
INTCON.1 = 0' clair interrupt flag
Curriculum vitae ' retour au programme principal
Enable
'################################################################
"###--OPTION_REG Bit définitions--###
'################################################################
' OPTION_REG Registre (adresse 81h)
« bit 7: * RBPU : PORTB pull-up activer bits
1 = PORTB pull-ups sont désactivées
' 0 = PORTB pull-ups sont activées (par valeurs de ports individuels de loquet)
« bit 6: INTEDG : interrompre bord sélectionnez bit
1 = interruption sur front montant de broche PB0/INT
' 0 = interruption sur front descendant de broche PB0/INT
« bit 5: T0CS : TMR0 Clock Source sélectionnez bit
1 = la transition sur la broche PA4/T0CKI
' 0 = horloge de cycle instruction interne (CLKOUT)
« bit 4: TOSE : TMR0 Source bord sélectionnez bit
1 = incrément sur haut-à-basse transition sur la broche PA4/T0CKI
' 0 = incrément sur la transition de faible à élevé sur la broche PA4/T0CKI
« bit PSA 3: affectation Prédiviseur bit
1 = le Prédiviseur assigné au temporisateur
' 0 = prescaler assigné à TMR0
« bit 2-0: PS2:PS0 : Prédiviseur taux sélectionnez bits
« Veuillez vous reporter à la fiche technique du PIC16F84.
'###############################################################
"###--Registre INTCON mèches définitions--###
'###############################################################
« Le registre INTCON se trouve à 0BH et elle est définie comme suit :
« bit 7: GIE : Global interrompre activer bits
1 = active toutes les interruptions non masquées
' 0 = désactive toutes les interruptions
« bit 6: EEIE : EE écrire complet interrompre activer bits
1 = active la EE écrire interruption complète
' 0 = désactive la EE écrire interruption
« bit 5: T0IE : TMR0 déborder interrompre activer bits
1 = active la TMR0 interruptions
' 0 = désactive la TMR0 interruptions
« bit 4: INTE : PB0/INT interrompre activer bits
1 = permet l’interruption PB0/INT
' 0 = désactive les interruptions PB0/INT
« bit 3: RBIE: PB changement de Port activez interrompre peu
1 = active la PB port changement interruption
' 0 = désactive le PB port changement interruption
« bit 2: T0IF : bit TMR0 déborder interrompre indicateur
1 = TMR0 a débordé (doivent être effacées par le logiciel)
' 0 = TMR0 ne pas déborder
' le bit 1: INTF : bit indicateur d’interrompre PB0/INT
1 = le PB0/INT interruption s’est produite
' 0 = le PB0/INT interruption n’a pas eu lieu
« bit 0: RBIF: PB Port changement Interrupt Flag bit
1 = lorsqu’au moins un de la PB4-PB7 pins changer l’État (doit être désactivée dans le logiciel)
' 0 = none de la PB4-PB7 épingles ont changé d’état