მარტივი და სტანდარტული კალკულატორი CloudX– ით: 5 ნაბიჯი
მარტივი და სტანდარტული კალკულატორი CloudX– ით: 5 ნაბიჯი
Anonim
მარტივი და სტანდარტული კალკულატორი CloudX- ით
მარტივი და სტანდარტული კალკულატორი CloudX- ით

ამ გაკვეთილში ჩვენ ვისწავლით თუ როგორ უნდა გავაკეთოთ მარტივი და სტანდარტული კალკულატორი CloudX- ით, გთხოვთ დააწკაპუნეთ თუ თქვენ ჯერ არაფერი წაგიკითხავთ CloudX- თან Interfacing კლავიატურაზე, აქ, ჩვენი მიზანია გვასწავლოთ თუ როგორ შეგიძლიათ განავითაროთ თქვენი საკუთარი აპარატურის კალკულატორი cloudX M633 გამოყენებით.

ჩვენი მიზანია შევძლოთ შევქმნათ კალკულატორი, რომელსაც შეუძლია შეკრება (+), გამოკლება (-), გამრავლება (*) და გაყოფა (/) შედეგებით ათეულობით 0.0000001 და მთლიანი რიცხვებით 90000000-მდე. კალკულატორი აქვს უნარი გამოავლინოს მათემატიკური შეცდომები და ა.შ. ყველა ბავშვს, სტუდენტს და ჰობისტს უნდა შეეძლოს ამ ფანტასტიკური პროექტის გაკეთება.

ნაბიჯი 1: HARDWARE მოთხოვნები

HARDWARE მოთხოვნები
HARDWARE მოთხოვნები
HARDWARE მოთხოვნები
HARDWARE მოთხოვნები

1x CloudX მიკროკონტროლი

1x CloudX SoftCard

1 x USB კაბელი

1x 4x4 მატრიცის კლავიატურა

1x 16x2 LCD Jumper მავთულები

1x 1kΩ რეზისტორი

4x 10kΩ რეზისტორები

ნაბიჯი 2: PIN კავშირი

PIN კავშირი
PIN კავშირი
PIN კავშირი
PIN კავშირი
PIN კავშირი
PIN კავშირი

CloudX კავშირის ქინძისთავები LCD- ით და CloudX კავშირის ქინძისთავები კლავიატურით

ნაბიჯი 3: წრედის დიაგრამა

ᲬᲠᲘᲣᲚᲘ ᲓᲘᲐᲒᲠᲐᲛᲐ
ᲬᲠᲘᲣᲚᲘ ᲓᲘᲐᲒᲠᲐᲛᲐ

ნაბიჯი 4: პროგრამული უზრუნველყოფა

/ * * ფაილი: Smart KeyPad Lock System.c

* ავტორი: hoodie

*

* შექმნილია 2018 წლის 20 მარტს, დილის 11:21 საათზე

*/

#ჩართეთ

#ჩართეთ

#ჩართეთ

#ჩართეთ

#განსაზღვრეთ რიგები 4 რიგებში // დააყენეთ ჩვენება ოთხ სტრიქონზე

#განსაზღვრეთ სვეტების რაოდენობა 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 კლავიშები, a = 0, შემოწმება = 0, ოპერაცია = 0, signa = 0, signb = 0;

ხელმოწერილი float პასუხი;

char * Panswer;

char Aanswer [10];

ხელმოწერილი გრძელი შეყვანა;

char Ainputa [10];

ხელმოწერილი გრძელი შეყვანა;

char Ainputb [10];

აწყობა(){

კლავიატურის დაყენება (PULLDOWNCOL, RowPins, ColumnsPins, NumberOfRows, NumberOfColumns, KeypadCharacters);

lcd დაყენება (1, 2, 3, 4, 5, 6);

lcdCmd (lcd_clear);

lcdCmd (კურსორის_ გამორთვა);

lcdWriteText (1, 1, "კალკულატორი ერთად");

lcdWriteText (2, 1, "CLOUDX");

delayMs (2000);

lcdCmd (lcd_clear);

lcdCmd (კურსორის_ ბმული);

მარყუჟი () {

გასაღებები = getKey ();

if (გასაღებები! = 0 && გასაღებები == 'C') {

lcdCmd (lcd_clear);

lcdCmd (კურსორი_ ბმული);

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

აინპუტა [a] = 0;

Ainputb [a] = 0;

პასუხი [a] = 0;

}

a = 0;

ოპერაცია = 0;

შემოწმება = 0;

signa = 0;

signb = 0;

}

თუ (შეამოწმეთ == 1 && გასაღებები! = 0 && გასაღებები == '=') {

lcdCmd (კურსორის_ გამორთვა);

inputa = ატოი (აინპუტა);

inputb = atoi (Ainputb);

თუ (signa == '-') {

inputa = -(inputa);

}

თუ (signb == '-') {

inputb = -(inputb);

}

თუ (ოპერაცია == '+') {

პასუხი = inputa + inputb;

longTostr (Aanswer, answer, DEC);

}

თუ (ოპერაცია == '-') {

პასუხი = inputa - inputb;

longTostr (Aanswer, answer, DEC);

}

თუ (ოპერაცია == '*') {

პასუხი = inputa * inputb;

longTostr (Aanswer, answer, DEC);

}

თუ (ოპერაცია == '/') {

პასუხი = (float) inputa ((float) inputb;

Panswer = floatTostr (პასუხი);

if (inputa> inputb) {

Panswer [5] = 0;

}

}

თუ (ოპერაცია == '/') {

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

lcdWriteTextCP (Panswer);

}

სხვა {

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

lcdWriteTextCP (პასუხი);

}

}

if (გასაღებები! = 0 && (გასაღებები == '+' || გასაღებები == '-' || გასაღებები == '*' || გასაღებები == '/')) {

თუ (ოპერაცია! = 0 && a == 0 && signb == 0 && (გასაღებები == '-' || გასაღებები == '+')) {

lcdWriteCP (გასაღებები);

თუ (გასაღებები == '-' || გასაღებები == '+') {

signb = გასაღებები;

}

}

if (ოპერაცია == 0 && a == 0 && signa == 0 && (გასაღებები == '-' || გასაღებები == '+')) {

lcdWriteCP (გასაღებები);

თუ (გასაღებები == '-' || გასაღებები == '+') {

signa = გასაღებები;

}

}

თუ (ოპერაცია == 0 && a! = 0) {

lcdWriteCP (გასაღებები);

ოპერაცია = გასაღებები;

a = 0;

}

}

if (გასაღებები! = 0 && (გასაღებები == '0' || გასაღებები == '1' || გასაღებები == '2' || გასაღებები == '3' || გასაღებები == '4' || გასაღებები = = '5' || გასაღებები == '6' || გასაღებები == '7' || გასაღებები == '8' || გასაღებები == '9'))) {

თუ (ოპერაცია! = 0) {

lcdWriteCP (გასაღებები);

Ainputb [a] = გასაღებები;

a ++;

შემოწმება = 1;

}

თუ (ოპერაცია == 0) {

lcdWriteCP (გასაღებები);

აინპუტა [a] = გასაღებები;

a ++;

}

}

}

}

გირჩევთ: