ежимі.
Підпрограма обробки переривання INT0 аналогічна програмі В«МоніторВ». На початку програми виконується початкова установка:
ВЁ зберігається вміст акумулятора, слова стану програми і регістру DPTR в стеці;
ВЁ встановлюється БАНК 2, як активний банк пам'яті даних мікроконтролера;
ВЁ в регістр R4 записується кількість допустимих помилок.
Після виконання первісної установки, мікроконтролер перевіряє вміст регістру R3. Цей регістр виконує роль лічильника пропущених кроків програми. Якщо лічильник не нульовий, то підпрограма відновлює вміст акумулятора, слова стану програми, DPTR і виходить з режиму обробки переривання, для виконання такого кроку програми користувача.
Алгоритм програми обробки переривання INT0 зображений на малюнку 10. <В
В
Рис. 10. Алгоритм програми обробки переривання INT0.
Якщо лічильник дорівнював нулю, тоді мікроконтролер переходить в режим прийому коду операції від ПК.
Алгоритм дешифрування коду операції в програмі обробки переривання INT0 аналогічний алгоритму дешифрування коду операції у програмі В«МоніторВ». Тут передбачені такі коди операцій:
ВЁ 01h - читання пам'яті програм МК;
ВЁ 02h - запис інформації в програмно - доступні вузли МК;
ВЁ 03h - запис в пам'ять програм МК;
ВЁ 04h - видача коду наступної команди;
ВЁ 05 h - виконання блоку команд програми користувача;
ВЁ 06h - виконання програми в режимі реального часу;
ВЁ 07h - останов програми;
ВЁ 08h - виконання такого кроку програми;
ВЁ інші - виконання програм користувача.
Велика частина підпрограм, обираних користувачем в покроковому режимі, аналогічна підпрограмам, вибираним в програмі В«МоніторВ».
Якщо значення регістра R5, при виході з підпрограми буде нульовим, то буде виконаний наступний крок основної програми.
Для виконання зупинки програми, досить перевести стан сигналу на виході P2.5 в нульовий стан і в стеку підмінити адресу наступної команди на адреса початку програми В«МоніторВ». br/>
Для того щоб перевести програму користувача з покрокового режиму, на виконання програми в режимі реального часу необхідно встановити стан сигналу P2.5 в нульовий стан.
Алгоритм декодування коду операції представлений на малюнку 11.
В
p align=center> Рис. 11. Алгоритм декодування коду операції в покроковому режимі роботи програми користувача.
Для видачі коду наступної команди необхідно вважати 3 байта інформації з пам'яті програм. Початковий адресу наступної команди можна взяти з покажчика стека.
2.3.2.4 Підпрограма запису програми користувача в пам'ять програм мікрок...