Innholdsfortegnelse:

Enkel og standard kalkulator med CloudX: 5 trinn
Enkel og standard kalkulator med CloudX: 5 trinn

Video: Enkel og standard kalkulator med CloudX: 5 trinn

Video: Enkel og standard kalkulator med CloudX: 5 trinn
Video: Har din HPbII Plus-kalkulator riktige innstillinger? 2024, Juli
Anonim
Enkel og standard kalkulator med CloudX
Enkel og standard kalkulator med CloudX

I denne opplæringen vil vi lære hvordan du lager en enkel og standard kalkulator med CloudX. Klikk Hvis du ikke har lest noe på tastaturet Interfacing med CloudX før, her er målet vårt å lære deg hvordan du kan utvikle din egen maskinvarekalkulator som bruker cloudX M633.

Målet vårt er å kunne designe en kalkulator som kan gjøre addisjon (+), subtraksjon (-), multiplikasjon (*) og divisjon (/) med resultater i desimaler så lave som 0.0000001 og i hele tall opp til 90000000. Kalkulatoren har evnen til å oppdage matematiske feil etc. Alle barn, studenter og hobbyister bør kunne gjøre dette fantastiske prosjektet.

Trinn 1: MASKINKRAV

MASKINKRAV
MASKINKRAV
MASKINKRAV
MASKINKRAV

1x CloudX mikrokontroller

1x CloudX SoftCard

1x USB -kabel

1x 4x4 Matrix -tastatur

1x 16x2 LCD -ledertråder

1x 1kΩ motstand

4x 10kΩ motstander

Trinn 2: PIN -TILKOBLING

PIN -TILKOBLING
PIN -TILKOBLING
PIN -TILKOBLING
PIN -TILKOBLING
PIN -TILKOBLING
PIN -TILKOBLING

CloudX Connection pins med LCD og CloudX Connection pins med tastatur

Trinn 3: KRETSDIAGRAM

KRETSDIAGRAM
KRETSDIAGRAM

Trinn 4: PROGRAMVARE

/ * * Fil: Smart KeyPad Lock System. C

* Forfatter: hettegenser

*

* Opprettet 20. mars 2018 kl. 11:21

*/

#inkludere

#inkludere

#inkludere

#inkludere

#define NumberOfRows 4 // sett displayet til fire rader

#define NumberOfColumns 4 // sett visningen til tre kolonner

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;

signert float svar;

røye * Panswer;

char Aanswer [10];

signert lang inputa;

røye Ainputa [10];

signert lang inputb;

røye Ainputb [10];

setup () {

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

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

lcdCmd (lcd_clear);

lcdCmd (cursor_off);

lcdWriteText (1, 1, "KALKULATOR MED");

lcdWriteText (2, 1, "CLOUDX");

delayMs (2000);

lcdCmd (lcd_clear);

lcdCmd (cursor_blink);

Løkke(){

Nøkler = getKey ();

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

lcdCmd (lcd_clear);

lcdCmd (cursor_blink);

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

Ainputa [a] = 0;

Ainputb [a] = 0;

Svar [a] = 0;

}

a = 0;

operasjon = 0;

sjekk = 0;

signa = 0;

signb = 0;

}

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

lcdCmd (cursor_off);

inputa = atoi (Ainputa);

inputb = atoi (Ainputb);

hvis (signa == '-') {

inputa = -(inputa);

}

if (signb == '-') {

inputb = -(inputb);

}

hvis (operasjon == '+') {

svar = inputa + inputb;

longTostr (Aanswer, svar, DEC);

}

if (operasjon == '-') {

svar = inputa - inputb;

longTostr (Aanswer, svar, DEC);

}

if (operasjon == '*') {

svar = inputa * inputb;

longTostr (Aanswer, svar, DEC);

}

if (operasjon == '/') {

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

Panswer = floatTostr (svar);

if (inputa> inputb) {

Panswer [5] = 0;

}

}

if (operasjon == '/') {

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

lcdWriteTextCP (Panswer);

}

annet {

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

lcdWriteTextCP (Aanswer);

}

}

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

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

lcdWriteCP (nøkler);

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

signb = Nøkler;

}

}

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

lcdWriteCP (nøkler);

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

signa = Nøkler;

}

}

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

lcdWriteCP (nøkler);

operasjon = Nøkler;

a = 0;

}

}

if (Keys! = 0 && (Keys == '0' || Keys == '1' || Keys == '2' || Keys == '3' || Keys == '4' || Keys = = '5' || Nøkler == '6' || Nøkler == '7' || Nøkler == '8' || Nøkler == '9')) {

hvis (operasjon! = 0) {

lcdWriteCP (nøkler);

Ainputb [a] = Nøkler;

a ++;

sjekk = 1;

}

hvis (operasjon == 0) {

lcdWriteCP (nøkler);

Ainputa [a] = Nøkler;

a ++;

}

}

}

}

Anbefalt: