Якось раз, розгрібаючи всякі залізяки в шафі, я переклав старий калькулятор в коробку з індикатором і залишками МФУ. Тут-то я і вирішив, що використовуючи цей індикатор, можна дати зламаного калькулятору нове життя. (Місця в калькуляторі вистачало для індикатора і контролера). Для перевірки можливості використовувати індикатор підключив його отладочной платі на at90usb162:
Суворий перемикач перемикає індикатор від БФП до моєї платі. Це дозволяє форматувати індикатор за допомогою БФП, а потім керувати ним з контролера.
Програма була написана, індикатор заробив. Мені, правда, до цих пір не вдалося зрозуміти, що за контролер LCD там використовується. Алгоритм роботи схожий на алгоритм st7036, частина команд збігається, але як я вже сказав, дані передаються починаючи з LSB, лінія RS інвертована. Якщо хто знає, що це за контролер такий може бути, то напишіть, будь ласка.
Індикатор заробив, так що можна було починати робити калькулятор. Робити вирішено було на STM8, оскільки хотілося використовувати контролер з 64 кб пам'яті (я не знав, скільки займуть обчислення з плаваючою комою і обчислення виразів), а atmega644 дістати проблематично, і коштує вона в рази дорожче. При цьому, налагодження та програмування можна вести за все по 3 проводам. Купив отладочную плату STM8L-discovery, поекспериментувати з STM8, і для використання її в якості відладчика. В якості керуючого контролера взяв STM8S207S8. Виготовив друковану плату. Вийшло не дуже добре, доріжки 0.4 мм для гумової клавіатури при перенесенні тонера подекуди відійшли, довелося маркером малювати, багато працювати голкою. Крім того, це моя перша двошаровий плата.
Вийшла така плата.
Після виготовлення плати, і установки на неї контролера і роз'єму індикатора знову виявилися проблеми. Я примудрився підключити індикатор до висновків контролера з відкритим стоком і при цьому ще й неправильно розвів роз'єм. Саме з цього зверху плати така купа проводів. Цього разу контролер ще якось особливо погано припаявся, постійно виникали проблеми з контактом. Загалом, суцільні граблі. Під кінець все запрацювало як треба, була написана програма (як не дивно, не така вже вона і складна вийшла, правда, частина алгоритмів по обчисленню вираження я до цього продумав).
Результатом стала така конструкція:
Назвати я вирішив калькулятор - МК200.
Працює калькулятор на частоті 125Кгц, але під час обчислення частота збільшується до 16Мгц. У калькуляторі реалізований введення повного вираження, яке обчислюється при натисканні кнопки '='. Калькулятор здатний виконувати основні арифметичні дії, тригонометричні функції, зведення чисел в ступінь, в квадрат, витяг квадратного кореня, обчислювати натуральний логарифм і експоненту.
Є 4 регістра пам'яті, в яких можна зберігати різні константи, і потім використовувати їх при введенні виразу.
Числа в калькуляторі зберігаються в 32-бітному вигляді, так що операції можливі з числами не більше, ніж 1 * 10 ^ 38. (Цікаво, чи збираються в IAR робити підтримку 64-розрядних чисел для stm8?)
Так як індикатор харчується від 5 вольт, то в схему входить найпростіший конденсаторний помножувач напруги.
Оскільки схема споживає струм 2мА, то через 3 хв після останнього натискання кнопки калькулятор вимикається.
Для тих хто не знає - у всіх батарейок є певний номінальний струм розряду. Для дрібних батарейок він не перевищує 1 мА. Якщо споживання струму буде вище, то батарейка розрядиться набагато швидше, ніж це вийшло б за розрахунками.
Спочатку я описав конструкцію тут www.leningrad.su/calc/cforum.php?topicid=981, але, думаю, тут вона теж буде цікава.
Згадався кабінет математики в школі, у нас на стіні висіло подібне чудо але розміром приблизно 1 метр на 50 см (може більше не пам'ятаю) функціонально МК-51
З.И. Молодець, непогано вийшло
в нього б ще підсвічування вивести (включення підсвічування зробити якийсь комбінацією клавіш) ...
Забавненько. Але неповторно, в першу чергу через РКІ. З якої він хоч МФУ-шки?
А чому не влаштувала STM8L серія? Вона ж ніби спеціально для батарейних пристроїв з малим споживанням.
Ось, точно забув написати, поставив stm8s, а у них мінімальна напруга 2.95в. Насправді до 2.7 працює. Причина в тому, що вибирав по каталогу терраелектронікі, і stm8l з 64кб там просто немає. Навіть і не знаю, чи є такі в природі.
Підсвічування туди ввести не можна - індикатор не дозволяє. Та й не чув я про калькулятори з підсвічуванням - енергії жере багато.
Індикатор від МФУ Brother DCP-110. Можна спробувати схожий індикатор знайти.
Теж забув написати - оскільки індикатор харчується від 3 вольт, то в схему входить найпростіший конденсаторний помножувач напруги.
індикатор харчується від 3 вольт описати, від 5 вольт.