Космонавтика  Архитектура 3-х шинных систем 

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 [ 43 ] 44 45 46 47 48 49 50 51 52 53 54 55 56 57

260 Глава 9 .

МЫ не будет продолжено, чему соответствует условие нет> шага 10.

Если отрабатывается ключ ввода, то данные, считанные на шаге 9, записываются в ОЗУз, как это показано на шаге 11. После этого осуществляется переход к шагу 8, на котором адрес ОЗУг увеличивается на 1. По завершении шага 8 снова производится переход к шагу 3. Программа реализации функции УСТАНОВКИ АДРЕСА приведена на рис. 9.115.

9.6. Программные средства реализации функции СТИРАНИЯ ОЗУ

Перейдем к рассмотрению программных средств, предназначенных для реализации системной функции СТИРАНИЯ ОЗУ, для чего прежде всего определим эту функцию. Функция СТИРАНИЕ ОЗУ заключается в записи единиц (FFie) во все ячейки ОЗУг.

Укрупненная блок-схема реализации рассматриваемой функции приведена на рис. 9.16. После записи единиц во все ячейки ОЗУг осуществляются возврат в основную программу и ожидание ввода новой функции. Программная реализация блок-схемы рис. 9.16 средствами символического языка микропроцессора 8085 показана на рис. 9.17.

9.7. Программные средства реализации функции программирования

Программирование ППЗУ осуществляется в том случае, когда возникает необходимость хранения информации (отлаженных программ), длительное время используемой без перепрограммирования. Подобные запоминающие устройства, сохраняющие информацию при отключении питания, находят применение во многих областях. ППЗУ обладают еще одним важным свойством, которое заключается в том, что при необходимости записанную информацию можно стереть, а устройство - перепрограммировать в соответствии с новыми потребностями. При программировании ППЗУ требуемая программа вначале размещается в другом ЗУ, в нашем случае это ОЗУг, а затем пересылается при выполнении операции программирования в ППЗУ, где и хранится до тех пор, пока не возникнет потребность ее затереть.

Рассмотрим теперь программные средства, необходимые для программирования ППЗУ. Система устанавливает ППЗУ в режим программирования. Данные из ОЗУг поступают на выходные линии ППЗУ. Далее на вывод программирования ППЗУ подается импульс. Выдача импульса программирования производится последовательно для каждого адреса (0000-OSFFie).

Г Начало

Системный адрес = 1400

Начало ОЗУ,

Рис. 9.16. Блок-схема работы системы при реализации функции стирания ОЗУ.

Запись FF по системному адресу


Все OaVj заполнено. Выход

Адрес = Адрес + 1

Следующий адрес

Переход к главной

управляющей

программе

г 2 3 4 5 6 7

0000 0000 0000 0000 -0000 0000 0000-0000 9 0002

10 0005

11 0006

12 0007

13 0009

14 ОООА 1 5 OO0D

16 ОООЕ

17 OO0F

18 0012

19 0013

20 0014

21 0017

22 0018

23 001B

24 001B

25 001B

26 001В

27 001В

28 001В

29 001С

30 0010

* . * * ПОДПРОГРАША чистки рЗУ

21 00 77 F5 ЗЕ ВС СА 12 F1 23

03 05 F1

BD СА IB 23

СЗ 05

OBQ 0000

CLRAM MVI A.OFFH

14 LXI H.UOOH

CL1 MOV M,A

POSH PSW

MVI A,.17H

CMP H

JZ LCHK

POP PSW

INX H

JMP CL1

LCHK POP PSW

CMP L

00 JZ BEGIN

INX H

00 JMP CL1

УСТАНОШгаЬ НАЧ. АДРЕС ПРОГРАМШ АККУМУЛЯТ0Р 1Т В H.L НАЧАЛЬШЙ АДРЕС ОЗУ FF В ПАМЯТЬ

СОХРАНИТЬ СОДЕРЖАНИЕ АККУМУЛЯТОРА

ПРОВЕРИТЬ СТАРШИЙ БАЙТ=ПРЕДЕЛ. ЗНА ДА,ИДТИ НА ПРОВЕРКУ МЛАДШЕГО БАЙТА ВОССТАНОВИТЬ АККУМУЛЯТОР УВЕЛИЧИТЬ АДРЕС ОЗУ - ОБРАБОТАТЬ СЛЕДУИВЙЙ АДРЕС ВОССТАНОВИТЬ АКЮЛИГЛЯТОР ПРОВЕРИТЬ:МЛАДШИЙ ВАЙТ УГ КОНЕЦ ЗТОЙ ПОДПРОГРАЮИ-УВЕЛИЧИТЬ АДРЕС ОЗУ ПОВТОРИТЬ ЗАНОВО О ДРУГИМ АДРЕСОМ

О EBBOBS

* НЕОБХОДИМ АДРЕС ДЛЯ МЕТКИ BEGIN

BEGIN NOP ЭТО ПУСТОЙ ОПЕРАТОР АССЕМБЛЕРА

END ПРЕДЛОЖЕНИЕ END АССЕМБЛЕРА

4 STMBOLS

Рис. 9.17. Реализация блок-схемы рис. 9.16 в кодах символического языка

микропроцессора 8085.



Начало

Установка на табло DDDDDD

Индикация пользователю режима программирования системы

Установка 2708 в режим программирования

Выдача данных по адресу ППЗУ

Подача импульса программирования на вывод 2708

Увеличение адреса на1


Сравнение ППЗУ с ОЗУ

Установка адреса

Увеличение адреса на 1


Отображение адреса и данных

Переход к главной управляющей программе

Ожидание нажатия клавиши сброса

0000 0000

0000

0000 0000 0000

7 0000

8 0000

9 0000

10 0000

11 0000

12 0000

13 0000

14 000 2

15 000 4

16 0006 1 7 ООО 8

18 ООО А

19 ОООС

an 0OOF

21 00 Ю

22 0012

23 00 12

24 0015

25 0018

26 00 1 8

27 00 19

28 00 1В

29 00 1С

30 001Е

31 00 IF

32 00 21

33 0021

34 00 21

35 0021

36 0023

3 7 00 25

38 00 27

39 00 28

40 00 2В

41 00 2D

4 2 002Р

43 002F

44 00 2F

45 002Р

46 00 V 4 7 00 32

48 00 35

49 00 36

50 00 38

51 ООЗВ

52 ООЗС

53 ООЗЕ

54 0040

55 00 40

56 00:*3

57 0040

58 00 43

59 00 44

60 00 47

В ED D3 F0 ЕЗ F1 D3 F2 ЗЕ 00 ЕЗ 32 32 О 3 ЗС

ЕЗ 34

1 1 00 00 21 00 14

ЕЗ 3) 7В

ЕЗ 33 7 А

ЕЗ 34

06 08

ЗЕ 03

ЕЗ 35 05

С2 27 00 ЗЕ О 1 D3 35

0000

УСТАНОВИТЬ НАЧ. АДРЕС ДЛЯ АССЕМБЛЕМ.

PROG

A ,0 ЕЕИ

OFOH

0F1H

ВЫВЕСТИ НА ДИСПЛЕЙ DEEEEE

0F2H

A,00

РАЗРЕШИТЬ ПЕРЕДАЧУ ДАННЫХ В ПРОГ. ПЗУ

3 2H

CNT1

ОБНУЛИТЬ СЧЕТЧИК ЦИКЛОВ

cs/iB=iг VOLTS

PH0G3

D,00 ООН

ЗАГРУЗИТЬ НАЧ. АДРЕС ПРОГ. ПЗУ

H, 1400 И

ЗАГРУЗИТЬ НАЧ. АдаВС ОЗУ

PR0G2

ДАННЫЕ ИЗ ОЗУ В АККУМУЛЯТОР

ВЫВЕСТИ ДАННЫЕ В ПРОГ. ПЗУ

AD-A7 В АККУМУЛЯТОР

3 3H

АО -А7 В ПРОГ. ПЗУ

А8-А9 В АККУМУЛЯТОР

А8-А9 В ПРОГ. ПЗУ

ПРИШНИТЬ ПРОГРАММИРУЮЩИЙ ИМПУЛЬС

мта

PULSE DC а jnz MVI

в,0 8 A,03 35H в

PULSE A,0 1

OUT 3 5H

ВКЛЮЧИТЬ CS/WE и ПРОГ. ИМПУЛЬС ШИРИНА ИМПУЛЬСА ВЫКЛЮЧИТЬ ПРОГ. ИМПУЛЬС

ПОСЛЕДНИЙ Адрес программировался?

FE РР С2 ЗВОО 7А

