Keypad kullanimi

Dependencies:   mbed mbed-rtos MFRC522 TextLCD keypad

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?

UserRevisionLine numberNew 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 }