|
Адрес |
Метка |
Операция |
КОП |
Комментарий |
|
|
1 |
2 |
3 |
4 |
5 |
|
|
0000 |
MVI A, 03 |
3E |
Инициализация PPI приёма с АЦП |
||
|
0001 |
03 |
||||
|
0002 |
OUT 83 |
D3 |
|||
|
0003 |
83 |
||||
|
0004 |
MVI A, 08 |
3E |
Инициализация PPI индикации |
||
|
0005 |
08 |
||||
|
0006 |
OUT 43 |
D3 |
|||
|
0007 |
43 |
||||
|
0008 |
LXI SP, 900 |
31 |
Организация стэка по адресу 0900h |
||
|
0009 |
00 |
||||
|
000A |
09 |
||||
|
000B |
M1 |
MVI B, 00 |
06 |
Обнуляем регистр B. |
|
|
000C |
00 |
||||
|
000D |
MVI B, 08 |
06 |
Организовываем счетчик каналов. |
||
|
000E |
08 |
||||
|
000F |
MVI C, 00 |
0E |
Обнуляем регистр C. |
||
|
0010 |
00 |
||||
|
0011 |
MVI C, 01 |
0E |
Выбор канала мультиплексора. |
||
|
0012 |
01 |
||||
|
0013 |
M2 |
MOV A, C |
79 |
||
|
0014 |
OUT 82 |
D3 |
|||
|
0015 |
82 |
||||
|
0016 |
MVI A, 80 |
3E |
Запускаем АЦП |
||
|
0017 |
80 |
||||
|
0018 |
OUT 82 |
D3 |
|||
|
0019 |
82 |
||||
|
001A |
MVI A, 00 |
3E |
|||
|
001B |
00 |
||||
|
001C |
OUT 82 |
D3 |
|||
|
001D |
82 |
||||
|
001E |
HLT |
76 |
Ожидаем готовности АЦП |
||
|
001F |
IN 81 |
DB |
Считываем данные из порта B и младших разрядов порта C и сохраняем их в паре регистров DE. |
||
|
0020 |
81 |
||||
|
0021 |
MOV E,A |
5F |
|||
|
0022 |
IN 82 |
DB |
|||
|
0023 |
82 |
||||
|
0024 |
MOV D, A |
57 |
|||
|
0025 |
CALL COMP |
CD |
Вызов подпрограммы перевода и индикации. |
||
|
0026 |
39 |
||||
|
0027 |
00 |
||||
|
0028 |
CALL ALERT |
CD |
Вызов подпрограммы сравнения с пороговыми значениями. |
||
|
0029 |
58 |
||||
|
002A |
00 |
||||
|
002B |
INR C |
0C |
Инкрементируем регистр С (выбор следующего канала). |
||
|
0032 |
DCR B |
05 |
Декрементируем регистр В (выбор следующего канала). |
||
|
0033 |
JNZ M2 |
C2 |
Если счетчик каналов не '0', то переходим на метку М2. |
||
|
0034 |
13 |
||||
|
0035 |
00 |
||||
|
0036 |
JZ М1 |
CA |
Если счетчик каналов '0', то возвращаемся к первому каналу (метка М1). |
||
|
0037 |
0B |
||||
|
0038 |
00 |
||||
|
0039 |
COMP |
PUSH H |
E5 |
Подпрограмма перевода напряжения температуру и индикации. Сохраняем содержимое регистра HL в стэке. |
|
|
003A |
MOV A, C |
79 |
Если первый и второй каналы, то процедура сравнения значений с таблицей пропускается. |
||
|
003B |
SUI 03 |
D6 |
|||
|
003C |
03 |
||||
|
003D |
JC |
DA |
|||
|
003E |
24 |
||||
|
003F |
00 |
||||
|
0040 |
LXI H, 0100 |
21 |
Загружаем в программу адрес первой строки таблицы. |
||
|
0041 |
00 |
||||
|
0042 |
01 |
||||
|
0043 |
COMP_LOOP |
MOV A, M |
7E |
Сравниваем данные с АЦП со значениями из таблицы, используя вычитание. |
|
|
0044 |
SUB D |
92 |
|||
|
0045 |
INX H |
23 |
|||
|
0046 |
MOV A, M |
7E |
|||
|
0047 |
SUB E |
93 |
|||
|
0048 |
INX H |
23 |
|||
|
0049 |
JNC IND |
D2 |
Переходим к индикации, когда найдено совпадение. |
||
|
004A |
51 |
||||
|
004B |
00 |
||||
|
004C |
INX H |
23 |
Переходим к следующим значениям, если нет совпадения. |
||
|
004D |
INX H |
23 |
|||
|
004E |
JMP COMP_LOOP |
C3 |
|||
|
004F |
43 |
||||
|
0050 |
00 |
||||
|
0051 |
IND |
OUT 40 |
D3 |
Выводим на индикацию найденные значения температуры. |
|
|
0052 |
40 |
||||
|
0053 |
INX H |
23 |
|||
|
0054 |
OUT 41 |
D3 |
|||
|
0055 |
41 |
||||
|
0056 |
POP H |
E1 |
Выгружаем из стэка содержимое регистра HL. |
||
|
0057 |
RET |
C9 |
Выход из подпрограммы. |
||
|
0058 |
ALERT |
PUSH H |
E5 |
Подпрограмма сравнения с пороговыми значениями и сигнализация. Сохраняем содержимое регистра HL в стэке. |
|
|
0059 |
MOV A, L |
7D |
Сравниваем данные с предупредительной сигнализацией. |
||
|
005A |
SUI CC |
D6 |
|||
|
005B |
CC |
||||
|
005C |
MOV A, H |
7C |
|||
|
005D |
SBI 03 |
DE |
|||
|
005E |
03 |
||||
|
005F |
JNC A1 |
D2 |
Переходим к индикации, если совпадает. |
||
|
0060 |
6B |
||||
|
0061 |
00 |
||||
|
0062 |
MOV A, L |
7D |
Сравниваем данные с аварийной сигнализацией. |
||
|
0063 |
SUI EB |
D6 |
|||
|
0064 |
EB |
||||
|
0065 |
MOV A, H |
7C |
|||
|
0066 |
SBI 03 |
DE |
|||
|
0067 |
03 |
||||
|
0068 |
JNC A2 |
D2 |
Переходим к индикации, если совпадает. |
||
|
0069 |
6F |
||||
|
006A |
00 |
||||
|
006B |
A1 |
MVI A, 01 |
3E |
Вывод предупредительной сигнализации. |
|
|
006C |
01 |
||||
|
006D |
OUT 42 |
D3 |
|||
|
006E |
42 |
||||
|
006F |
A2 |
MVI A, 02 |
3E |
Вывод аварийной сигнализации. |
|
|
0070 |
02 |
||||
|
0071 |
OUT 42 |
D3 |
|||
|
0072 |
42 |
||||
|
0073 |
POP H |
E1 |
Выгружаем из стэка содержимое регистра HL. |
||
|
0074 |
RET |
C9 |
Выход из подпрограммы. |
||
|
0075 |
WAIT |
LXI H, 03FF |
21 |
Подпрограмма задержки. |
|
|
0076 |
FF |
||||
|
0077 |
03 |
||||
|
0078 |
LOOP |
MVI A, FF |
3E |
||
|
0079 |
FF |
||||
|
007A |
DCR A |
3D |
|||
|
007B |
JNZ LOOP |
C2 |
|||
|
007C |
78 |
||||
|
007D |
00 |
||||
|
007E |
DCX H |
2B |
|||
|
007F |
JNZ LOOP |
C2 |
|||
|
0080 |
78 |
||||
|
0081 |
00 |
||||
|
0082 |
RET |
C9 |
Выход из подпрограммы. |
||
|
002C |
INT |
MOV A, C |
79 |
Переход к обработке канала. |
|
|
002D |
SUI 09 |
D6 |
|||
|
002E |
09 |
||||
|
002F |
JC |
DA |
|||
|
0030 |
1F |
||||
|
0031 |
00 |
||||
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.