اطلاعیه

Collapse
No announcement yet.

قفل رمز دیجیتال

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    قفل رمز دیجیتال

    نام پروژه
    قفل رمز دیجیتال

    سازنده:
    [glow=red,2,300]حمید بادامی نجات[/glow]

    اجزای مدار
    ATMega16- LCD2*16- keypad3*4

    کامپایلر:
    code vision


    محتوایات پوشه
    سورس کد و فایل پروتئوس و شماتیک

    عملکرد مدار
    پس از وارد کردن صحیح پسورد رله ای که در خروجی قرار دارد فعال می شود. پسورد اولیه پروژه 120 است و شما میتوانید برای تغیرر پسورد از گزینه set روی کی پد استفاده کرده و پسورد را تغییر دهید.




    فایل های پیوست شده

    #2
    پاسخ : قفل رمز دیجیتال

    www.eca.ir
    پسوردشه
    نورپردازان باران نور شهرستان آران وبیدگل
    barannoor69@yahoo.com

    دیدگاه


      #3
      پاسخ : قفل رمز دیجیتال

      دوستان این پروژه رو هم ببین شاید....


      [color=rgb(99, 101, 106)]پسورد پیشفرض 1234 هستش[/color]
      [color=rgb(99, 101, 106)]میشه پسورد رو هم تغییر داد....[/color]
      [color=rgb(99, 101, 106)][/color]







      دانلود فایل پروژه[font=Verdana]
      اینم فیلمش


      این از کد های پروژه
      کد:
      #include <mega16.h> // تابع میکروکنترلر ای تی مگا 16
      #include <delay.h> // تابع تاخیر زمانی
      #include <lcd.h>  // تابع کتاب خانه ال سی دی
      #include <stdlib.h> // این کتاب خانه برا تبدیل انواع متغیر ها به هم دیگه هستش
      //سه خط زیر برا تعیین این هستش که ال سی دی به کدام پایه میکروکنترلر وصل بشه
      #asm            
        .equ __lcd_port=0x1b
      #endasm
       
         int total_number=1 , a , b , c , d ;// متغییر های مربوط به تابع amaliat 
         char password[4];
         int y11,y12,y13,y14,y15;//پسورد های وارد شده توسط کاربر در اینا ذخیره میشن و ما میفهمیم که پسورد رو درست وارد کرده یا نه
         int my_password=1234;//تعیین پسورد اولیه پروژمون
      //#############################################
      int key(void)//تابعی که به کمکش میفهمیم که کاربر رو چه دکمه ای کلیک کرده است
      {
        while(1)
        {
          PORTB.0 = 1 ;
          PORTB.1 = 0 ;
          PORTB.2 = 0 ;
          PORTB.3 = 0 ;
          if(PINB.4 == 1){return 7 ; delay_ms(50);}
          if(PINB.5 == 1){return 8 ; delay_ms(50);}
          if(PINB.6 == 1){return 9 ; delay_ms(50);}
          //==========================================
          PORTB.0 = 0 ;
          PORTB.1 = 1 ;
          PORTB.2 = 0 ;
          PORTB.3 = 0 ;
          if(PINB.4 == 1){return 4 ;delay_ms(50);}
          if(PINB.5 == 1){return 5 ;delay_ms(50);}
          if(PINB.6 == 1){return 6 ;delay_ms(50);}
          //==========================================
          PORTB.0 = 0 ;
          PORTB.1 = 0 ;
          PORTB.2 = 1 ;
          PORTB.3 = 0 ;
          if(PINB.4 == 1){return 1 ;delay_ms(50);}
          if(PINB.5 == 1){return 2 ;delay_ms(50);}
          if(PINB.6 == 1){return 3 ;delay_ms(50);}
          //==========================================
          PORTB.0 = 0 ;
          PORTB.1 = 0 ;
          PORTB.2 = 0 ;
          PORTB.3 = 1 ;
          if(PINB.6 == 1){return 10; delay_ms(50);}
          if(PINB.5 == 1){return 0 ; delay_ms(50);}
        }
      }
      //#############################################
      //تابعی که رمز های دریافتی رو به صورت * نشون میده و به ما میگه که پسورد وارد شده صحیح هستش یا نه
      //که در این تابع ما میتونیم دستور مرد نظرمون رو در صورت وارد شدن صحیح پرود قرار بدیم و به میکرو
      //بگیم که اگه پسوردوارد شده درست بود فلان کار رو انجام بده و اگه غلت بود کار دیگه ای انجام بده
      void amaliat (int y)
      {  
        if(total_number==1) //اگر این رقم ، رقم اول است
        {
          y11=y;
          total_number++;
          a = y ;
          lcd_clear();
          lcd_puts("*");
        }
       
          else if(total_number==2) //اگر این رقم ، رقم دوم است
          {
            y12=y;
            total_number++;
            b = y ;
            lcd_clear();
            lcd_puts("**");
          }
       
          else if(total_number==3) //اگ این رقم ، رقم سوم است
          {
            y13=y;
            total_number++;
            c = y ;
            lcd_clear();
            lcd_puts("***");
          }
          
          else if(total_number==4) //اگر این رقم ، رقم چهارم است
          {  
            y14=y;
            total_number=1;
            d = y ;
            lcd_clear();
            lcd_puts("****");
            delay_ms(300);
            lcd_clear();
            
            itoa( a , password ) ; lcd_puts(password);
            itoa( b , password ) ; lcd_puts(password);
            itoa( c , password ) ; lcd_puts(password);
            itoa( d , password ) ; lcd_puts(password);
       
            delay_ms(300);
            lcd_clear();
            
            y15=y11*1000+y12*100+y13*10+y14;
            if(y15==my_password)
            {
              lcd_gotoxy(0,0);
              lcd_putsf("your pass is");
              lcd_gotoxy(0,1);
              lcd_putsf("   correct");
              delay_ms(300);
              lcd_clear();
            }
            else
            {
              lcd_gotoxy(0,0);
              lcd_putsf("your pass is");
              lcd_gotoxy(0,1);
              lcd_putsf("  incorrect");
              delay_ms(300);
              lcd_clear();
            }
            
            
          };
      }
       
      //#############################################
      //اینم از تابع الی پروژمون
      void main(void)
      {  
        int y;
        
        int y1,y2,y3,y4,y5;//پسورد وارد شده توسط کاربر در هنگام تغییر پسورد در این متغییر ها ذخیره میشود
        int i=0;
        //ازش در تبدیل متغییر اینت به آرایه استفاده میکنیم و بعد از تبدیل مقدار اینت در این آرایه قرار میگیرد
        //و ما میتونیم مقداری که فرمتش اینت هست رو در ال سی دی نمایش بدیم
        char aray[]; 
        int y6,y7,y8,y9,y10;//وقتی کاربر میخواد پسورد جدید رو وارد کنه پسورد ها تو این متغییر قرار میگیرند
        
        DDRB=0x0F;
       
        lcd_init(16); 
       
        while(1)
        {  
          y = key();
          
          if(y == 10){i++;delay_ms(100);}//برسی این که آیا رو دکمه تغییر پسورد کلیک شده است یا نه
          up2:
          while(i%2!=0)
          {
            lcd_clear();
            lcd_putsf("reset pass");
            delay_ms(300);
            lcd_clear(); 
            lcd_gotoxy(0,0);
            up:
            lcd_putsf("enter old pass:");
            lcd_gotoxy(0,1);  
            
            //بررسی این که کاربر چه پسوردی وارد میکنه
            y1=key();if(y1==10){i=0;goto up2;}itoa(y1,aray);lcd_puts(aray);delay_ms(100);
            y2=key();if(y2==10){i=0;goto up2;}itoa(y2,aray);lcd_puts(aray);delay_ms(100);
            y3=key();if(y3==10){i=0;goto up2;}itoa(y3,aray);lcd_puts(aray);delay_ms(100);
            y4=key();if(y4==10){i=0;goto up2;}itoa(y4,aray);lcd_puts(aray);delay_ms(100);
            y5=y1*1000+y2*100+y3*10+y4;
            
            //بررسی این که پسورد وارد شده با پسورد اولیه برابر است یا نه
            if(y5==my_password)
            {
              lcd_clear();
              lcd_gotoxy(0,0);
              lcd_putsf("pass correct");
              delay_ms(500);
              lcd_clear();
              lcd_gotoxy(0,0);
              lcd_putsf("enter new pass :");
              lcd_gotoxy(0,1);
              
              //دریافت پسورد جدید
              y6=key();if(y6==10){i=0;goto up2;}itoa(y6,aray);lcd_puts(aray);delay_ms(100);
              y7=key();if(y7==10){i=0;goto up2;}itoa(y7,aray);lcd_puts(aray);delay_ms(100);
              y8=key();if(y8==10){i=0;goto up2;}itoa(y8,aray);lcd_puts(aray);delay_ms(100);
              y9=key();if(y9==10){i=0;goto up2;}itoa(y9,aray);lcd_puts(aray);delay_ms(100);
              y10=y6*1000+y7*100+y8*10+y9; 
              
              my_password=y10;//جاگیزین کردن پسورد جیدد با پسورد قدیمی
              
              lcd_clear();
              lcd_gotoxy(0,0);lcd_putsf("new pass is : ");
              lcd_gotoxy(0,1);itoa(y10,aray);lcd_puts(aray);delay_ms(300);
              lcd_clear();
              i=0;
            }
            else
            {
              lcd_gotoxy(0,0);
              lcd_putsf("pass incorrect");
              delay_ms(300);
              lcd_gotoxy(0,1);
              lcd_putsf("please repeat");
              delay_ms(300);
              lcd_clear();
              goto up;
            } 
          }
          if(y == 0) {lcd_putchar('0'); delay_ms(50);  amaliat(y);}
          if(y == 1) {lcd_putchar('1'); delay_ms(50);  amaliat(y);} 
          if(y == 2) {lcd_putchar('2'); delay_ms(50);  amaliat(y);} 
          if(y == 3) {lcd_putchar('3'); delay_ms(50);  amaliat(y);} 
          if(y == 4) {lcd_putchar('4'); delay_ms(50);  amaliat(y);} 
          if(y == 5) {lcd_putchar('5'); delay_ms(50);  amaliat(y);} 
          if(y == 6) {lcd_putchar('6'); delay_ms(50);  amaliat(y);} 
          if(y == 7) {lcd_putchar('7'); delay_ms(50);  amaliat(y);} 
          if(y == 8) {lcd_putchar('8'); delay_ms(50);  amaliat(y);} 
          if(y == 9) {lcd_putchar('9'); delay_ms(50);  amaliat(y);}
        }
      }

      اگه خواستین فایل پروژه رو پیوستش کنین تو سایت....
      اللَّهُمَّ صَلِّ عَلَى مُحَمَّدٍ وآلِ مُحَمَّدٍ وعَجِّلْ فَرَجَهُمْ

      اگه دوس دارید سریع به جواب برسید :
      1) قبل از پرسیدن سوال، بسرچید.
      2) سوالاتون رو با جزئیات کامل مطرح کنید.

      دیدگاه


        #4
        پاسخ : قفل رمز دیجیتال

        نوشته اصلی توسط md3848
        دوستان این پروژه رو هم ببین شاید....


        [color=rgb(99, 101, 106)]پسورد پیشفرض 1234 هستش[/color]
        [color=rgb(99, 101, 106)]میشه پسورد رو هم تغییر داد....[/color]
        [color=rgb(99, 101, 106)][/color]







        دانلود فایل پروژه[font=Verdana]
        اینم فیلمش


        این از کد های پروژه
        کد:
        #include <mega16.h> // تابع میکروکنترلر ای تی مگا 16
        #include <delay.h> // تابع تاخیر زمانی
        #include <lcd.h>  // تابع کتاب خانه ال سی دی
        #include <stdlib.h> // این کتاب خانه برا تبدیل انواع متغیر ها به هم دیگه هستش
        //سه خط زیر برا تعیین این هستش که ال سی دی به کدام پایه میکروکنترلر وصل بشه
        #asm            
          .equ __lcd_port=0x1b
        #endasm
         
           int total_number=1 , a , b , c , d ;// متغییر های مربوط به تابع amaliat 
           char password[4];
           int y11,y12,y13,y14,y15;//پسورد های وارد شده توسط کاربر در اینا ذخیره میشن و ما میفهمیم که پسورد رو درست وارد کرده یا نه
           int my_password=1234;//تعیین پسورد اولیه پروژمون
        //#############################################
        int key(void)//تابعی که به کمکش میفهمیم که کاربر رو چه دکمه ای کلیک کرده است
        {
          while(1)
          {
            PORTB.0 = 1 ;
            PORTB.1 = 0 ;
            PORTB.2 = 0 ;
            PORTB.3 = 0 ;
            if(PINB.4 == 1){return 7 ; delay_ms(50);}
            if(PINB.5 == 1){return 8 ; delay_ms(50);}
            if(PINB.6 == 1){return 9 ; delay_ms(50);}
            //==========================================
            PORTB.0 = 0 ;
            PORTB.1 = 1 ;
            PORTB.2 = 0 ;
            PORTB.3 = 0 ;
            if(PINB.4 == 1){return 4 ;delay_ms(50);}
            if(PINB.5 == 1){return 5 ;delay_ms(50);}
            if(PINB.6 == 1){return 6 ;delay_ms(50);}
            //==========================================
            PORTB.0 = 0 ;
            PORTB.1 = 0 ;
            PORTB.2 = 1 ;
            PORTB.3 = 0 ;
            if(PINB.4 == 1){return 1 ;delay_ms(50);}
            if(PINB.5 == 1){return 2 ;delay_ms(50);}
            if(PINB.6 == 1){return 3 ;delay_ms(50);}
            //==========================================
            PORTB.0 = 0 ;
            PORTB.1 = 0 ;
            PORTB.2 = 0 ;
            PORTB.3 = 1 ;
            if(PINB.6 == 1){return 10; delay_ms(50);}
            if(PINB.5 == 1){return 0 ; delay_ms(50);}
          }
        }
        //#############################################
        //تابعی که رمز های دریافتی رو به صورت * نشون میده و به ما میگه که پسورد وارد شده صحیح هستش یا نه
        //که در این تابع ما میتونیم دستور مرد نظرمون رو در صورت وارد شدن صحیح پرود قرار بدیم و به میکرو
        //بگیم که اگه پسوردوارد شده درست بود فلان کار رو انجام بده و اگه غلت بود کار دیگه ای انجام بده
        void amaliat (int y)
        {  
          if(total_number==1) //اگر این رقم ، رقم اول است
          {
            y11=y;
            total_number++;
            a = y ;
            lcd_clear();
            lcd_puts("*");
          }
         
            else if(total_number==2) //اگر این رقم ، رقم دوم است
            {
              y12=y;
              total_number++;
              b = y ;
              lcd_clear();
              lcd_puts("**");
            }
         
            else if(total_number==3) //اگ این رقم ، رقم سوم است
            {
              y13=y;
              total_number++;
              c = y ;
              lcd_clear();
              lcd_puts("***");
            }
            
            else if(total_number==4) //اگر این رقم ، رقم چهارم است
            {  
              y14=y;
              total_number=1;
              d = y ;
              lcd_clear();
              lcd_puts("****");
              delay_ms(300);
              lcd_clear();
              
              itoa( a , password ) ; lcd_puts(password);
              itoa( b , password ) ; lcd_puts(password);
              itoa( c , password ) ; lcd_puts(password);
              itoa( d , password ) ; lcd_puts(password);
         
              delay_ms(300);
              lcd_clear();
              
              y15=y11*1000+y12*100+y13*10+y14;
              if(y15==my_password)
              {
                lcd_gotoxy(0,0);
                lcd_putsf("your pass is");
                lcd_gotoxy(0,1);
                lcd_putsf("   correct");
                delay_ms(300);
                lcd_clear();
              }
              else
              {
                lcd_gotoxy(0,0);
                lcd_putsf("your pass is");
                lcd_gotoxy(0,1);
                lcd_putsf("  incorrect");
                delay_ms(300);
                lcd_clear();
              }
              
              
            };
        }
         
        //#############################################
        //اینم از تابع الی پروژمون
        void main(void)
        {  
          int y;
          
          int y1,y2,y3,y4,y5;//پسورد وارد شده توسط کاربر در هنگام تغییر پسورد در این متغییر ها ذخیره میشود
          int i=0;
          //ازش در تبدیل متغییر اینت به آرایه استفاده میکنیم و بعد از تبدیل مقدار اینت در این آرایه قرار میگیرد
          //و ما میتونیم مقداری که فرمتش اینت هست رو در ال سی دی نمایش بدیم
          char aray[]; 
          int y6,y7,y8,y9,y10;//وقتی کاربر میخواد پسورد جدید رو وارد کنه پسورد ها تو این متغییر قرار میگیرند
          
          DDRB=0x0F;
         
          lcd_init(16); 
         
          while(1)
          {  
            y = key();
            
            if(y == 10){i++;delay_ms(100);}//برسی این که آیا رو دکمه تغییر پسورد کلیک شده است یا نه
            up2:
            while(i%2!=0)
            {
              lcd_clear();
              lcd_putsf("reset pass");
              delay_ms(300);
              lcd_clear(); 
              lcd_gotoxy(0,0);
              up:
              lcd_putsf("enter old pass:");
              lcd_gotoxy(0,1);  
              
              //بررسی این که کاربر چه پسوردی وارد میکنه
              y1=key();if(y1==10){i=0;goto up2;}itoa(y1,aray);lcd_puts(aray);delay_ms(100);
              y2=key();if(y2==10){i=0;goto up2;}itoa(y2,aray);lcd_puts(aray);delay_ms(100);
              y3=key();if(y3==10){i=0;goto up2;}itoa(y3,aray);lcd_puts(aray);delay_ms(100);
              y4=key();if(y4==10){i=0;goto up2;}itoa(y4,aray);lcd_puts(aray);delay_ms(100);
              y5=y1*1000+y2*100+y3*10+y4;
              
              //بررسی این که پسورد وارد شده با پسورد اولیه برابر است یا نه
              if(y5==my_password)
              {
                lcd_clear();
                lcd_gotoxy(0,0);
                lcd_putsf("pass correct");
                delay_ms(500);
                lcd_clear();
                lcd_gotoxy(0,0);
                lcd_putsf("enter new pass :");
                lcd_gotoxy(0,1);
                
                //دریافت پسورد جدید
                y6=key();if(y6==10){i=0;goto up2;}itoa(y6,aray);lcd_puts(aray);delay_ms(100);
                y7=key();if(y7==10){i=0;goto up2;}itoa(y7,aray);lcd_puts(aray);delay_ms(100);
                y8=key();if(y8==10){i=0;goto up2;}itoa(y8,aray);lcd_puts(aray);delay_ms(100);
                y9=key();if(y9==10){i=0;goto up2;}itoa(y9,aray);lcd_puts(aray);delay_ms(100);
                y10=y6*1000+y7*100+y8*10+y9; 
                
                my_password=y10;//جاگیزین کردن پسورد جیدد با پسورد قدیمی
                
                lcd_clear();
                lcd_gotoxy(0,0);lcd_putsf("new pass is : ");
                lcd_gotoxy(0,1);itoa(y10,aray);lcd_puts(aray);delay_ms(300);
                lcd_clear();
                i=0;
              }
              else
              {
                lcd_gotoxy(0,0);
                lcd_putsf("pass incorrect");
                delay_ms(300);
                lcd_gotoxy(0,1);
                lcd_putsf("please repeat");
                delay_ms(300);
                lcd_clear();
                goto up;
              } 
            }
            if(y == 0) {lcd_putchar('0'); delay_ms(50);  amaliat(y);}
            if(y == 1) {lcd_putchar('1'); delay_ms(50);  amaliat(y);} 
            if(y == 2) {lcd_putchar('2'); delay_ms(50);  amaliat(y);} 
            if(y == 3) {lcd_putchar('3'); delay_ms(50);  amaliat(y);} 
            if(y == 4) {lcd_putchar('4'); delay_ms(50);  amaliat(y);} 
            if(y == 5) {lcd_putchar('5'); delay_ms(50);  amaliat(y);} 
            if(y == 6) {lcd_putchar('6'); delay_ms(50);  amaliat(y);} 
            if(y == 7) {lcd_putchar('7'); delay_ms(50);  amaliat(y);} 
            if(y == 8) {lcd_putchar('8'); delay_ms(50);  amaliat(y);} 
            if(y == 9) {lcd_putchar('9'); delay_ms(50);  amaliat(y);}
          }
        }

        اگه خواستین فایل پروژه رو پیوستش کنین تو سایت....
        من میخوام این مدار رو بسازم ولی هیچی از avr نمیدونم
        یکم راهنماییم میکنین

        دیدگاه


          #5
          پاسخ : قفل رمز دیجیتال

          نوشته اصلی توسط حمید بادامی
          نام پروژه
          قفل رمز دیجیتال

          سازنده:
          [glow=red,2,300]حمید بادامی نجات[/glow]

          اجزای مدار
          ATMega16- LCD2*16- keypad3*4

          کامپایلر:
          code vision


          محتوایات پوشه
          سورس کد و فایل پروتئوس و شماتیک

          عملکرد مدار
          پس از وارد کردن صحیح پسورد رله ای که در خروجی قرار دارد فعال می شود. پسورد اولیه پروژه 120 است و شما میتوانید برای تغیرر پسورد از گزینه set روی کی پد استفاده کرده و پسورد را تغییر دهید.




          میشه بهش آلام (بعد از سه یا چند بار اشتباه وارد کردن ) و رله برای قفل مگنت اضافه کرد یعنی دوتا رله یکی بعد تائید رمز فعال بشه و بعدی بعد از سه بار اشتباه وارد کردن رمز؟؟؟؟؟؟؟؟؟؟؟
          مواظب اعمالمان باشیم

          کسی نمیداند

          آخرین خداحافظی اش چه وقتیه ؟

          دیدگاه


            #6
            پاسخ : قفل رمز دیجیتال

            پسورد فایل پروژه چیه؟

            دیدگاه

            لطفا صبر کنید...
            X