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

                  • tuyennhan
                    Trả lời cho Tiếng Anh cho người Việt
                    bởi tuyennhan
                    Cái thư sai ngay câu chào Dear sir mới đúng Hi chỉ dùng cho người quen , các vấn đề về kỹ thuật nó không trả lời hoặc nói loanh quanh tránh ảnh hưởng đến công ty .
                    Giup1 người cần không giúp người không cần với lại văn mình vợ người nha đừng quên .
                    Hôm qua, 07:44
                  • vi van pham
                    Trả lời cho Tiếng Anh cho người Việt
                    bởi vi van pham
                    Cám ơn những lời chúc tốt đẹp của em.

                    Việc em làm giống như chê sếp dốt, chẳng những không có miếng xôi nào để ăn mà còn chịu nhiều trù dập lên bờ , xuống ruộng.

                    Hãy tránh vết xe đổ của tui đi. Dành thời gian lo cho gia đình....
                    Hôm qua, 02:00
                  • nhathung1101
                    Trả lời cho Tiếng Anh cho người Việt
                    bởi nhathung1101
                    Ngoại ngữ là không thể thiếu, nhất là làm việc với công nghệ.

                    Nhưng học để tán gái hay để đọc datasheet, manual là chuyện cần quan tâm.

                    Và đọc ở nguồn nào đáng tin cậy, chứ cứ lên tictok hay facebook học lỏm thì...
                    22-02-2025, 22:18
                  • dinhthuong80
                    Trả lời cho Tiếng Anh cho người Việt
                    bởi dinhthuong80
                    Bác nói rất khách quan và chính xác. Ngoại ngữ là chìa khóa thăng tiến dù làm gì. Chả thế mà nay nước mình dạy tiếng Anh từ tiểu học.

                    Nhớ hồi năm 2006 em ra Hải Phòng, Hải Dương tìm việc, thời đó ở Bình Dương lương công...
                    22-02-2025, 14:51
                  • dinhthuong80
                    Trả lời cho Tiếng Anh cho người Việt
                    bởi dinhthuong80
                    Cảm ơn bạn, ĐT cũng có ý nghĩ như vậy.

                    Thực ra, lỗi của hãng đó ( gọi là hãng vì không chỉ một model sản phẩm) là về phần cứng, ĐT tuy không biết về lập trình phần mềm nhưng cũng thấy rằng sẽ chẳng khó khăn gì đáng...
                    22-02-2025, 14:39
                  • dinhthuong80
                    Trả lời cho Tiếng Anh cho người Việt
                    bởi dinhthuong80
                    Dạ, bác bảy mấy tuổi đời rồi cũng không kém bố cháu bao nhiêu. Tuổi nghề thì bác cũng đáng tuổi cha chú.

                    Nhưng 2 điều trên thì chưa hẳn đã đáng quí và đáng tôn trọng bằng việc bác rất nhiệt tình chia sẻ kinh nghiệm chuyên...
                    22-02-2025, 14:28
                  • bqviet
                    Trả lời cho Tiếng Anh cho người Việt
                    bởi bqviet
                    Đúng, nếu chú tâm thì chỉ cần mỗi tiếng Việt là đã khá đủ để làm đa số công việc thông thường, ở thời đại ngày nay khi tài liệu sách vở phương tiện thông tin liên lạc đã nhiều. Nhưng cũng chính ở thời nay giao lưu các nước nhiều...
                    21-02-2025, 20:26
                  • mèomướp
                    Trả lời cho Tiếng Anh cho người Việt
                    bởi mèomướp
                    Dạ cháu nghĩ chú dinh... cứ mạnh dạn gửi thư đi ạ, chú có thể gửi bằng văn bản in chuyển phát nhanh sẽ có giá trị hơn. Vấn đề chưa hẳn là cần hãng làm gì đó, mà chỉ đơn giản là mình cảm thấy nhẹ lòng vì đã làm những việc bản...
                    21-02-2025, 12:32
                  • vi van pham
                    Trả lời cho Tiếng Anh cho người Việt
                    bởi vi van pham
                    Những lần hắt hơi sổ mũi làm tôi mệt lã, phải dùng rượu uống để ngũ. Tôi cũng đang uống rượu 1 mình, viết vài dòng này cho em ( có lẽ dt chỉ bằng tuổi em tôi).

                    Dinh thuong dang đi vào vết xe đổ của tôi. Càng chứng minh, có...
                    20-02-2025, 21:31
                  • bqviet
                    Trả lời cho Hỏi về cách hàn linh kiện ( giúp tớ với )
                    bởi bqviet
                    Thiết nghĩ thi thoảng bác lên đây chia xẻ ít kinh nghiệm cũng vui rồi. Còn chuyện con người sinh lão bệnh tử là thường, sống cùng với quy luật đó thôi. Bqv nhớ trước đây bác từng kể về chuyện rang chì ô-xít bằng chảo để phục hồi bình điện, đấy cũng là thành quả đáng nể phục ở thời kỳ thiếu thốn đó.
                    20-02-2025, 17:22
                  Đang tải...
                  X