Indholdsfortegnelse:

Enkel og standard lommeregner med CloudX: 5 trin
Enkel og standard lommeregner med CloudX: 5 trin

Video: Enkel og standard lommeregner med CloudX: 5 trin

Video: Enkel og standard lommeregner med CloudX: 5 trin
Video: Lær JavaScript #13 | Eksempel 2 - Lommeregner med JavaScript 2024, Juli
Anonim
Enkel og standard lommeregner med CloudX
Enkel og standard lommeregner med CloudX

I denne vejledning lærer vi om, hvordan du laver en enkel og standard lommeregner med CloudX. Klik venligst på Hvis du ikke har læst noget på interfacetastatur med CloudX før, her er vores mål at lære dig, hvordan du kan udvikle din egen hardware -lommeregner ved hjælp af cloudX M633.

Vores mål er at kunne designe en lommeregner, der kan udføre addition (+), subtraktion (-), multiplikation (*) og division (/) med resultater i decimaler helt ned til 0.0000001 og i hele tal op til 90000000. Regnemaskinen har evnen til at opdage matematiske fejl osv. Ethvert barn, studerende og amatør bør være i stand til at lave dette fantastiske projekt.

Trin 1: HARDWARE -KRAV

HARDWARE -KRAV
HARDWARE -KRAV
HARDWARE -KRAV
HARDWARE -KRAV

1x CloudX mikrokontroller

1x CloudX SoftCard

1x USB -kabel

1x 4x4 Matrix -tastatur

1x 16x2 LCD Jumper Wires

1x 1kΩ modstand

4x 10kΩ modstande

Trin 2: PIN -TILSLUTNING

PIN -TILSLUTNING
PIN -TILSLUTNING
PIN -TILSLUTNING
PIN -TILSLUTNING
PIN -TILSLUTNING
PIN -TILSLUTNING

CloudX Connection pins med LCD og CloudX Connection pins med tastatur

Trin 3: CIRCUIT DIAGRAM

KREDSLØBSDIAGRAM
KREDSLØBSDIAGRAM

Trin 4: SOFTWARE

/ * * Fil: Smart KeyPad Lock System. C

* Forfatter: hættetrøje

*

* Oprettet den 20. marts 2018, 11:21

*/

#omfatte

#omfatte

#omfatte

#omfatte

#define NumberOfRows 4 // sæt display til fire rækker

#define NumberOfColumns 4 // sæt visning til tre kolonner

char TastaturCharacters [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;

underskrevet float svar;

char * Panswer;

char Aanswer [10];

signeret lang inputa;

char Ainputa [10];

signeret lang inputb;

char Ainputb [10];

Opsætning(){

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

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

lcdCmd (lcd_clear);

lcdCmd (cursor_off);

lcdWriteText (1, 1, "CALCULATOR WITH");

lcdWriteText (2, 1, "CLOUDX");

delayMs (2000);

lcdCmd (lcd_clear);

lcdCmd (cursor_blink);

loop () {

Nøgler = getKey ();

hvis (nøgler! = 0 && nøgler == 'C') {

lcdCmd (lcd_clear);

lcdCmd (cursor_blink);

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

Ainputa [a] = 0;

Ainputb [a] = 0;

Svar [a] = 0;

}

a = 0;

operation = 0;

check = 0;

signa = 0;

signb = 0;

}

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

lcdCmd (cursor_off);

inputa = atoi (Ainputa);

inputb = atoi (Ainputb);

hvis (signa == '-') {

inputa = -(inputa);

}

hvis (signb == '-') {

inputb = -(inputb);

}

hvis (operation == '+') {

svar = inputa + inputb;

longTostr (Aanswer, svar, DEC);

}

hvis (operation == '-') {

svar = inputa - inputb;

longTostr (Aanswer, svar, DEC);

}

hvis (operation == '*') {

svar = inputa * inputb;

longTostr (Aanswer, svar, DEC);

}

hvis (operation == '/') {

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

Panswer = floatTostr (svar);

hvis (inputa> inputb) {

Panswer [5] = 0;

}

}

hvis (operation == '/') {

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

lcdWriteTextCP (Panswer);

}

andet {

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

lcdWriteTextCP (Aanswer);

}

}

if (Nøgler! = 0 && (nøgler == '+' || nøgler == '-' || nøgler == '*' || nøgler == '/')) {

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

lcdWriteCP (nøgler);

hvis (nøgler == '-' || nøgler == '+') {

signb = nøgler;

}

}

hvis (operation == 0 && a == 0 && signa == 0 && (nøgler == '-' || nøgler == '+')) {

lcdWriteCP (nøgler);

hvis (nøgler == '-' || nøgler == '+') {

signa = Nøgler;

}

}

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

lcdWriteCP (nøgler);

operation = nøgler;

a = 0;

}

}

hvis (nøgler! = 0 && (nøgler == '0' || nøgler == '1' || nøgler == '2' || nøgler == '3' || nøgler == '4' || nøgler = = '5' || Nøgler == '6' || Nøgler == '7' || Nøgler == '8' || Nøgler == '9')) {

hvis (operation! = 0) {

lcdWriteCP (nøgler);

Ainputb [a] = Nøgler;

a ++;

check = 1;

}

hvis (operation == 0) {

lcdWriteCP (nøgler);

Ainputa [a] = Nøgler;

a ++;

}

}

}

}

Anbefalede: