dort islem yapan hesap makinesi

Dependencies:   mbed TextLCD keypad

Revision:
4:1df9a3a723ff
Parent:
3:e22883906b56
Child:
5:cfcb666662ff
--- a/main.cpp	Sun Dec 15 07:38:26 2019 +0000
+++ b/main.cpp	Wed Feb 26 11:11:06 2020 +0000
@@ -2,135 +2,81 @@
 #include "TextLCD.h"
 #include "Keypad.h"
 #include <iostream>
-#include "MFRC522.h"
 
+DigitalOut bzr(PB_7);
 Serial pc(USBTX,USBRX);
-//KL25Z Pins for MFRC522 SPI interface
-#define SPI_MOSI    PA_7 //Master output slave input
-#define SPI_MISO    PA_6  //Master input slave Output
-#define SPI_SCLK    PA_5 //SCK Clock pulse saat darbesi
-#define SPI_CS      PB_6 //SDA data pini
-// KL25Z Pin for MFRC522 reset
-#define MF_RESET    PC_7 //RST
 
-MFRC522  RfChip(SPI_MOSI, SPI_MISO, SPI_SCLK, SPI_CS, MF_RESET);
-DigitalOut bzr(PB_7);
-DigitalOut role(PA_5);
-char sifre[4];
-uint8_t sayac=0;
-uint8_t hata=3;
-char basilantus;
+float sayi[4]= {0,0,0,0};
+/*
+sayi[0] girilen sayi
+sayi[1] 1. sayi
+sayi[2] 2sayi
+sayi[3] sonuc
+*/
+char basilantus,islem;
 TextLCD lcd(PB_0,PA_4,PC_3,PC_2,PB_3,PA_10);
 Keypad key(PC_12, PC_10, PC_11,PD_2,PA_13,PA_14,PA_15,PC_8);
 char key_table[] = {
-    '1', '2', '3', 'A',
-    '4', '5', '6', 'B',
-    '7', '8', '9', 'C',
-    '*', '0', '#', 'D'
+    '1', '2', '3', '+',
+    '4', '5', '6', '-',
+    '7', '8', '9', '*',
+    'C', '0', '=', '/'
 };
 
-void hatametodu()
-{
-
-    lcd.cls();
-    bzr=0;
-    role=0;
-    lcd.printf("Giris basarisiz");
-    for(uint8_t x=0; x<20; x++) {
-        bzr=1;
-        wait_ms(50);
-        bzr=0;
-        wait_ms(10);
-    }
-    hata--;
-    if(hata==0) {
-        lcd.cls();
-        hata=3;
-        for(uint8_t sure=10; sure>0; sure--) {
-            lcd.locate(0,0);
-            lcd.printf("%d",sure);
-            lcd.printf(" ");
-            wait(1);
-        }
-
-    }
-    lcd.cls();
-}
 
 int main()
 {
-    pc.baud(9600);
+    pc.baud(115200);
     // Init. RC522 Chip
-    RfChip.PCD_Init();
-    uint32_t key_num;
+  uint32_t key_num;
     while(true) {
 
         while ((key_num = key.read()) != 0) {
-            bzr=1;
-            wait_ms(10);
-            bzr=0;
-            sifre[sayac]=*(key_table + key_num-1);
-            sayac++;
-            lcd.printf("*");
-            cout<<*(key_table + key_num-1)<<endl;
-            if(sayac==4) {
-                sayac=0;
-                if(sifre[0]=='1' && sifre[1]=='2' && sifre[2]=='3' && sifre[3]=='A') {
-                    role=1;
-                    hata=3;
-                    lcd.cls();
-                    lcd.printf("Giris basarili");
-                    wait(3);
-                    role=0;
-                    lcd.cls();
-                } else {
-                    hatametodu();
+            bzr=1;wait_ms(10);bzr=0;
+            basilantus=*(key_table + key_num-1);
+            lcd.printf("%c",basilantus);
+            switch(basilantus) {
+            case '0'...'9'://if(basilantus>'0' && basilantus<'9')
+                sayi[0]=sayi[0]*10+(basilantus-'0');
+                break;
+                case '*'...'/':
+            /*case '-':
+            case '+':
+            case '*':
+            case '/':*/
+                islem=basilantus;
+                sayi[1]=sayi[0];
+                sayi[0]=0;
+                break;
+            case '=':
+                sayi[2]=sayi[0];
+                if(islem=='+')
+                    sayi[3]=sayi[1]+sayi[2];
+                else if(islem=='-')
+                    sayi[3]=sayi[1]-sayi[2];
+                else if(islem=='*')
+                    sayi[3]=sayi[1]*sayi[2];
+                else if(islem=='/')
+                    sayi[3]=sayi[1]/sayi[2];
+
+                lcd.printf("%.2f",sayi[3]);
+                for(char temizle=0; temizle<=3; temizle++) {
+                    sayi[temizle]=0;
                 }
+                islem=0;
+                break;
+
+            case 'C':
                 lcd.cls();
-            }//if(sayac==4) {
+                for(char temizle=0; temizle<=3; temizle++) {
+                    sayi[temizle]=0;
+                }
+                islem=0;
+                break;
+            }
 
         }//   while ((key_num = key.read()) != 0) {
 
-        // Look for new cards
-        if (RfChip.PICC_IsNewCardPresent()) {
-            wait_ms(10);
-            continue;
-        }
-
-
-
-        // Select one of the cards
-        if ( ! RfChip.PICC_ReadCardSerial()) {
-            wait_ms(10);
-            continue;
-        }
-
-        // Print Card UID
-        printf("Kart ID: ");
-        for (uint8_t i = 0; i < RfChip.uid.size; i++) {
-            pc.printf(" %X", RfChip.uid.uidByte[i]);
-        }
-        pc.printf("\n");
-
-//kendi kartınızı id'si olacak
-        if(RfChip.uid.uidByte[0]==0x76 && RfChip.uid.uidByte[1]==0x45 && RfChip.uid.uidByte[2]==0x55 && RfChip.uid.uidByte[3]==0xF5) {
-            hata=3;
-            bzr=1;
-            lcd.cls();
-            lcd.printf("Hosgeldiniz Ayse");
-            wait(2);
-            bzr=0;
-            lcd.cls();
-        } else {
-            hatametodu();
-        }
-
-
-        // Print Card type
-        uint8_t piccType = RfChip.PICC_GetType(RfChip.uid.sak);
-        pc.printf("PICC Type: %s \n\r", RfChip.PICC_GetTypeName(piccType));
-
     }//  while(true) {
 
- 
 }//main
\ No newline at end of file