Разделы


Рекомендуем
Автоматическая электрика  Автоматика радиоустройств 

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 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 [ 124 ] 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270

мя методами: суммированием напряжения и суммированием токов.

Первый метод состоит в суммировании напряжений на входе усилителя с отрицательной обратной связью. Каждый разряд преобразуемого двоичного числа представляется напряжением. Напряжения, изображающие соседние разряды, должны различаться по амплитуде в 2 раза, т. е.

На рис. 24-142 представлена схема подобного преобразователя.


т т± т

Рис. 24-142. Преобразователь код-напряжеиие.

Для представления и-разрядного числа .необходимо иметь п эталонных напряжений, которые могут быть поручены путем деления одного стабилизированного напряжения. .

Рассмотренные примеры дают лишь общее представление о методах преобразования.

Следует заметить, что при необходимости преобразования не одной, а т величин можно использовать один преобразователь, на который последовательно подаются величины для преобразования.

24-13. ЭЛЕМЕНТЫ ПРОГРАММИРОВАНИЯ

Основные понятия и определения. Решение задачи на цифровой машине осуществляется по заранее составленной программе. .

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

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

Как известно, каждая цифровая маши- на может выполнять вполне определенный набор элементарных операций, который называется системой команд. Система команд машины содержит арифметические, логические операции, операции управления и ряд вспомогательных операций. В машинах общего назначения система команд должна быть такой, чтобы обеспечить возможность решения более широкого круга задач. В специализированных машинах система команд может быть сокращенной, необходимой для решения лишь небольшого круга задач.

При реализации программы машина исполняет в строго определенном порядке всю последовательность команд, объединённых в операторы различного назначения. Операторам вычислений будем называть группу команд, решающую определенный этап задачи.

По своему назначению операторы могут быть арифметические, логические, операторы управления, переадресации и т. д.

Совокупность нескольких операторов составляет подпрограмму вычислений. Таким образом, программа в общем случае состоит из совокупности операторов и подпрограмм, расположенных в определенной последовательности для автоматического решения задачи.

Операторы, кроме того, подразделяются на прямые и циклические.

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

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

Циклические операторы используются при решении задач методами последовательных приближений, с помощью итераций я т. д. Программы, состоящие лишь из операторов прямого типа, называются прямыми.

Программы, содержащие один или несколько операторов циклического типа, называются циклическими.

Рассмотрение элементов программирования произведем для одноадресной машины с естественным порядком исполнения команд, оперирующей с числами, представленными в двоичной системе счисления. Кодь! операций, адресные части команд й адреса команд условимся представлять. в восьмеричной системе счисления.

Система команд. Как уже было сказано, система команд, представляющая набор элементарных операций, выполняемых машиной, должна содержать арифметические и логические операции, операции управления, некоторые вспомогательные операции.



Таблица 24-10

Код

Адрес-

Условное

опера-

обозначение

Содержание команды

часть

команды

(С)+(А)

Содержимое сумматора (с) алгебраически складывается с содержимым ячейки памяти (а) и результат остается в сумматоре. Если результат по абсолютному значению > 1, то вырабатывается ф = 1. Если результат операции < 0, то вырабатывается сигнал со = 1.

(С)-(А)

Из содержимого сумматора (с) вычитается, содержимое ячейки (а) и результат остается в сумматоре. Если результат операции по абсолютному значению 1, то вырабатывается сигнал ф = 1. Если результат операции < 0, то вырабатывается сигнал со =1.

1(с)Н ( XI

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

04

(с)Х(а)

всегда ф=0. Если результат операции < 0, то со =1.

Содержимое сумматора (с) умножается на содержимое ячейки (а) и результат остается в сумматоре. При этой операции

(с):(а)

всегда ф =0. Если результат операции < 0, то со =1.

Содержание сумматора (с) делится на содержимое ячейки (а) и результат остается в сумматоре. Если результат операции по абсолютному значению > 1, то вырабатывается сигнал Ф =

(а)-* с

= 1. Если результат операции < 0, то со =1.

Содержимое ячейки (а) пересылается в сумматор, число в ячейке а сохраняется. При выполнении этой операции всег-

да ф=0. Если в ячейке а было отрицательное число, то со=1.

(с)**а

Содержимое сумматора (с) пересылается в ячейку а в прямом коде. Число в сумматоре при этом сохраняется и если оно

отрацительно, то вырабатывается со = 1.

Безусловный переход. Управление передается команде, находящейся в ячейке а.

Условный переход. В зависимости от сигнала со, выработанного в предыдущем такте, управление передается:

1) команде, непосредственно следующей за командой условного перехода, если со=0.

2) команде, находящейся в ячейке а, если со=1.

Печать

Содержимое сумматора выводится на печать.

Стоп и (а)-* с

По команде стоп машина останавливается и содержимое ячейки (а) пересылается в сумматор. Число в ячейке а сохраняется.

При исполнении команд арифметическое устройство, как правило, вырабатывает некоторые управляющие сигналы. К таким сигналам можно отнести:

сигнал условной передачи управления со. Примем, что этот сигнал вырабатывается (со=1), если результат алгебраического сложения оказывается меньше нуля: Если же результат алгебраического сложения будет больше или равен нулю, то сигнал со не вырабатывается, т. е. со=0. По данному сигналу выполняются некоторые операции управления, о которых будет сказано ниже;

сигнал переполнения (нарушения нормализации влево) ф. Сигнал ф вырабатывается (ф=1), когда абсолютная величина результата операции окажется больше единицы. Сигнал ф не вырабатывается (ф=0), если абсолютная величина результата операции меньше единицы.

По сигналу ф=1 в машинах с фиксированной запятой происходит обычно оста-

нов машины, в машинах с плавающей запятой-нормализация числа и изменение его порядка. Каждая опер.ация имеег свое название и условный номер (код).

В табл. 24-10 приведен пример простейшей системы команд одноадресной машины.

Непосредственное программирование. Составление программы можно разбить на несколько этапов, к которым относятся:

1) выбор метода решения данной задачи;

2) составление алгоритма, т. е. комплекса математических зависимостей, дающего решение задачи, и придание ему формы, наиболее удобной для программирования-;

3) составление блок-схемы или логической схемы программы с учетом специфики и возможностей машины;

4) составление программы по выбранному алгоритму в общем виде;

5) размещение в запоминающих уст-



ройствах машины исходных данных задачи, программы, вспомогательных чисел,-промежуточных и конечных результатов;

6) кодирование программы;

7) представление программы в виде, пригодном для ввода, в машину;

8) выбор метода контроля и его реализация в программе;

9) отладка программы и решение задачи.

Пункт 1 непосредственно к программированию не относится, однако он должен быть выполнен перед составлением программы. . . 1

Желательно, чтобы выбранный метод решения задачи обеспечивал возможность составления циклических программ и требуемую точность.

Преимущество циклических программ перед прямыми состоит в том, что циклические программы занимают меньше ячеек памяти, более компактны. Однако машинное время для исполнения циклических программ больше, чем для прямых программ, так как часть времени теряется на исполнение некоторого количества команд, участвующих в обеспечении циклов.

При решении ряда задач встречаются такие случаи, когда заранее нельзя определить количество исполняемых циклов для получения конечного результата, вследствие чего прямые программы для этого оказываются непригодными.

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

Составление прямых программ. Рассмотрим пример составления прямой программы для решения системы двух линейных уравнений с двумя неизвестными:

CLuXi + ai2X2 Ъу\

a2iXi + а22х2 = 6г.

В результате решения необходимо определить X] и х2.

Как известно, решение существует, если детерминант системы отличен от нуля, т. е.

аиа12

I G2lG22

Решение можно получить, например, по формулам:

Dxt =

DX2 -

b2a22 aab

= а2Фг. - i A.

1 I

тогда

x1 =

приведена виде для

±

стоп

G21&2 I

ciiflz2-ai2a2i ахФ2 - g2 Ф\

На рис. 24-143 представлена блок-схе ма программы решения задачи.

Составление программы в общем виде. При составлении программы в общем виде будем пользоваться следующими обозначениями: с - сумматор; (с) -содержимое сумматора; Pl - i-я рабочая ячейка; (Pi) -содержимое ячейки с адресом pi.

В табл. 24-11 программа в общем вычисления. хг и х2.

В цифровых машинах перевод чисел из десятичной системы в двоичную и из двоичной в десятичную выполняется по заранее составленным подпрограммам. В рассмотренном примере эти подпрограммы не приведены.

При составлении программы мы предполагали, что ис- ходные числа в ячейках памяти хранятся в двоичной системе счисления и вывод на печать содержимого сумматора производится после перевода его в десятичную систему счисления.

Размещение в памяти программы, исходных д а нных, промежуточных и конечных результатов. При размещении в оперативном запоминающем устройстве программы, исходных данных, промежуточных и конечных результатов необходимо учитывать общее количество ячеек памяти, занятость их для некоторых часто встречающихся констант, различных подпрограмм, используемых в данной программе (перевод чисел из десятичной системы в. двоичную и обратно и т. д.). Пусть оперативное запоминающее устройство имеет 2 048 ячеек. Адрееа ячеек памяти записываются четырехразрядными восьмеричными числами и принимают значения от 0000 до 3777. Примем £=0100, тогда основная программа будет расположёна в ячейках, начиная с 0100 и дальше по порядку возрастания адресов.

Рис. 24-143. Блок-схема программ.




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 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 [ 124 ] 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270

Яндекс.Метрика
© 2010 KinteRun.ru автоматическая электрика
Копирование материалов разрешено при наличии активной ссылки.