Sunteți pe pagina 1din 25

SIC_CURS_11

MICROCONTROLERUL 8051
Sistemul de intreruperi
SISTEMUL DE INTRERUPERI

SIC COURSE
INTRERIPERI_MOD DE FUNCTIONARE

1-Se executa instructiunea curenta


2-Se salveaza PC in stiva
3-Se salveaza intern ‘status-ul’ intreruperii
4-Se blocheaza liniile de intrerupere inferioare si de pe acelasi nivel
5-Se incarca in PC adresa de salt la subrutina de intrerupere
6-Se executa ISR
SIC COURSE
TIPURI DE INTRERUPERE

SIC COURSE
REGISTRII IMPLICATI IN INTRERUPERI_1

SIC COURSE
REGISTRII IMPLICATI IN INTRERUPERI_2

SIC COURSE
INTERRUPT ENABLE

SIC COURSE
INTERRUPT PRIORITY

SIC COURSE
PT2=2; PS=0; PT1=PT0=0; PX1=PX0=1 PT2=2; PS=1; PT1=PT0=0; PX1=PX0=1
IP= 0 0 1 0 0 1 0 1 IE= 1 0 1 1 1 1 1 1
MASK= 0 0 1 0 0 0 0 0 MASK= 1 0 1 0 0 0 0 0

ISR_X: PUSH IP IRS_X: PUSH IE


MOV IP, #MASK MOV IE, #MASK
CALL LABEL
………………………………… …………………………………
………………………………… …………………………………
POP IE
POP IP RET
LABEL: RETI LABEL: RETI

SIC COURSE
MODUL DE OPERARE AL INTRERUPERILOR

SIC COURSE
MOD OPERARE TIMMING
1-ULTIMUL CICLU AL INSTRUCTIUNII
2-NU SE EXECUTA ISR SUPERIOR SAU
EGAL
3-INSTR CURENTA NU ESTE RET, RETI, SAU
INSTR DE TRANSFER IN IE SAU IP

SIC COURSE
ISR SCURTE SI LUNGI

SIC COURSE
INTRERUPEREA DE TIMER_ex1
Generare de 10kHz la P1.0 utilizand intreruperile si timerul T0
ceasul este de 12MHz

SIC COURSE
INTRERUPEREA DE TIMER_ex2
Generare de 7kHz la P1.7 si 500Hz la P1.6; ceasul este de 12MHz

SIC COURSE
GENERAREA FORMELOR DE UNDA

SIC COURSE
INTRERUPERI EXTERNE
EXEC PAS cu PAS

CONTINUTUL SUBRUTINEI:

SIC COURSE
ISR_ex1

P1.7=1 cuptor pornit


P1.7=0 cuptor oprit

SIC COURSE
ISR_ex1-b

SIC COURSE
ISR_ex2-alarma pentru usa deschisa

SIC COURSE
SIC COURSE
SIC COURSE
Indicii intreruperii in C

SIC COURSE
SIC COURSE
Program in C:
(a)10KHz la P2.1 folosind T0
(b)Se numara pulsuri externe de frecventa joasa ce sunt
preluate prin EX1 (PIN p3.3) si continuu se afiseaza la P0.
XTAL=11.0592MHz.

SIC COURSE
SIC COURSE

S-ar putea să vă placă și