Оглавление:

Простой и стандартный калькулятор с CloudX: 5 шагов
Простой и стандартный калькулятор с CloudX: 5 шагов

Видео: Простой и стандартный калькулятор с CloudX: 5 шагов

Видео: Простой и стандартный калькулятор с CloudX: 5 шагов
Видео: Язык c++ с нуля | #38 Простой калькулятор на c++. 2024, Ноябрь
Anonim
Простой и стандартный калькулятор с CloudX
Простой и стандартный калькулятор с CloudX

В этом руководстве мы узнаем, как сделать простой и стандартный калькулятор с CloudX. Нажмите. Если вы еще ничего не читали о взаимодействии клавиатуры с CloudX, здесь наша цель - научить вас, как вы можете разработать свой собственный аппаратный калькулятор с использованием cloudX M633.

Наша цель - разработать калькулятор, который может выполнять сложение (+), вычитание (-), умножение (*) и деление (/) с результатами в десятичных дробях от 0,0000001 до целых чисел до 90000000. Калькулятор обладает способностью обнаруживать математические ошибки и т. д. Каждый ребенок, студент или любитель должен уметь выполнить этот фантастический проект.

Шаг 1: АППАРАТНЫЕ ТРЕБОВАНИЯ

АППАРАТНЫЕ ТРЕБОВАНИЯ
АППАРАТНЫЕ ТРЕБОВАНИЯ
АППАРАТНЫЕ ТРЕБОВАНИЯ
АППАРАТНЫЕ ТРЕБОВАНИЯ

1x микроконтроллер CloudX

1x SoftCard CloudX

1x USB-кабель

1x матричная клавиатура 4x4

1x 16x2 перемычки для ЖК-дисплея

1x резистор 1 кОм

4 резистора 10 кОм

Шаг 2: ПОДКЛЮЧЕНИЕ ПИН-кода

КОНТАКТНОЕ СОЕДИНЕНИЕ
КОНТАКТНОЕ СОЕДИНЕНИЕ
КОНТАКТНОЕ СОЕДИНЕНИЕ
КОНТАКТНОЕ СОЕДИНЕНИЕ
КОНТАКТНОЕ СОЕДИНЕНИЕ
КОНТАКТНОЕ СОЕДИНЕНИЕ

Контакты подключения CloudX с ЖК-дисплеем и контакты подключения CloudX с клавиатурой

Шаг 3: ЦЕПНАЯ СХЕМА

ПРИНЦИПИАЛЬНАЯ ЭЛЕКТРИЧЕСКАЯ СХЕМА
ПРИНЦИПИАЛЬНАЯ ЭЛЕКТРИЧЕСКАЯ СХЕМА

Шаг 4: ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ

/ * * Файл: Smart KeyPad Lock System.c

* Автор: толстовка

*

* Создано 20 марта 2018 г., 11:21

*/

#включают

#включают

#включают

#включают

#define NumberOfRows 4 // установить отображение четырех строк

#define NumberOfColumns 4 // установить отображение трех столбцов

char KeypadCharacters [NumberOfRows] [NumberOfColumns] = {

'1', '2', '3', '+', '4', '5', '6', '-', '7', '8', '9', '*', 'C', '0', '=', '/'

};

char RowPins [NumberOfRows] = {7, 8, 9, 10};

char ColumnsPins [NumberOfColumns] = {11, 12, 13, 14};

char Keys, a = 0, check = 0, operation = 0, signa = 0, signb = 0;

подписанный плавающий ответ;

char * Panswer;

char Aanswer [10];

подписанный длинный ввод;

char Ainputa [10];

подписанный длинный вводb;

char Ainputb [10];

настраивать(){

KeypadSetting (PULLDOWNCOL, RowPins, ColumnsPins, NumberOfRows, NumberOfColumns, KeypadCharacters);

lcdSetting (1, 2, 3, 4, 5, 6);

lcdCmd (lcd_clear);

lcdCmd (cursor_off);

lcdWriteText (1, 1, «КАЛЬКУЛЯТОР С»);

lcdWriteText (2, 1, «CLOUDX»);

delayMs (2000);

lcdCmd (lcd_clear);

lcdCmd (курсор_blink);

петля(){

Ключи = getKey ();

if (Keys! = 0 && Keys == 'C') {

lcdCmd (lcd_clear);

lcdCmd (курсор_blink);

for (a = 0; a <10; a ++) {

Аинпута [а] = 0;

Ainputb [a] = 0;

Ответ [a] = 0;

}

а = 0;

операция = 0;

check = 0;

signa = 0;

signb = 0;

}

if (check == 1 && Keys! = 0 && Keys == '=') {

lcdCmd (курсор_выкл);

inputa = atoi (Аинпута);

inputb = atoi (Ainputb);

if (signa == '-') {

inputa = - (inputa);

}

if (signb == '-') {

inputb = - (inputb);

}

if (operation == '+') {

ответ = inputa + inputb;

longTostr (Aanswer, ответ, DEC);

}

if (operation == '-') {

answer = inputa - inputb;

longTostr (Aanswer, ответ, DEC);

}

if (operation == '*') {

answer = inputa * inputb;

longTostr (Aanswer, ответ, DEC);

}

if (operation == '/') {

answer = (float) inputa / (float) inputb;

Panswer = floatTostr (ответ);

if (inputa> inputb) {

Panswer [5] = 0;

}

}

if (operation == '/') {

lcdWriteText (2, 1, «ANS:»);

lcdWriteTextCP (Panswer);

}

еще {

lcdWriteText (2, 1, «ANS:»);

lcdWriteTextCP (Ответ);

}

}

if (Keys! = 0 && (Keys == '+' || Keys == '-' || Keys == '*' || Keys == '/')) {

if (operation! = 0 && a == 0 && signb == 0 && (Keys == '-' || Keys == '+')) {

lcdWriteCP (Ключи);

if (Keys == '-' || Keys == '+') {

signb = Ключи;

}

}

if (operation == 0 && a == 0 && signa == 0 && (Keys == '-' || Keys == '+')) {

lcdWriteCP (Ключи);

if (Keys == '-' || Keys == '+') {

signa = Ключи;

}

}

if (operation == 0 && a! = 0) {

lcdWriteCP (Ключи);

operation = Ключи;

а = 0;

}

}

if (Keys! = 0 && (Keys == '0' || Keys == '1' || Keys == '2' || Keys == '3' || Keys == '4' || Keys = = '5' || Клавиши == '6' || Клавиши == '7' || Клавиши == '8' || Клавиши == '9')) {

if (operation! = 0) {

lcdWriteCP (Ключи);

Ainputb [a] = Ключи;

а ++;

check = 1;

}

if (operation == 0) {

lcdWriteCP (Ключи);

Ainputa [a] = Ключи;

а ++;

}

}

}

}

Рекомендуемые: