Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ВТИТ-ус-во обр-ки з. кода.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.15 Mб
Скачать
    1. Программа и её распределение по ячейкам памяти

Адрес памяти

Метка

Команда (мнемоника)

Комментарий

8000h

MVI A

Записываем в аккумулятор управляющее слово – СЧ1, только младший байт, Режим 1, 2ичная с.с.

8001h

01010010

8002h

OUT

Запись в Таймер 2 (адрес 111100) управляющего слова

8003h

11110011

8004h

MVI A

Записываем в аккумулятор управляющее слово – СЧ2, только младший байт, Режим 0, 2ичная с.с.

8005h

10010000

8006h

OUT

Запись в Таймер 2 (адрес 111111) управляющего слова

8007h

11110011

8008h

MVI A

Записываем в аккумулятор начальное значение СЧ2 Таймера 2 – число 4

8009h

00000100

800Ah

OUT

Запись в Таймер 2 (адрес 111100) начального значения для СЧ2

800Bh

11110010

800Ch

MVI A

Записываем в аккумулятор начальное значение СЧ1 Таймера 2 – число 2 (длительность импульса)

800Dh

00000010

800Eh

MVI A

Разрешаем работу счетчиков

(начало посылки образа кода)

800Fh

1

8010h

OUT

8011h

11111111

8012h

MVI A

Запись в Таймер 2 (адрес 111100) начального значения для СЧ1 – послали первый из 4х импульсов «образа кода»

8013h

2

8014h

OUT

8015h

11110001

8016h

NOP

Подождали 10 мкс (2*5=10)

8017h

NOP

8018h

NOP

8019h

NOP

801Ah

NOP

801Bh

OUT

Запись в Таймер 2 (адрес 111100) начального значения для СЧ1 – послали второй из 4х импульсов «образа кода»

801Ch

11110001

801Dh

NOP

Подождали 10 мкс (2*5=10)

801Eh

NOP

801Fh

NOP

8020h

NOP

8021h

NOP

8022h

OUT

Запись в Таймер 2 (адрес 111100) начального значения для СЧ1 – послали третий из 4х импульсов «образа кода»

8023h

11110001

8024h

NOP

Подождали 10 мкс (2*5=10)

8025h

NOP

8026h

NOP

8027h

NOP

8028h

NOP

8029h

OUT

Запись в Таймер 2 (адрес 111100) начального значения для СЧ1 – послали четвёртый из 4х импульсов «образа кода»

802Ah

11110001

802Bh

IN

Опросили выход СЧ2 Таймера 2

802Ch

20h

802Dh

JZ END

Если в аккумуляторе 0, то Tz=1, выполняется переход к метке END и программа завершает работу. Если в аккумуляторе 1, то Tz=0, и программа начинает посылку ответного кода.

802Eh

5Ch

802Fh

80h

8030h

MVI A

Запрещаем работу счетчиков

8031h

00000000

8032h

OUT

8033h

11111111

8034h

MVI A

Записываем в аккумулятор управляющее слово для Таймера 1 – СЧ0, мл. байт, Режим 4, 2ичная с.с.

8035h

00011000

8036h

OUT

Запись в Таймер 1 (адрес 111110) управляющего слова

8037h

11111011

8038h

MVI A

Записываем в аккумулятор управляющее слово для Таймера 1 – СЧ1, мл. байт, Режим 4, 2ичная с.с.

8039h

01011000

803Ah

OUT

Запись в Таймер 1 (адрес 111110) управляющего слова

803Bh

11111011

803Ch

MVI A

Записываем в аккумулятор управляющее слово для Таймера 1 – СЧ2, мл. байт, Режим 4, 2ичная с.с.

803Dh

10011000

803Eh

OUT

Запись в Таймер 1 (адрес 111110) управляющего слова

803Fh

11111011

8040h

MVI A

Записываем в аккумулятор управляющее слово для Таймера 2 – СЧ0, мл. байт, Режим 4, 2ичная с.с.

8041h

00011000

8042h

OUT

Запись в Таймер 2 (адрес 111100) управляющего слова

8043h

11110011

8044h

MVI A

Записываем в аккумулятор начальное значение Счётчика 0 Таймера 1 – число 0

8045h

00000000

8046h

OUT

Запись в Таймер 1 (адрес 111110) начального значения СЧ0

8047h

11111000

8048h

MVI A

Записываем в аккумулятор начальное значение Счётчика 1 Таймера 1 – число 6

8049h

00000110

804Ah

OUT

Запись в Таймер 1 (адрес 111110) начального значения СЧ1

804Bh

11111001

804Ch

MVI A

Записываем в аккумулятор начальное значение Счётчика 2 Таймера 1 – число 12

804Dh

00001100

804Eh

OUT

Запись в Таймер 1 (адрес 111110) начального значения СЧ2

804Fh

11111010

8050h

MVI A

Записываем в аккумулятор начальное значение Счётчика 0 Таймера 2 – число 28

8051h

00011100

8052h

OUT

Запись в Таймер 2 (адрес 111111) начального значения СЧ0

8053h

11110000

8054h

MVI A

Разрешаем работу счетчиков

(начало посылки ответного кода)

8055h

1

8056h

OUT

8057h

11111111

8058h

MVI A

Записываем в аккумулятор начальное значение Счётчика 0 Таймера 1 – число 17 (прошло 3,5 мкс после посылки 1го импульса ответного кода)

8059h

00010001

805Ah

OUT

Запись в Таймер 1 (адрес 111110) начального значения СЧ0 (прошло 8,5 мкс после посылки 1го импульса ответного кода)

805Bh

11111000

805Ch

END

HLT

Завершение программы