Но если в режиме холостого хода будет произведен общий сброс (повторное нажатие кнопки ''ВКЛ'' при состоянии флага FR = 1), то пейджер перейдет в режим приема сообщений, поступающих с демодулятора ВЧ-тракта. Но до этого предварительно происходит инициализация микроконтроллера (организуется стек, разрешаются внешние прерывания, инициируется включение режима приема, разрешается прием последовательных данных и устанавливается режим 2 работы последовательного порта Р3). Прием сообщений начинается с приема последовательного кадра адреса (RB8 = 1) и активизации последовательного порта, путем сброса флага приемника (R1 = 0), после чего микроконтроллер начинает работу в режиме ожидания сообщения. Прием каждого кадра адреса приводит к установке флага приемника (R1 = 1). Затем содержимое буфера приемопередатчика передается в аккумулятор и подвергается далее декодированию, результат декодирования сравнивается сначала с широковещательным адресом СПРВ (с нулевым адресом), а потом с индивидуальным адресом пейджера, загруженным в порт Р1 (''монтажный код пейджера). Если оказывается, что принятый адрес не равен широкополосному адресу и собственному адресу пейджера, то микроконтроллер осуществляет переход к приему адреса следующего сообщения. Если же окажется, что принят широковещательный адрес или адрес пейджера, то разрешается прием следующего кадра, содержащего сообщение. Код принятого сообщения декодируется в двоичный номер N сигналов вызова, которые должны быть сформированы и выведены на акустический и световой излучатели.
Полученный двоичный номер сигналов вызова фиксируется в таблице хранения принятых вызовов (номеров сигналов вызова), после чего по принятому исходному номеру сигналов вызова вычисляется адрес соответствующей ему подпрограммы формирования и вызова. Звуковой и световой сигналы вызова - периодические и непрерывные, для их прекращения, когда сообщение принято (понятно) абонентом, используется прерывание /INT1 (кнопка ''ПРИН'').
В режим приема кода адреса следующего сообщения микроконтроллер переводится по прерыванию /INT1 при флаге FR = 1.
Данная управляющая программа разработана на основе блок-схемы алгоритма функционирования пейджера (рис.7.) для состава и конфигурации аппаратной части вызывного устройства (рис.!!!.).
;Программа работы микроконтроллера
;Определение символических имён
;Определение управляющих бит регистра SCON
SM0 .EQU 9Fh ;Старший и младший биты для установки
SM1 .EQU 9Eh ;номера режима последовательного порта
SM2 .EQU 9Dh ;бит запрета приёма кадров с RB8 = 0
REN EQU 9Ch;Бит разрешения приёма послед. данных
RB8 .EQU 9Ah ;Восьмой бит приёмника в режимах 2 и 3
RI .EQU 98h ;Флаг прерывания приёмника
IE .EQU 0A8h ;Определение регистра маскирования прерывания
PCON .EQU 87h ;Определение управляющего регистра PCON
SP .EQU 81h ;Определение указателя стека
SBUF .EQU 99h ;Определение буфера приёмопередатчика
P1 .EQU 90h ;Определение порта Р1
P3.4 .EQU 0B4h ;Определение линий порта Р3
P3.5 .EQU 0B5h ;
P3.6 .EQU 0B6h ;
P3.7 .EQU 0B7h ;
FR .EQU 00h ;Определение флага режима
;Инициализация вызывного устройства после нажатия кнопки
;”Включить пейджер”, по сигналу RST.
.ORG 0 ;Начальный адрес основной программы
.AJMP 02Bh ;Переход к тексту программы
.ORG 02Bh ;Начальный адрес текста программы
M1: .MOV SP, #70h ;Организация стека
.MOV IE, #05h ;Разрешение внешних прерываний от
;входов INT0, INT1 (EX0=1, EX1=1)
JNB FR, M7 ;Переход в режим просмотра таблицы вызовов
;при сброшенном флаге режима (FR=0)
ACALL IND ;Вызов п/п выдачи индикации
;включения пейджера
SETB REN ;Разрешение последовательного приёма (SCON.4=1)
SETB SMO ;Задание режима 2 для последовательного порта
;(SCON.7 = 1), требуемое для этого значение
;SM1= 0 (SCON.6 = 0) было установлено при сбросе
;Программа функционирования в рабочем режиме
M2: CLR P3.5 ;Определение линий порта Р3
CLR P3.6 ;
CLR P3.7 ;
SETB SM2 ;Запрещение приёма кадра с RB8 = 0 (SCON.5=1)
M3: CLR RI ;Активизация последовательного ввода
;кадра (SCON.0 = 0)
M4: JNB RI, M4 ;Ожидание приёма последовательного кадра,
;пока не будет установлен RI=1 (SCON.0=1)
JNB RB8, M10 ;Переход к анализу кадра сообщения, если RB8=0
MOV A, SBUF ;Пересылка кадра адреса в аккумулятор
ACALL DADR ;Декодирование кода адреса
JNZ M5 ;Переход к сравнению принятого адреса с
;собственным адресом пейджера
SJMP M6 ;Переход к приёму кадра сообщения
M5: CJNE A, P1, M2 ;Переход к приёму адреса следующего сообщения,
;если принятый адрес не равен адресу пейджера
M6: CLR SM2 ;Разрешение приёма кадра с RB8 = 0 и переход к
SJMP M3 ; приёму кадра сообщения
M7: CLR P3.5 ;Индицирование режима просмотра
CLR P3.6 ;таблицы вызовов
SETB P3.7 ;
M8: MOV R0, #60h ;Запись в косвенный указатель адреса начального
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.