Სარჩევი:

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

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

ვიდეო: მარტივი და სტანდარტული კალკულატორი CloudX– ით: 5 ნაბიჯი
ვიდეო: რა არის სტანდარტული ჩანაწერი 2024, ნოემბერი
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 ++;

}

}

}

}

გირჩევთ: