Keypad kullanimi
Dependencies: mbed mbed-rtos MFRC522 TextLCD keypad
Diff: main.cpp
- Revision:
- 1:2fd11c224867
- Parent:
- 0:66860685087d
- Child:
- 2:e0df3db0da50
--- a/main.cpp Wed Oct 09 08:07:49 2019 +0000 +++ b/main.cpp Mon Oct 14 07:12:08 2019 +0000 @@ -1,22 +1,85 @@ - #include "mbed.h" - #include "Keypad.h" - +#include "mbed.h" +#include "Keypad.h" +#include "TextLCD.h" + +TextLCD lcd(D11, D12, D7, D8, D9, D10); // rs, e, d4-d7 Keypad key(PC_4, PB_13, PB_14, PB_15, PB_1, PB_2, PB_12, PA_11); - - char key_table[] = { - '1', '2', '3', 'A', - '4', '5', '6', 'B', - '7', '8', '9', 'C', - '*', '0', '#', 'D' - }; - Serial pc(USBTX,USBRX); - int main() { - pc.baud(250000); - uint32_t key_num; - while(true) { - while ((key_num = key.read()) != 0){ - pc.printf("%c\r\n", *(key_table + key_num-1)); - } - - } - } \ No newline at end of file + +char key_table[] = { +'1', '2', '3', '+', +'4', '5', '6', '-', +'7', '8', '9', '*', +'C', '0', '=', '/' +}; +Serial pc(USBTX,USBRX); +char islem; +float sayi=0,sayi2=0;; +float sonuc=0; +int main() +{ +pc.baud(250000); +uint32_t key_num; +while(true) { +if ((key_num = key.read()) != 0) { +lcd.printf("%c",*(key_table + key_num-1)); +pc.printf("%c \n", *(key_table + key_num-1)); +} + +switch(*(key_table + key_num-1)) { +case '0'...'9'://0'dan 9'a kadar sayılara basıldığı zaman işlem yapar +sayi= sayi*10 + (*(key_table + key_num-1)- '0'); +break; +case '+'://toplama işlemi +sayi2=sayi; +sayi=0; +islem='+'; +break; +case '-'://çıkarma işlemi +sayi2=sayi; +sayi=0; +islem='-'; +break; +case '*'://çarpma işlemi +sayi2=sayi; +sayi=0; +islem='*'; +break; +case '/'://bolme işlemi +sayi2=sayi; +sayi=0; +islem='/'; +break; +case '='://eşittir + +if(islem=='+') +sonuc=sayi2+sayi; +else if(islem=='-') +sonuc=sayi2-sayi; +else if(islem=='*') +sonuc=sayi2*sayi; +else if(islem=='/') +sonuc=sayi2/sayi; + +pc.printf("%f \n",sonuc); +lcd.printf("%.3f",sonuc); +//değişken içeriğini temizle +//değişken içeriği temzilenmezse bir sonraki işlemde kullanılır + +sayi=0; +sayi2=0; +sonuc=0; +break; +case 'C': +lcd.cls(); +//değişken içeriğini temizle +//değişken içeriği temzilenmezse bir sonraki işlemde kullanılır +sayi=0; +sayi2=0; +sonuc=0; +break; + +} + + +} +} \ No newline at end of file