реривань знаходиться за адресою 0х04.
Оброблювач переривань включає в себе наступні підпрограми:
1. Підпрограма збереження контексту.
2. Підпрограма визначення джерела переривання.
. Підпрограма годин.
. Підпрограма обробки переривань від таймера TMR2.
. Підпрограма обробки переривань по входу INT.
. Підпрограма обробки переривань по входах .
. Підпрограма прийому/передачі даних через USART.
. Підпрограма відновлення контексту.
2.10.1 Підпрограма збереження контексту
При переході на обробку переривань необхідно зберігати поточний вміст акумулятора і регістра STATUS, щоб при поверненні з переривання програма могла продовжувати нормальну роботу.
Нижче наведено лістинг підпрограми, що здійснює збереження контексту в тимчасові регістри W_TEMP і STATUS_TEMP. Регістр STATUS_TEMP визначений в 0-му банку за адресою 0х39, а регістр W_TEMP - в 0-му банку за адресою 0х3А і в 1-му банку за адресою 0хВА. br/>
; ----------------------------------------- ------------------------
; ЗБЕРЕЖЕННЯ АКУМУЛЯТОРА І РЕГІСТРУ STATUS STATUS, RP0 ; ВИЗНАЧЕННЯ ПОТОЧНОГО БАНКУ RP0_CLR STATUS, RP0 ; ВСТАНОВИТИ БАНК 0 W_TEMP span> ; ЗБЕРЕГТИ АККУМУЛЯТОР STATUS, W STATUS_TEMP ; ЗБЕРЕГТИ РЕГІСТР STATUS STATUS_TEMP, 5 ; ВІДНОВИТИ ЗНАЧЕННЯ БІТА RP0 $ +4 _CLR W_TEMP ; ЗБЕРЕГТИ АККУМУЛЯТОР
SWAPF STATUS, W STATUS_TEMP ; ЗБЕРЕГТИ РЕГІСТР STATUS
; ----------------------------------------- ------------------------
2.10.2 Підпрограма визначення джерела переривання
Ця підпрограма станом прапорів переривань в регістрах PIR1 і INTCON визначає джерело переривання і здійснює виклик відповідної підпрограми обробки.
Лістинг підпрограми наведений нижче.
; ----------------------------------------- ---------...