Лабораторная работа №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
