Spisu treści:

Prosty i standardowy kalkulator z CloudX: 5 kroków
Prosty i standardowy kalkulator z CloudX: 5 kroków

Wideo: Prosty i standardowy kalkulator z CloudX: 5 kroków

Wideo: Prosty i standardowy kalkulator z CloudX: 5 kroków
Wideo: [#229] Azure DevOps - czy to już koniec Jenkinsa? – Gerard Larwa, Łukasz Sołtysiński, Maciej Ptak 2024, Lipiec
Anonim
Prosty i standardowy kalkulator z CloudX
Prosty i standardowy kalkulator z CloudX

W tym samouczku nauczymy się, jak zrobić prosty i standardowy kalkulator za pomocą CloudX. Kliknij Jeśli wcześniej nic nie czytałeś na temat Łączenie klawiatury z CloudX, Tutaj naszym celem jest nauczenie Cię, jak możesz rozwijać swoje własny kalkulator sprzętowy wykorzystujący cloudX M633.

Naszym celem jest zaprojektowanie kalkulatora, który może wykonywać dodawanie (+), odejmowanie (-), mnożenie (*) i dzielenie (/) z wynikami dziesiętnymi od 0,000001, a liczbami całkowitymi do 90000000. Kalkulator posiada umiejętność wykrywania błędów matematycznych itp. Każdy dzieciak, uczeń i hobbysta powinien umieć wykonać ten fantastyczny projekt.

Krok 1: WYMAGANIA SPRZĘTOWE

WYMAGANIA SPRZĘTOWE
WYMAGANIA SPRZĘTOWE
WYMAGANIA SPRZĘTOWE
WYMAGANIA SPRZĘTOWE

1x Mikrokontroler CloudX

1x karta miękka CloudX

1x kabel USB

1x klawiatura matrycowa 4x4

Przewody połączeniowe 1x16x2 LCD

Rezystor 1x 1kΩ

Rezystory 4x 10kΩ

Krok 2: POŁĄCZENIE PIN

POŁĄCZENIE PIN
POŁĄCZENIE PIN
POŁĄCZENIE PIN
POŁĄCZENIE PIN
POŁĄCZENIE PIN
POŁĄCZENIE PIN

Piny połączenia CloudX z wyświetlaczem LCD i Piny połączenia CloudX z klawiaturą

Krok 3: SCHEMAT OBWODÓW

SCHEMAT OBWODU
SCHEMAT OBWODU

Krok 4: OPROGRAMOWANIE

/* * Plik: Inteligentna blokada klawiatury System.c

* Autor: bluza z kapturem

*

* Utworzono 20 marca 2018 o godzinie 11:21

*/

#włączać

#włączać

#włączać

#włączać

#define NumberOfRows 4 // ustaw wyświetlanie na cztery wiersze

#define NumberOfColumns 4 // ustaw wyświetlanie na trzy kolumny

char Znaki Klawiatury[LiczbaWierszy][LiczbaKolumn] = {

'1', '2', '3', '+', '4', '5', '6', '-', '7', '8', '9', '*', „C”, „0”, „=”, „/”

};

char RowPins[liczbaRow] = {7, 8, 9, 10};

char ColumnsPins[LiczbaKolumn] = {11, 12, 13, 14};

char Keys, a=0, check =0, operacja=0, signa=0, signb=0;

podpisana odpowiedź zmiennoprzecinkowa;

znak * Odpowiedź;

char Odpowiedź[10];

podpisany długi inputa;

char Ainputa[10];

podpisany długi inputb;

char Ainputb[10];

Ustawiać(){

Ustawienie klawiatury (PULLDOWNCOL, RowPins, ColumnsPins, NumberOfRows, NumberOfColumns, KeypadCharacters);

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

lcdCmd(lcd_clear);

lcdCmd(kursor_off);

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

lcdWriteText(2, 1, " CLOUDX ");

opóźnienieMs(2000);

lcdCmd(lcd_clear);

lcdCmd(kursor_blink);

pętla(){

Klucze=getKey();

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

lcdCmd(lcd_clear);

lcdCmd(kursor_blink);

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

Ainputa[a]=0;

Wejścieb[a]=0;

Odpowiedź[a]=0;

}

a=0;

operacja=0;

sprawdź = 0;

znak =0;

znakb = 0;

}

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

lcdCmd(kursor_off);

inputa = atoi(Ainputa);

inputb = atoi(Ainputb);

if(signa=='-'){

wejściea = -(wejście);

}

if(signb=='-'){

wejścieb = -(wejścieb);

}

if(operacja == '+'){

odpowiedź = wejściea + wejścieb;

longTostr(Odpowiedź, odpowiedź, DEC);

}

if(operacja == '-'){

odpowiedź = inputa - inputb;

longTostr(Odpowiedź, odpowiedź, DEC);

}

if(operacja == '*'){

odpowiedź = wejściea * wejścieb;

longTostr(Odpowiedź, odpowiedź, DEC);

}

if(operacja == '/'){

odpowiedź = (zmiennoprzecinkowa)inputa / (zmiennoprzecinkowa)inputb;

Podpowiedź = floatTostr(odpowiedź);

if(wejście > wejścieb){

Podpowiedź[5]=0;

}

}

if(operacja == '/'){

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

lcdWriteTextCP(Podpowiedź);

}

w przeciwnym razie {

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

lcdWriteTextCP(Odpowiedź);

}

}

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

if(operacja != 0 && a==0 && signb ==0 && (Klawisze=='-'||Klawisze=='+')){

lcdWriteCP(Klucze);

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

znakb = klucze;

}

}

if(operacja == 0 && a == 0 && znak ==0 && (Klawisze=='-'||Klawisze=='+')){

lcdWriteCP(Klucze);

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

znak = klucze;

}

}

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

lcdWriteCP(Klucze);

operacja = klucze;

a=0;

}

}

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

jeśli (operacja != 0){

lcdWriteCP(Klucze);

Ainputb[a] = Klucze;

a++;

sprawdź=1;

}

if(operacja == 0){

lcdWriteCP(Klucze);

Ainputa[a] = Klucze;

a++;

}

}

}

}

Zalecana: