Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ATmega AVR
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/95: Рейтинг темы: голосов - 95, средняя оценка - 4.83
1298 / 927 / 449
Регистрация: 21.10.2012
Сообщений: 2,604

Калькулятор на МК

15.03.2014, 19:44. Показов 20429. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Из-за учебы пришлось первый раз столкнуться с таким понятием как микроконтроллер. До этого никогда с ними не работал. Задание дали следующее - реализовать калькулятор со следующими функциями: сложение, вычитание, умножение, деление, возведение в степень. Сразу скажу, что на железке делать ничего не надо будет, только программно. По совету добрых людей начал читать Фрунзе "Микроконтроллеры. Это же просто". Посоветуйте, пожалуйста, какие мне дальнейшие действия предпринять, чтобы справится с поставленной задачей. (возможно, в какой среде это всё делать, на каком языке писать, может есть какие-то примеры с объяснением.. Повторюсь, до этого никогда не работал с МК).
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.03.2014, 19:44
Ответы с готовыми решениями:

Как преобразовать обычный калькулятор в калькулятор использующий класс стек?
#include <iostream> int main(){ int a = 0; int b = 0; char operation; std::cout << "Enter first number: "; ...

Подраздел «Калькулятор» (выводится при установке плагина «калькулятор», возможность редактировать параметры че
Подраздел «Калькулятор» (выводится при установке плагина «калькулятор», возможность редактировать параметры через админку)

Простой калькулятор и калькулятор с парсингом
Ребят я совсем не давно только начал изучать сишку, решил написать простенький калькулятор который работает с 2 числами. Возник вопрос, как...

13
 Аватар для raxper
10236 / 6614 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
15.03.2014, 20:23
А калькулятор должон что-то отображать? У вас два варианта, добавить еще работу с индикатором, к примеру LCD, либо выдавать результат расчета по коммуникационному интерфейсу, к примеру по COM-порту. Берете любой МК или готовую плату Arduino или STM-кит или расперри, добавляете клавиатуру, кнопки которой включены матрицей. Добавляем опрос с клавиатуры, по нажатию условно кнопки "=", осуществляем выполение выбранных действий (+-*/) и вывод на индикатор или в UART.

Пример двоичного калькулятора на микроконтроллере ATtiny2313:


Пример самодельного калькулятора на микроконтроллере PIC16F873:


Литература и сорцы

Коллекция исходников по алгоритмам и ссылок по работе с интерфейсами в МК
https://www.cyberforum.ru/elec... 26610.html

Тут еще пример работы с клавиатурой RS-485. Работа с Modbus протоколом...
0
194 / 154 / 23
Регистрация: 16.08.2013
Сообщений: 738
15.03.2014, 23:30
В примерах протеуса есть калькулятор, только не помню на каком мк.
0
1184 / 670 / 113
Регистрация: 15.05.2012
Сообщений: 4,078
17.03.2014, 07:48
Вывод на семисегментники - так проще. Да и клавиатуру достаточно цифровую. В том же протеусе есть специально заточенная под калькулятор.
0
97 / 92 / 0
Регистрация: 24.04.2010
Сообщений: 275
20.03.2014, 19:08
Была такая тема
Калькулятор на Atmega16

Добавлено через 59 секунд
Если в железе собирать не нужно, то делайте в протеусе.

Добавлено через 21 секунду
Или у вас другой симулятор?
0
1298 / 927 / 449
Регистрация: 21.10.2012
Сообщений: 2,604
22.03.2014, 10:07  [ТС]
Симулятор не устанавливал, можете дать ссылку на рабочий Proteus, чтобы не было проблем при установке?
0
 Аватар для raxper
10236 / 6614 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
22.03.2014, 10:25
Рабочий триал-Протеус доступен на официальном сайте. Ссылки на кряки, взломы, хаки на форуме запрещены.
0
1298 / 927 / 449
Регистрация: 21.10.2012
Сообщений: 2,604
25.03.2014, 16:41  [ТС]
http://www.radiolocman.com/she... l?di=67495
Можно спросить, правильно ли я понимаю - для примера, я могу взять код, который написан в файле по ссылке, скомпилировать его в AVRStudio, получить hex-файл, затем в Proteus собрать точно такую же схему как на рисунке (по ссылке), загрузить в микроконтроллер этот hex-файл ия получу работающую схему?
0
97 / 92 / 0
Регистрация: 24.04.2010
Сообщений: 275
25.03.2014, 16:50
Можно не компилировать, там хекс файл есть по ссылке. ДА.
1
1298 / 927 / 449
Регистрация: 21.10.2012
Сообщений: 2,604
25.03.2014, 16:56  [ТС]
Спасибо, попробую это сделать
0
1298 / 927 / 449
Регистрация: 21.10.2012
Сообщений: 2,604
29.03.2014, 22:17  [ТС]
Здравствуйте еще раз =) Установил Proteus, начал разбираться с готовым примером калькулятора - ARM7 Calculator. Возникло много вопросов, если сможете ответить хоть на какие-нибудь, буду признателен.
К основному файлу подключаются 2 файла: #include "NXP/iolpc2104.h" #include <intrinsics.h>. Первый, я так понял, описывает наш микроконтроллер, а что 2-ой?
В заголовочном файле calc.h определяются переменные-регистры. Не могли бы пояснить, что описывают следующие:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#define LCD_CMD_WR     0x0000
#define LCD_DATA_WR    0x0100
#define LCD_BUSY_RD    0x0200
#define LCD_DATA_RD    0x0300
 
#define E_PIN_MASK     0x0400
                     
//LCD Commands        
#define LCD_CLS        0x01
#define LCD_HOME       0x02
#define LCD_SETMODE    0x04
#define LCD_SETVISIBLE 0x08
#define LCD_SHIFT      0x10
#define LCD_SETFUNCTION    0x20
#define LCD_SETCGADDR      0x40
#define LCD_SETDDADDR      0x80
 
 
#define G_MASK  0x78000000
#define G_SHIFT 27
В файле calc.h происходит вызов функции init_system(). Её описание:
C++
1
2
3
4
5
6
7
8
void init_system()
 { MEMMAP = 1;
   SCS_bit.GPIO0M = 0; 
   PINSEL0 = 0;
   PINSEL1 = 0; 
   IODIR =  0xFF07FF; 
   IOCLR = 0xFFFFFFFF;
 }
Что здесь происходит? =) IODIR и IOCLR - это что и откуда? из тех самых 2-х файлов, про которые я вначале спрашивал?
Не могли бы пояснить код, для нахождения нажатой кнопки и вывода информации на дисплей:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
...
for (row=0; row < KEYP_NUM_ROWS; row++)
    { // Drive appropriate row low and read columns:
 
      IOSET = (~(1 << row)) & 0xFF;
      IOCLR = (1 << row) & 0xFF;
      for (wait=0; wait<10; ++wait)
         nop();
      tmp = (IOPIN & G_MASK) >> G_SHIFT;
    
      // See if any column is active (low):
      for (col=0; col<KEYP_NUM_COLS; ++col)
         if ((tmp & (1<<col)) == 0)
          { idx = (row*KEYP_NUM_COLS) + col;
            key = keycodes[idx]; 
 
            IOSET = idx << 16;
 
            IOCLR = (~(idx <<16)) & 0xFF0000;
            goto DONE;
          }
    }
   DONE:
 
   // Disable Port Drive and return.
 
   IODIR =  0xFF0700;
   return key;
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void wrdata (BYTE data)
// Write a Character to the LCD Display. 
 { IODIR =  0xFF07FF;
   IOCLR = (~(LCD_DATA_WR | data)) & 0x7FF;
   IOSET = LCD_DATA_WR | data;
    
   // Toggle Pin 'E' to send the command.
   IOSET = E_PIN_MASK;
   nop(); 
   nop();
   nop();
   nop();
   IOCLR = E_PIN_MASK;
   
   lcd_wait();
 }
0
0 / 0 / 0
Регистрация: 10.03.2015
Сообщений: 11
15.03.2015, 15:01
подскажите какой взять МК авр для двоичной арифметики , и пример ( листинг того же сложения) , Помогите , очень нужна помощь . СПАСИБО
0
 Аватар для shurikspk
409 / 228 / 43
Регистрация: 10.02.2013
Сообщений: 780
15.03.2015, 15:09
прочитав строчку ничего не понял, детальнее опишите что вам нужно

PS мк всегда и работает только с 0 и 1
0
0 / 0 / 0
Регистрация: 10.03.2015
Сообщений: 11
15.03.2015, 15:13
ищу пример листинг для написания арифметических операций,на конкретно каком то мк
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.03.2015, 15:13
Помогаю со студенческими работами здесь

Пытаюсь сделать калькулятор в семиричной системе счисления, но не получается, вот еще осталось сделать, чтобы калькулятор считал выражение в скобках
#include &lt;iostream&gt; #include &lt;cstdlib&gt; #include &lt;cctype&gt; using namespace std; double expr(char* str); char* buf=new char ; ...

Калькулятор
В методичке есть такая запись для куска кода калькулятора. TForm1 *Form1;; float асcum; // аккумулятор int...

Калькулятор
Нужно создать калькулятор с одним окном ввода. Действия (+,-,*,/,очищение окна(с), cos,sin, x^2)

Калькулятор
Подробнее здесь http://we.iosyitistromyss.ru/CADSoft/ka ... r.html#cut 8bit_beta_02.zip

калькулятор
всем привет,мне нужно калькулятор простой,графический не надо,консольный,а фукции так сделал,например я пишу (5+2)*(14:2) он бы мне...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru