Программа аварийного срабатывания вызывается если не совпадает значения данных поданных в порт А и данных считанных с датчиков с порта В.
Программу можно разбить на три части:
ü Вычисление номера не сработавшего двигателя.
ü Вывод номера на индикатор.
ü Выдача в порт звукового сигнала частотой 400 герц.
Листинг программы следующий:
адрес |
Маш. Код |
Метка |
Мнемо код |
Комментарий |
||||
0079h |
78 |
Avar2: |
mov |
A |
,B |
; (А)¬(B) |
||
007Ah |
2F |
Avar1: |
cma |
;(A)¬not(A) |
||||
007Bh |
0E |
00h |
Avar0: |
mvi |
C |
,00h |
;(C)¬00h |
|
007Dh |
A7 |
ana |
A |
;СY¬0 |
||||
007Eh |
0F |
Shift: |
rrc |
;сдвиг вправо ;через CY |
||||
007Fh |
DA |
86 |
00 |
jc |
Display |
;переход на ;Display |
||
0082h |
0C |
inr |
C |
;(C)¬(C)+1 |
||||
0083h |
C3 |
7E |
00 |
jmp |
Shift |
;переход на Shift |
||
0086h |
3E |
00h |
Display: |
mvi |
A |
,00h |
;(A)¬00h |
|
0088h |
D3 |
FC |
out |
PA |
;(порт А)¬(A) |
|||
008Ah |
21 |
00 |
03 |
lxi |
H |
,Tabl |
;(HL)¬Tabl |
|
008Dh |
06 |
00 |
mvi |
B |
.00h |
;(B)¬00h |
||
008Fh |
09 |
dad |
B |
;(HL)¬(HL)+(BC) |
||||
0090h |
7E |
mov |
A |
,M |
;(А)¬(M(HL)) |
|||
0091h |
21 |
FF |
FF |
lxi |
H |
,Indik |
;(HL)¬Indik |
|
0094h |
77 |
mov |
M |
,A |
;Mem(HL)¬(A) |
|||
0095h |
3E |
80h |
Signal: |
mvi |
A |
,80h |
;(A)¬80h |
|
0097h |
D3 |
FEh |
out |
PC |
;(порт C)¬(A) |
|||
0099h |
CD |
17 |
01 |
call |
Delay2 |
;пауза |
||
009Ch |
3E |
00h |
mvi |
A |
,00h |
;(A)¬00h |
||
009Eh |
C3 |
01 |
01 |
jmp |
S1 |
;t+10тактов |
||
0101h |
D3 |
FE |
S1: |
out |
PC |
;(порт С)¬(A) |
||
0103h |
CD |
17 |
01 |
call |
Delay2 |
;пауза |
||
0106h |
C3 |
95 |
00 |
jmp |
Signal |
;переход на ;Signal |
Tabl – адреса в котором храняться коды цифр в семисегментном коде. (см. приложение)
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.