Проектирование абонентского вызывного устройства ведомственной системы персонального радиовызова на основе микроконтроллера КР1830ВЕ51, страница 7

Но если в режиме холостого хода будет произведен общий сброс (повторное нажатие кнопки ''ВКЛ'' при состоянии флага FR = 1), то пейджер перейдет в режим приема сообщений, поступающих с демодулятора ВЧ-тракта. Но до этого предварительно происходит инициализация микроконтроллера (организуется стек, разрешаются внешние прерывания, инициируется включение режима приема, разрешается прием последовательных данных и устанавливается режим 2 работы последовательного порта Р3). Прием сообщений начинается с приема последовательного кадра адреса (RB8 = 1) и активизации последовательного порта, путем сброса флага приемника (R1 = 0), после чего микроконтроллер начинает работу в режиме ожидания сообщения. Прием каждого кадра адреса приводит к установке флага приемника (R1 = 1). Затем содержимое буфера приемопередатчика передается в аккумулятор и подвергается далее декодированию, результат декодирования сравнивается сначала с широковещательным адресом СПРВ (с нулевым адресом), а потом с индивидуальным адресом пейджера, загруженным в порт Р1 (''монтажный код пейджера). Если оказывается, что принятый адрес не равен широкополосному адресу и собственному адресу пейджера, то микроконтроллер осуществляет переход к приему адреса следующего сообщения. Если же окажется, что принят широковещательный адрес или адрес пейджера, то разрешается прием следующего кадра, содержащего сообщение. Код принятого сообщения декодируется в двоичный номер N сигналов вызова, которые должны быть сформированы и выведены на акустический и световой излучатели.

Полученный двоичный номер сигналов вызова фиксируется в таблице хранения принятых вызовов (номеров сигналов вызова), после чего по принятому исходному номеру сигналов вызова вычисляется адрес соответствующей ему подпрограммы формирования и вызова. Звуковой и световой сигналы вызова - периодические и непрерывные, для их прекращения, когда сообщение принято (понятно) абонентом, используется прерывание /INT1 (кнопка ''ПРИН'').

В режим приема кода адреса следующего сообщения микроконтроллер переводится по прерыванию /INT1 при флаге FR = 1.


  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         ;Запись в косвенный указатель адреса начального