Thông báo

Collapse
No announcement yet.

Khóa Số Điện Tử Có Chức Năng Đổi Mật Khẩu VÀ Cảnh Báo Chộm

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • #16
    bạn nào còn thắc mắc về code gốc của mình up lên thì hỏi qua Gmail vudinhthang1989@gmail.com nhé.
    vì hiện tại mình không còn học nữa nên không hay vào diễn đàn để giải đáp thắc mắc về đoạn code mà mình viết, mình chỉ thường check mail thôi

    int8 a[8],b[8];
    int8 m=0,j=0,i=0;

    a[8], b[8] là dùng cho hai mảng có 8 phần tử, độ dài của pass đấy, một mảng a để lưu phím lúc nhập pass ban đầu xem có đúng với pass mà mình lưu trong eeprom không
    một mảng b để lưu giá trị mà mình nhập các phím trong lúc đổi pass. cũng tương tự như mảng a.
    còn các biến m, j, i thì chắc là bạn hiểu rồi nhỉ?

    mình có đang xem bài của một bạn gửi mail cho mình, và thấy đoạn code báo nhập sai của bạn đấy có vấn đề, mình đã gửi qua mail rồi nhé

    Comment


    • #17
      ai biết khóa số dùng 89c51 không?
      giúp mình với
      thankyou!

      Comment


      • #18
        Nguyên văn bởi vudinhthang Xem bài viết
        Trên đây là đồ án khóa số của mình.
        Với chức năng :
        Đóng mở cửa khi nhập đúng pass, điều khiển đóng mở bằng việc dùng động cơ.
        1 – nhập pass 8 ký tự
        2 – đổi pass
        3 – cảnh báo chộm. tín hiệu cảnh báo là bóng đèn (tạm thời)
        + cách dùng :
        1. hai nút khóa xong và mở xong có tác dụng như tiếp điểm thường mở à cánh cửa đóng hoặc mở sẽ chạm vào tiếp điểm thường mở đó. Vì vậy bạn phải nhấn tịt nút khóa xong hoặc mở xong xuống khi muốn mô phỏng khóa xong hoặc mở xong
        2. ban đầu sẽ yêu cầu bạn nhập phím thì chúng ta có thể thao tác trên tất cả các phím. Khi nhập pass xong thì chúng ta nhấn phím mở cửa. nút khóa cửa thì không cần nhập pass.
        3. nút ok để đổi pass. Khi nhấn phím đổi pass thì LCD sẽ yêu cầu nhập đúng pass cũ. Khi nhập đúng pass cũ thì nhấn phím ok rồi nhập pass mới có 8 ký tự. nhập xong lại nhấn ok.
        4. mật khẩu hiện tại là 12345678.
        5. chú ý chương trình. Khi mà ta thay đổi chương trình thì trong chương trình lập trình có một đoạn mã rất quan trọng chỉ dài 3 dòng thôi, đoạn mã đó sẽ quyết định việc đổi mật khẩu của bạn có thành công hay không, và việc cảnh báo có hoạt động hay không. Nếu để đoạn mã đó thì sẽ mặc định mật khẩu là 00000000. ta xóa đoạn mã đó đi thì sẽ thay đổi được mật khẩu. vì đoạn mã đó sẽ xóa bộ nhớ nội EEPROM của PIC

        các bạn có thể download tại đây hoặc tại link do an khoa so.rar
        .................................................. .................................................. ............
        mọi ý kiến thắc mắc xin liên hệ :
        Vũ Đình Thăng
        Lớp K43KĐT - Trường ĐHKTCN Thái Nguyên
        sdt : 0976 08 08 03
        0918 337 558
        01678 667 772
        mail : vudinhthang1989@gmail.com
        có ai làm cái này chưa ạ! có kinh nghiệm giúp em với, khi em xóa vòng lặp for 3 dòng như trên thì không nhập được bất cứ mật khẩu nào cả, cũng như đổi mật khẩu cũng không được, ai có bị như e không giúp em với !!

        Comment


        • #19
          không ai giúp em được cái này ak. hix khó thế

          Comment


          • #20
            Gửi bạn hàm quét phím và nhập pass project môn học khóa số thông minh trước của mình.
            Vì project có cả mấy mục cảm biến và GSM/SMS nên ko thể post cả lên. chỉ post 2 hàm bạn quan tâm


            Code:
            //============================================================================//
            // Ten chuong trinh : Keypad.h                                                //
            // Nguoi thuc hien  : demon52                                                 //
            // Phien ban        : 1.0    2010                                                 //
            // Mo ta phan cung  : Dung 8pins of MCU                                       //
            //----------------------------------------------------------------------------//
            // + Lien he tai website: http://demon52.tk                                   //
            //============================================================================//
            
            file keypad.h
            //=============================define keypad====================================
            #define h0 PIN_D0
            #define h1 PIN_C3
            #define h2 PIN_C4
            #define h3 PIN_C5
            #define v0 PIN_B3
            #define v1 PIN_B2
            #define v2 PIN_B1
            #define v3 PIN_B0
            int8 keypad_break = 1;
            char const keys[4][4] =   {               // define button name
                              {'7','8','9','A'},   
                              {'4','5','6','B'},
                              {'1','2','3','C'},                   
                              {'*','0','#','D'}
                                      };
            
            int8 Keypad(){
               int8 col = 0;
               output_high(v0);
               output_high(v1);
               output_high(v2);
               output_high(v3);
               while (col < 4)
                  {  
                  if (keypad_break) return 0;
                  switch (col)
                     {
                     case 0:  output_high(v3);
                              output_low(v0);
                              break;
                     case 1:  output_high(v0);
                              output_low(v1);
                              break;
                     case 2:  output_high(v1);
                              output_low(v2);
                              break;
                     case 3:  output_high(v2);
                              output_low(v3);
                              break;
                     }
                  if ( !input(h0)) return keys[0][col];
                  if ( !input(h1)) return keys[1][col];
                  if ( !input(h2)) return keys[2][col];
                  if ( !input(h3)) return keys[3][col];
                  col++;
                  }
               return 16;
               }
            file enter_password.h ( vì hàm này viết cả phần con trỏ cho LCD ( kéo màn hình lên xuống để chọn mục cần truy cập) nên hơi dài)
            Code:
            //==========================Enter password======================================
            #define      unlock_fail      1
            #define      unlock_success   2
            #ifndef Device_ON
               #define Device_ON       output_low
            #endif
            #ifndef Device_OFF
               #define Device_OFF      output_high
            #endif   
            #ifndef ON
               #define ON 1
            #endif   
            #ifndef OFF
               #define OFF 0  
            #endif  
            
            Void Alarm_tone();
            
            void Setting_Pick(int x)
               {
               switch (x)
                  {
                  case 1:   LCD_Char("1. -->Lock<-- ");  break;
                  case 2:   LCD_Char("2. Change Pass");  break;
                  case 3:   LCD_Char("3. Change Time");  break;
                  case 4:   LCD_Char("4. --> EXIT   ");  break;
                  }
               }
            void Setting_Show_Banner(int x) 
               {
               LCD_Cmd(0x01);
               LCD_Position(0x02);
               Setting_Pick(x);
               LCD_Position(0x42);
               Setting_Pick(x+1);
               }
            void Setting_Show_Cursor(int x)
               {
               if (x==1) 
                  LCD_Position(0x00);
               else if (x==2)
                  LCD_Position(0x40);
               LCD_Char(0x7E);
               }
            int enterpass()
               {
               LCD_Cmd(0x01);
               LCD_Char("Enter password!!");
               LCD_Position(0xC0);
               LCD_Char("Pass:");
               //LCD_Position(0xC5);
               int array_temp, compare_temp=0,input_counter=0, unlock=0, select=0 ; 
               int8 pointer=0xC5,key=0;
               int banner=1,cursor=1;
                  while(1)
                  {  
                  key=keypad();
                  delay_ms(100);
                  if(key=='D' && input_counter!=0)
                     {
                     input_counter--;
                     pointer--;
                     LCD_Position(pointer);
                     LCD_Char(" ");
                     LCD_Position(pointer);
                     delay_ms(200);
                     }
                  if ( key == '*') 
                     {
                     LCD_Cmd(0x01);
                     LCD_Char("Enter password!!");
                     LCD_Position(0xC0);
                     LCD_Char("Pass:");
                     input_counter=0;
                     pointer=0xC5;
                     key=16;
                     }
                  if ( key == 'C') select=4;
                  if ( key == '#' || key == 'A' || key == 'B' || key == 'C' || key =='D' ) key = 16;
                  while(key != 16)
                     {  
                        delay_ms(300);
                        input_key[input_counter]=key; 
                        input_counter++;
                        LCD_Position(pointer);          
                        LCD_Char("*");
                        pointer++;
                        if(input_counter==6)
                           {
                           delay_ms(100);
                           key=keypad();
                           while(key != '#' && key !='C')
                              {
                              key=keypad(); 
                              delay_ms(100);
                              }
                           if (key=='#'){
                              for(array_temp=0;array_temp<6;array_temp++)
                                 {
                                 if(input_key[array_temp]==master_key[array_temp]) compare_temp++;
                                 }            
                              if(compare_temp==6)  unlock=unlock_success; 
                              else  unlock=unlock_fail;
                              }
                           if (key=='C') select=4;
                           }
                        key=16;
                     }
                     if(unlock!=0 || select==4) break;
                  }
               LCD_Cmd(0x01);
               if(unlock==unlock_success)
                  {
                  LCD_Char("----CORRECT----");
                  LCD_Position(0x40);
                  LCD_Char("T-Door's opening");
                  delay_ms(500);
                  Device_ON(speak);
                  Device_ON(LED_RED);
                  delay_ms(200);
                  Device_OFF(speak);
                  Open_The_Door();
                  do{
                     key=keypad();           
                     if(key=='B')
                        {
                        delay_ms(100);
                        cursor++;
                        if (cursor>2 && banner==1) { banner=3;cursor=1;       }
                        if (cursor>2 && banner==3) cursor=2;
                        }
                     if(key=='A')
                        {
                        delay_ms(100);
                        cursor--;
                        if (cursor<1 && banner==3) { banner=1;cursor=2;        }
                        if (cursor<1 && banner==1) cursor=1;
                        }
                     LCD_Cmd(0x01);
                     Setting_Show_Banner(banner);
                     Setting_Show_Cursor(cursor);
                     delay_ms(100);
                     }while(key!='#');
                     select = (banner+cursor-1);
                  unlock=0;
                  }
               if(unlock==unlock_fail)
                  {
                  LCD_Position(0x00);
                  LCD_Char("  NOT  CORRECT  ");
                  LCD_Position(0x40);
                  LCD_Char("PLEASE TRY AGAIN");
                  Device_ON(LED_RED);
                  delay_ms(1000);
                  Device_OFF(LED_RED);
                  count_error++;
                  if (count_error==2)
                     Device_OFF(LED_RED);
                  if (count_error==3)
                      Alarm_tone();
                  if (count_error==3) count_error=0;
                  unlock=0;
                  select=0;
                  }
               if (select==1) 
                  {
                  LCD_Cmd(0x01);
                  LCD_Char("T-Door's closing");
                  LCD_Cmd(0xC0);
                  LCD_Char("wait a few secs.");      
                  
                  Device_ON(SPEAK);
                  delay_ms(200);
                  Device_OFF(SPEAK);
                  delay_ms(500);
                  select=4;
                  }
               if (select==2) return 2;
               if (select==3) return 3;
               if (select==4) return 1;
               if (select==0) return 0;
               }
               
            Void Alarm_tone(void )  
               {
               int8 key;
               do{
                  key=keypad();
                  Device_ON(SPEAK);
                  Device_ON(LED_RED);
                  delay_ms(100);
                  Device_OFF(SPEAK);
                  Device_OFF(LED_RED);
                  delay_ms(100);
                  }while(key!='D');
               }
            Last edited by demon52; 03-04-2013, 12:15.
            Web:
            ->Nhận thiết kế, hoàn thiện dự án, sản phẩm điện tử<-
            -->Giải pháp GSM/GPRS/GPS - Công nghệ RFID<--

            Comment


            • #21
              anh cho e số điện thoại anh được hem

              Comment


              • #22
                chào anh, em đang làm đồ án môn học có liên quan đến vi xử lý, em thấy mạch của anh rất rất là tuyệt so với yêu cầu của em, anh có cho em xin mạch in gốc và bảng linh kiện được ko zạ, mail em là dragonstars24@yahoo.com.vn, xong vụ này em sẽ hậu ta anh sau, thank anh nhiều

                Comment


                • #23
                  Nguyên văn bởi vudinhthang Xem bài viết
                  Trên đây là đồ án khóa số của mình.
                  Với chức năng :
                  Đóng mở cửa khi nhập đúng pass, điều khiển đóng mở bằng việc dùng động cơ.
                  1 – nhập pass 8 ký tự
                  2 – đổi pass
                  3 – cảnh báo chộm. tín hiệu cảnh báo là bóng đèn (tạm thời)
                  + cách dùng :
                  1. hai nút khóa xong và mở xong có tác dụng như tiếp điểm thường mở à cánh cửa đóng hoặc mở sẽ chạm vào tiếp điểm thường mở đó. Vì vậy bạn phải nhấn tịt nút khóa xong hoặc mở xong xuống khi muốn mô phỏng khóa xong hoặc mở xong
                  2. ban đầu sẽ yêu cầu bạn nhập phím thì chúng ta có thể thao tác trên tất cả các phím. Khi nhập pass xong thì chúng ta nhấn phím mở cửa. nút khóa cửa thì không cần nhập pass.
                  3. nút ok để đổi pass. Khi nhấn phím đổi pass thì LCD sẽ yêu cầu nhập đúng pass cũ. Khi nhập đúng pass cũ thì nhấn phím ok rồi nhập pass mới có 8 ký tự. nhập xong lại nhấn ok.
                  4. mật khẩu hiện tại là 12345678.
                  5. chú ý chương trình. Khi mà ta thay đổi chương trình thì trong chương trình lập trình có một đoạn mã rất quan trọng chỉ dài 3 dòng thôi, đoạn mã đó sẽ quyết định việc đổi mật khẩu của bạn có thành công hay không, và việc cảnh báo có hoạt động hay không. Nếu để đoạn mã đó thì sẽ mặc định mật khẩu là 00000000. ta xóa đoạn mã đó đi thì sẽ thay đổi được mật khẩu. vì đoạn mã đó sẽ xóa bộ nhớ nội EEPROM của PIC

                  các bạn có thể download tại đây hoặc tại link do an khoa so.rar
                  .................................................. .................................................. ............
                  mọi ý kiến thắc mắc xin liên hệ :
                  Vũ Đình Thăng
                  Lớp K43KĐT - Trường ĐHKTCN Thái Nguyên
                  sdt : 0976 08 08 03
                  0918 337 558
                  01678 667 772
                  mail : vudinhthang1989@gmail.com
                  cho em hỏi nếu xóa 3 dòng quan trọng trong chương trình thì password lúc bây giờ là gì vậy?
                  em cảm ơn!!

                  Comment

                  Về tác giả

                  Collapse

                  vudinhthang Tìm hiểu thêm về vudinhthang

                  Bài viết mới nhất

                  Collapse

                  Đang tải...
                  X