FE 03 СА 40 00 23 13

сз 18 00

MOV А,Е CPI OFFH JNZ PB0Q1 MDV А,Е CPI о 3 JZ LOPC РЮв1 INX Н INX D JMP PROG2

ПОСЛЕДНИЙ РАЗ ОБРАБАТЫВАЛИСЬ BOS 10 24 АДРЕСА

ПОСЛЕДНИЙ БАЙТ -АТ

ПОСЛЕДНИЙ БАЙТ а8-а9 ПОСЛЕДНИЙ АДРЕС (ДА)

УВЕЛИЧИТЬ АДРЕСА О ЗУ И ПРОВ. ПЗ/ ОБРАБОТАТЬ СЛЕДУЮЩИЙ АДРЕС

ЗА 0 3

32 0 3 FE С8

14 LOPC 14

LDA INR STA CPI

CNT1 А

CNT1 200

ЗАГРУЗИТЬ СЧЕТЧИК 250 ЦИКЛ0В777

Рис. 9.19. Реализация блок-схемы рис. 9.18 в кодах символического

микропроцессора 8085.

языка

Рис. 9.18. Блок-схема работы системы в режиме программирования-.

РЕАЛИЗАЦИЯ КОМАНДЫ PROG ДЛЯ 8080.

ЭТА ПРОГРАММА СЛУЖИТ ДЛЯ УПРАВЛЕНИЯ ПЕРЕПРОГ. ПЗУ.- ИНФОРМАЦИЯ О ЗУ ХРАНИТСЯ НАЧИНАЯ С ЯЧЕЙКИ 1400Н. АДРЕСА ПЕРвПРОГРАММИРУЕМЭГО пзу НАЧИНАЕТСЯ С 0000 .

* ПРОГРАМШСТ ДЖИМ К0Ф5Р0Н ♦



62 6Э

Ч 65

17 ?8 79 Ю 81 82 83 84 85 8 87 88 89 90 .91 92 93 94 95 96 97 98 99 ЮО Ю1 Ю 2 ЮЗ Ю4 Ю5 Юб Ю7 Ю8 Ю9 110 111 112 113 114 115 116 117 118 1 19 125

