Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции МПСУ.doc
Скачиваний:
40
Добавлен:
06.12.2018
Размер:
7.86 Mб
Скачать

Программы инициализации станции и абонентов

Мнемокод

Комментарии

MOV SCON, #D8

#D8H= #1101.1000 – установка режима 3 работы последовательного порта согласно рис.2.34

MOV IE, #87

#87H= #1000.0111 – запретить прерывания от Т/С1 и последовательного порта

MOV TMOD, #20

#20H= #0010.0000B – установка режима 2 Т/С1

MOV TH1, #F3

Загрузка в регистр ТН1 константы #F3, определяющей скорость обмена 2400 бит/с (табл.2.4) при fQ=12 МГц

SETB TR1

Старт Т/С1

Рис.2.39. Программа инициализации станции

Мнемокод

Комментарии

MOV SCON, #F8

#F8H= #1111.1000 – установка режима 3 мультиконтроллерной работы последовательного порта (согласно рис.2.34)

MOV IE, #97

#97H= #1001.0111 – запретить прерывания от Т/С1, разрешить прерывания от последовательного порта

MOV TMOD, #20

#20H= #0010.0000B – установка режима 2 Т/С1

MOV TH1, #F3

Загрузка в регистр ТН1 константы #F3, определяющей скорость обмена 2400 бит/с (табл.2.4)

SETB TR1

Старт Т/С1

Рис.2.40. Программа инициализации абонентов №1 и №2

Программы станции и абонента в сеансе "станция→абонент"

Метка

Мнемокод

Комментарии

Вызов

абонента №1 на связь

SETB ТВ8

Установка бита ТВ8 с целью обеспечения возможности запуска подпрограмм прерывания всех абонентов

MOV SBUF, #01

1-е широковещательное сообщение, в котором указаны № 1-го абонента и вид сеанса: "станция→абонент"

CLR TB8

Сброс бита ТВ8 перед началом передачи данных

Рис.2.41. Программа станции в сеансе "станция→абонент №1"

Метка

Мнемокод

Комментарии

Подготовка

к передаче данных от станции к абоненту №1

MOV R0, #30

Загрузка в регистр R0 косвенной адресации адреса 1-й ячейки РПД массива пересылаемых данных

MOV R7, #04

Загрузка в регистр R7 количества ячеек массива пересылаемых данных (4 ячейки)

Передача

данных от станции к абоненту №1

M1

JNB TI, M1

Ожидание завершения передачи сообщения

CLR TI

Сброс флага передачи сообщения

MOV SBUF, @R0

Передача очередного байта массива

INC R0

Продвижение по адресам массива данных, предназначенных для передачи абоненту №1

DINZ R7, M1

Проверка конца передачи массива данных

Передача

абоненту №1 сообщения "Конец связи"

M2

JNB TI, M2

Ожидание завершения передачи сообщения

CLR TI

Сброс флага передачи сообщения

SETB ТВ8

Установка бита ТВ8

MOV SBUF, #01

2-е широковещательное сообщение, в котором указан № 1-го абонента. Сообщение конца связи

M3

JNB TI, M3

Ожидание завершения передачи сообщения

CLR TI

Сброс флага передачи сообщения

END1

Конец

сеанса связи

Рис.2.41. Продолжение

Метка

Мнемокод

Комментарии

Проверка

адреса, поступившего со станции

Адрес 0023

MOV A, SBUF

По прерыванию RI приемника (стартовый адрес 0023) пересылка поступившего сообщения в аккумулятор

MOV B, A

Копирование А в регистр В

CLR A.7

Подавление в принятом сообщении бита вида обмена

CLR RI

Сброс флага прерывания от приемника

CJNE A, #01,EXIT1

Сравнение принятого кода с адресом 01Н абонента №1. Если поступил адрес не абонента №1, то на выход

CLR SM2

Сброс бита SM2 в регистре SCON

CLR ES

Запрет прерываний от последовательного порта

M4

JB B.7, OUT1

Распознавание вида связи: IN1 (ввод) и OUT1 (вывод)

Подпрограмма

приема данных со станции

MOV R0, #45

Загрузка в регистр R0 косвенной адресации адреса 1-й ячейки РПД, в которую запишется 1-е принятое сообщение

IN1

CLR RI

Сброс флага RI запроса прерывания от приемника ПП

M5

JNB RI, M5

Ожидание прихода сообщения

JB RB8, M6

Проверка значения 8-го бита в поступившем сообщении. Если он равен 1, то завершить сеанс приема сообщений от станции

Рис.2.42. Программа абонента №1 в сеансе "станция→абонент №1"

Метка

Мнемокод

Комментарии

MOV @R0, SBUF

