Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
kursovaya 19var.docx
Скачиваний:
30
Добавлен:
04.06.2015
Размер:
331.08 Кб
Скачать
  1. Принципиальная схема микропроцессорной системы.

Принципиальная схема приведена в приложении №1 к курсовой работе. При её построении были использованы элементы, приведённые в методических указаниях. Адресное пространство памяти и портов ввода/вывода было разделено.

  1. Алгоритм и программа управления накопителем посылок.

На рисунке 6 показан алгоритм работы микропроцессорной системы управления накопителем посылок.

Рисунок 6.

Составим программу на языке Ассемблер:

Текст программы.

MVI A, 00H

OUT 04H ;обнуляем порты

OUT 05H

MAIN1: CALL READ21 ; опрашиваем датчик l

CALL READ55 ; опрашиваем датчик k

MOV A, 00H

CMP L ; сравниваем 00 и состояние датчика l

JNZ DAT1X ; ЕСЛИ Д1=1 ТО ПЕРЕХОДИМ К МЕТКЕ DAT1X

JMP DAT0X ; ЕСЛИ Д1=0 ТО ПЕРЕХОДИМ К МЕТКЕ DAT0X

; знаем что Д1=0, проверим что в Д2

DAT1X: CMP H ; сравниваем 00 и состояние датчика k

JZ DAT10 ; ЕСЛИ Д2=0 И Д1=1 , ТО ПЕРЕХОДИМ К МЕТКЕ DAT10

JMP DAT11 ; ЕСЛИ Д2=1 И Д1=1 , ТО ПЕРЕХОДИМ К МЕТКЕ DAT11

; знаем что Д1=1, проверим что в Д2

DAT0X: CMP H ; сравниваем 00 и состояние датчика k

JZ DAT00 ; ЕСЛИ Д2=0 И Д1=0 , ТО ПЕРЕХОДИМ К МЕТКЕ DAT00

JMP DAT01 ; ЕСЛИ Д2=1 И Д1=0 , ТО ПЕРЕХОДИМ К МЕТКЕ DAT01

DAT00: CALL D00 ; т.к. Д1=Д2=0 вызываем D00

JMP MAIN1 ; в начало

DAT01: CALL D01 ; т.к. Д1=0 Д2=1 вызываем D01

JMP MAIN1 ; в начало

DAT10: CALL D10 ; т.к. Д1=1 Д2=0 вызываем D10

JMP MAIN1 ; в начало

DAT11: CALL D11 ; т.к. Д1=Д2=1 вызываем D11

JMP MAIN1 ; в начало

; проверка состояния l-датчика (20)

READ20: MVI A, 14H ; адресс датчика в шестнадцетиричной системе

OUT 04H ; настраиваем мультиплексор

IN 03H ; читаем состояние выхода мультиплексора

MOV L, A ; запоминаем в регистре L

RET

; проверка состояния k-датчика (35)

READ35: MVI A, 23H ; адресс датчика в шестнадцетиричной системе

OUT 04H ; настраиваем мультиплексор

IN 03H ; читаем состояние выхода мультиплексора

MOV H, A ; запоминаем в регистре H

RET

; надо сбросить выход ИЭ

D00: MVI A, 00H ; будем грузить в дешифратор 00

OUT 05H ; грузим в дешифратор, который на 5-м порту

RET

; надо установить выход 12-й выход ИЭ

D01: MVI A, 0CH ; для этого в дешифратор запишем 12 в шестнадцатеричной форме

OUT 05H ; грузим в дешифратор, который на 5-м порту

RET

; надо вызвать задержку (на 6-м адресе) а затем установить 12-й выход

D10: CALL 06H ; вызываем задержку

MVI A, 0CH ; для этого в дешифратор запишем 12 в шестнадцатеричной форме

OUT 05H ; грузим в дешифратор, который на 5-м порту

RET

; в этом случае мы выходы не меняем

D11: RET

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]