УНИВЕРСАЛЬНОЕ УПРАВЛЯЮЩЕЕ ВЫЧИСЛИТЕЛЬНОЕ УСТРОЙТСТВО FRS-100 Copyright © Sergei Frolov, 2002 Краткое описание Устройство FRS-100 представляет собой специализированную Микро-ЭВМ Краткие характеристики - программируемый калькулятор, совместимый с калькулятором «Электроника МК 61» возможность использования большинства программ, наработанных для отечественных программируемых калькуляторов 128 килобайт ОЗУ пользователя сохранение программ пользователя при выключении питания перенос программ пользователя в компьютер и обратно файловая система асинхронный последовательный интерфейс двухпроводный байт-ориентированный последовательный интерфейс часы реального времени 18-разрядный светодиодный индикатор 8-канальный 10-разрядный аналогово-цифровой преобразователь 8-разрядный генератор широтно-импульсной модуляции 16-разрядный генератор широтно-импульсной модуляции программируемый параллельный интерфейс КР580ВВ55А FRS-100 - 8-разрядный регистр данных частотомер счетчик импульсов таймер 16 МГц RISC микроконтроллер Еще не реализовано: - вход прерывания 7 дифференциальных каналов АЦП 2 дифференциальных канала АЦП с программируемым коэффициентом усиления – 1х, 10х, 200х второй RS-232 Техническое описание и инструкция по эксплуатации 1. Введение 1.1. Настоящее описание предназначено для обеспечения правильной эксплуатации универсального управляющего вычислительного устройства FRS-100 (именуемого в дальнейшем - "вычислитель") и поддержания его работоспособности. 1.2. Вычислитель может быть использован: 1) в составе устройств автоматизированного контроля и управления; 2) для автоматизации инженерных и других задач; решения научно-технических, статистических, 3) в качестве цифрового измерительного прибора; 4) в качестве устройства сбора и обработки информации. 1.3. В связи с постоянным проведением работ по повышению качества и надежности работы вычислителя, электрические принципиальные схемы вычислителя и отдельных блоков могут незначительно отличаться от существующих. 2. Общие указания 2.1. Вычислитель рассчитан на работу в диапазоне температур от +5 до +40oC, при относительной влажности воздуха 40..90% (не конденсированной). 2.2. Вычислитель работает от сети переменного тока напряжением 220 В, +/10%, частотой 50 Гц при помощи специального адаптера или напрямую от сети, в зависимости от исполнения. 2.3. Время готовности вычислителя к работе после включения - не более 10 сек при условии отсутствия внутренних неисправностей (см. п. *****). Предварительная информация 2 FRS-100 2.4. Клавиатура вычислителя срабатывает от легкого и четкого нажатия клавиш до упора. Чтобы вычислитель работал надежно, не рекомендуется прикладывать большие усилия к клавишам. 2.5. При работе с внешними устройствами величины и длительности входных сигналов, а также нагрузки на выходные сигналы должны соответствовать величинам, указанным в настоящей инструкции. 2.6. При соблюдении условий транспортирования, хранения и эксплуатации, оговоренных в настоящей инструкции, вычислитель допускает круглосуточную работу (с выключением на любое время). 2.7. Проверка работоспособности вычислителя производится по методике, приведенной в п. *****. 3. Технические данные 3.1. Общие данные 3.1.1. Габаритные размеры, мм: ***** 3.1.2. Масса, кг, не более: ***** 3.1.3. Потребляемая мощность от сети переменного тока, Вт, не более ***** 3.2. Функциональные возможности 3.2.1. Управление вычислителем производится с помощью клавиатуры. Количество клавиш при заводской поставке - 59, однако пользователь для своих приложений может использовать произвольное количество клавиш с общим количеством до 64. Клавиши могут иметь одинарную, двойную, тройную или четверную символику. Переход к операциям второй, третьей или четвертой символики происходит путем предварительного нажатия префиксной клавиши с номерами F1, F2, F3 соответственно. Расположение и символика клавиш вычислителя при заводской поставке показано в приложении *****. 3.2.2. Вычислитель работает в трех режимах: 1) "Автоматическая работа"; 2) "Ввод и редактирование программы"; 3) "Работа по программе". 3.2.3. Режим "Автоматическая работа" Система счисления при вводе с клавиатуры и выводе на индикацию Предварительная информация 3 FRS-100 десятичная. Диапазон вычислений - от +/- 1*10-999 до +/-9.99999999999*10999. Форма представления запятой - естественная и плавающая. числа, вводимые с клавиатуры и результаты вычислений отображаются на 18разрядном светодиодном индикаторе. Количество адресуемых регистров памяти зависит от конфигурации устройства и может быть от 174 (при установленной микросхеме ОЗУ емкостью 2 К байт до 13107 (при установленной микросхеме ОЗУ емкостью 128 К байт) (****) Количество регистров стековой памяти - 32. Краткое описание функционирование вычислителя 1. Описание работы арифметического и программного устройства. Клавиатурой пульта управления вводятся числа и команды операций, которые надо выполнить над этими числами, а также команды управления работой вычислителя. числа, команды, результаты вычислений и коды ошибок отображаются на дисплее. В вычислителе применяется два вида оперативной памяти - со стиранием информации после выключения питания вычислителя и без стирания. Все регистры памяти, программа пользователя, а также все другие хранимые программы сохраняются при выключении питания. Регистры стековой памяти, вызова подпрограмм, а также специальные регистры, определяющие работу вычислителя и внешних устройств, после включения питания обнуляются, либо принимают фиксированные значения. Регистровая память - состоит из 15 регистров быстрого доступа, на которых могут быть записаны в ходе вычислений исходные данные, промежуточные величины и результаты, и дополнительные регистры памяти с прямым или косвенным вызовом. Количество дополнительных регистров памяти зависит от установленного объема оперативной памяти. Регистры стековой памяти представляют собой массив из 32 регистров для хранения чисел, используемых для вычисления сложных вычислений. Первые четыре регистра обозначаются как X (или регистр индикации), Y, Z и T. Содержимое регистра Х отображается на дисплее; этот регистр служит для размещения вводимого числа или команды, результата операции, пересылки числа в регистровую память. В вычислителе применяется обратная бесскобочная запись арифметических выражений, что делает вычисления более экономичными. При этом вначале записываются величины, над которыми будет выполняться операция, они разделяются нажатием клавиши "ENTER", а затем нажимается клавиша операции. Предварительная информация 4 FRS-100 Например, если в обычной записи для вычисления выражения 1 * 2 + 3 необходимо нажать клавиши [1] [*] [2] [+] [3] [=], то в вычислителе данное выражение вычисляется нажатием клавиш [1] [Enter] [2] [*] [3] [+] . Символ выполняемой операции ставится после исходных величин. Такой порядок вычислений позволяет сократить объем программы вычислений, вводимой в вычислитель. Ввод данных в вычислитель и работа операционного стека. Набранное на клавиатуре пульта управления некоторое число а разместится в регистре Х и высветится на дисплее. Если над числом A выполняют арифметическую операцию (сложение, вычитание и др.) с помощью числа B, то командой (нажатием клавиши) [ENTER] число A перемещают на регистр Y, а в регистр X набирают число B. Далее, нажимая клавишу нужной арифметической операции, дают команду на ее выполнение. Результат операции содержится в регистре Х и высвечивается на дисплее. число B перемещается в регистр предыдущего результата X1, при необходимости его можно вновь переместить в регистр X командами F Bx. Непосредственно участвующие в вычислениях регистры Х и Y называются операционными. При вводе очередного числа предшествующие числа автоматически смещаются на верхние регистры стека. После выполнения арифметической операции числа из верхних регистров смещаются вниз. Действия, выполняемые на стеке, называются операторами. В вычислителе при вводе и выводе чисел используется десятичная система счисления при показательной форме представления: , где М - нормализованная мантисса; ЕXP = 999 - порядок числа. Индикатор вычислителя содержит 18 разрядов, из них 12 используется для отображения мантиссы числа, 3 - для порядка, и по одному разряду для индикации знаков мантиссы и порядка Левое знакоместо предназначено для ввода отрицательного знака числа командой /-/, далее помещаются 12 разрядов мантиссы числа, затем четыре знакоместа служат для указания знака и величины двузначного порядка числа. Порядок числа вводится командой [ВП] и набором его знака и величины на клавиатуре. Знак числа вводится после его набора. При вводе числа, меньшего единицы, в форме десятичной дроби количество нулей после запятой на единицу меньше порядка числа. Запятая на табло отдельного знакоместа не занимает. В приведенном выше примера показано число -1.23456789012 * 10-123. Одноместные операции Предварительная информация 5 FRS-100 Операции вычисления функции, аргумент которой задан одним числом, вводимым в регистр X, называются одноместными. К ним относятся вычисления прямых и обратных тригонометрических функций, степенных и логарифмических функций, , 1/X. Результат одноместной операции записывается в регистре X, содержимое других регистров стека при этом не изменяется, кроме регистра X1, в который будет занесено число X. Например, для вычисления sin 12.345 необходимо набрать на табло 12,345, а затем нажать клавишу [sin]. На дисплее высветится (2.13797690291 -001), что означает sin 12.345 = 0.213797690291. Аргумент тригонометрических функций может представляться как в градусах, так и в радианах и градах. Для переключения между аргументами используются клавиши [DEG], [RAD], [GRD] для градусов, радианов и градов соответственно. При необходимости проверки величины введенного аргумента достаточно дать команду F Вх ("восстановить содержимое X"). При этом найденный ранее sin перемещается в регистр У и может быть выведен обратно в регистр Х командой <->, означающей обмен информацией между регистрами Х и Y. Если при вычислениях требуется число Пи, то оно вызывается командой Пи. Рассмотренные выше операции прямого и обратного перевода значений углов также являются одноместными. Двухместные операции Двухместными называются операции над числами, находящимися в регистрах Х и Y. Вводимые в вычислитель числа называются операндами. Результат двухместной операции помещается в регистре X. При вводе нового операнда этот результат переносится в регистр Y и становится объектом (первым операндом) следующей двуместной операции. Таким образом, результаты как одноместных, так и двухместных операций могут быть операндами последующей операции. Вычисления, выполняемые в виде непрерывной последовательности операций, называются цепочечными. 3.2.4. Режим "Программирование" Объем программной памяти зависит от исполнения вычислителя, но не может быть более 65535 шагов для одной программы. Емкость программной памяти может быть расширена за счет использования других программ, хранимых постоянно в ОЗУ. Переход по адресам в диапазоне 00..99 производится непосредственно командами перехода (БП, ПП и условным переходам @@@Для перехода по адресам во всем допустимом диапазоне необходимо использовать команды косвенного перехода. При этом адрес перехода должен находиться в необходимом регистре памяти. Запись программы производится с клавиатуры кодированным способом. Коды операций приведены в табл. *****. Возможна также загрузка программы при помощи встроенного интерфейса RS-232. Предварительная информация 6 FRS-100 Для организации ветвления программы используются команды: [БП xx] - безусловный переход. Выполняемая программа продолжит выполнение с указанного адреса. В режиме автоматической работы программный счетчик устанавливается на указанный адрес. [ПП xx] - безусловный переход на подпрограмму. Производится переход на подпрограмму с указанного адреса. Программа выполняется до появления команды [В/0]. Допустимы вложенные переходы на подпрограммы. Глубина вложенных переходов может быть не более ***** 16. [В/0] - возврат из подпрограммы. В режиме "Автоматическая работа" устанавливает программный счетчик на адрес 00000. Условные переходы - четыре типа переходов по содержимому регистра X при помощи команд: [x < 0]; [x = 0]; [x >= 0]; [x <> 0]. Если условие не выполняется, то программа продолжает работу с указанного адреса, аналогично команде [БП]. Если условие выполняется, то программа продолжит работу с очередного адреса. Циклические переходы по регистрам 0, 1, 2, 3 производятся при помощи команд [L0], [L1], [L2], [L3] соответственно. Если при выполнении команды в регистре находится число, большее или равное двум, то из регистра вычитается единица и выполнение продолжается с адреса, указанного параметром XX. В противном случае программа выполняется с очередного адреса. 3.2.5. Работа с внешними устройствами (ВУ) При работе с ВУ вычислитель позволяет производить: 1) ввод аналоговой информации от одного-восьми входов; 2) прием и передача информации по интерфейсу RS-232; 3) прием и передача информации по двухпроводному байт-ориентированному интерфейсу; 4) формировать импульсы широтно-импульсной модуляции (ШИМ) с 8-и и 16и разрядной точностью; 5) производить счет импульсов (частоты следования импульсов); 6) принимать битовую информацию по восьми линиям в виде TTL-уровней; 7) принимать и передавать байтовую информацию в соответствии с протоколом обмена с микросхемой КР580ВВ55 (i8255) - три восьмибитовых порта. *** X.X. Специальные регистры занесения информации. Специальные регистры занесения в сочетании с регистрами извлечения представляют собой пары для обеспечения специальных функций вычислителя. Доступ к регистрам занесения осуществляется при помощи команды с кодом 3С, за которой следует код функции. Если не указано особо, функция занесение в регистр происходит из регистра X. Различные допустимые коды функций описаны ниже. Предварительная информация 7 FRS-100 P_00 Регистр сохранения значения часов (00..23). Значение часов используется в часах реального времени. P_01 Регистр сохранения значения минут (00..59). Значение минут используется в часах реального времени. P_02 Регистр сохранения значения секунд (00..59). Значение минут используется в часах реального времени. P_04 Регистр записи байта данных (числа в диапазоне 0..255) для передачи по каналу RS-232. При записи байта происходит его запись в внутренний стек для последующей передачи по каналу RS-232. Если канал передачи пуст, то происходит немедленная передача байта данных. Если стек записи байт полон, то выполнение программы приостанавливается до передачи очередного байта по каналу RS-232. Длина стека составляет 70 байт. P_05 (не реализовано) Запись регистра состояния/конфигурации канала RS-232 P_06 Установка (1) или сброс (0) сигнала Q5 P_07 Установка (1) или сброс (0) сигнала Q6 P_08 Установка (1) или сброс (0) сигнала Q7 Предварительная информация 8 FRS-100 P_09 Установка (1) или сброс (0) сигнала Q8 P_10 Установка значения регистра широтно-импульсной модуляции OC0. Регистр может принимать значения от 0 до 255. P_11 Установка значения регистра широтно-импульсной модуляции OC1A. Регистр может принимать значения от 0 до 1023. P_12 При записи любого числа в регистр P_12 включается запрет на прием потоковых команд интерфейса RS-232. Это исключает возможность интерпретации произвольной информации канала RS-232 как пакеты управляющих команд связи с компьютером. P_13 При записи любого числа в регистр P_12 выключается запрет на прием потоковых команд интерфейса RS-232. P_14 Сброс буфера приема RS-232. Очищает счетчик принятых байт. P_19 Запись содержимого регистра X (1 байт) в порт PA микросхемы КР580ВВ55А. Значение регистра X может принимать значения от 0 до 255. P_20 Запись содержимого регистра X (1 байт) в порт PB микросхемы КР580ВВ55А. Значение регистра X может принимать значения от 0 до 255. P_21 Предварительная информация 9 FRS-100 Запись содержимого регистра X (1 байт) в порт PС микросхемы КР580ВВ55А. Значение регистра X может принимать значения от 0 до 255. P_22 Запись содержимого регистра X (1 байт) в регистр управления микросхемы КР580ВВ55А. Значение регистра X может принимать значения от 0 до 255. P_23 Сброс регистра задержки (см. стр. ***). P_24 Установка задержки в миллисекундах. После занесения величины задержки программа приостанавливается до истечения таймера задержки. При этом за начало отсчета величины задержки принимается момент сброса регистра задержки (см. регистр P_23), либо по истечению предыдущей задержки. Таким образом пользователь может не учитывать время выполнения программы между задержками. Следует, однако, учесть, что некоторые команды вычислителя могут выполняться дольше установленной очень малой величины задержки (единицы или десятки миллисекунд). P_25 Определение количества дополнительных регистров. P_27 Запись из регистра X значения дискретности опроса регистра TCNT1 (в мсек). P_31 Регистр записи байта данных из регистра Y (1 байт) в область памяти "куча" (см. стр. ***) с номером из регистра X. Максимальный номер регистра 65535. P_32 Регистр записи слова данных из регистра Y (2 байта) в область памяти "куча" (см. стр. ***) с номером из регистра X. Максимальный номер регистра - 65535. Предварительная информация 10 FRS-100 P_33 Регистр записи двойного слова данных из регистра Y (4 байта) в область памяти "куча" (см. стр. ***) с номером из регистра X. Максимальный номер регистра 65535. P_34 Регистр записи числа в формате с плавающей запятой из регистра Y (10 байт) в область памяти "куча" (см. стр. ***) с номером из регистра X. Максимальный номер регистра - 65535. P_36, P_37, P_38, P_39 Регистр формата ввода числа #1..#4. Регистр формата ввода числа предназначен для определения четырех различных форматов ввода чисел. Для определения необходимого параметра необходимо заносить в соответствующую позицию требуемое число, руководствуясь таблицей p36. Данные регистры являются только регистрами описания формата ввода числа. Для собственно ввода числа необходимо использовать регистры извлечения IP36, IP37, IP38, IP39 соответственно. Позиция ввода 11.00 10.00 Кол-во цифр 1.00 1.00 Наименование K J 9.00 1.00 I 8.00 1.00 H 7.00 1.00 G 6.00 1.00 F 5.00 1.00 E 4.00 3.00 2.00 D C 2.00 1.00 2.00 B A Таблица p36 B, A D, C E F G H I J K позиция ввода числа (01..18); количество вводимых цифр (01..18); 1 - очищать поле ввода при начальном входе; 0 - не очищать поле ввода 1 - выводить "0." при очистке поля ввода; 0 - не выводить "0." 1 - допустим ввод запятой; 0 - ввод запятой игнорируется зарезервировано зарезервировано 1 - для выхода используется только клавиша "ENTER"; 0 - для выхода используется любая клавиша, отличная от цифровой, клавиши "Cx" и "ENTER" 1 - ввод числа слева направо; 0 - справа налево Пример: при начальном заполнении экрана вычислителя единицами необходимо ввести целое число длиной до 5 знаков, начиная со второй позиции, ввод чисел должен осуществляться слева направо. Перед вводом первой цифры должна произойти очистка поля ввода. Для определения формата ввода такого числа необходимо поместить "1" в поля К, E, F. Таким образом, в регистр формата ввода числа заносится число 10000110502. Предварительная информация 11 FRS-100 12 P_40 Регистр записи байта для передачи по интерфейсу TWI. Если TWI занят, то программа приостанавливается. (*****см. работа по байт-ориентированному последовательному интерфейсу). P_41 Запись байта в регистр управления интерфейса TWI TWCR. (*****см. работа по байт-ориентированному последовательному интерфейсу). P_42 Запись байта в регистр адресата интерфейса TWI - TWAR. (*****см. работа по байт-ориентированному последовательному интерфейсу). P_43 Запись байта в регистр периода следования сигнала SCL интерфейса TWI - TWBR. (*****см. работа по байт-ориентированному последовательному интерфейсу). Частота сигнала SCL определяется формулой SCL freq = 16000000 / (16 + 2 * X) Например, для установки частоты следования сигнала SCL в 100 кГц необходимо записать в регистр число 72. При включении вычислителя в регистр TWBR заносится число 72. Установленная частота следования сигнала SCL используется также для обращения к регистрам часов реального времени (микросхема DS1307) и видеопроцессору. P_44 Включение состояния START интерфейса TWI. (*****см. работа по байториентированному последовательному интерфейсу). P_45 Включение состояния STOP интерфейса TWI. (*****см. работа по байториентированному последовательному интерфейсу). P_50 Запись текущего времени и календаря в микросхему часов реального Предварительная информация 12 FRS-100 13 времени. P_51 Установка значения текущей даты (1..31). При установке значения день недели вычисляется автоматически. P_52 Установка значения текущего месяца (1..12). При установке значения день недели вычисляется автоматически. P_53 Установка значения текущего года (00..99). При установке значения день недели вычисляется автоматически. P_54 Установка значения текущего дня недели. *** X.X. Специальные регистры извлечения Специальные регистры извлечения в сочетании с регистрами занесения представляют собой пары для обеспечения специальных функций вычислителя. Так же, как и регистры занесения, доступ к регистрам извлечения осуществляется при помощи команды с кодом 3D, за которой следует код функции. Если не указано особо, функция извлечения заносит в регистр X значение, соответствующее этой функции. Различные допустимые коды функций описаны ниже. IP_00 Вывод текущего значения часов (00..23). IP_01 Вывод текущего значения минут (00..59). IP_02 Вывод текущего значения секунд (00..59). Предварительная информация 13 FRS-100 14 IP_04 Вывод значения байта, принятого по каналу RS-232. См. п. *** описания работы с каналом RS-232. Если буфер приема RS-232 пуст, то программа ожидает прихода байта в течение 3-х секунд. Если байт все же не пришел, вырабатывается сообщение об ошибке. IP_05 Вывод количества байт в буфере приема RS-232. IP_06 (не реализовано) Вывод значения кода нажатой клавиши (0..255). См. п. *** описания работы с клавиатурой. IP_07 (не реализовано) Вывод содержимого регистра состояния клавиатуры (0..255). См. п. *** описания работы с клавиатурой. IP_09 Включение режима вывода на экран значения текущего времени и календаря. Текущее время динамически изменяется на дисплее. Любая клавиша выходит из этого режима. IP_10, IP_11, IP_12, IP_13, IP_14, IP_15, IP_16, IP_17 Вывод значения каналов ADC0..ADC7 соответственно (0..1023). См. п. *** описания работы с аналого-цифровым преобразователем. IP_18 (не реализовано) Вывод значения управляющего регистра ADC. IP_19, IP_20, IP_21 Вывод содержимого портов PA, PB, PC соответственно микросхемы КР580ВВ55А. IP_22 Предварительная информация 14 15 FRS-100 Вывод значения регистра цифрового входа TTL. См. п. *** описания работы с входом TTL. IP_23 Вывод значения регистра задержки (в миллисекундах). описания работы с блоком задержки. См. п. *** IP_25 Вывод установленного значения дополнительных регистров памяти. См. п. *** описания работы с регистрами памяти. IP_26 Вывод максимального значения дополнительных регистров памяти. См. п. *** описания работы с регистрами памяти. IP_27 Вывод значения дискретности опроса регистра TCNT1 миллисекундах). См. п. *** описания работы с регистром счета импульсов. (в IP_28 Вывод значения регистра посчитанных импульсов за установленный период. См. п. *** описания работы с регистром счета импульсов. IP_29 Вывод текущего количества посчитанных импульсов за установленный период. См. п. *** описания работы с регистром счета импульсов. IP_30 Вывод значения регистра готовности регистра счета импульсов. См. п. *** описания работы с регистром счета импульсов. IP_31 Вывод байта информации (0..255) из области памяти "куча". См. п. *** описания работы с областью памяти "куча". Предварительная информация 15 FRS-100 16 IP_32 Вывод слова информации (два байта, диапазон: 0..65535) из области памяти "куча". См. п. *** описания работы с областью памяти "куча". IP_33 Вывод двойного слова информации (четыре байта, диапазон: 0..4294967295) из области памяти "куча". См. п. *** описания работы с областью памяти "куча". IP_34 Вывод числа в формате с плавающей запятой (10 байт) из области памяти "куча". См. п. *** описания работы с областью памяти "куча". IP_35 (не реализовано) Вывод максимального значения возможного количества байт в области памяти "куча". См. п. *** описания работы с областью памяти "куча". IP_36, IP_37, IP_38, IP_39, Ввод числа с клавиатуры, согласно формата, записанного в регистры P_36, P_37, P_38, P_39 соответственно и вывод введенного значения в регистр X. В регистр Y помещается код клавиши подтверждения. См. п. *** описания формата ввода чисел. IP_40 Вывод содержимого регистра состояния интерфейса TWI. Содержит код. Соответствующий режиму работы TWI (*****см. работа по байториентированному последовательному интерфейсу). IP_42 Вывод идентификатора адресата интерфейса TWI (*****см. работа по байт-ориентированному последовательному интерфейсу). IP_43 Вывод содержимого регистра периода следования сигнала SCL (*****см. работа по байт-ориентированному последовательному интерфейсу). Предварительная информация 16 FRS-100 17 IP_44 Чтение и вывод байта данных интерфейса TWI в режиме “Master receiver”, передача сигнала подтверждения ACK (*****см. работа по байториентированному последовательному интерфейсу). IP_45 Чтение и вывод байта данных интерфейса TWI в режиме “Master receiver”, без передачи сигнала подтверждения ACK (*****см. работа по байториентированному последовательному интерфейсу). IP_46 Вывод содержимого регистра конфигурации интерфейса TWI (TWCR). (*****см. работа по байт-ориентированному последовательному интерфейсу). IP_47 Вывод содержимого регистра состояния интерфейса TWI (TWSR). (*****см. работа по байт-ориентированному последовательному интерфейсу). IP_50 Чтение значений текущего времени и календаря часов реального времени. Данная операция производится также автоматически при включении вычислителя. IP_51 Вывод текущей даты (1..31) IP_52 Вывод текущего месяца (1..12) IP_53 Вывод текущего года IP_54 Вывод текущего дня недели (1..7) Предварительная информация 17 18 FRS-100 Коды команд Все коды команд показаны в шестнадцатеричном формате. 00..09 [0], [1], .., [9] Команды ввода цифр от 0 до 9. 0A [.] Команда ввода десятичной запятой 0B [/-/] Команда изменения знака числа или порядка 0С [ВП] Команда ввода порядка числа 0D [Cx] Команда очистки содержимого регистра X, сброс состояния ошибки. 0E [Enter] Команда разделения вводимых чисел и продвижения информации в стеке. При этом содержимое регистра X переносится в регистр Y, содержимое регистра Y переносится в регистр Z и т. д. 0F [Bx] Извлечение числа из регистра предыдущего результата. 10 [+] Сложение числа из регистра X с числом из регистра Y и помещением Предварительная информация 18 19 FRS-100 результата в регистр X. 11 [-] Вычитание содержимого регистра Y из содержимого регистра X и помещение результата в регистр X. 12 [*] Умножение содержимого регистра Y на содержимое регистра X 13 [/] Деление содержимого регистра Y на содержимое регистра X 14 [<-->] Обмен содержимого регистров X и Y 15 [10Х] Вычисление антилогарифма от X 16 [ex] Вычисление экспоненты от Х 17 [Log] Вычисление десятичного логарифма от X 18 [Ln] Вычисление натурального логарифма от Х 19 [Sin-1] Вычисление арксинуса от X 1A [Cos-1] Предварительная информация 19 20 FRS-100 Вычисление арккосинуса от X 1B [Tan-1] Вычисление арктангенса от X 1C [Sin] Вычисление синуса от Х 1D [Cos] Вычисление косинуса от Х 1E [Tan] Вычисление тангенса от Х 20 [Пи] Занесение константы Пи=3.141592653589793 в регистр Х 21 [] Извлечение квадратного корня содержимого X 22 [X2] Возведение в квадрат содержимого Х 23 [1/x] Вычисление обратной величины от X 24 [XY] Возведение числа X в степень Y 25 [] Кольцевое передвижение информации в стеке чисел: Предварительная информация 20 21 FRS-100 Содержимое остальных регистров стека остается неизменным 26 [O ' ->] Перевод величин, выраженных в градусах (часах), минутах и долях минуты в значения выраженные в градусах (часах) и долях градусов (часов) 27 [DEG] Включение режима вычисления тригонометрических функций - в градусах. 28 представления аргументов представления аргументов [GRA] Включение режима вычисления тригонометрических функций - в градах. 2A аргументов [RAD] Включение режима вычисления тригонометрических функций - в радианах. 29 представления [O ' " ->] Перевод величин, выраженных в градусах (часах), минутах, секундах и долях секунды в значения выраженные в градусах (часах) и долях градусов (часов) 2B [CLS] Очистка содержимого дисплея (в режиме выполнения программы) 2С [ || ] Вычисление формулы X * Y / (X + Y). Данную формулу можно использовать, например, для вычисления сопротивления резисторов, включенных параллельно. 30 [O' " <-] Перевод величин, выраженных в градусах (часах) и долях градусов (часов) в величины, выраженные в градусах (часах), минутах, секундах и долях секунды Предварительная информация 21 22 FRS-100 31 [ |X| ] Вычисление абсолютной величины X 32 [ Sign(x) ] Определение знака числа (в регистр X помещается число 1, если число положительное, -1, если число отрицательное и 0, если число = 0) 33 [O ' <-] Перевод величин, выраженных в градусах (часах) и долях градусов (часов) в величины, выраженные в градусах (часах), минутах и долях минуты 34 [ [X] ] Отделение целой части числа 35 [ {X} ] Отделение дробной части числа 36 [Max] Определение максимального из чисел, находящихся в регистрах X и Y 37 [AND] Вычисление логической функции И над двоичным представлением регистров X и Y 38 [OR] Вычисление логической функции ИЛИ над двоичным представлением регистров X и Y 39 [XOR] Вычисление логической функции ИСКЛЮЧАЮЩЕЕ ИЛИ над двоичным представлением регистров X и Y 3A [NOT] не реализовано Предварительная информация 22 23 FRS-100 Инвертирование двоичного представления содержимого X 3B [Сч] Формирование случайного числа в диапазоне от 0. до 1. 3С Занесение информации. 3D [ПСР] [xx] содержимого X в специальный регистр занесения [ИПСР] [xx] Извлечение числа из содержимого специального регистра извлечения информации. 3E [] ??? 40..4E [П] [n] Занесение содержимого X в регистр памяти с номерами n=0..9, A, B, C, D, E соответственно кодов 40..49, 4A, 4B, 4C, 4D, 4E 4F [П(X)] Занесение содержимого Y в регистр памяти с номером, находящимся в регистре X 50 [С/П] Команда старта / останова программы 51 [БП] [xx] Команда безусловного перехода по адресу xx (00-99). Для перехода к адресам, имеющим адрес более 99 необходимо использовать команду косвенного перехода [К БП]. См. также п. **** "Режим программирования". 52 [В/0] Предварительная информация 23 24 FRS-100 Команда возврата из подпрограммы (во время выполнения программы). Команда перехода к адресу 0 (во время автоматической работы) 53 [ПП] [xx] Переход на подпрограмму с адресом xx (в режиме выполнения программы). Выполнение одного шага программы (в режиме автоматической работы) 54 [НОП] Команда отсутствия операции 55 [Displ] [xy] Выводит содержимое регистра X на дисплей в формате с фиксированной запятой. Параметр X определяет количество знаков, резервируемых до запятой (включая знак), Y определяет количество знаков после запятой. См. также [Pos] 56 [Pos] [xx] Установка позиции для последующего вывода чисел на дисплей. Параметр XX может принимать значения от 1 до 18. 57 [x <> 0] [xx] Проверка выполнения условия "X не равно 0". Если условие не выполняется, то выполнение программы продолжается с адреса, указанного параметром XX. В противном случае программа выполняется со следующего адреса. 58 [L2] [xx] Команда организации циклов с регистром 02. Если при выполнении команды в регистре находится число, большее или равное двум, то из регистра вычитается единица и выполнение продолжается с адреса, указанного параметром XX. В противном случае программа выполняется со следующего адреса. 59 [x >= 0] Проверка выполнения условия "X больше или равно 0". Если условие не выполняется, то выполнение программы продолжается с адреса, указанного Предварительная информация 24 25 FRS-100 параметром XX. В противном случае программа выполняется со следующего адреса. 5A [L3] [xx] Команда организации циклов с регистром 03. Если при выполнении команды в регистре находится число, большее или равное двум, то из регистра вычитается единица и выполнение продолжается с адреса, указанного параметром XX. В противном случае программа выполняется со следующего адреса. 5B [L1] [xx] Команда организации циклов с регистром 01. Если при выполнении команды в регистре находится число, большее или равное двум, то из регистра вычитается единица и выполнение продолжается с адреса, указанного параметром XX. В противном случае программа выполняется со следующего адреса. 5C [x < 0] Проверка выполнения условия "X меньше 0". Если условие не выполняется, то выполнение программы продолжается с адреса, указанного параметром XX. В противном случае программа выполняется со следующего адреса. 5D [L0] [xx] Команда организации циклов с регистром 00. Если при выполнении команды в регистре находится число, большее или равное двум, то из регистра вычитается единица и выполнение продолжается с адреса, указанного параметром XX. В противном случае программа выполняется со следующего адреса. 5E [x = 0] Проверка выполнения условия "X равно 0". Если условие не выполняется, то выполнение программы продолжается с адреса, указанного параметром XX. В противном случае программа выполняется со следующего адреса. 5F [LX] [yy] Команда организации циклов с регистром, номер которого указан в регистре X. Если при выполнении команды в регистре находится число, Предварительная информация 25 26 FRS-100 большее или равное двум, то из регистра вычитается единица и выполнение продолжается с адреса, указанного параметром YY. В противном случае программа выполняется со следующего адреса. 60..6E [ИП] [n] Извлечение содержимого регистра памяти с номерами n=0..9, A, B, C, D, E в регистр X, соответственно кодов 60..69, 6A, 6B, 6C, 6D, 6E 6F [ИПx] Извлечение содержимого регистра памяти номер которого указан в регистре X. 70..7E [KX<>0] [n] Проверка выполнения условия "X не равно 0". Если условие не выполняется, то выполнение программы продолжается с косвенного адреса, номер которого указан содержимым регистра n=0, 1, ..., 9, A, B, C, D, E. В противном случае программа выполняется со следующего адреса. Перед выполнением сравнения содержимое регистра изменяется (см. "изменение содержимого регистров при косвенных вызовах", стр. !!!!). 7F [KY<>0x] Проверка выполнения условия "Y не равно 0". Если условие не выполняется, то выполнение программы продолжается с косвенного адреса, номер которого указан содержимым регистра, номер которого находится в регистре X. В противном случае программа выполняется со следующего адреса. 80..8E [К БП] [n] Косвенный переход к программе и по адресу, номер которого указан содержимым регистра n=0, 1, ..., 9, A, B, C, D, E. См. "Организация взаимодействия между программами", п. ***** 8F [КБПx] Косвенный переход к программе и по адресу, номер которого указан содержимым регистра X. См. "Организация взаимодействия между программами", п. ***** Предварительная информация 26 27 FRS-100 90..9E [KX>=0] [n] Проверка выполнения условия "X больше, либо равно 0". Если условие не выполняется, то выполнение программы продолжается с косвенного адреса, номер которого указан содержимым регистра n=0, 1, ..., 9, A, B, C, D, E. В противном случае программа выполняется со следующего адреса. См. также "Организация взаимодействия между программами", п. ***** 9F [KY>=0x] Проверка выполнения условия "Y больше, либо равно 0". Если условие не выполняется, то выполнение программы продолжается с косвенного адреса, номер которого указан содержимым регистра, номер которого находится в регистре X. В противном случае программа выполняется со следующего адреса. См. "Организация взаимодействия между программами", п. ***** A0..AE [К ПП] [n] Косвенный переход на подпрограмму по адресу, номер которого указан содержимым регистра n=0, 1, ..., 9, A, B, C, D, E. См. "Организация взаимодействия между программами", п. ***** AF [К ППx] Косвенный переход на подпрограмму по адресу, номер которого указан содержимым регистра X. См. "Организация взаимодействия между программами", п. ***** B0..BE [К П] [n] Косвенное сохранение содержимого регистра X в ячейку памяти, номер которой указан содержимым регистра n=0, 1, ..., 9, A, B, C, D, E. Перед сохранением содержимое регистра изменяется (см. "изменение содержимого регистров при косвенных вызовах", стр. !!!!). BF [КПx] Косвенное сохранение содержимого регистра Y в ячейку памяти, номер которой указан содержимым регистра X. C0..CE [KX<0] [n] Проверка выполнения условия "X меньше 0". Если условие не выполняется, то выполнение программы продолжается с косвенного адреса, номер которого указан содержимым регистра n=0, 1, ..., 9, A, B, C, D, E. В Предварительная информация 27 28 FRS-100 противном случае программа выполняется со следующего адреса @@См. "Организация взаимодействия между программами", п. ***** CF [KY<0x] Проверка выполнения условия "Y меньше 0". Если условие не выполняется, то выполнение программы продолжается с косвенного адреса, номер которого указан содержимым регистра, номер которого находится в регистре X. В противном случае программа выполняется со следующего адреса. См. "Организация взаимодействия между программами", п. ***** D0..DE [К ИП] [n] Косвенное извлечение содержимого ячейки памяти, номер которой указан содержимым регистра n=0, 1, ..., 9, A, B, C, D, E, в регистр X. Перед сохранением содержимое регистра изменяется (см. "изменение содержимого регистров при косвенных вызовах", стр. !!!!). DF [К ИПx] Косвенное извлечение содержимого ячейки памяти, номер которой указан содержимым регистра X. E0..EE [KX=0] [n] Проверка выполнения условия "X равно 0". Если условие не выполняется, то выполнение программы продолжается с косвенного адреса, номер которого указан содержимым регистра n=0, 1, ..., 9, A, B, C, D, E. В противном случае программа выполняется со следующего адреса. См. "Организация взаимодействия между программами", п. ***** EF [KY=0x] Проверка выполнения условия "Y равно 0". Если условие не выполняется, то выполнение программы продолжается с косвенного адреса, номер которого указан содержимым регистра, номер которого находится в регистре X. В противном случае программа выполняется со следующего адреса. См. также "Организация взаимодействия между программами", п. ***** FF [Reset] Перезапуск вычислителя. Предварительная информация 28 29 FRS-100 Изменение содержимого регистров при косвенных вызовах При косвенных переходах, а также при косвенных сохранениях и извлечениях из регистра для получения адреса перехода используется содержимое регистра косвенного вызова, номер которого указывается непосредственно в команде. Например, при выполнении команды [K П 6] в качестве регистра косвенного вызова будет использован регистр 6. Перед выполнением команды содержимое регистра косвенного вызова специальным образом изменяется: 1. Из находящегося в регистре числа отделяется целая часть. 2. Над полученной целой частью производятся вычисления: - для регистров 0, 1, 2, 3 - вычитается единица; - для регистров 4, 5, 6 - прибавляется единица; - остальные регистры не изменяются. Таким образом, если в регистре 6 находилось число 3.2, то при выполнении команды [К П 6] число из регистра X сохранится в регистре 4, и в регистре 6 будет записано число 4. Организация взаимодействия между программами В вычислителе предусмотрено сохранение программ пользователя в области долговременного ОЗУ. Каждая программа, записываемая в ОЗУ, имеет идентификатор в виде названия программы длиной до 15 символов, номера группы и номера программы в группе. Всего может быть до 65535 номеров групп с номерами от 00001 до 65535, и 65535 номеров программ в группе. Программы объединяются в группы программ. Если программа обращается к какой либо программе внутри одной группы, то указывается номер группы, равным нулю. Таким образом достигается возможность создания библиотек программ. Для взаимодействия с файловой системой вычислителя используются следующие команды: STORE Рег.Х.: 19.[xxxxx][yyyyy] Код: 90 Сохраняет редактируемую программу в ОЗУ с указанным номером группы и номером программы в группе. Если программа с данными атрибутами уже имеется в ОЗУ, то та программа стирается и заменяется новой @@Если параметр xxxxx = 0 и yyyyy = 0, то в качестве номеров группы и программы в группе берутся соответствующие номера редактируемой программы. Предварительная информация 29 30 FRS-100 RECALL Рег.Х.: 19.xxxxxyyyyy Код: 91 Загружает программу с указанным номером группы и программы в группе из ОЗУ в область редактируемой программы. DELETE Рег.Х.: 19.xxxxxyyyyy номером Код: 92 Удаляет программу с указанным номером группы и номером программы в группе из ОЗУ. RENAME Рег.Х.: 19.xxxxxyyyyy Код: 93 Переименовывает программу в ОЗУ с указанным номером группы и номером программы в группе в номер группы и программы в группе, являющиеся текущими. SETLNG Рег.Х.: 19.xxxxx Код: 94 Резервирует xxxxx байт ОЗУ для хранения редактируемой программы. Если параметр xxxxx = 0, то резервируется 100 байт. GETLNG 1.xxxxx -> Рег.Х. Код: 95 Загружает в регистр X количество байт ОЗУ, зарезервированное для хранения редактируемой программы в формате 1.xxxxx. Например, если зарезервировано 100 байт, то в регистр X загрузится число 1.001. GETFREE 1.xxxxx -> Рег.Х. Код: 96 Загружает в регистр X максимально возможное количество байт для редактируемой программы. SETNAME Рег.Х.: 19.xxxxxyyyyy Код: 97 Устанавливает текущий номер группы и программы в группе. GETNAME 1.xxxxxyyyyy -> Рег.Х. Код: 98 Загружает в регистр X текущий номер группы и программы в группе. NEW Код: 99 Заполняет байты области редактируемой программы значениями 00 и Предварительная информация 30 31 FRS-100 устанавливает программный счетчик на адрес 00. RUN Рег.Х.: 19.xxxxxyyyyyzzzzz Код: 9A Запускает программу в ОЗУ с указанным номером группы xxxxx и номером программы в группе yyyyy с шага zzzzz. DIR Код: 9B Выводит на дисплей директорий хранимых в ОЗУ программ в формате: AAA.BBBBB.CCCCC.DDDDD AAA - номер по порядку, 001...999 BBBBB - номер группы CCCCC - номер программы в группе DDDDD - длина программы в байтах При выводе параметра очередной программы необходимо нажать любую клавишу. Блок аналогово-цифровых преобразователей Блок аналогово-цифровых преобразователей позволяет измерять напряжения по восьми каналам в диапазоне от 0 вольт до значения напряжения на входе VREF. Стандартно вход VREF соединен с линией +5 В. Блок счета внешних импульсов Блок параллельного порта КР580ВВ55А Блок TTL входов Блок хранения байтов данных Блок интерфейса TWI (Two Wire Interface - Двухпроводной интерфейс) Предварительная информация 31 FRS-100 32 Команда XX YY ZZ Передача массива информации по интерфейсу TWI длиной ZZ байт (коды начинаются сразу после кода этой команды). йцуйцуйцуйцу Предварительная информация 32