0049 004С 00 4С 0040 004С 004В ООЮ 00 51 0053 0053 0053 00 53 00 56 00 59 00 59 00 5А 0Г5С 00 5D 00 5Р О061 0062 0065 0065 0065 006 5 056 5 0065 0066 0068 ООбВ ООбС 006В 0071 0071 00 71 00 71 00 72 00 73 00 76 00 76 00 76 00(76 00 77 00 79 00 7А 00 70 00 7Е 00 83 00 83 00 8П 00 80 0083 00 86 0088 00 8В 00 8В

00 ав 00 ав опт 00 ав

С2 12 00

ЗВ 01 D3 3 2 3D

D3 35

jnz ргооз НВ аэовдюпв.говторный старт

ПРОГРАМЮЦЮВАНИВ ОКОНЧЕНО .ВЕШРЬ ПРОВЕРИТЬ

ЗАПРЕТИТЬ ПЕРВДАЧУ ДАННЫХ В ПРОГ. ПЗУ

MVI кр\

OUT 32Н

DCR А

OUT 35Н

АККУШГЛЯТОР=0 CS/WE = О .0 v

ИНИЦИАЛИЗИРОВАТЬ АДИВС ПРОГ. ПЗУ И О ЗУ

11 00 00 LXI при

21 78 0 5 LXI Н,1400

7В PR0Q4 MOV А

D3 33 OUT ЗЗН

7А ИПЧ А,П

D3 34 OUT 4Н

DB 31 IN 31Н

BE СМР М

С2 76 00 JN2; PROOF

FE FF С2 71 00 7А

FE 03 СА0 2 14

23 13

СЗ 59 00

D3 F0 7а

D3 F1 DB 31 D3 F2

CD 00 14 ЗА 0 1 14 FE 16 G2 83 00 СЗ О 2 14

АДНВС ПОСЛЕДНИЙ?

M3V А,в CPI OFFH JNZ PR0G5 MOV A,D CPI 0 3 JZ BEGIN

АДРВС ОЗУ

А0-А7-В АККУМУЛЯТОР АДЙВС В ПРОГ. ПЗУ А8-А9 В АККУМУЛЯТОР А8-А9 В ПРОГ. ПЗУ

ЧИТАТЬ ДАННЫЕ ИЗ ПРОГ.ПЗУ В АККУМУЛ. СРАВНИТЬ ДАННЫЕ В ОЗУ И В ПРОГ. ПЗУ НЕ РАВНЫ .ОШИБКА

ПОСЛЕДНИЙ Ю-А7 НЕ ПОСЛЕДНИЙ ГОСЛЕДНИЙ А8-А9

ПОСЛЕДНИЙ.НАЧАТЬ НОВУЮ КОМАНД

УВЕЛИЧИТЬ АдаСАОЗУИ ПРОГ. ПЗУ

PR0G5 INX Н INX D

JMP PROGi СРАВНЕНИЕ ПО СЛЕДУЮЩИМ АДРЕСАМ * . -

БЛОК ОБРАБОТКИ О ШИБОК

PHOGP

imV А,а АЗ-А7 В АККУМУЛЯТОР OUT OFOH

ИЭ7 A,D А8-А9 В А-ЧКУМУЛЯТОР

OUT OFIH НА ДИСПЛЕЙ

IN 31Н ПРИНЯТЬ ДАННЫЕ ИЗ ПРОГ.ПЗУ

OUT 0Р2Н НА ДИСПЛЕЙ

ЗАЦИКЛИТЬ ПРОГ. ПОКА НЕ БУЛТ НАЖАТА КЛАВИША СВ

РВООб CALL КШТ LDA KWGT

CPI 16Н НАЖАТА КЛАШША СЕ?7?

JNZ PR0Q6

JMP: BEGIN ВЕРНУТЬСЯ И О БРАБОТАТЬ ДРУГУЮ KDHAH.

УКАЗАТЬ РАЗНЕПБНИЕ ПВРЕ№ННЫХ

. *

121 008Е

122 008Е

123 008Е

124 008Б

125 008Е

126 008Б

127 008Б

128 008В

129 008Е

130 008Е

131 008Б

Проектирование управляющего програлшного обеспечени 265

УСТАНОВИТЬ ПЕРЕМЕНШЕ. ♦

♦ ♦, ,♦ ,♦♦ ♦ * *♦

*

KDET EQU 1400Н KWGT EQU 1401H BEGIN EQU 1402H CNTI EQU 1403H

0 ERRORS

14 SYMBOLS

END ДЛЯ АССЕМВЛ

Через каждые 200 шагов программирования в диапазоне адресов 0000-03FF система выполняет операцию сравнения данных, записанных в ППЗУ с исходными данными, хранящимися в ОЗУг. В случае когда вся информация, записанная в ППЗУ, совпадает с исходной информацией из ОЗУг, считается, что операция программирования была выполнена успешно. Если же данные для какого-либо адреса ППЗУ не совпадают с соответствующими данными ОЗУг, то этот адрес и данные отображаются на табло. Блок-схема описанной процедуры приведена на рнс. 9.18.

Из рнс. 9.18 видно, что работа подпрограммы начинается с записи на табло числа DiDDDDDig. Это делается с целью индикации факта реализации операции программирования ППЗУ. Для того чтобы полностью запрограммировать ППЗУ, необходимо затратить более минуты, так что индикация этой операции необходима.

Далее система переводит ППЗУ в режим программирования (шаг 2), что осуществляется, как известно, путем подач напряжения -1-12 В на вывод CS/WE устройства 2708. Затем реализуемся циклическое повторение шагов 3, 4, 5, б, реализующих бственно программирование устройства 2708 с помощью данных из ОЗУг.

По завершении полного прохода программирования всех 1024 ячеек осуществляется проверка на выполнение 200 циклов программирования, что показано на рис. 9.18 (шаг 7). Если 200 циклов не выполнено, производится переход к шагуЗ.

В противном случае осуществляется верификация запрограммированных данных, что выражается шагами 8 и 9.

Несравнение данных означает наличие ошибок при программировании устройства. В этом случае на табло отображается а) адрес первой по порядку ячейки, где обнаружено несравнение и б) данные в ППЗУ, заключенные по этому адресу, что выражается шагами 10 я 12. При полном сравнении данных осуществляется индикация правильности программирования путем выдачи на табло значения FDDDDD и производится пере-



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 [ 43 ] 44 45 46 47 48 49 50 51 52 53 54 55 56 57