Программное обеспечение микроконтроллера, страница 2

TRANSCODE1:

ANI 0FH

MOV C,A

MVI B,0

В паре ВС - 2-10 код

LXI H, TADLECODE

В паре HL – начальный адрес таблицы

DAD B

Определение адресов,   соответствующих  данному символу, т.е. (HL)¬ (HL)+(BC).

MOV A,M

RET


4.4 Подпрограмма TRANSCODE2.

Подпрограмма TRANSCODE2 предназначена для преобразования старшей тетрады 2-10 кода в BCD-код. Входные параметры: R(A) - 2-10 код, выходе параметры - R(A) – ВСD – код.

TRANSCODE2:

ANI F0H

RAR

RAR

RAR

RAR

MOV C,A

MVI B,0

В паре ВС - 2-10 код

LXI H, TADLECODE

В паре HL – начальный адрес таблицы

DAD B

Определение адресов,   соответствующих  данному символу, т.е. (HL)¬ (HL)+(BC).

MOV A,M

RET

4.4 Подпрограмма TABLECODE.

Подпрограмма TABLECODE предназначена для преобразования 2-10 кода в 7-сегментный код.

TABLECODE:

DB 3FH

BCD-код соответствующий «0»

DF 06H

BCD-код соответствующий «1»

DF 56H

BCD-код соответствующий «2»

DF 4FH

BCD-код соответствующий «3»

DF 66H

BCD-код соответствующий «4»

DF 6DH

BCD-код соответствующий «5»

DF 7DH

BCD-код соответствующий «6»

DF 07H

BCD-код соответствующий «7»

DF 7FH

BCD-код соответствующий «8»

DF 6FH

BCD-код соответствующий «9»


4.5 Подпрограмма PREOBR.

Подпрограмма PREOBR предназначена для преобразования двоичных чисел в 2-10 код. Входными параметрами для данной программы являются регистры В и С – двоичное число, а выходными параметрами регистры А, Н и L – эквивалентное 2-10 число.

PREOBR:

XRA A

Обнуление текущей суммы (С,Н,L)

MOV H,A

MOV L,A

MOV D,B

MOV E,C

Исходное число

MOV C,A

MVI B,16

Счетчик циклов

M1:

XCHG

Сдвиг двоичного числа влево

DAD H

XCHG

MOV A,L

2-10 удвоение суммы с учетом переноса

ADC L

DAA

MOV L,A

MOV A,H

ADC H

DAA

MOV H,A

MOV A,C

ADC C

DAA

MOV C,A

DCR B

Проверка конца цикла

JNZ M1

Зацикливание

MOV A,C