Космонавтика  Архитектура 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

Глава 9

дача управления в начало головной программы, что показано на рис. 9.18 (шаг 11).

На рис. 9.19 приведена програймная реализация блок-схемы рис. 9.18 средствами символического языка микропроцессора 8085.

9.8. Программные средства реализации

функции верификации

Перейдем к рассмотрению функции верификации, заключающейся в сравнении данных ППЗУ с данными из ОЗУг. В слу-

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

Начад t

Установка адреса ППЗУ = О, установка адреса 03У= О

Данные ППЗУ\.Нет анные ОЗУ2

Увеличение на 1 адреса ППЗУ и ОЗУ-


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

Ожидание иажа -тия ключа сброса

Возврат в главную управляющую прогамму

Рис. 9.20. Блок-схема работы системы при реализации функции верификацнн.

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

Блок-схема реализации функции верификации приведена на рис. 9.20, по которой видно, что вначале система устанавливает значение 0000 для адреса сравнения (шаг 1), Далее осущест-

2 3 4

5 6 7 8 9 10

12 13 14 15 16 17 18 19 21 21 22 23 24 25 26 27 28 29 30 31 32 33 3* 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 33 51 52

0000 0000

оооо

0000

оооо оооо оооо оооо оооо оооо

0001 000 2 000 4 ООО 5

000 7 сое 9 ОООВ ОООВ ООН

001 1 00 1 1 00 11

00 13

00 14

00 17 00 19 00 1А 00 ID 001Р 0020 00 23 00 26 00 27 00 28 00 2А 00 2В 002В

00 гв

00 31 ООЗЗ 00 34 00 36 00 37 00 39 ООЗС ООЗС ООЗС

ООЗО

ООЗС 00 3D

♦ - * ♦♦ ♦ ♦ *

НА РИС. 9.21 ПОКАЗАНА ПРОГРАММА ,Ш10К-СХЕМА которой ИЗОБРАЖЕНА НА РИС. 9.25. ПРОГРАМЖСТ ДЖИМ КОФФРОН

ж * <-

ORG ОООО УКАЗАТЬ АССЕМБЛЕРУ НАЧАЛО ИРОГ.

♦ УСТАНОВИТЬ РЕЖИМ ЧТЕНИЯ ИЗ ПРОГ.ПЗУ

AF ЗС

D3 32 AF

D3 35 D3 33

D3 34 11 00 00 21 со

VFtl

XRA INR OUT XRA

OUT OUT OUT LXI LXI

32H A

DDOOO

H,1400U

0 ВЕСПЕЧИХЬ РЕЖИМ ЧЕНИЯ

CS*0.0V,PGM=0.0V АДРЕС Ю-А70

АЖ-ЕС Ае-А90

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

УСТАНОВИТЬ Ада С ОЗУ

НАЧАТЬ дам ЧЗВНИЯ и ПРОВЕРКИ

DB Ht

С2 31 00 ЗЕ 13 ВА

С2 26 00 ЗЕ FF ВВ

сг 26 00

С 3 ЗС 00 13 7А

D3 34 7В

ГЗ 33 23

СЗ 11 оО D3 F0 7В

D3 Р1 7

D3 Р2

СЗ 39 00 Wni

VNEX

VFAIL

IN СМР JNZ MVI СМР JNZ MVI CMP JNZ JMP INX. MOV OUT MOV OUT INX JMP OUT MOV OUT MOV OUT JMP

31H H

VFAIL A,13H D

VNEX A,OFFH E

VNEX START D

A,D 34H A,E

33H H

WY1 OFOH A,E 0F1H A,D 0F2H VOUT

ЧИТАТЬ ДАННЫЕ ЙЭ ПРОГ. ПЗУ СРАВНИТЬ ДАННЫЕ ОЗУ И ПРОГ. ЕСЛИ на РАВНЫ,го НА VFAIL

ПРОВЕРИТЬ СТАРШИЙ ВАЙТ,ПОСЛЕД. АДРВС НЕ ПОСЛЕДНИЙ,ПРИНЯТЬ СЛЕДУЮЩИЙ АДРЕС

ПРОВЕРИТЬ МЛАДШЙ ВАЙТ,ПОСЛЕДНИЙ АДРЕС НЕ ПОСЛЕДНИЙ,ПРИНЯТЬ СЛЕДУЮИИЙ АДРЕС НАЗАД Н О СНОВГО Й ПРОГРАМШ

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

ВЫДАТЬ ДАННЫЕ НОВЫЙ АДРЕС ОЗУ СРАВНИТЬ СЛЕДУЮПИЕ ДАННЫЕ ВЫДАТЬ НА ДИСПЛЕЙ----XX

ВЫВОД АДРЕСА НА ДИСПЛЕЙ ЖДАТЬ ПРЕРЫВАНИЯ

ШПЕРЬ ВВЕдаМ ФИКТИВНУЮ ПЕРЕМЕННУЮ

00 START NOP gj, АССЕМБЛЕРА

О E3BDRS 6 SYMBOLS

Рис. 9.21. Реализация блок-схв4<1ы рис. 9.20 в кодах символического языка

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

вляется сравнение данных по адресу О из ОЗУг с данными по адресу О ППЗУ. Если эти данные не сравниваются, на табло выводятся адрес данных и собственно данные, что показано на схеме (шаги 3 и 4). При сравнении данных производится увеличение на 1 адреса (шаг 6).

При последовательном увеличении адреса осуществляется сравнение данных по каждому адресу. В случае когда данные



Начало

Установка адреса ПГОУ = О, установка адреса ОЗУ = О

Чтение данных ППЗУ

Запись данных нз ППЗУ в ОЗУ


П ослед ний\Нет адрес

Переход е

главную

управляющую про-

грамму

Увеличение иа I адреса ППЗУ и ОЗУ

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

2 3 А

0000 0000 0000 0000 0000

6 0000

7 0000

8 0000

9 ООО

10 ОООС

11 0000

12 0000

13 0000

14 0000

15 ООО!

16 0002

17 0004

18 0005

19 0007

20 ОООА

21 000D

22 ОООЕ

23 0010

24 0011

25 0013

26 0015

27 0016 26 0018

29 0019

30 001 с

31 001F

32 001F

33 0022

34 0023

35 0024

36 0027

37 0027

38 0027

39 0027

40 0О28

AF ЗС

D3 32

D3 35 11 00 21 00 7В

d3 33 7А

ВЗ 34 DB 31 77

ЗЕ 13 ВА

С2 22 ЗБ FF ВВ

СА 27

СЗ 0D

на рис.9.23 показана программа сокс,блок-схема

которой изображена на рис.9.22

програшиот дким коффрон *

♦ * ♦ *

око ооон

.* режим чтения инФойшога иа прог. пзу

сорт

00 14

XRA INH OUT ХЕА OUT LXI LXI

С0РУ1 MOV OUT MOV OUT IN MOV MVI CMP JNZ MVI CMP JZ INX INX JMF

CNEX

32h A

35H D.OOOO

H.uooH

A,13H

CNEX A,OFFH E

START

C0PY1

АККУМУЛЯТ0Р=1

cs=O.OV PGM=0.0v АДРЕС ПРОГ. ПЗУ=0 УСТАНОВИТЬ АДРЕС ОЗУ

АДРЕС а0-а7

АДРЕС а8-а9

ЧИТАТЬ ИНФОРМАЦИЮ ИЗ ПРОГ. ПЗУ ШВЕСТИ ИНФОМ-ЦИО В ПЗУ

ПРОВЕРКА НА ПОСЛЕДНИЙ АДРЕС

ЕСЛИ АДРЕС не П0СЛБ.;диЙ,10 НА СИЕХ

МЛАШаИЙ БАЙТ П0СЛЕДНВ1 Э АДРЕСА ЕСЛИ АДРЕС ПОСЛЕДНИЙ,ТО КОНЕЦ СЛЕДУПЦИЙ АДРЕС ОЗУ СЛЕДУЮЩИЙ АДРЕС ПЗУ ПРИНЯТЬ СЛЕДУЮЩИЕ ДАНШЕ

♦ теперь введи! фиктивную переменную

START NOP END

1 2 3 4 5

8 9 Ю 11 12 13 14 15 16 17 18 19 Z) 21 22 23 24 25 26 27 2S 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 58 59

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 000 3 000 4 ООО 5 ООО 7 000 9 ОООВ ОООЕ 00 11 00 14 О017 0018 001В 001В 001В

0О1В

00 IB 001В 00 IB 001В 00 IB 00 IB 00 1В 00 IB 001В 001В 001В 001В 00 IB 00 IB 00 IB 00 IE 00 IB 00 21, 00 23 00 26 00 29 00 2C 00 2C 00 2C 00 2d 00 20 00 2F 00 31 0032 0033 00 34 00 34

УПРАВЛЕНИЕ ПРОГРАМШПЮВАНИВМ ПРОГ. ПЗУ

♦ ♦

прогрАмшст даим коффрон

3KFF 13

ЕЗ F0 D3 F1 D3 F2 32 00 32 О 1 32 0 2 32 0 3 ЗС

32 04

10 10 10 10

ORG 00 УСТАНОВИТЬ НАЧАЛЬНЫЙ АДРЕС

ЗАДАТЬ НАЧАЛЫШ ЗНАЧЕНИЯ ДЛЯ ВОаХ ГЕЕВвННЫХ #

LXI SP,13FFH НАЧ. ЗНАЧЕНИЕ УКАЗАТЕЛЯ СТЕКА

BEGIN XRA А НАЧ. ЗНАЧЕНИЯ ФЛАЖКОВ .ОБНУЛИТЬ АККУМ,

EI РАЗРЕШИТЬ ПРЕРЫВАНИЯ

OUT OFOH НОЛЬ НА ДИСПЛЕЙ

OUT 0F1H

OUT 0F2H ВЫДАТЬ НА ДИСПЛЕЙ ОООООО

STA КТ1МЁ КТ1МЕ=0

STA CFUG CFLAG=0

STA KWGHT KWGHT=0

STA KCOMP KCOMP=0

INH A АККУМУЛЯТОР=1

STA KTOW KaOWOOOOOOJ

УСТАНОВИТЬ АДРЕСА ПЕРВШННЫХ щ-

KTIME EQU 1000 Н

CFLAG EQU кт1ш + 1

KWGHT EQU CFLAG+1

KCOMP EQU KWGHT+1

KROW BQU KCOMP+1

NROW EQU KBOW+I

ClfTl EQU NB0*+1

AINl EQU CNT1+1

AINZ EQU AIS1+1

AIN3 EQU AIN2+1

AIN4 EQU AIN3+1

НАЧАЛО 0егоВНОЙ ПРОГ. ОБРАБОТКИ ВВОДА КОМАНД

CD 64 00

ЗА02 Ю FE 16 СА 20 00 DA 2С 00 СЗОЗ 00

CALL KDET

LDA KWGHT CPI 16H JZ BEGN1 JC BEGN1 JMP ffiQIN

ЖДАТЬ НАЖАТИЯ. КЛАВИШИ

ВЫЧИСЛИТЬ ЗНАЧЕНИЕ КЛАВИШИ КЛАШША ВВОДА КОМАНДЫ???

ЕСЛИ ПЕРЕХОДЫ СРАБОТАЛИjTO КОМ. ПРАВ. . ИГНОРИГО ВАТЬ ВВОД

ЗАО г

D6 Ю 47

87 ю

О 1 00 00

ВЫЧИСЛИТЬ АДРЕС ПЕРЕХОДА

* РИС. 9.13

BEQN1

LDA SUI ITV ADD ADD

KWOHT

АККУМУЛЯТОР =KWaHT-16

АккумУлятор г

АККУМУЛЯТ0Р 3

LXI В,00

Рнс. 9.24. Полная программа для микропроцессора 8085, реализующая все

операции системы.

ПРЕДЛОХБНИБ END 4ССБивЛЕрА

О EBBOBS

4 STHBOLS



-6 2 63

65 66 67 -68 69 Т) 71 72 73 7* 75 76 77 78 79 ю 81 82 83 84-85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 10 г 10 2 ЮЗ 10 4 10 5 Ю6 то 7 10 8 Ю9 1Ю 111 112 113 114 115 116 117 118 119

ЗПОО

58 00 5В00 44 0 1

0037 4Р

0038 21 ООЗВ09 ООЗС £9 003D 003D 00 3D ООЗО 003D 03 00 40 сз 0043 СЗ 00 46 СЗ 0 2 02 0049 СЗ 1D02 004С СЗ АВ 02 00 4Р СЗ F2 0 2 00 52 СЗ 5В 00 00 55 СЗ 61 00 00 58

00 58 00 58 00 58 00 58

00 58 СЗ 03 00 00 5В СЗ 0 3 00 00 5В СЗ 0 3 00 0061 СЭПЗ 00 0064 ООб4 .0064 0064 0064 -0064 0064 CD ZPOI 006 7 CD IP 0 1 00 6 A ЗА 01 Ю 00 6Г)-РВ 00 006 F СА 64 00 00 72 CD F5 00 0075 00 75 00 75 00 75 00 75 00 75 0075 00 75 0075

00 75 ЗА 00 10 00 78 00 78 00 78 00 78

00 78 PS 00

007А СА Э? 00

00 7D

00 7D

006D

00 7D

007Е

00 ТВ ЗА о 2 Ю

ШУ с,А ВЫЧИСЛЕННОЕ С1е1!ЕДИВ в тгистр с

LXI Н,TABLE ЗАГРУЗИТЬ БАЗОВЫЙ АДРЕС ТАБЛИЦЫ

DAD В ПРИБАВИТЬ CJEIdSHHE К БАЗОЮ МУ АДРЕСУ

PCHL ИДТИ К ВЫЧИСЛЕННОМУ АДРЕСУ ТАБЛИЦЫ

XABLE jmp jmp jmp jmp jmp jmp jmp jmp jmp

ТАБЛИЦА для АДЕЁСОВ ПЕРЕХОДОВ

ENTER

CENTY

ADDSE

CLRAM

PROO

copy

КОНЕЦ ТАБЛИЦЫЕЯТНТС *******

КОМАНДЫ ENTRY,CENXRY,NAl ,NA2

ENTEll jmp begin centy jmp begin SA1 jmp begin NA2 jmp begin

****** *

НАЧАЛО рис. 4.20

kdet call orow

call colm

lda cflag

cpi оон

JZ kdet

call keyw

КНЕЦ РИС. 4.20 НАЧАЛО РИС.4.21

****** выли НАЖАТЫ КЛАВИШИ

LDA KTI.MS

CPI ООН jz- KCL01

*** НЕ ПЕРВЫЙ РАЗ *

LDA KWGHT

вышсти актишый набор вызвать годпрограмму colm .к

неовходию проверить флажок столбца-проверить активность столбца не активный столбец,повторить цикл активный столбец,какой именно???

ЛЕРЕЗАГРУЗИЙ КтШ ИЗ ПАМЯ1М

KTIMS=0?? ДА,ЭТО ПЕРВЫЙ РАЗ

КАКАЯ ЦИФРА БЫЛА НАВРАНА77?

4 28

ООЮ 0081 00 84 0085 00 88 0088 00 88 00 88 00 89 00 ВС ООВР ООВР 00 8Р 00 8F 0092 00 93 00 96 00 96 0096 00 96 00 98 009В 00 9Е 009F 009F 00 9Р 00 9Р 0ОА2 00 А5 00 А5 00Ж5 00 А5 00 А7 ООАА ООАА ООАА ООАА ООАС 00 АР ООАР ООА? ООАР 00 В2 00 В2 0ОВ2 0ОВ2 00 В2 00 В2 00 82 00В2 00В2 00 В2 0ОВ2 0ОВ2 0ОВ2 00 В2 00 В2 00В2 00В2 00 В4

ЗАОЗ Ю В9

СА В? 00

32 00 10 СЗ АА 00

ЮУ с, А

LEA КСОМР СМР С

j2 ксюг

ЧШАГ 8)

XRA А STA КТ1ИЁ JMP KCL03

* (ШАГ 9)

ЗА 00 10 KCL02 LDA KTIMB ЗС INR А

32 00 Ю 5ТА KTIME

* ♦ (ШАГ Ю)

FE 32 CPI 33

С2 ААОО jnz KCL03

CD Вг 00 CALL KOPN

С9 RET

** **(llUir 3)

ЗА О 2 Ю КОШ 1 LDA KWGHT 32 03 Ю STA КСОМР ♦

(ШАГ 4) ♦

Ж 01 MVI А,01

32 00 Ю STA KTIMB

---- . -

(ШАГ 5) *

ЗЕ0 1 КСЮЗ MVI А,01

32 04 Ю STA KROW

(ШАГ 6)

СЗ 64 00 JTMP KDET

НВГИСТР C=KWQHT РЕГИСТР А=КСОМР KC0MP=KWQHT7? ДА/)НИ РАВНЫ!!!!!!

ОНИ НЕ РАВНЫ

ПЕРЕЗАПИСАТЬ KTIME

ИДТИ НА ШРЕЗАГРУЗКУ АКТИВ. НАБОР

ВЫЗВАТЬ KTIMB из ПАМЯТИ

КТ1МВ=КТ1МВ+1

КТ11в=КТ1МВ+!

КТ1Шг-=507? НЕ 50

ПРОВЕРИТЬ ГОТОВНОСТЬ ПУЛЬТА КОНЕЦ ЭТОЙ ПОДПРОГРАММЫ

ксомр= kwght

УСТАНОВИТЬ КТ1МЕ=1

УСТАНОВИТЬ АКТИВНЫЙ НАБ0Р=О0000001

идти к НАЧАЛУ ПРОГРАММЫ

ЗБ 01 32 04 Ю

* к <( *

* НАЧАЛО 1ЮД1№0ГРАМНЫ * * к

РИС.4. 22

ПРОГРАММА ПОДГОТОВКИ ПУЛЬТА

ооо >>*** * >* * **>>> >

(ШАГ \)

KOPN MVI А,01

STA KHOW KROWOOOOOOO1



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