Lätt PIC micro staten övergången avbrottskod (1 / 1 steg)
Steg 1: Koden
"när du ändrar tillståndet för PortB.0 pin, LED kommer att
"Inaktivera för 0,5 sekunder, sedan vända tillbaka
"kan du ändra de sätt som fungerar detta avbrott av
"mixtra med bitarna OPTION_REG och INTCON
' se botten av denna kod för lite definitioner
LED var PORTB.7
OPTION_REG = % 01111111' aktiverar PORTB pullups
På Avbryt Goto Cylinda "definiera avbrottshanterare
INTCON = % 10010000' aktiverar INTE avbryta
slinga: hög ledde "vända LED på
Goto loop "göra det för alltid
"Avbryta handler
Inaktivera "ingen avbryter bortanför den här punkten
Cylinda:
Låg ledde "om vi får här, inaktivera LED
Pausa 500' vänta 5 sekunder
INTCON.1 = 0' klart avbrott flagga
Återuppta "gå tillbaka till huvudprogrammet
Aktiverar
'################################################################
"###--OPTION_REG lite definitioner--###
'################################################################
"OPTION_REG Register (adress 81h)
"bit 7: * RBPU: PORTB Pull-up aktiverar lite
1 = PORTB pull-ups är inaktiverade
0 = PORTB pull-ups är aktiverade (som enskilda portvärden spärr)
"bit 6: INTEDG: avbryta Markera kanten lite
1 = avbrott stigande utkanten av PB0/INT pin
0 = avbrott fallande utkanten av PB0/INT pin
"bit 5: T0CS: TMR0 Välj klocka källa lite
1 = övergång på PA4/T0CKI stift
0 = inre anvisning cykel klocka (CLKOUT)
"lite 4: TOSE: TMR0 Välj källa kanten lite
1 = increment på hög-till låg övergång på PA4/T0CKI stift
0 = increment på låg till hög övergång på PA4/T0CKI stift
"lite 3 PSA: Prescaler tilldelning bit
1 = prescaler tilldelats Watchdog Timer
0 = prescaler tilldelats TMR0
"bit 2-0: PS2:PS0: Prescaler pris Välj bitar
"Se den PIC16F84 täcker.
'###############################################################
"###--INTCON Register Bits definitioner--###
'###############################################################
"INTCON registret ligger vid 0BH och den definieras enligt följande:
"bit 7: GIE: Global avbryta aktiverar lite
1 = gör alla un-maskerade avbryter
0 = inaktiverar alla avbrott
"bit 6: EEIE: EE skriva komplett avbryta aktiverar lite
1 = aktiverar EE skriva komplett avbrott
0 = inaktiverar EE skriva avbrott
"bit 5: T0IE: TMR0 Overflow avbryta aktiverar lite
1 = gör TMR0 avbrott
0 = inaktiverar TMR0 avbrott
"lite 4: INTEG: PB0/INT avbryta aktiverar lite
1 = gör PB0/INT avbrottet
0 = inaktiverar PB0/INT avbrottet
"bit 3: RBIE: PB Port förändring avbryta aktiverar lite
1 = möjliggör PB port förändring avbrott
0 = inaktiverar PB port förändring avbrott
"bit 2: T0IF: TMR0 Overflow avbryta flagga lite
1 = TMR0 musdata (måste rensas av programvara)
0 = TMR0 inte svämma över
"bit 1: ITF: PB0/INT avbryta flagga lite
1 = the PB0/INT avbrott inträffade
0 = the PB0/INT avbrott uteblev
"bit 0: RBIF: PB Port förändring avbryta flagga lite
1 = när minst en av PB4-PB7 stift ändra tillstånd (måste rensas i programvara)
0 = ingen av PB4-PB7 pins har ändrat staten