Проектирование имитатора сигналов на микропроцессоре 1821ВМ85, страница 8

Например, на пятый разряд необходимо вывести число 3. Для этого на шину  записывается код пятого разряда 100, а на шину   код числа «3» – 0011.

MVI

A, 0011b

OUT

74h

Переменные:  (период зондирующих импульсов);

 (знак предыдущей скорости);

 (модуль предыдущей скорости);

 (знак текущей скорости);

 (модуль текущей скорости);

 (номер разряда дисплея).

Для хранения значений кодов предыдущего направления и скорости в ОЗУ резервируются 2 ячейки памяти. Первая ячейка (с адресом 0803h) соответствует предыдущему направлению, вторая (с адресом 0804h) – предыдущей скорости.

DN1

DN2

DN3

DN4

DN5

TN

VS1

VN1

VS2

VN2

70h

71h

72h

73h

74h

– катоды (OUT port)

0803h

0804h

– адрес ячейки памяти

Процесс вычисления значения разряда дисплея происходит следующим образом: если нажата клавиша скорости, значение которой лежит в пределах 0…7, то код нажатой клавиши отправляется непосредственно по адресу требуемого разряда дисплея.

LDA

0804h

; извлечение кода предыдущего значения скорости

OUT

72h

; вывод значения предыдущего значения скорости на дисплее

MOV

A,C

; запись нового значения скорости

STA

0804h

OUT

74h

Если была нажата клавиша периода (1100…1111),  то значение кода клавиши необходимо уменьшить на 11, чтобы отобразились на дисплее символы от «1» до «4».

MOV

A,C

SUI

11

OUT

70h

вывод кода на дисплей

Если же нажата клавиша направления «–»(код 1000), то для отображения символа «b» () необходимо прибавить 3 к коду клавиши. Если была нажата клавиша «+» (код 1001), то для отображения «F»() к коду нажатой клавиши необходимо прибавить 6.

LDA

0803h

; извлечение кода предыдущего направления

OUT

71h

; вывод значения предыдущего направления на дисплее

MOV

A,C

; модификация значения текущего направления

CPI

8h

JZ

L1

ADI

6h

; была нажата клавиша «+»

JMP

L2

L1:

ADI

3h

; была нажата клавиша «–»

L2:

STA

0803h

OUT

73h

; вывод символа на дисплей


3. Инициализация микроконтроллера.

Цель инициализации – задание определенных параметров работы имитатора до момента нажатия клавиш, а именно: задание вершины стека, запись в регистр делителей на  и  данных для обеспечения скорости , периода  и вывод на дисплей исходной информации (значений  и ) и выполнение команды EI разрешения прерываний

Программа инициализации имитатора