dort islem yapan hesap makinesi

Dependencies:   mbed TextLCD keypad

Revision:
1:cb5c15635617
Parent:
0:568acc58974f
Child:
2:961790ab9dbb
--- a/main.cpp	Wed Dec 04 12:09:44 2019 +0000
+++ b/main.cpp	Sun Dec 15 06:44:00 2019 +0000
@@ -1,22 +1,133 @@
 #include "mbed.h"
 #include "TextLCD.h"
 #include "Keypad.h"
+#include <iostream>
+#include "MFRC522.h"
+
+//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;
 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'
+char key_table[] = {
+    '1', '2', '3', 'A',
+    '4', '5', '6', 'B',
+    '7', '8', '9', 'C',
+    '*', '0', '#', 'D'
 };
-int main() {
-uint32_t key_num;
-while(true) {
+
+void hatametodu()
+{
 
-while ((key_num = key.read()) != 0){
-lcd.locate(0,0);
-lcd.printf("Sectiginiz Rakam:%c", *(key_table + key_num-1));
+    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);
+        }
+
+    }
 }
 
-}
-}
\ No newline at end of file
+int main()
+{
+    // Init. RC522 Chip
+    RfChip.PCD_Init();
+    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();
+                }
+                lcd.cls();
+            }//if(sayac==4) {
+
+        }//   while ((key_num = key.read()) != 0) {
+
+        // Look for new cards
+        if ( ! RfChip.PICC_IsNewCardPresent()) {
+            wait_ms(100);
+            continue;
+        }
+
+
+
+        // Select one of the cards
+        if ( ! RfChip.PICC_ReadCardSerial()) {
+            wait_ms(100);
+            continue;
+        }
+
+        // Print Card UID
+        printf("Kart ID: ");
+        for (uint8_t i = 0; i < RfChip.uid.size; i++) {
+            printf(" %X", RfChip.uid.uidByte[i]);
+        }
+        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);
+        printf("PICC Type: %s \n\r", RfChip.PICC_GetTypeName(piccType));
+
+    }//  while(true) {
+
+    return 0;
+}//main
\ No newline at end of file