Структура программы

 

Используемые ресурсы (без регистров управления АЦП):

Сброс флага IE0 выполняется аппаратно при обслуживании прерывания только в том случае, когда прерывание было вызвано по срезу сигнала. Если прерывание было вызвано по уровню сигнала на входе INT0, то сброс флага IE0 должна выполнять программа обслуживания прерывания. Выбираем прерывание по срезу. Поэтому в блоке инициализации в регистр TCON следует записать 01h.

В блоке инициализации в регистр IE следует записать 81h.

 

;***************************************************

;*Синхронизация внешним сигналом прерывания *

;* Автор: *

;* Дата создания: *

;* Краткое описание алгоритма *

;* Дата модификации: *

;* Цель и суть модификации *

;* Другая информация *

;***************************************************

;

;

CSEG AT   ;Абсолютный сегмент кода ;по адресу 0
  ljmp Start_Up   ;Первая команда по адресу 0. ;Переход на блок ;инициализации
  org 0003h   ;Переместить локальный ;счетчик на адрес 0003h. Это ;вектор внешнего прерывания
  ljmp Main   ;Переход на подпрограмму ;обслуживания этого ;прерывания
ISEG AT 60h   ;Абсолютный сегмент с ;косвенной адресацией по ;адресу 0060h
Stack: DS 10h   ;Резервируем 16 байтов под ;стек
My_Prog Segment Code   ;Объявляем перемещаемый ;сегмент с именем My_Prog ;для кода нашей программы
  Rseg My_Prog   ;Активизируем этот сегмент
  org 30h   ;Переместить локальный ;счетчик на адрес 0030h.
Start_Up:  
;Начало блока инициализации
  mov SP, #Stack-1 ;Инициализировать указатель ;стека
;запись кода в порты микроконтроллера
;установка режимов работы периферийных устройств
;запись кодов в регистры спецфункций
;чтение исходных данных из ПЗУ
;запись начальных значений в рабочие ячейки
;т.е. конфигурирование микроконтроллера для решения поставленной задачи
  setb IT0   ;Определить тип внешнего ;прерывания по входу INT0 по ;срезу
  setb EX0   ;Разрешить это прерывание
  setb EA   ;Разрешение всех прерываний
Back_Gr:  
;конец блока инициализации, начало фоновой задачи
;выполнение фоновой задачи
  jmp Back_Gr   ;Бесконечный цикл
; - - -Срочная задача (Подпрограмма обслуживания прерывания) - - - - - - - - - -
Main: clr EA   ;запретить прерывания
  push PSW   ;Сохранение регистров
  push Acc   ;(только используемых п/п)
; Команды, необходимые для обслуживания прерывания
  pop Acc   ;Восстановление
  pop PSW   ;регистров
  setb EA   ;разрешить прерывания
  reti     ;Возврат из прерывания
; - - - - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  END     ;Директива завершения ;трансляции