Keypad kullanimi
Dependencies: mbed mbed-rtos MFRC522 TextLCD keypad
main.cpp
- Committer:
- marvas
- Date:
- 2019-10-14
- Revision:
- 1:2fd11c224867
- Parent:
- 0:66860685087d
- Child:
- 2:e0df3db0da50
File content as of revision 1:2fd11c224867:
#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', '+', '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; } } }