;адреса таблицы вызовов
M9: MOV A, @R0 ;Загрузка в аккумулятор номера N
;просматриваемого сигнала вызова
SJMP M11 ;Переход к вычислению адреса п/п вызова
M10: MOV A, SBUF ;Пересылка кадра сообщения в аккумулятор
ACALL DSOOB ;Декодирование кода сообщения
ACALL SDWR ;Сдвиг содержимого таблицы вызовов вправо
MOV 60h, A ;Запись в таблицу номера принятого сигнала
;вызова
M11: ACALL WAFORM ;Вычисление адреса п/п вызова, формирование
;и вывод сигналов вызова
AJMP M12 ;Продолжение при нажатии кнопки ''Принято''
M12: JB FR, M2 ;Переход к приёму адреса следующего сообщения
;если флаг режима установлен (FR = 1)
INC R0 ;Переход к следующему адресу таблицы сигналов
;вызова при сброшенном флаге режима (FR=0)
CJNE R0, #70, M9 ;Продолжение просмотра таблицы вызовов, так
;как адрес сигнала вызова не превышает
;максимальный адрес таблицы
SJMP M8 ;Переход к повтору просмотра таблицы вызовов
;с её начального адреса
;П/п обслуживания прерывания от входа /INT0
;(при нажатие кнопки ''Выключить'')
.ORG 3h ;Начальный адрес обслуживания прерывания
;от входа /INT0
AJMP 0240h ;Переход к тексту п/п обслуживания прерывания
.ORG 240h ;Начальный адрес п/п обслуживания прерывания
JNB FR, I0 ;Переход к включению режима ХХ, если до
;прерывания флаг режима был сброшен
CLR FR ;Сброс установленного до прерывания флага
ACALL IND ;Индикация выключения пейджера (звук )
ACALL IND ;
ACALL IND ;
ACALL IND ;
ACALL IND ;
ACALL SDWR ;Сдвиг содержимого таблицы вызовов вправо
MOV 60h, #00h ;Запись в таблицу вызовов кода 00 (кода
;окончания сеанса работы пейджера)
CLR P3.4 ;Выключение питания ВЧ-тракта приёма
MOV PCON, #02h ;Перевод МК в режим пониженного
;энергопотребления (PD = 1)
I0: SETB FR ;Установка сброшенного до прерывания
;флага режима
CLR P3.5 ;Индикация включения режима ХХ (свет)
CLR P3.6 ;
SETB P3.7 ;
MOV PCON, #01h ;Перевод МК в режим ХХ (IDL = 1)
;П/п обслуживания прерывания от входа /INT1
;(при нажатие кнопки ''Принято'')
.ORG 13h ;Начальный адрес обслуживания прерывания от
;входа /INT1 (при нажатие кнопки ''Принято'')
POP 7Fh ;Вывод из стека последнего адреса, запомненного
POP 7Fh ;при прерывании от входа /INT1 п/п
;формирования периодических сигналов вызова, в
;фиктивную ячейку памяти
RETI ;Продолжение с адреса, запомненного в стеке при
;вызове п/п WAFORM
;П/п сдвига содержимого таблицы
;вызовов на один адрес вправо
;Сдвигаются байты с адресами 60h….6Eh
.ORG 0280h ;Начальный адрес п/п сдвига
;содержимого таблицы вызовов вправо
SDWR: MOV 6Fh, 6Eh ;Сдвиг содержимого таблицы вызовов
MOV 6Eh, 6Dh ;на один адрес вправо
MOV 6Dh, 6Ch ;
MOV 6Ch, 6Bh ;
MOV 6Bh, 6Ah ;
MOV 6Ah, 69h ;
MOV 69h, 68h ;
MOV 68h, 67h ;
MOV 67h, 66h ;
MOV 66h, 65h ;
MOV 65h, 64h ;
MOV 64h, 63h ;
MOV 63h, 62h ;
MOV 62h, 61h ;
MOV 61h, 60h ;
RET ;
;П/программа звуковой индикации
;включения/выключения пейджера
;Длительность звукового сигнала Тинд = 0.1 с
;Тактовая частота Fosc = 4 МГц
;Длительность такта Тosc = 0.25 мкс
;Длительнасть машинного цикла Тмц = 3 мкс
;R1, R2 – регистры (нулевого банка регистров) для хранения параметров п/программы
М .EQU 46h ;Определение параметров циклов п/программы
N .EQU 0Edh ;
.ORG 300h ;Начальный адрес п/программы звуковой
;индикации включения/выключения пейджера
IND: SETB P3.5 ;Выдача сигнала индикации
MOV R1,#M ;Задание длительности сигнала через параметры
Q1: MOV R2, #N ;внутреннего (N) и внешнего (M) циклов
Q2: DJNZ R2, Q2 ;Декремент R2 и выполнение внутреннего цикла,
;если R2 неравно нулю
DJNZ R1, Q1 ;Декремент R1 и выполнение внешнего цикла,
;если R1 не равно нулю
CLR P3.5 ;Снятие цикла индикации
RET ;
;Тинд = Tcall + Tsetb + Tmov + M (Tmov + N Tdjnz + Tdjnz) +Tclr =
;= [ 6 + 3 + 3 + 70 (3 + 237 x 6 + 6) + 3 ] мкс = 0.100170 c
;П/программа декодирования кода адреса
;Входной код адреса – восьмиразрядный код, состоящий из бита чётности кода (седьмой
;разряд кода) и семи адресных бит
;Выходной код адреса – восьмиразрядный код с погашенным битом чётности
P .EQU 0D1h ;Определение бита чётности регистра PSW
.ORG 340h ;Начальный адрес п/программы декодирования
;кода адреса
DADR ORL A, #00h ;Проверка чётности принятого кода адреса
JNB P, 05h ;Переход к приёму следующего кадра адреса,
SJMP 04h ;если принятый код адреса нечётный
AJMP M2 ;
ANL A, #7Fh ;Выделение принятого адреса
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.