Keypad kullanimi
Dependencies: mbed mbed-rtos MFRC522 TextLCD keypad
main.cpp@1:2fd11c224867, 2019-10-14 (annotated)
- Committer:
- marvas
- Date:
- Mon Oct 14 07:12:08 2019 +0000
- Revision:
- 1:2fd11c224867
- Parent:
- 0:66860685087d
- Child:
- 2:e0df3db0da50
hesap makinesi
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
marvas | 1:2fd11c224867 | 1 | #include "mbed.h" |
marvas | 1:2fd11c224867 | 2 | #include "Keypad.h" |
marvas | 1:2fd11c224867 | 3 | #include "TextLCD.h" |
marvas | 1:2fd11c224867 | 4 | |
marvas | 1:2fd11c224867 | 5 | TextLCD lcd(D11, D12, D7, D8, D9, D10); // rs, e, d4-d7 |
marvas | 0:66860685087d | 6 | Keypad key(PC_4, PB_13, PB_14, PB_15, PB_1, PB_2, PB_12, PA_11); |
marvas | 1:2fd11c224867 | 7 | |
marvas | 1:2fd11c224867 | 8 | char key_table[] = { |
marvas | 1:2fd11c224867 | 9 | '1', '2', '3', '+', |
marvas | 1:2fd11c224867 | 10 | '4', '5', '6', '-', |
marvas | 1:2fd11c224867 | 11 | '7', '8', '9', '*', |
marvas | 1:2fd11c224867 | 12 | 'C', '0', '=', '/' |
marvas | 1:2fd11c224867 | 13 | }; |
marvas | 1:2fd11c224867 | 14 | Serial pc(USBTX,USBRX); |
marvas | 1:2fd11c224867 | 15 | char islem; |
marvas | 1:2fd11c224867 | 16 | float sayi=0,sayi2=0;; |
marvas | 1:2fd11c224867 | 17 | float sonuc=0; |
marvas | 1:2fd11c224867 | 18 | int main() |
marvas | 1:2fd11c224867 | 19 | { |
marvas | 1:2fd11c224867 | 20 | pc.baud(250000); |
marvas | 1:2fd11c224867 | 21 | uint32_t key_num; |
marvas | 1:2fd11c224867 | 22 | while(true) { |
marvas | 1:2fd11c224867 | 23 | if ((key_num = key.read()) != 0) { |
marvas | 1:2fd11c224867 | 24 | lcd.printf("%c",*(key_table + key_num-1)); |
marvas | 1:2fd11c224867 | 25 | pc.printf("%c \n", *(key_table + key_num-1)); |
marvas | 1:2fd11c224867 | 26 | } |
marvas | 1:2fd11c224867 | 27 | |
marvas | 1:2fd11c224867 | 28 | switch(*(key_table + key_num-1)) { |
marvas | 1:2fd11c224867 | 29 | case '0'...'9'://0'dan 9'a kadar sayılara basıldığı zaman işlem yapar |
marvas | 1:2fd11c224867 | 30 | sayi= sayi*10 + (*(key_table + key_num-1)- '0'); |
marvas | 1:2fd11c224867 | 31 | break; |
marvas | 1:2fd11c224867 | 32 | case '+'://toplama işlemi |
marvas | 1:2fd11c224867 | 33 | sayi2=sayi; |
marvas | 1:2fd11c224867 | 34 | sayi=0; |
marvas | 1:2fd11c224867 | 35 | islem='+'; |
marvas | 1:2fd11c224867 | 36 | break; |
marvas | 1:2fd11c224867 | 37 | case '-'://çıkarma işlemi |
marvas | 1:2fd11c224867 | 38 | sayi2=sayi; |
marvas | 1:2fd11c224867 | 39 | sayi=0; |
marvas | 1:2fd11c224867 | 40 | islem='-'; |
marvas | 1:2fd11c224867 | 41 | break; |
marvas | 1:2fd11c224867 | 42 | case '*'://çarpma işlemi |
marvas | 1:2fd11c224867 | 43 | sayi2=sayi; |
marvas | 1:2fd11c224867 | 44 | sayi=0; |
marvas | 1:2fd11c224867 | 45 | islem='*'; |
marvas | 1:2fd11c224867 | 46 | break; |
marvas | 1:2fd11c224867 | 47 | case '/'://bolme işlemi |
marvas | 1:2fd11c224867 | 48 | sayi2=sayi; |
marvas | 1:2fd11c224867 | 49 | sayi=0; |
marvas | 1:2fd11c224867 | 50 | islem='/'; |
marvas | 1:2fd11c224867 | 51 | break; |
marvas | 1:2fd11c224867 | 52 | case '='://eşittir |
marvas | 1:2fd11c224867 | 53 | |
marvas | 1:2fd11c224867 | 54 | if(islem=='+') |
marvas | 1:2fd11c224867 | 55 | sonuc=sayi2+sayi; |
marvas | 1:2fd11c224867 | 56 | else if(islem=='-') |
marvas | 1:2fd11c224867 | 57 | sonuc=sayi2-sayi; |
marvas | 1:2fd11c224867 | 58 | else if(islem=='*') |
marvas | 1:2fd11c224867 | 59 | sonuc=sayi2*sayi; |
marvas | 1:2fd11c224867 | 60 | else if(islem=='/') |
marvas | 1:2fd11c224867 | 61 | sonuc=sayi2/sayi; |
marvas | 1:2fd11c224867 | 62 | |
marvas | 1:2fd11c224867 | 63 | pc.printf("%f \n",sonuc); |
marvas | 1:2fd11c224867 | 64 | lcd.printf("%.3f",sonuc); |
marvas | 1:2fd11c224867 | 65 | //değişken içeriğini temizle |
marvas | 1:2fd11c224867 | 66 | //değişken içeriği temzilenmezse bir sonraki işlemde kullanılır |
marvas | 1:2fd11c224867 | 67 | |
marvas | 1:2fd11c224867 | 68 | sayi=0; |
marvas | 1:2fd11c224867 | 69 | sayi2=0; |
marvas | 1:2fd11c224867 | 70 | sonuc=0; |
marvas | 1:2fd11c224867 | 71 | break; |
marvas | 1:2fd11c224867 | 72 | case 'C': |
marvas | 1:2fd11c224867 | 73 | lcd.cls(); |
marvas | 1:2fd11c224867 | 74 | //değişken içeriğini temizle |
marvas | 1:2fd11c224867 | 75 | //değişken içeriği temzilenmezse bir sonraki işlemde kullanılır |
marvas | 1:2fd11c224867 | 76 | sayi=0; |
marvas | 1:2fd11c224867 | 77 | sayi2=0; |
marvas | 1:2fd11c224867 | 78 | sonuc=0; |
marvas | 1:2fd11c224867 | 79 | break; |
marvas | 1:2fd11c224867 | 80 | |
marvas | 1:2fd11c224867 | 81 | } |
marvas | 1:2fd11c224867 | 82 | |
marvas | 1:2fd11c224867 | 83 | |
marvas | 1:2fd11c224867 | 84 | } |
marvas | 1:2fd11c224867 | 85 | } |