Лабораторная работа №5.
Цель работы:
Создать в редакторе TAB таблицу, которая моделирует переходный процесс произвольно взятого объекта (взять примерно 30 точек). Каждому следующему элементу таблицы соответствует значение на выходе моделируемого объекта.
По оси Х отложено время, по другой оси – значение выхода объекта.
Создать программу, в которой моделируется объект, заданный в таблице. По положительному фронту, поступающему с модуля ввода дискретных сигналов, объект запускается, и выход объекта последовательно считывается из таблицы, записывается в каком-либо регистре и отображается в окне отладчика.
Рисунок переходного процесса:
Таблица данных:
TABL
2,4,5,7,9,11,13,16,18, 20,23,25,26,27,28,30, 31,32,34,35,37,39,41, 42,43,44,44,44,44,44
Принцип обнаружения фронтов:
Сохраняется флаг с предыдущим значением сигнала, затем сравнение.
Текст программы:
00000 LDAA T D64
00001 BEQ N1 00006
00002 CLR F 500
00003 CLR F 501
00004 CLR R 0502
00005 -----------------------------------------
00006 N1 LDAA F 501
00007 SK0
00008 JMP M3 00022
00009 LDAA N I 020
00010 PRS F 500
00011 EORA F 500 ;обнаружение фронта
00012 CMPA # 001
00013 BEQ M1 00016
00014 RST F 500
00015 JMP M2 00036
00016 M1 SET F 501
00017 JSR T TABL ;инит таблицы
00018 STAB R 0505 ;B- общее число
00019 STX R 0503 ;резервирование Х
00020 LDAB # 000
00021 -----------------------------------------
00022 M3 LDAA T D92 ;каждую 1сек. Считывание с табл.
00023 BEQ M2 00036
00024 LDX R 0503
00025 CMPB R 0505 ;проверка на переполнение
00026 SK1
00027 JMP M4 00033
00028 ABX ;получение адреса следующего значения в ТАБЛ
00029 LDAA X 000
00030 STAA R 0502
00031 INCB
00032 JMP M2 00036
00033 M4 CLR F 501
00034 -----------------------------------------
00036 M2 END
Лабораторная работа №6.
Цель работы:
Установить корректно часы. Секунды подать на дискретный выход. Создать программу, которая в определенное время включит двигатель. Двигатель должен проработать 10 сек и выключиться. После этого индикатор должен мигать с частотой 1 сек.
Текст программы:
00000 T00 0010"00 ;сет таймера 10сек.
00001 JSR INIT 00032 ;установка часов.
00002 M1 LDAA R 0981
00003 STAA O 030 ;вывод секунд
00004 LDAA F 500
00005 BNE M2 00019 ;проверка запуска движка
00006 LDAA R 0983
00007 SUBA # $ 02
00008 BNE M3 00031 ;проверка часов запуска
00009 LDAA R 0982
00010 SUBA # $ 00
00011 BNE M3 00031 ;проверка минут запуска
00012 LDAA R 0981
00013 SUBA # $ 05
00014 BNE M3 00031 ;проверка секунд запуска
00015 SET S D00 ;запуск таймера
00016 SET F 500 ;запуск движка
00017 SET O 031
00018 JMP M3 00031
00019 M2 LDAA F 501
00020 SUBA # 000
00021 BNE M4 00029
00022 LDAA T D00
00023 SUBA # 000 ;проверка останов таймера
00024 BEQ M3 00031
00025 SET F 501
00026 CLR O 031
00027 CLR S D00
00028 JMP M3 00031
00029 M4 LDAA T D82
00030 STAA O 032 ;вывод сигнала 1 сек (0,4/0,6)
00031 M3 END
00032 INIT LDAA T D64
00033 BEQ M6 00048
00034 CLR S D86 ;тоже присутствует в MINI
00035 CLR S D85
00036 LDAA # $ 00
00037 -----------------------------------------
00038 STAA R 0980
00039 STAA R 0981
00040 STAA R 0982
00041 STAA R 0984
00042 LDAA # $ 02
00043 STAA R 0983
00044 -----------------------------------------
00045 CLR F 500
00046 CLR F 501
00047 SET S D85
00048 M6 RTS
00049 -----------------------------------------