Введение
В прошлой статье (Калькулятор Электроника МК61) я кратко рассказал об особенностях микрокалькулятора Электроника МК61, о его устройстве и принципах работы, с которыми мне удалось самому разобраться за пару вечеров.
Далее я стал разбираться как же всё таки писать и затем вводит программы в этот калькулятор и хочу здесь поделится этой информацией со всеми кому интересна данная тема.
Для начала необходимо осознать, что МК61 не обладает ПЗУ (постоянное запоминающие устройство), т.е. введённая в калькулятор программа будет потеряна/очищена сразу после отключения калькулятора и в следующий раз придётся вводить её вновь.
В прошлом в различных конструкторских бюро утро начиналось не с чашечки кофе (как в современных НИИ и IT-компаниях), а с того, что инженеры вводили программы в свои калькуляторы, а уже после можно и кофе.
Программа для МК61 и ему подобных калькуляторов в основном представляет из себя запись последовательности действий, которые пользователь осуществлял бы и без программы, но записав их в программу этот набор действий будет сохранён и избавит пользователя от многократного повторения.
Когда это может быть актуально? Тогда, когда необходимо много раз производить расчёт, но с разными вводными. Либо когда необходимо повторять расчёт многократно и вводными данными служат результаты предыдущего расчёта (построение графиков) и т.п. Если это одиночная операция, то проще не заморачиваться с программированием.
С чего начинается программирование на МК61 и подобных.
В первую очередь необходимо перевести микрокалькулятор в режим программирования, для этого нажимаем F ПРГ, после чего справа на дисплее будут отображено 00, это значит, что калькулятор успешно переведён в режим ввода программы.
00 означает порядковый номер команды в программе, в МК61 их максимально может быть 105. После ввода каждой последующей команды этот счётчик будет инкрементироваться. Если допустили ошибку ввода или есть необходимость скорректировать какой-то шаг программы, то есть две клавиши(ШГ-> и ШГ<-), которые позволяют перемещаться по введённой программе и вносить, чтоб затем ввести изменения.
Ну и давайте напишем нашу первую программу, а точнее функцию, которая будет воспроизводит пример из прошлой статьи, помните (2 + 5) * 3, но сделаем так, чтоб значения можно было менять и повторять расчёт. В итоге получается примерно вот так (x + y) * z = ?. Теперь подставляя значения в x,y,z можно получать результат не производя лишних действий. А помните про регистры из прошлой статьи, так вот мы их и будем использовать в качестве переменных X — REG2; Y — REG3; Z — REG4 и конечно же не забываем про обратную польскую запись 🙂
Погнали
Для начала переведём калькулятор в режим программирования [F] [ПРГ] и начнём вводить нашу первую программу для МК61. Теперь на экране отображаются в правой части дисплея 00, это текущий номер команды.
Вводим:
[П->X] [4] — читаем из памяти значение регистра REG4 в регистр X.
[П->X] [3] — читаем из памяти значение регистра REG3 в регистр X, а предыдущее значение переносится в регистр Y.
[П->X] [2] — читаем из памяти значение регистра REG2 в регистр X, а предыдущее значение переносится в регистр Y.
[+] — операция сложения регистров X и Y, а результат записан в X, знвчение регистра стека Z спускается в Y.
[*] — операция умножения на текущими значениями X и Y, результат записывается в X и как следствие отображается на эране.
[С\П] — остановка исполнения программы.
Выходим из режима программирования [F] [АВТ].
Вот и введена наша первая программа в МК61, осталось только заполнить вводные параметы в регистры X — REG2; Y — REG3; Z — REG4 и запустить нашу программу.
Для ввод значений в каждый регистров необходимо нажать:
[3][X->П][4] — вводим 3-ку в REG4
[5][X->П][3] — вводим 5-ку в REG3
[2][X->П][2] — вводим 2-ку в REG2
Вот и всё подготовили, программа введена, значения регистров(по аналогии аргументы функции) введены. Теперь осталось выполнить запуск [СХ][В/О][С/П] и в результате должны на дисплее увидеть 21, если получилось, то значит всё сделали правильно.
Ну а дальше можно вводить новые значения в регистры REG2, REG3, REG4 и повторять запуск программы.
Как прикладной простой пример может выступать программа, которая конвертирует температуру из Фаренгейта в Цельсии.
Пример (50°F => C):
Расчёт будет вот такой (50°F — 32) : 1,8 = 10°C, ну и давайте превратим это в программу, чтобы только вводить значения F и получать C.
Для начала выключим и включим калькулятор после прошлых расчётов, затем переведём калькулятор в режим программирования [F] [ПРГ]. Далее вводим программу
[П->X] [2] — берём значение 50 в стек из REG2
[П->X] [3] — берём значение 32 (константное) в стек из REG3
[-] — вычитаем 50 — 32
[П->X] [4] — берём значение 1,8 (константное) в стек из REG4
[/] — деление 18 / 1.8
[С\П] — остановка исполнения программы.
В итоге должен получится следующий код программы: 62 63 11 64 13 50
Далее переводим калькулятор в режим расчётов [F][АВТ] и заполняем регистры REG2, REG3, REG4.
[СХ] — на всякий случай отчистим всё
[50][X->П][2] — заносим в REG2 значение (50)
[32][X->П][3] — заносим в REG3 значение (32)
[1,8][X->П][4] — заносим в REG4 значение (1,8)
Ну попробуем запустить, то что у нас получилось: [СХ][В/О][C/П], должно получится 10.
Теперь переписывая значения в REG2 на любые нужные F-ы, и выполняя [СХ][В/О][C/П], будут автоматически высчитываться C.
Ссылка на симулятор Электроника МК61
Как знакомо, какая ностальгия! Сейчас Вытащу свой МК-61 из тумбочки — он у меня живой до сих пор!
здравствуйте. А продолжение есть?
к сожалению нету, была идейка расписать про Луналёт, интересно было её повторить, до этого только в школе её вводил и экспериментировал с посадками.
Была идея тут расписать немного. Но всё как обычно, но что-то переключился, другим загорелся, ну со свободным временем как всегда не густо.
Если эта тема интересна почитайте про Луналёт в интернете