Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные работы по МПРС.doc
Скачиваний:
16
Добавлен:
01.05.2014
Размер:
134 Кб
Скачать
☆

Лабораторная работа №4.

Цель работы:

Составьте две программы для осуществления односторонней передачи данных между ними. ПЛК - передатчик, получая данные через цифровые входы, упаковывает их в байты и пересылает их ПЛК - приемнику, который осуществляет распаковку полученной информации и передает ее на цифровые выходы.

Текст программы:

!!!Передатчик!!!

00000 LDAA T D64

00001 BEQ M1 00003

00002 JSR INIT 00013

00003 M1 LDAB P 101

00004 BITB # % 01000000 ;проверка линии DSR (приемник)

00005 BNE M2 00012

00006 BITB # % 00010000 ;готов ли передатчик

00007 BEQ M2 00012

00008 JSR PACK 00018

00009 LDAA R 0500

00010 STAA P 100

00011 LDAB P 101

00012 M2 END

00013 INIT LDAA # % 00011010 ;1стоп-бит,8бит данных,2400 бод

00014 STAA P 103

00015 LDAA # % 01101011 ;проверка четности+тест, эхо отключен

00016 STAA P 102

00017 RTS

00018 PACK NOP ;Упаковка I020-I027 в байт

00019 LDAA # 000

00020 STAA R 0500

00021 LDAB # 001

00022 LDAA I 020

00023 MUL

00024 STAB R 0500

00025 LDAA I 021

00026 LDAB # 002

00027 MUL

00028 LDAA R 0500

00029 ABA

00030 STAA R 0500

00031 LDAA I 022

00032 LDAB # 004

00033 MUL

00034 LDAA R 0500

00035 ABA

00036 STAA R 0500

00037 LDAA I 023

00038 LDAB # 008

00039 MUL

00040 LDAA R 0500

00041 ABA

00042 STAA R 0500

00043 LDAA I 024

00044 LDAB # 016

00045 MUL

00046 LDAA R 0500

00047 ABA

00048 STAA R 0500

00049 LDAA I 025

00050 LDAB # 032

00051 MUL

00052 LDAA R 0500

00053 ABA

00054 STAA R 0500

00055 LDAA I 026

00056 LDAB # 064

00057 MUL

00058 LDAA R 0500

00059 ABA

00060 STAA R 0500

00061 LDAA I 027

00062 LDAB # 128

00063 MUL

00064 LDAA R 0500

00065 ABA

00066 STAA R 0500

00067 RTS

!!!Приемник!!!

00000 LDAA T D64

00001 BEQ M1 00003

00002 JSR INIT 00012

00003 M1 LDAB P 101

00004 BITB # % 00001000 ;проверка, получен ли символ

00005 BEQ M2 00011

00006 LDAA P 100

00007 STAA R 0500

00008 BITB # % 00000111 ;поиск ошибки

00009 BNE M2 00011

00010 JSR UNPK 00017

00011 M2 END

00012 INIT LDAA # % 00011010 ;инит такой же, как и у перед.

00013 STAA P 103

00014 LDAB # % 01101011

00015 STAB P 102

00016 RTS

00017 UNPK LDAA R 0500 ;распаковка на O030-O037

00018 STAA O 030

00019 LSRA

00020 STAA O 031

00021 LSRA

00022 STAA O 032

00023 LSRA

00024 STAA O 033

00025 LSRA

00026 STAA O 034

00027 LSRA

00028 STAA O 035

00029 LSRA

00030 STAA O 036

00031 LSRA

00032 STAA O 037

00033 RTS