Unikumrus.com | Личные вещи | Калькулятор с Бейсиком

Калькулятор с Бейсиком

,
0 комментариев    700 просмотров    Версия для печати



В своё время определённое распространение имели карманные калькуляторы, в которых сразу запускался интерпретатор Бейсика. Как в домашних компьютерах, популярных примерно тогда же, но с выводом информации на встроенный дисплей небольшого разрешения. Это позволяло непрофессиональным программистам писать программы для довольно сложных расчётов, не занимая телевизор. К середине девяностых популярность этих калькуляторов упала в связи с набором популярности более универсальных КПК, где Бейсик был лишь одним из возможных приложений, наряду с другими. В современных смартфонах так же: нужен Бейсик - качаешь из магазина приложений. Теперь же, когда многие применяют в самоделках микроконтроллеры, не редкостью стали калькуляторы с Бейсиком, изготовленные своими руками. Для тех, кто застал оригиналы, это - ностальгия, для мастеров помоложе - возможность пощупать, какими они были. Перед вами - одна из множества таких конструкций в исполнении автора Instructables под ником SANUKI UDON.

Компании Casio и Sharp применяли в таких калькуляторах 4-битные микропроцессоры, Kyocera - 8-битные, Ангстрем и Интеграл - 16-битные. Мастер решил выбрать золотую середину и применил в своём варианте современный 8-битный микроконтроллер ATmega328P, поскольку для него уже существует интерпретатор ArduinoBASIC. Только здесь он адаптирован к дисплею меньшего разрешения и клавиатуре CardKB, в составе которой уже есть необходимый микроконтроллер.

Для сборки калькулятора, помимо собстверно CardKB, потребуются: батарейный отсек 2хАА или 2хААА, PMOLED-дисплей на микросхеме SSD1306, а также при желании сохранять и считывать файлы - микросхема флеш-памяти, например, 24LC256. Макетная плата типа breadboard и перемычки "дюпон" необязательны, лучше соединить всё пайкой. ArduinoBASIC изначально рассчитан на PMOLED-дисплей с интерфейсом SPI, но мастер переделал прошивку так, чтобы она работала с дисплеем с интерфейсом I2C. На КДПВ показан второй вариант калькулятора, гдп дисплей еще меньше, а элемент питания -типа CR2025 или CR2032.

Сбоку на плате CardKB расположен разъём, куда выведена шина I2C, туда же подаётся и питание. Если есть микросхема памяти, на переходной плате или нет, она подключается параллельно дисплею согласно цоколёвке из даташита. Мастер не уточняет, прилагается ли к CardKB кабель с ответной частью разъёма. Если не прилагается, а у вас нет такого кабеля, можно припаять проводники к плате с обратной стороны.






Соединив всё электрически, мастер приступает к переделке ArduinoBASIC под применённое им железо. Результат выкладывает сюда. Также необходимо погасить имеющийся на плате RGB-светодиод, который по умолчанию светит всеми тремя кристаллами на полную мощность. И не только увеличивает потребляемый ток, но и светит прямо в глаза пользователю. Поэтому необходимо также скачать стандартную библиотеку NeoPixel отсюда, а при компиляции выбрать ATmega328p (3.3V, 8Mhz). После компиляции выбрать Export compiled Binary и получить двоичный файл.




Калькулятор с Бейсиком





Чтобы залить файл в CardKB, нужен программатор USB-ISP и самодельный переходник. В качестве ПО для управления программатором подойдёт avrdude или avrdude-GUI (это то же самое, но с GUI). Фьюзы перезаписывать нельзя. Да, чуть сложнее, чем с Arduino, где достаточно USB-кабеля и встроенных средств Arduino IDE.






Приложение: как перед компиляцией корректировать файл SSD1306ASCII_I2C.h в зависимости от разрешения PMOLED-дисплея.

Для дисплея с разрешением 128 × 32:

#define OLED_WIDTH  128
#define OLED_HEIGHT 32
#define OLED_COLMAX 21
#define OLED_ROWMAX 4

Для дисплея с разрешением 128×64:

#define OLED_WIDTH  128
#define OLED_HEIGHT 64
#define OLED_COLMAX 21
#define OLED_ROWMAX 8


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


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

0
Идея
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
0
Описание
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
0
Исполнение
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
0
Полезность
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
Итоговая оценка: 0.0 из 10 (голосов: 0 / История оценок)

0

Читайте также:

Коментарии:

Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.

Вверх