Пересылка содержимого буфера ПП, в ячейку РПД

INC R0

Установка адреса ячейки РПД, в которую запишется следующее сообщение от станции

SJMP IN1

Безусловный переход на начало программы приема данных от станции

OUT1

|| Подпрограмма

передачи данных на станцию ||

Завершение

сеанса связи со станцией

M6

SETB SM2

Установка бита SM2 в регистре SCON

SETB ES

Разрешение прерываний от ПП

EXIT1

RETI

Выход из подпрограммы обработки прерывания от последовательного порта

Рис.2.42. Продолжение

Программы станции и абонента в сеансе "абонент→станция"

Метка

Мнемокод

Комментарии

Вызов

абонента №2 на связь

SETB ТВ8

Установка бита ТВ8 с целью обеспечения возможности запуска подпрограмм прерывания всех абонентов от их приемников

MOV SBUF, #82

1-е широковещательное сообщение, в котором указаны № 2-го абонента и вид сеанса: "абонент→станция"

Подготовка

к сеансу "абонент→станция"

MOV R0, #56

Загрузка в регистр R0 косвенной адресации адреса 1-й ячейки массива РПД, в которую запишется 1-е сообщение, поступившее от абонента

Прием станцией

данных от абонента №2

M7

JNB RI, M7

Ожидание прихода сообщения от абонента

CLR RI

Сброс флага приема сообщения

JB RB8, END2

Проверка бита RB8 конца связи

MOV @R0, SBUF

Запись поступившего сообщения в РПД

INC R0

Продвижение по адресам массива РПД, в которую записываются принятые сообщения

SJMP M7

Возврат на прием следующего сообщения

END2

Конец

сеанса связи

Рис.2.43. Программа станции в сеансе "абонент №2→станция"

Метка

Мнемокод

Комментарии

Проверка

адреса, переданного станцией

Адрес 0023

MOV A, SBUF

По прерыванию RI от приемника пересылка поступившего сообщения в аккумулятор

MOV B, A

Копирование А в регистр В

CLR A.7

Подавление в принятом сообщении бита вида обмена

CLR RI

Сброс флага прерывания от приемника

CJNE A, #02,EXIT2

Сравнить принятый код с адресом 02Н абонента №2.

Рис.2.44. Программа абонента №2 в сеансе "абонент №2→станция"

Метка

Мнемокод

Комментарии

Если поступил не адрес абонента №2, то на выход

CLR SM2

Сброс бита SM2 в регистре SCON

CLR ES

Запрет прерываний от последовательного порта

Распознание

вида связи – ввод или вывод данных

M4

JB B.7, OUT2

Проверка в операции выбора абонента 7-го бита, указывающего на вид связи

IN2

|| Подпрограмма

приема данных со станции ||

Подпрограмма

передачи данных на станцию

OUT2

MOV R0, #71

Загрузка в регистр R0 косвенной адресации адреса 1-й ячейки, содержимое которой отправится на станцию

MOV R7, #03

Загрузка в регистр количества ячеек массива РПД, содержимое которых отправится на стацию

CLR TB8

Сброс бита ТВ8, выполняющего роль указателя конца связи со станцией

M8

MOV SBUF, @R0

Пересылка очередного бита на станцию

INC R0

Продвижение по адресам массива РПД, содержимое которых предназначено для отправки на станцию

M9

JNB TI, M9

Ожидание конца передачи сообщения

CLR TI

Сброс флага запроса прерывания от передатчика

DJNZ R7, M8

Проверка конца массива пересылаемых данных. Если не все данные отправлены на станцию, то на метку М8

SETB TB8

Установка бита ТВ8, выполняющего роль указателя конца связи со станцией

MOV SBUF, #02

Передача на станцию сообщения, содержащего адрес #02 абонента и 8-й бит со значением 1

M10

JNB TI, M10

Ожидание конца передачи сообщения

CLR TI

Сброс флага запроса прерывания от передатчика

Завершение

сеанса связи со станцией

M6

SETB SM2

Установка бита SM2 в регистре SCON

SETB ES

Разрешение прерываний от ПП

EXIT2

RETI

Выход из подпрограммы обработки прерывания от последовательного порта

Рис.2.44. Продолжение

Вопросы и задания

1. Поясните принцип действия мультиконтроллерной системы.

2. Поясните программу инициализации станции.

3. Поясните программу инициализации абонентов.

4. Поясните программу станции в сеансе обмена информацией "станция-абонент".

5. Поясните программу абонента в сеансе обмена информацией "станция-абонент".

6. Поясните программу станции в сеансе обмена информацией "абонент-станция".

7. Поясните программу абонента в сеансе обмена информацией "абонент-станция".

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]