Obsah:

Jednoduchá a standardní kalkulačka s CloudX: 5 kroků
Jednoduchá a standardní kalkulačka s CloudX: 5 kroků

Video: Jednoduchá a standardní kalkulačka s CloudX: 5 kroků

Video: Jednoduchá a standardní kalkulačka s CloudX: 5 kroků
Video: Jak na kalkulačku: 1. závorky a zlomky (složená čísla) 2024, Listopad
Anonim
Jednoduchá a standardní kalkulačka s CloudX
Jednoduchá a standardní kalkulačka s CloudX

V tomto tutoriálu se naučíme, jak vytvořit jednoduchou a standardní kalkulačku s CloudX. Klikněte prosím Pokud jste si na klávesnici Propojovací rozhraní s CloudX dosud nic nečetli, zde je naším cílem naučit vás, jak můžete rozvíjet své vlastní hardwarová kalkulačka využívající cloudX M633.

Naším cílem je umět navrhnout kalkulačku, která umí sčítání (+), odčítání (-), násobení (*) a dělení (/) s výsledky v desetinných číslech až od 0,0000001 a v celých číslech až do 90000000. má schopnost detekovat matematické chyby atd. Každý kluk, student a fanda by měl zvládnout tento fantastický projekt.

Krok 1: HARDWAROVÉ POŽADAVKY

HARDWAROVÉ POŽADAVKY
HARDWAROVÉ POŽADAVKY
HARDWAROVÉ POŽADAVKY
HARDWAROVÉ POŽADAVKY

1 x mikrokontrolér CloudX

1x SoftCard CloudX

1x USB kabel

1x maticová klávesnice 4x4

1x 16x2 propojovací vodiče LCD

1x 1kΩ rezistor

4x 10kΩ odpory

Krok 2: PŘIPOJENÍ PIN

PŘIPOJENÍ PIN
PŘIPOJENÍ PIN
PŘIPOJENÍ PIN
PŘIPOJENÍ PIN
PŘIPOJENÍ PIN
PŘIPOJENÍ PIN

Připojovací kolíky CloudX s LCD a připojovací kolíky CloudX s klávesnicí

Krok 3: SCHÉMA OBVODU

KRUHOVÝ DIAGRAM
KRUHOVÝ DIAGRAM

Krok 4: SOFTWARE

/ * * Soubor: Smart KeyPad Lock System.c

* Autor: mikina

*

* Vytvořeno 20. března 2018, 11:21

*/

#zahrnout

#zahrnout

#zahrnout

#zahrnout

#define NumberOfRows 4 // nastavení zobrazení na čtyři řádky

#define NumberOfColumns 4 // nastavení zobrazení na tři sloupce

char Znaky klávesnice [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 Klíče, a = 0, kontrola = 0, operace = 0, signa = 0, signb = 0;

podepsaná plovoucí odpověď;

char * Panswer;

char Aanswer [10];

podepsané dlouhé vstupy;

char Ainputa [10];

podepsaný dlouhý vstupb;

char Ainputb [10];

založit(){

Nastavení klávesnice (PULLDOWNCOL, RowPins, ColumnsPins, NumberOfRows, NumberOfColumns, KeypadCharacter);

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

lcdCmd (lcd_clear);

lcdCmd (cursor_off);

lcdWriteText (1, 1, "KALKULÁTOR S");

lcdWriteText (2, 1, "CLOUDX");

delayMs (2000);

lcdCmd (lcd_clear);

lcdCmd (cursor_blink);

smyčka(){

Klíče = getKey ();

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

lcdCmd (lcd_clear);

lcdCmd (cursor_blink);

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

Ainputa [a] = 0;

Ainputb [a] = 0;

Odpověď [a] = 0;

}

a = 0;

operace = 0;

šek = 0;

signa = 0;

signb = 0;

}

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

lcdCmd (cursor_off);

inputa = atoi (Ainputa);

inputb = atoi (Ainputb);

if (signa == '-') {

vstupa = -(vstupa);

}

if (signb == '-') {

vstupb = -(vstupb);

}

if (operation == '+') {

odpověď = vstupa + vstupb;

longTostr (Aanswer, odpověď, DEC);

}

if (operation == '-') {

odpověď = vstupa - vstupb;

longTostr (Aanswer, odpověď, DEC);

}

if (operation == '*') {

odpověď = vstupa * vstupb;

longTostr (Aanswer, odpověď, DEC);

}

if (operation == '/') {

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

Panswer = floatTostr (odpověď);

if (inputa> inputb) {

Panswer [5] = 0;

}

}

if (operation == '/') {

lcdWriteText (2, 1, "ANS:");

lcdWriteTextCP (Panswer);

}

jinak {

lcdWriteText (2, 1, "ANS:");

lcdWriteTextCP (odpověď);

}

}

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

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

lcdWriteCP (klíče);

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

signb = klíče;

}

}

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

lcdWriteCP (klíče);

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

signa = klíče;

}

}

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

lcdWriteCP (klíče);

operace = klíče;

a = 0;

}

}

if (Keys! = 0 && (Keys == '0' || Keys == '1' || Keys == '2' || Keys == '3' || Keys == '4' || Keys = = '5' || Klíče == '6' || Klíče == '7' || Klíče == '8' || Klíče == '9')) {

if (operace! = 0) {

lcdWriteCP (klíče);

Ainputb [a] = klíče;

a ++;

šek = 1;

}

if (operace == 0) {

lcdWriteCP (klíče);

Ainputa [a] = klíče;

a ++;

}

}

}

}

Doporučuje: