Innehållsförteckning:

Enkel och standardräknare med CloudX: 5 steg
Enkel och standardräknare med CloudX: 5 steg

Video: Enkel och standardräknare med CloudX: 5 steg

Video: Enkel och standardräknare med CloudX: 5 steg
Video: 10-potenser på räknaren 2024, December
Anonim
Enkel och standardräknare med CloudX
Enkel och standardräknare med CloudX

I den här självstudien kommer vi att lära oss hur man gör en enkel och standardräknare med CloudX. Klicka om du inte har läst någonting på gränssnittsknappsatsen med CloudX tidigare. Här är vårt mål att lära dig hur du kan utveckla din egen hårdvarukalkylator med cloudX M633.

Vårt mål är att kunna designa en räknare som kan göra addition (+), subtraktion (-), multiplikation (*) och division (/) med resultat i decimaler så låga som 0.0000001 och i heltal upp till 90000000. Räknaren har förmågan att upptäcka matematiska fel etc. Varje barn, student och hobbyist ska kunna göra detta fantastiska projekt.

Steg 1: MASKINKRAV

MASKINKRAV
MASKINKRAV
MASKINKRAV
MASKINKRAV

1x CloudX mikrokontroller

1x CloudX SoftCard

1x USB -kabel

1x 4x4 Matrix -knappsats

1x 16x2 LCD -bygeltrådar

1x 1kΩ motstånd

4x 10kΩ motstånd

Steg 2: PIN -ANSLUTNING

PIN -ANSLUTNING
PIN -ANSLUTNING
PIN -ANSLUTNING
PIN -ANSLUTNING
PIN -ANSLUTNING
PIN -ANSLUTNING

CloudX -anslutningsnålar med LCD och CloudX -anslutningsnålar med knappsats

Steg 3: CIRCUIT DIAGRAM

KRETSSCHEMA
KRETSSCHEMA

Steg 4: PROGRAMVARA

/ * * Fil: Smart KeyPad Lock System. C

* Författare: hoodie

*

* Skapad den 20 mars 2018, 11:21

*/

#omfatta

#omfatta

#omfatta

#omfatta

#define NumberOfRows 4 // ställ in skärmen på fyra rader

#define NumberOfColumns 4 // ställ in displayen på tre kolumner

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;

undertecknat float svar;

char * Panswer;

röding Aanswer [10];

signerad lång inputa;

röding Ainputa [10];

signerad lång inputb;

röding Ainputb [10];

uppstart(){

Knappsats (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);

slinga(){

Nycklar = getKey ();

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

lcdCmd (lcd_clear);

lcdCmd (cursor_blink);

för (a = 0; a <10; a ++) {

Ainputa [a] = 0;

Ainputb [a] = 0;

Aanswer [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);

if (signa == '-') {

inputa = -(inputa);

}

if (signb == '-') {

inputb = -(inputb);

}

if (operation == '+') {

svar = inputa + inputb;

longTostr (Aanswer, svar, DEC);

}

if (operation == '-') {

svar = inputa - inputb;

longTostr (Aanswer, svar, DEC);

}

if (operation == '*') {

svar = inputa * inputb;

longTostr (Aanswer, svar, DEC);

}

if (operation == '/') {

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

Panswer = floatTostr (svar);

if (inputa> inputb) {

Panswer [5] = 0;

}

}

if (operation == '/') {

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

lcdWriteTextCP (Panswer);

}

annat {

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

lcdWriteTextCP (Aanswer);

}

}

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

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

lcdWriteCP (nycklar);

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

signb = Nycklar;

}

}

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

lcdWriteCP (nycklar);

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

signa = Nycklar;

}

}

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

lcdWriteCP (nycklar);

operation = Nycklar;

a = 0;

}

}

if (Nycklar! = 0 && (nycklar == '0' || nycklar == '1' || nycklar == '2' || nycklar == '3' || nycklar == '4' || nycklar = = '5' || Nycklar == '6' || Nycklar == '7' || Nycklar == '8' || Nycklar == '9')) {

if (operation! = 0) {

lcdWriteCP (nycklar);

Ainputb [a] = Nycklar;

a ++;

check = 1;

}

if (operation == 0) {

lcdWriteCP (nycklar);

Ainputa [a] = Nycklar;

a ++;

}

}

}

}

Steg 5:

Rekommenderad: