Микропроцессорная система обработки журнальных данных
Структура автомата для сбора данных. Программы, реализующие заданный пользователем алгоритм автоматизации процедуры обработки журнальных данных. Описание микропроцессорной системы, ее упрощенная модель, система команд, блок-схема алгоритма обработки.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | контрольная работа |
Язык | русский |
Дата добавления | 14.11.2010 |
Размер файла | 65,8 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Задание
Найти наименьший отчёт, зарегистрированный в «электронном журнале» во время предпоследнего сеанса снятия показаний датчиков.
Исходный данные:
Количество датчиков N - 5
Количество сеансов n - 2
Начальный адрес для файла G Аж.нач. - 2225(10) = 08B1(16)
Начальный адрес программы Апр.нач. - FA25(16)
Микропроцессорная система обработки журнальных данных
1. Каждому включению МСОЖД должен предшествовать рабочий цикл некоторого автомата для сбора данных (АСД), который в течении своего суточного цикла (когда сигнал X1 = 1) организует n сеансов связи и во время каждого «сеанса» поочерёдно (в порядке возрастания номеров) подключает датчики Д1…Дn ко входу данных Д ОЗУ, формирует адрес (номер) Aij ячейки для записи показаний Дij i-го датчика в j-ом «сеансе» связи и вырабатывает саму команду w запись. В результате в конце суточного цикла сбора данных, когда сигнал 1|0 сменит свой уровень с 1 на 0, в ОЗУ окажется сформированным готовым к обработке файл G данных (т.е. электронный журнал), структура которого полностью известна.
На рисунке 1 изображена упрощённая структура такого автомата для сбора данных (АСД): в его состав входят программируемый электронный таймер, 8-разрядный N-канальный мультиплексор и два детектора, которые, анализируя показания таймера, формируют сигналы «сеанс» (=1 во время сеанса) и «цикл» (=1 во время цикла). Последний из них X1 хранится в регистре параллельного действия RG, т. е. в «порте» устройства ввода УВ №1 МСОЖД.
Рис. 1. Автомат для сбора данных.
2. Описание МСОЖД. Один из возможных вариантов построения МСОЖД показан на рисунке 2, где приведена микропроцессорная система с трёхшинной организацией, а в качестве центрального процессора (CPU) использована БИС КР580ВМ80. Если в ОЗУ в область свободную от обрабатываемого файла G, разместить программу, реализующую заданный пользователем алгоритм обработки, то становится возможной автоматизация процедуры обработки. Программ запускается по окончании суточного цикла сбора данных, а обработка начинается по сигналу X = 0, считываемому с «детектора цикла» АСД и вводимому через устройство ввода УВв №1 по команде INPUT программы. В ходе обработки программа должна обеспечивать неоднократное извлечение из ОЗУ любого элемента файла G, выполнение над ним необходимых арифметических и логических действий, приводящих к формированию конечного результата F, и выдачу F через устройство вывода УВыв №1 пользователю (по команде UOTPUT). Нужно учесть, что структура файла G такова (поочередная запись показаний датчиков в порядке возрастания их номеров во время каждого сеанса), что информация gij, принятая по i-ому каналу (i=1,2,…,n-1) во время j-ого сеанса (j=0,1,2,…,n-1), будет храниться в ячейке ОЗУ с номером = адресом Aij = Aнач + j*N+i.
А область памяти, которую занимает журнал, находится в диапазоне адресов от Анач до (Анач + n*N+1).
Рис. 2. МП - система автоматической ОЖД.
Если в программе выполняется команда, требующая обращение к памяти, то на 16-разрядную шину адреса ША выставляется номер требуемой ячейки Aij, а на 10-разрядной шине управления ШУ формируются сигналы «читай память» MEMR или «пиши в память» MEMW, которые задают режим работы ОЗУ и направление передачи по двунаправленной 8-разрядной шине данных ШД. Если же программа выполнит программу INPUT (или OUTPUT), то на ША выдаётся номер устройства ввода (или вывода), а на ШУ формируются сигналы «ввод/вывод читай» IOR (или «ввод/вывод пиши» IOW).
«Портом» УВв №1 является 8-разрядный регистр-защёлка, у которого младший разряд хранящегося в нем числа определяется сигналом Х1, а сигнал IOR поступает на вход «разрешение выдачи» ОЕ. «Порт» УВыв №1 также является параллельным 8-рязрядным регистром, на тактовый вход которого поступает сигнал IOW. Само Увыв представляет собой 3-разрядный 7-сегментный индикатор (для отображения результата F) и соответствующий кодопреобразователь, включенный между портом и индикатором.
3. Процессор КР580ВМ80.
В состав данного 8-разрядного процессора (рис. 3) входит АЛУ и программно-доступные регистры: аккумулятор РОН А, 6 регистров общего назначения РОН (с «именем» B, C, D, E, H и L) и счётчик команд РС. АЛУ, получив от УУиС указания о типе выполняемой операции f над доставленными на его входе операндами х1 и х2, формирует результат F=f(x1 x2) и «флаги» Ф (признаки нулевого - Z, отрицательного - S и чётного результат Р или наличие переноса С7). Существенно, что результат F всегда (по умолчанию) размещается в РОН А. Это означает, что, если содержимое РОН А не является операндом следующей команды, то при программировании её должна предшествовать дополнительная команда (которой нет в алгоритме обработки пользователя) перезаписи содержимого РОН А в свободный РОН или в ячейку М памяти ОЗУ (=Ме-точку). Для программировании операций с РОН каждому из них присвоен порядковый номер i и соответствующий индивидуальный двоичный код ri (табл. 1). Для хранения 16-разрядный чисел d16=adr РОНя могут объединяться в регистровые пары rp: BC=rpB, DE=rpD, HL=rpH.
Рис. 3. Упрощёшшая модель микропроцессора КР580ВМ80
Нумерация РОН. Табл. 1
i |
Имя РОН |
Код ri |
|
0 1 2 3 4 5 6 7 |
B C D E H L M A |
000 001 010 011 100 101 110 111 |
Указатель стека SP хранит текущий адрес ячейки ОЗУ, являющейся на данный момент вершиной стека.
Счётчик команд PC хранит адрес выполняемой (текущей) команды: после её завершения содержимое PC инкрементируется, т. е.PC(PC) + 1, и через буферный PrАдр выдается на системную ША, а из ОЗУ (по сигналу MEM R) извлекается первый байт <B1> кода следующей команды из ячейки ОЗУ с номером (PC) + 1) и по системной шине ШД передается в регистр команд PrK.
Это означает, что в обычной ситуации процессор может выполнять команды программы только в том порядке, в котором они записаны в ОЗУ.
Чтобы изменить порядок выполнения команд (сделать скачок на несколько ячеек ОЗУ вперёд или назад, организовать ветвление или цикл, выполнить программу), необходимо в программу вставить команду безусловного или условного перехода, которая позволяет скачком менять содержимое (РС) счётчика команд РС.
Все регистры и АЛУ обмениваются между собой 8-разрядными данными d8 через внутреннюю двунаправленную ШД, однако на каждом такте обмен осуществляется только между одной парой «абонентов» (один - отправитель, другой - получатель).
Обмен между внутренней и внешней = системной ШД происходит через двунаправленный буферный регистр.
Каждая (текущая) команда программы (её код находится в PrK, а адрес в РС) выполняется процессором в течении определённого времени, называемого командным циклом продолжительностью от 1 до 4 тактов (при тактовой частоте 2 Mгц). В течении командного цикла устройство управления и синхронизации УуиС, будучи обычным управляющим автоматом (УА), декодирует с помощью дешифратора ДшК первый байт <B1> кода команды и в соответствии с этим кодом на каждом такте вырабатывает сигналы для внутреннего выполнения управлением микроопераций на «избранных» (на данном такте) функциональных узлах (регистрах, АЛУ, селекторе и др.), а также внешние управляющие сигналы (типа MEMR, MEMW, IOW и др.), выдаваемые на системную ШУ.
4. Система команд.
Каждый процессор умеет выполнять ограниченный набор «приказов», входящих в его систему команд. Каждая команда представляет собой многоразрядный двоичный код (от 8 до 24 бит) определённого формата. Для процессора КР580ВМ80 предусмотрены команды трёх форматов: «короткие» однобайтные <B1>, двухбайтные <B1><B2> и трёхбайтные <B1><B2><B3>. Первый байт <B1> команды любого формата содержит код операций Коп, второй <B2> - в двухбайтных командах содержит числовое значение непосредственно задаваемого операнда d8 или порядковый номер n устройства ввода/вывода = port n. Третий и второй байты «длинных» команд содержат либо численное значение 16-разрядного операнда d16, либо 16-разрядный адрес (“adr”): причем старший байт адреса/операнда размещается в <B3>, а младший в <B2>.
Ниже в таблице 2 приведены данные о наиболее ходовых командах процессора.
В таблице 2 поле 1 характеризует формат команды (в байтах), поле 2 - продолжительность командного цикла в количестве тактов; в поле 3 описывается (на языке микрокоманд) выполняемая операция: запись (ri) означает «содержимое» регистра ri, запись <Bi> - «содержимое байта Bi? (HL) - регистровой пары HL, а в поле 5 побитовая структура 1 - го байта <B1> кода команды.
В командах пересылке и загрузки (NN1 и 2) нужно учесть, что при ri = 110 в обмене участвует ячейка М ОЗУ, адрес которой (по умолчанию) хранится в регистровой паре HL. Это означает, что команда MOV и MVI обязательно должна предшествовать команда загрузки регистровой пары (HLadr), т. е. команда LXI.
В ассемблерной записи команд NN3 и 21 фигурирует старший регистр ri (=B, D или H) регистровой пары rp. При выполнении двухоперандных команд (NN7 - 18) первые операнд x1 всегда берётся из РОН А, а второй x2 из другого РОНа или задается непосредственно во втором байте <B2> команды. Логические операции, в отличии от арифметических, выполняются поразрядно.
Для всех команд условного перехода (NN25 - 30) при невыполнении проверяемого условия в PC загружается адрес adr = (PC) + 3.
Система команд процессора КР580ВМ80. Табл.2
NN n/n |
Ассемблерная запись команды |
Формат (байты) |
Такты |
Выполняемая операция |
Форми- руемые флаги |
Структура <B1> (номера разрядов) |
||||||||
Команды пересылке и загрузке |
||||||||||||||
1. 2. 3. 4. 5. 6. |
MOV_ri,rj MVI_ri,d8 LXI_ri,d16 XCHD PCHL SPHL |
1 2 3 1 1 1 |
5 7 10 4 5 5 |
ri< (rj) ri<B2> ri<<B2>,ri+1<<B2> (HL)-(DE) PC<(HL) SP<(HL |
нет нет нет нет нет нет |
0 0 0 1 1 1 |
1 0 0 1 1 1 |
< < < 1 1 1 |
ri ri ri 0 0 0 |
> > > 1 1 1 |
< 1 0 0 0 0 |
ri 1 0 1 0 0 |
> 0 1 1 1 1 |
|
Арифметические и логические операции |
||||||||||||||
7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. |
ADD_ ri SUB_ ri ANA_ ri XRA_ ri ORA_ ri CMP_ ri ADI_ d8 SUI_ d8 ANI_ d8 XRI_ d8 ORI_ d8 CPI_ d8 SMA |
1 1 1 1 1 1 2 2 2 2 2 2 1 |
4 4 4 4 4 4 7 7 7 7 7 7 4 |
A< (A) + (ri) A< (A) - (ri) A< (A) /\ (ri) A< (A) + (ri) A< (A) \/ (ri) Сравн. A - (ri) A< (A) + <B2> A< (A) - <B2> A< (A) /\ <B2> A< (A) + <B2> A< (A) \/ <B2> Сравн. A - <B2> A< (A) |
все все z, s, p z, s, p z, s, p все все все z, s, p z, s, p z, s, p все нет |
1 1 1 1 1 1 1 1 1 1 1 1 0 |
0 0 0 0 0 0 1 1 1 1 1 1 0 |
0 0 1 1 1 1 0 0 1 1 1 1 1 |
0 1 0 0 1 1 0 1 0 0 1 1 0 |
0 0 0 1 0 1 0 0 0 1 0 1 1 |
< < < < < < 1 1 1 1 1 1 1 |
ri ri ri ri ri ri 1 1 1 1 1 1 1 |
> > > > > > 0 0 0 0 0 0 1 |
|
Операции циклического сдвига и инкремента |
||||||||||||||
20. 21. 22. 23 |
INR_ri INX_ri RLC RRC |
1 1 1 1 |
5 5 4 4 |
ri < (ri) + 1 rp< (rp) + 1 Ai+1<(Ai);A0<(A7); C7<(A7) Ai<(Ai+1);A7<(A0); C7<(A0) |
z, s, p нет С7 С7 |
0 0 0 0 |
0 0 0 0 |
< < 0 0 |
ri ri 0 0 |
> > 0 1 |
1 0 1 1 |
0 1 1 1 |
0 1 1 1 |
|
Безусловный переход |
||||||||||||||
24 |
JMP_adr |
3 |
10 |
PC<<B3><B2> |
нет |
1 |
1 |
0 |
0 |
0 |
0 |
1 |
1 |
|
Условные переходы |
||||||||||||||
25. 26. 27 28 29 30 |
JNZ_adr JZ_adr JNC_adr JC_adr JP_adr JM_adr |
3 3 3 3 3 3 |
10 10 10 10 10 10 |
при z=0 PC<<B3><B2> при z=1 …..|….. при С7=0 …..|….. при С7=1 …..|….. при S=0 …..|….. при S=1 …..|….. |
нет нет нет нет нет нет |
1 1 1 1 1 1 |
1 1 1 1 1 1 |
0 0 0 0 1 1 |
0 0 1 1 1 1 |
0 1 0 1 0 1 |
0 0 0 0 0 0 |
1 1 1 1 1 1 |
0 0 0 0 0 0 |
|
Вспомогательные функции |
||||||||||||||
31. 32. 33. 34. |
IN_port n OUT_port m NOP HLT |
2 2 1 1 |
10 10 4 7 |
Ввод: А<(port n) Вывод: А<(port m) Нет операции Остановка, стоп |
нет нет нет нет |
1 1 0 0 |
1 1 0 1 |
0 0 0 1 |
1 1 0 1 |
1 0 0 0 |
0 0 0 1 |
1 1 0 1 |
1 1 0 0 |
5. Разработка алгоритма
Рис.4. Блок - схема алгоритма обработки журнальных записей.
Алгоритм обработки предписывает поочередное чтение из ОЗУ показаний gt из ячеек с адресами At, попарное сравнение их по величине и запоминание меньшего из них. Блок - схема алгоритма приведена на рис. 4 и содержит 19 команд к1…к19: здесь формируемая величина gmin размещена в РОН Е, текущий адрес Аt = Aпред + ?At - в регистровой паре HL, а приращение адреса ?At = kt является параметром цикла обработки и размещается в РОН С; максимальное (=граничное) приращение krp = N = 5 является индикатором окончания цикла анализа данных gt из журнального файла G.
На блок-схеме рис.4:
· команды к1…к3 обеспечивают анализ вводимого с ПЭК сигнала х1 и принятие решения о конце суточного цикла сбора данных и начла обработки файла G; численное значении маски 01(16) гарантирует анализ младшего бита содержимого РОН А;
· команда к4 загружает адрес предпоследнего сеанса Апред в регистровую пару HL;
· команда к5 считывает первый «отсчёт» предпоследнего сеанса g0 из файла G и, записав его в РОН Е, объявляет его равным gmin;
· команда к6 заносит начальное значение Kt = 0 в РОН С; вместе к4…к6 обеспечивают подготовку цикла к7…к15 анализа G;
· команды к7, к8 обеспечивают инкремент текущего адреса At и приращение адреса Kt;
· команды к9 - к11 на основе сравнения kt c krp = 05 обеспечивают выход из цикла обработки и выдачу на индикацию через УВыв№1 рассчитанного значения gmin из РОН Е (к17, к18);
· команда к12 загружает в РОН А текущий отсчёт gt из ячейки M ОЗУ с адресом At (сформированным в регистровой паре HL);
· команды к13 и к14 обеспечивают сравнение текущего отсчёта gt с gmin и при появлении gt<gmin перезапись его в РОН Е (к15);
· команда к16 обеспечивает безусловный переход (БП) на метку М3.
В таблице 3 (в полях 2-6) приведена ассемблерная запись программы, реализующий этот алгоритм. Из неё видно, что для размещения загрузочного модуля (в двоичных кодах) этой программы необходимо 34 байта (ячейки ОЗУ).
Сам загрузочный модуль представлен полями 0 и 1таблицы 3, но для простоты и кратности записан в 16-ричных кодах (h-кодах): коды первых байтов взяты из таблицы 2, а числовые значения <B3> и <B2>, а также начального адреса предпоследнего сеанса FA25(16) для размещения программы в ОЗУ устанавливаются по исходным данным задачи.
Текст программы на ассемблере и её загрузочные модуль (в h-кодах). Табл.3
Мет- ки |
Адрес ОЗУ |
h-коды |
NN коман- ды |
Ассемблер |
Комментарий |
Бай- ты |
Так- ты |
|
0 |
1 |
2 |
3 |
4 |
5 |
6 |
||
М1 |
FA25 FA26 |
<B1>DB <B2>01 |
K1 |
IN_00 |
A<(port 0) |
2 |
10 |
|
FA27 FA28 |
<B1>E6 <B2>01 |
K2 |
ANI_01 |
A<(A)^maska maska = 01h |
2 |
7 |
||
FA29 FA2A FA2B |
<B1>C2 <B2>89 <B3>FE |
K3 |
JNZ_M1: |
Усл. Переход (УП) по условию Х1 = 0 («обработку начать») |
3 |
10 |
||
FA2C FA2D FA2E |
<B1>21 <B2>86 <B3>26 |
K4 |
LXI_H,08B1 |
HL<Апред (Апред = adr = 08B1 |
3 |
10 |
||
FA2F |
<B1>5E |
K5 |
MOV_E,M |
E<gt (из ОЗУ) |
1 |
5 |
||
FA30 FA31 |
<B1>0E <B2>00 |
K6 |
MVI_C,00 |
С<0 (At:=0) |
2 |
7 |
||
M2 |
FA32 |
<B1>23 |
K7 |
INX_H |
HL<(HL)+1 инкремент At |
1 |
5 |
|
FA33 |
<B1>0C |
K8 |
INR_C |
C<(C)+1(инкр. Kt) |
1 |
5 |
||
FA34 |
<B1>79 |
K9 |
MOV_A,C |
А<С |
1 |
5 |
||
FA35 FA36 |
<B1>FE <B2>0D |
K10 |
CPI_0C |
Сравнение(А) с Krp=05 |
2 |
7 |
||
FA37 FA38 FA39 |
<B1>F2 <B2>A7 <B3>FE |
K11 |
JP_M2: |
УП на метку М2 («конец файла G») |
3 |
10 |
||
FA3A |
<B1>7E |
K12 |
MOV_A,M |
А<gt (из ОЗУ) |
1 |
5 |
||
FA3B |
<B1>BB |
K13 |
CMP_E |
Сравнение (А) и gmin |
1 |
4 |
||
FA3C FA3D FA3E |
<B1>F2 <B2>96 <B3>FE |
K14 |
JP_M3: |
УП на метку М3 («новый отсчёт gt меньше, чем gmin?») |
3 |
10 |
||
FA3F |
<B1>5F |
K15 |
MOV_E,A |
Сохранить gt в РОН E |
1 |
5 |
||
FA40 FA41 FA42 |
<B1>C3 <B2>98 <B3>FE |
K16 |
JMP_M3: |
Безусл. Переход (БП) на метку М3 (PC) <<B3><B2> |
3 |
10 |
||
M2 |
FA43 |
<B1>7B |
K17 |
MOV_A,E |
A<(E) |
1 |
5 |
|
FA44 FA45 |
<B1>D3 <B2>01 |
K18 |
OUT_01 |
Выдать gmin на индикацию через Увыв №1 |
2 |
10 |
||
FA46 |
<B1>76 |
K19 |
HLT |
Стоп |
1 |
7 |
Подобные документы
Система компьютерной обработки данных для сбора, систематизации, статистической обработки, анализа результатов учебного процесса за четверть, полугодие, год. Модуль обработки данных о качестве обучения, итогов успеваемости и данных о движении учащихся.
реферат [22,5 K], добавлен 05.02.2011Разработка блок-схемы и программы обработки одномерного массива с доступом к элементам с помощью индексов и с помощью указателей. Словесное описание алгоритма и пользовательского интерфейса, листинг программы обработки матрицы и результат её выполнения.
курсовая работа [391,1 K], добавлен 30.09.2013Рассмотрение структурной схемы микропроцессорной системы обработки данных. Описание архитектуры микроконтроллера ATmega161. Расчет оперативного запоминающего устройства. Строение, назначение адаптера параллельного интерфейса, способы его программирования.
курсовая работа [621,5 K], добавлен 24.09.2010Структура записей входного массива. Описание основных типов данных. Алгоритм программы: присвоение начальных значений переменных, чтение списка из файла, вывод данных на экран, выполнение обработки данных, сохранение списка в файл. Листинг программы.
курсовая работа [325,2 K], добавлен 28.12.2012Термины "логический" и "физический" как отражение различия аспектов представления данных. Методы доступа к записям в файлах. Структура систем управления базами данных. Отличительные особенности обработки данных, характерные для файловых систем и СУБД.
лекция [169,7 K], добавлен 19.08.2013Разработка структурной схемы и алгоритм функционирования исследуемой микропроцессорной системы (МПС). Модель исследуемой МПС в виде системы массового обслуживания. Листинг программы моделирования на языке GPSS, результаты имитационных экспериментов.
курсовая работа [193,3 K], добавлен 25.11.2013Основные классифицирующие признаки системы управления базами данных. Модель данных, вид программы и характер ее использования. Средства программирования для профессиональных разработчиков. Организация центров обработки данных в компьютерных сетях.
презентация [6,8 K], добавлен 14.10.2013Алгоритм обработки при работе с массивом, типизированным файлом и динамическим списком. Применение для массивов и типизированных файлов произвольной адресации элементов, для динамических списков - последовательной адресации. Блок-схема и текст программы.
реферат [63,5 K], добавлен 24.05.2013Описание моделируемой системы обеспечения надежности АСУ ТП: генерирования заявок, образование очереди перед каналом обработки данных, выполнение заказов. Составление укрупненной схемы моделирующего алгоритма, блок-диаграммы и программы на языке GPSS.
курсовая работа [342,8 K], добавлен 02.07.2011Алгоритмы обработки массивов данных. Система управления базами данных. Реляционная модель данных. Представление информации в виде таблицы. Система управления базами данных реляционного типа. Графический многооконный интерфейс.
контрольная работа [2,8 M], добавлен 07.01.2007