اطلاعیه

Collapse
No announcement yet.

پروژه قفل الکترونیکی

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

    پروژه قفل الکترونیکی

    سلام دوستان
    من دانشجوی رشته کنترل هستم .......باید پایان ترم به استاد یه پروژه قفل الکترونیکی ارائه بدم......این پروژه باید به زبان c باشه......استادمون هم خودش هیچی بلد نیست من هم چیزی ازش یاد نگرفتم.........من وضعیت مالی خوبی هم ندارم ....دوستان کسی هست این پروژه را داشته باشه؟خواهش میکنم هر چه سریعتر جواب بدید

    #2
    پاسخ : پروژه قفل الکترونیکی

    :NO:
    http://www.eca.ir/forum2/index.php?topic=43624.0

    http://www.eca.ir/forum2/index.php?topic=40180.0

    http://www.eca.ir/forum2/index.php?topic=5046.0

    http://www.eca.ir/forum2/index.php?topic=40182.0

    http://www.eca.ir/forum2/index.php?topic=40155.0

    http://www.eca.ir/forum2/index.php?topic=40182.0
    انا لله و انا اليه الراجعون

    دیدگاه


      #3
      پاسخ : پروژه قفل الکترونیکی

      دوست عزیز سلام این پروژه روی atmega 16 هم جواب میده؟؟؟ :cry: :cry: :cry: :cry:

      دیدگاه


        #4
        پاسخ : پروژه قفل الکترونیکی

        بله فقط کافیه در برنامه به جای میکرو32 بزاری 16
        انا لله و انا اليه الراجعون

        دیدگاه


          #5
          پاسخ : پروژه قفل الکترونیکی

          این ساده ترین حالت یک قفل رمز دیجیتالی هست


          #include <mega16.h>
          #include <delay.h>
          #include <stdio.h>

          #asm
          .equ __lcd_port = 0x1b;
          #endasm
          #include <Lcd.h>


          #define c1 PINB.4
          #define c2 PINB.5
          #define c3 PINB.6
          #define c4 PINB.7
          unsigned char scan[4]={0XFE,0XFD,0XFB,0XF7};
          signed char get_key(unsigned char wait) ;
          float keypad(unsigned char wait,unsigned char digit,unsigned char show,unsigned char x,unsigned char y);
          unsigned char arrkey[16]={
          1,2,3,15,
          4,5,6,14,
          7,8,9,13,
          10,0,11,12};

          char input[9];

          int pass,old,new,adad;

          void main(void){

          float key;
          pass=12345;
          lcd_init(16);
          PORTC=0X00 ;
          DDRC=0XFF;

          while (1){

          menu:
          lcd_clear();
          lcd_gotoxy(0,0);
          lcd_puts("1.SET PASSWORD"
          lcd_gotoxy(0,1);
          lcd_puts("2.ENTER PASSWORD"
          key = keypad(10,1,0,5,1);
          lcd_clear();


          if(key == 1){
          lcd_puts("ENTER OLD PASS"
          old = keypad(10,5,1,5,1);
          lcd_clear();
          lcd_puts("ENTER NEW PASS"
          new = keypad(10,5,1,5,1);
          lcd_clear();

          if( old == pass ){
          pass = new ;
          delay_ms(20);
          lcd_puts("PASS CHANGE"
          delay_ms(500);
          goto menu;
          }
          else {
          lcd_puts("RONG"
          delay_ms(500);
          goto menu;
          }
          lcd_clear();
          }



          if (key == 2){
          ENTER:
          lcd_clear();
          lcd_puts("ENTER PASSWORD"
          adad = keypad(10,5,1,5,1);

          if (pass == adad){
          lcd_puts(" OK "
          delay_ms(150);
          lcd_clear();
          lcd_gotoxy(0,1);
          lcd_puts(" LED IS ON"
          PORTC.7=1;

          delay_ms(500);
          lcd_clear();
          goto menu;

          }

          else {
          lcd_clear();
          lcd_puts("RONG"
          delay_ms(600);
          lcd_clear();
          goto ENTER;
          }
          lcd_clear();
          }
          delay_ms(25);

          }
          lcd_clear();
          }

          signed char get_key(unsigned char wait){
          unsigned char r=0,c=0,k=0;
          unsigned int i=0,l=0;
          DDRB=0X0F;
          PORTB=0XFF;
          l=(wait*1000)+1000;

          for (i=0; i<l; i++){
          if(wait==0) i=0; // infinite Loop !

          for (r=0; r<4; r++){
          c=4;
          PORTA=scan[r];
          delay_us(3);
          if(c1==0) c=0;
          else if(c2==0) c=1;
          else if(c3==0) c=2;
          else if(c4==0) c=3;

          if (c!=4){
          k=arrkey[(r*4)+c];
          while(c1==0 || c2==0 || c3==0 || c4==0);
          delay_ms(1);
          return k;
          }
          }
          delay_ms(1);
          }

          // return -1; //time out "Not press any key"
          }


          //MAX 9 Digit
          float keypad(unsigned char wait,unsigned char digit,unsigned char show,unsigned char x,unsigned char y){
          float number_out=0;
          signed char in_key=0;
          char i=0,d=0,temp[1];
          signed long int zarib[9]={
          1,
          10,
          100,
          1000,
          10000,
          100000,
          1000000,
          10000000,
          100000000,
          };


          if(show){
          lcd_gotoxy(x,y);
          _lcd_write_data(0X0F);
          }


          i=0;
          for (d=0; d<digit; d++){ // Max 9 digit
          in_key = get_key(wait);

          if(!(in_key==10 || in_key==11)){
          input[d]=in_key;
          if(show){
          sprintf(temp,"%d",input[d]);
          lcd_puts(temp);
          }
          }
          i++;
          }

          // Calculate and unit arry
          d=digit; digit --;
          for (i=0; i<d; i++){
          number_out += zarib[digit]*input[i];
          digit --;
          }

          delay_ms(1);
          return number_out;
          }

          دیدگاه

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