Проектирование микропроцессорной системы контроля и управления объектом. Общие принципы проектирования микропроцессорных систем, страница 27

Ввод состояния SB5 “Пуск”                 Останов МП

 


Нет

 SB3 замкнутa

?

                                                                                         Да

Задержка на время 20 мс

 


Восстановить регистры МП из стека

 


Разрешить прерывания

 


Возврат

Рис. 3.19. БСА программы работы ПУ

; IDENTIF – подпрограмма идентификации замкнутого SA1-SA4

; Выходной параметр: регистр С – позиционный код переключателя

MASK1

EQU   0000 1110B

MASK2

EQU   0000 1101B

MASK3

EQU   0000 1011B

MASK4

EQU   0000 0111B

IDENTIF:

IN   IPORT

ANI   0FH

MOV   B, A

CPI   MASK1

JZ   EXIT1

;

Если D0=0

MOV   A, B

CPI   MASK2

JZ   EXIT2

;

Если D1=0

MOV   A, B

CPI   MASK3

JZ   EXIT3

;

Если D2=0

MVI   C, 03H

;

Код переключателя SA4

RET

EXIT1:

MVI   C, 00H

;

Код переключателя SA1

RET

EXIT2:

MVI   C, 01H

;

Код переключателя SA2

RET

EXIT3:

MVI   C, 02H

;

Код переключателя SA3

RET

Если замкнут один из переключателей SA1-SA4, то на линейный дисплей выводится соответствующий код W1-W4 из массива DATA_W. Схема подключения индикаторов дисплея приведена на рис. 3.15. При программировании вывода на дисплей следует учесть, что на индикаторы необходимо выводить семисегментный двоичный код, а МП оперирует с данными в позиционном двоичном коде. Поэтому необходима перекодировка перед выводом информации на дисплей.

; CROSSCODE – подпрограмма перекодировки

; Входной параметр: регистр С – позиционный код символа

; Выходной параметр: регистр A – семисегментный код символа

CROSSCODE:

MVI   B, 0

LXI   H, TABLE

;

В паре HL – адрес TABLE

DAD   B

;

(HL)(HL)+(BC)

MOV   A, M

RET

TABLE:

DB   3FH

;

Код символа “0”

DB   06H

;

Код символа “1”

……….

……….

DB   71H

;

Код символа “F”

Полную таблицу семисегментных кодов можно найти в [10].

Программа вывода на дисплей имеет вид: