- PVSM.RU - https://www.pvsm.ru -
В дизайне я использовал только выводные детали, чтобы было проще паять.
Выбор пал именно на этот микроконтроллер, поскольку он довольно распространен в сообществе Arduino и является одним из немногих, которые до сих пор производятся в корпусах, позволяющих монтировать их в отверстия на плате. Других полупроводников я не использовал.
Несмотря на то, что ATMEGA328 – это простой 8-битный микроконтроллер с частотой 8МГц, он все равно довольно быстр. В результате эмуляция работает в 4-5 раз шустрее оригинала.
Я также добавил динамик для озвучивания нажатий клавиш и кварцевый резонатор 32.768КГц для работы часов реального времени.
Эмулятор можно запускать на любом калькуляторе серии Voyager, а также на моем любимом HP41C.
При выключенном калькуляторе зажмите кнопку .
(на PX41c зажать 0
) и включите его, кнопку не отпускайте.
Включится дисплей, на котором будет показана версия прошивки и мини-инструкция. Когда вы отпустите .
(на PX41c это 0
), отобразятся настройки.
Настроить можно следующее:
BKLT
: яркость подсветки (0-9);BKTM
: таймаут подсветки в секундах (0-255);CONT
: контраст (0-15);SLPT
: таймер сна (0-255);BEEP
: звук клавиш;1224
: формат отображения времени (12hr or 24hr);Time and Date
: часы устанавливаются в формате 24hr.
PX15c и PX16c:
Для выбора опции используйте клавиши ÷
и X
.
Для изменения параметра используйте +
и -
.
PX41c:
Для выбора опций используйте клавиши 9
и 6
.
Для изменения параметра используйте 3
и R/S
.
Прежде, чем паять дисплей, наклейте полоску двухстороннего скотча на микроконтроллер, чтобы дисплей лег поверх него надежно и ровно.
Деталь | Значение | Описание |
C1, C2 | 0.1мкФ | Разделительный конденсатор |
C3 | 0.1мкФ | Сопротивление динамика |
U1 | ATMEGA328P | Микроконтроллер |
J1 | 6-контактные штыревые разъемы (мама) | Программирующая головка Pi |
BAT | Крепление батареи | Крепление батареи CR2032 |
SPK | Зуммер | Динамик |
XTAL | Кварцевый резонатор 32.768КГц | Часы |
R1 | 10кОм | Подтягивающий резистор сброса |
R2 | 10Ом | Резистор ЖК-подсветки |
BTN | Тактовые кнопки 6х6мм (высота 7мм) | Основные кнопки |
RST | Тактовая кнопка 6х3.5мм | Кнопка сброса |
DISP | ЖК-дисплей 192х64 | Дисплей |
Текущая версия прошивки v0.85.
Скачать для PX15c [5]
Скачать для PX16c [6]
Скачать для PX41c [7]
Исправлено/Добавлено:
ERROR 9
).ON
и 0
, (нажатием ON
и .
меняется основание системы счисления.3
и ∑
увеличивают и уменьшают значение на 10.9
:.
RUNC
: количество циклов, выполняемых за раз.KEYC
: сколько циклов клавиши ожидать до ее обработки.DBOU
: продолжительность эффекта антидребезга кнопок.DISC
: только для 41c, количество циклов до повторной отрисовки дисплея.SSPC
: только для 41c, количество Slow Speed Cycles
до ускорения.BATL
: текущий заряд батареи, не настраивается.BATT
: порог низкого заряда батареи, не настраивается.Prog
декодер клавиш не декодирует STO
и RCL
при использовании /
, *
, -
и +
. Тоже касается функции TEST
. Среднее x
отображается как X
.ON
и X
при запуске) выводится ERROR 9
. Для возвращения калькулятора в рабочее состояние нужно нажать клавишу сброса.Внимание! Нажатие сброса или загрузка новой прошивки приводит к стиранию всего содержимого.
Для обновления прошивки вам потребуется стандартный программатор AVR SPI, например usbasp [8]. Также можно использовать Arduino Uno в качестве ISP программатора.
Кроме того, для программирования МК вам потребуется avrdude [9]или иное ПО.
Большинство AVR-программаторов оснащены 6-контактной (2х3) или 10-контактной (2х5) гребенкой. В нашем калькуляторе используется 6-контактная, так что вам наверняка потребуется либо купить переходник, либо сделать его самостоятельно.
Я просто отрезал шлейф и припаял 6-контактный штыревую вилку.
Внимание!!! Убедитесь, что на программаторе выставлено напряжение 3В, иначе вы убьете дисплей.
Можете напечатать собственный корпус либо взять готовый вариант с Thingiverse:
Раскладку клавиатуры в pdf можно взять отсюда:
RPN (Обратная польская запись) – это математическая нотация, позволяющая пользователям решать задачи по аналогии с тем, как они привыкли делать это на бумаге. Операторы (+
,–
,x
,÷
) помещаются после аргументов (например, 3+4
становится 3 {ENTER} 4 +
), что дает возможность создавать стек из последовательностей чисел и операций, прорабатывая его снизу вверх. RPN избавляет от необходимости использования скобок в сложных вычислениях и уменьшает количество нажатий клавиш, существенно ускоряя решение задач и делая этот процесс более эффективным.
ЖК-дисплей содержит 12,288 (192х64) пикселя, чего достаточно для отрисовки всех растровых шрифтов вместе со строкой состояния. Ну а про подсветку я уже говорил.
В основе PX-15c лежит микроконтроллер ATMEGA328P от ATMEL (ныне Microchip). Выбор пал на него, потому что он довольно популярен в сообществе ардуинщиков и по-прежнему является одним из немногих, которые производятся в корпусах для монтажа в отверстия на плате.
Я взял стандартный магнитный динамик, который использовал для озвучивания нажатия клавиш.
В комплекте задействовано 39 стандартных тактовых кнопки 6х6мм.
Время и дата всегда отображаются в строке состояния. Отсчет же ведется типовым кварцевым резонатором 32.768КГц.
Питание поступает от литиевой таблетки CR2032 3В емкостью 235мАч, которой при умеренном использовании калькулятора должно хватать на несколько месяцев. Для сохранения энергии PX-15c в режиме простоя замедляется, а спустя определенный промежуток бездействия впадает в сон. Подсветка при простое также отключается.
Автор: Дмитрий Брайт
Источник [21]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/staroe-zhelezo/370610
Ссылки в тексте:
[1] калькуляторами HP RPN: https://www.hpmuseum.org/
[2] RPN-версии: https://en.wikipedia.org/wiki/Reverse_Polish_notation
[3] Мозгом: http://www.braintools.ru
[4] батареи CR2032: https://data.energizer.com/pdfs/cr2032.pdf
[5] PX15c: https://paxer.net/voyager/firmware/px15_0.85.hex
[6] PX16c: https://paxer.net/voyager/firmware/px16_0.85.hex
[7] PX41c: https://paxer.net/voyager/firmware/px41_0.85.hex
[8] usbasp: https://amzn.to/3jvD7UZ
[9] avrdude : https://www.nongnu.org/avrdude/
[10] 3D Case: https://www.thingiverse.com/thing:4936677
[11] Simple: https://www.thingiverse.com/thing:4969303
[12] PX15c: https://paxer.net/voyager/overlay_15.pdf
[13] PX16c: https://paxer.net/voyager/overlay_16.pdf
[14] PX41c: https://paxer.net/voyager/overlay_41.pdf
[15] HP-15C Owner's Handbook: http://www.hp.com/ctg/Manual/c03030589.pdf
[16] HP15C Advanced Functions Handbook: http://h10032.www1.hp.com/ctg/Manual/c03308725.pdf
[17] HP-15C Quick Reference: http://www.thimet.de/CalcCollection/Calculators/HP-15C/HP-15C-Quick-Reference.pdf
[18] HP-16C Owner's Handbookl: https://www.scss.tcd.ie/SCSSTreasuresCatalog/hardware/TCD-SCSS-T.20160121.004/HP16C-OwnersHandbook.pdf
[19] HP-41C/41CV Owners Handbook and Programming Guide: https://www.cosc.canterbury.ac.nz/greg.ewing/X-41/HP41C.pdf
[20] tindie: https://www.tindie.com/products/hobbystone/px-15c-an-hp15c-emulator/
[21] Источник: https://habr.com/ru/post/595735/?utm_source=habrahabr&utm_medium=rss&utm_campaign=595735
Нажмите здесь для печати.