Stap 1: De Code
' wanneer u de status van de PortB.0-pin wijzigen, de LED zal
' zwenking vandoor voor 0,5 seconden, dan terug inschakelen
' u kunt de manieren waarin deze interrupt gedraagt zich door
' gehannes met de OPTION_REG en INTCON bits
' Zie de bodem van deze code voor bits-definities
LED var PORTB.7
OPTION_REG = % 01111111' inschakelen PORTB pullups
Op Interrupt Goto myint ' Define interrupt handler
INTCON = % 10010000' inschakelen INTE interrupt
lus: hoog leidde ' Zet LED op
Goto lus ' doe het voor altijd
"Interrupt handler
Uitschakelen ' geen interrupts voorbij dit punt
Myint:
Laag leidde ' als we hier krijgen, uitschakelen LED
Onderbreken 500' wachten.5 seconds
INTCON.1 = 0' duidelijk interrupt flag
CV ' terug te keren naar het hoofdprogramma
Inschakelen
'################################################################
' ###--OPTION_REG beetje definities--###
'################################################################
"OPTION_REG Register (adres 81h)
' bit 7: * RBPU: beetje PORTB Pull-up inschakelen
1 = PORTB pull-ups zijn uitgeschakeld
' 0 = PORTB pull-ups zijn ingeschakeld (door individuele poortwaarden klink)
' bit 6: INTEDG: beetje onderbroken rand selecteren
1 = interrupt aan stijgende rand van PB0/INT pin
' 0 = interrupt aan dalende rand van PB0/INT pin
' bit 5: T0CS: TMR0 klok bronselectie bit
1 = overgang op PA4/T0CKI pin
' 0 = interne instructie cyclus kloksnelheid (CLKOUT)
' bit 4: TOSE: TMR0 rand bronselectie bit
1 = increment op hoog-laag-overgang op PA4/T0CKI pin
' 0 = increment op lage tot hoge overgang op PA4/T0CKI pin
' bit 3 PSA: Prescaler toewijzing bit
1 = prescaler toegewezen aan de Watchdog-Timer
' 0 = prescaler toegewezen aan TMR0
' bit 2-0: PS2:PS0: bits Prescaler tarief selecteren
' Raadpleeg de fiche van de PIC16F84.
'###############################################################
' ###--INTCON Register Bits DEFINITONS--###
'###############################################################
' Het INTCON-register is gelegen op 0BH en het wordt als volgt gedefinieerd:
' bit 7: GIE: Global Interrupt inschakelen bit
1 = mogelijk maakt van alle niet-gemaskerde interrupts
' 0 = uitgeschakeld alle interrupts
' bit 6: EEIE: beetje EE schrijven volledig onderbreken inschakelen
1 = maakt het mogelijk de EE schrijven volledige interrupt
' 0 = schakelt de EE schrijven interrupt
' bit 5: T0IE: TMR0 Overflow Interrupt inschakelen bit
1 = maakt het mogelijk de TMR0 interrupts
' 0 = schakelt de TMR0-interrupts
' bit 4: INTE: PB0/INT onderbreken inschakelen bit
1 = maakt de interrupt PB0/INT
' 0 = uitgeschakeld de interrupt PB0/INT
' bit 3: RBIE: PB poort verandering onderbreken inschakelen bit
1 = maakt het mogelijk de PB poort verandering interrupt
' 0 = schakelt de PB poort verandering interrupt
' beetje van 2: T0IF: TMR0 Overflow Interrupt Flag bit
1 = TMR0 heeft overstroomd (moeten worden weggewerkt door software)
' 0 = TMR0 deed niet overlopen
' bit 1: INTF: PB0/INT Interrupt Flag bit
1 = de PB0/INT interrupt is opgetreden
' 0 = de PB0/INT interrupt zich niet heeft voorgedaan
' bit 0: RBIF: PB poort verandering Interrupt Flag bit
1 = wanneer ten minste één van de PB4-PB7 verandering staat pinnen (moeten worden weggewerkt in de software)
' 0 = geen van de PB4-PB7 pinnen hebt gewijzigd staat