Avbryta rutin i assembler med 8-bitars PIC (2 / 2 steg)
Steg 2: Montering kodning
Nästa steg: den kodning sak. Somliga anser en god praxis att utföra en "blinkning" för att testa PIC utgångarna. Asuming att allt är ok och vi har en stabil 5VDC källa, låt oss "bränna" den mikrokontrolleren med koden bifogas.
< p > lista p = 16F870 < br > inkluderar "p16f870.inc" < /p >< p > ORG 00h
GOTO INICIO < /p >< p > ORG 04h; Comienzo de los registros para almacenar Instrucciones
BCF PORTB, 4
BSF PORTB, 5
BCF INTCON, 1
RETFIE < /p >< p > ORG 30 tim. Slutliga de los registros para almacenar Instrucciones < /p >< p > INICIO BSF STATUS, 5. Cambio de Banco a 1
BCF STATUS, 6. Cambio de Banco a 1 < /p >< p > BCF TRISB, 5. RB5 Salida
BCF TRISB, 4. RB4 Salida
BSF TRISB, 0; RB0 Entrada
BCF STATUS, 5; Devuelve al Banco 0 < /p >< p > BSF INTCON, 7. Habilita las interrupciones
BSF INTCON, 4. Habilita Interrupciones externas RB0/INT < /p >< p > BCF PORTB, 5. LED APAGADO
BSF PORTB, 4. LEDDE ENCENDIDO < /p >< p > ARRIBA BTFSS PORTB, 5
NOP
GÅ TILL ARRIBA
SLUTET < /p >
Detta avbrott rutin fungerar med och externa hög impuls på RB0 pin. När INT dess utförda, båda Lysdioderna kommer att ändra sin status.
Låt oss fördelning koden:
Konfiguration rutin bara setup hamnar vi ska använda som in- och utgångar
BSF STATUS, 5. Banken 1º BCF STATUS, 6. Bank 1
BCF TRISB, 5. RB5 utgång
BCF TRISB, 4. RB4 utgång
BSF TRISB, 0; RB0 ingång
BCF STATUS, 5. Bank 0
Sedan aktiverar det INTCON registret och ange portb status.
BSF INTCON, 7. Aktivera Global avbrott rutiner
BSF INTCON, 4. Aktivera extern avbryter RB0/INT BCF PORTB, 5. LEDDE BORT BSF PORTB, 4. LYSDIODEN PÅ
Slutligen den INT rutin som ändrar PORTB status och tydliga INT externa avbryta flagga.
< p > BCF PORTB, 4 < br > BSF PORTB, 5
BCF INTCON, 1
RETFIE < /p >
Prova det, ändra det för att utföra någon annan åtgärd och njuta!