اطلاعیه

Collapse
No announcement yet.

کمک در رابطه با کی پد 3*3

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

    کمک در رابطه با کی پد 3*3

    سلام دوستان
    من هرچی برنامه کی پد در سایت بود رو تست کردم
    تو پروتئوس خوبه ولی در عمل دیر میزنه
    کلید رو چندبار باید زد
    بعضی وقتها نمی گیره
    و از این چور چیزا
    چون می خوام پروژه ورود خروج درست کنم
    نیاز به یه تابعی دارم
    که هر وقت که کلید زده بشه
    عدد رو برگردونه
    نه همیشه
    یعنی تا میاد پس رو بزنم اخرین کلیدی که خورده 4 بار تکرار میشه و میره
    من اون برنامه مربوط به قفل رمزی رو چک کردم با کی پد جواب نمیده همون مشکلات بالا اگرنه از لحاظ تابعی درسته
    کی پد استفاده شده از همین کی پد های ایرانی داخل بازار پیشنهادتون پیه چکار کنم
    هرچه سعی کنیم لایه های نرم افزاری زیاد کرده و از سخت افزار دور کنیم مشکلات(باگ ها) کمتر خواهد شد(امنیت بیشتری خواهید داشت)
    بهترین جواب دهنده برای سوال شما، خود شما هستید البته بعد تلاش،پشتکار و مطالعه بیشتر
    میدونی مشکل ما کجاست؟سرمایه و مغز ها رو نمیتونیم یکجا جمع کنیم...

    تعدادی ماژول GPS GP5MX1513F1 با بالاتریت حساسیت -170db به قیمت خرید بفروش میرسد

    #2
    پاسخ : کمک در رابطه با کی پد 3*3

    برنامتو بزار ببینیم میشه کاری کرد یا نه

    مشکلی با این موضوع داری که خودت یه کیبرد بسازی
    منظورم اینه که دیگه ماتریسی نباشه؟؟؟

    دیدگاه


      #3
      پاسخ : کمک در رابطه با کی پد 3*3

      ببینین اگر از پول پ استفاده نکنین دقیقا همین مشکل پیش میاد یعنی این که بعضی از وقتا کلید ها کار میکنه و بعضی وقتا کار نمی کنه و حتی در بعضی اوقات بدونه این که کلیدی رو بزارین بدون دلیل کلید ها کار می کنن حتما 6 تا پول پ به کی پد وصل کن درست میشه این مشکل زمانی چند برابر می شه که سیم های که به کی پد وصل کردی بلند باشه یا این که از کنار ترانس رد بشه

      دیدگاه


        #4
        پاسخ : کمک در رابطه با کی پد 3*3

        این مشکل بیشتر نرم افزاریه تا سخت افزاری


        منم قبلا به همچین مشکلی برخوردم و جالبه که هیچ وقت برطرف نشد
        موقعی که می خواستم پروژه رو تحویل بدم آبرو ریزی کرد و
        بحر حال چند تا پیشنهاد دارم
        1 - ورزن بیسکام رو عوض کن

        اگه برات ممکن نیست یک برنامه توی بیسکام بنویس البته من خودم این راه رو انجام دادم و خوب هم جواب داد

        برنامه زیر رو خودت متغیر ها شو تعریف کن و توی برنامه اضافه کن
        این برنامه دقیقا همون کاری رو انجام میده که دستور getkbd انجام میده منتها مطمئن تره


        Sub Get_kbd

        Kbd = 16 ' IF NOT FIND VALUE
        Set Porta
        Kbd_slave = 0
        For Kbd_slave = 0 To 3

        Reset Porta.kbd_slave

        If Porta.4 = 0 Then '0,4,8,12
        Kbd = Kbd_slave * 4
        Waitms 20
        Set Porta.kbd_slave
        Goto Exit_kbd
        End If
        If Porta.5 = 0 Then '1,,5,9,13
        Kbd = Kbd_slave * 4
        Kbd = Kbd + 1
        Waitms 20
        Set Porta.kbd_slave
        Goto Exit_kbd
        End If
        If Porta.6 = 0 Then '2,6,10,14
        Kbd = Kbd_slave * 4
        Kbd = Kbd + 2
        Waitms 20
        Set Porta.kbd_slave
        Goto Exit_kbd
        End If
        If Porta.7 = 0 Then '3,7,11,15
        Kbd = Kbd_slave * 4
        Kbd = Kbd + 3
        Waitms 20
        Set Porta.kbd_slave
        Goto Exit_kbd
        End If
        Set Porta.kbd_slave
        Next Kbd_slave

        Exit_kbd:

        Kbd_slave = Lookup(kbd , Dta)

        End Sub


        Dta:
        Data 1 , 2 , 3 , 16 , 4 , 5 , 6 , 16 , 7 , 8 , 9 , 16 , 10 , 0 , 11 , 16 , 16
        اگه مردم می دونستن زمان چقدر با ارزشه دیگه هیچ وقت کفش بند دار نمی خریدن البرت انیشتن

        دیدگاه


          #5
          پاسخ : کمک در رابطه با کی پد 3*3

          lمگه پول اپ داخلی میکرو کافی نیست
          باشه با پولاپ هم امتحان می کنم

          از دوستان کی تاحالا از کی پد 3*4 یا 4*4 جواب گرفته و کار میکنه
          در ضمن با codevision ورژن اخر کار می کنم

          با بعضی برنامه ها خوبه با بعضی یا نه

          اینم برنامه

          کد:
          /*****************************************************
          This program was produced by the
          CodeWizardAVR V2.03.4 Standard
          Automatic Program Generator
          © Copyright 1998-2008 Pavel Haiduc, HP InfoTech s.r.l.
          http://www.hpinfotech.com
          
          Project : 
          Version : 
          Date  : 06-12-2009
          Author : 
          Company : 
          Comments: 
          
          
          Chip type      : ATmega32
          Program type    : Application
          Clock frequency   : 4,000000 MHz
          Memory model    : Small
          External RAM size  : 0
          Data Stack size   : 512
          *****************************************************/
          
          #include <mega32.h>
          
          // Alphanumeric LCD Module functions
          #asm
            .equ __lcd_port=0x18 ;PORTB
          #endasm
          #include <lcd.h>
          #include <delay.h>
          #include <stdlib.h>
          
          // Standard Input/Output functions
          #include <stdio.h>
          char buf[16];
          flash char kbref[4]={0x7f,0xbf,0xdf,0xef};
          flash char real[16]={1,2,3,10,4,5,6,11,7,8,9,12,13,0,14,15};
          char get_key(void);
          char epass(void);
          int numb;
          static char num;
          // Declare your global variables here
          
          void main(void)
          {
          // Declare your local variables here
          
          // Input/Output Ports initialization
          // Port A initialization
          
            DDRA=0b11110000;
            PORTA=0b00001111;
          // Port B initialization
          // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 
          // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T 
          PORTB=0x00;
          DDRB=0x00; 
          PORTC=0x00;
          DDRC=0x00; 
          PORTD=0x00;
          DDRD=0x00;
          TCCR0=0x00;
          TCNT0=0x00;
          OCR0=0x00;
          TCCR1A=0x00;
          TCCR1B=0x00;
          TCNT1H=0x00;
          TCNT1L=0x00;
          ICR1H=0x00;
          ICR1L=0x00;
          OCR1AH=0x00;
          OCR1AL=0x00;
          OCR1BH=0x00;
          OCR1BL=0x00;
          
          ASSR=0x08;
          TCCR2=0x05;
          TCNT2=0x00;
          OCR2=0x00;
          
          // External Interrupt(s) initialization
          // INT0: Off
          // INT1: Off
          // INT2: Off
          MCUCR=0x00;
          MCUCSR=0x00;
          
          // Timer(s)/Counter(s) Interrupt(s) initialization
          TIMSK=0x00;
          
          // USART initialization
          // Communication Parameters: 8 Data, 1 Stop, No Parity
          // USART Receiver: Off
          // USART Transmitter: On
          // USART Mode: Asynchronous
          // USART Baud Rate: 9600
          UCSRA=0x00;
          UCSRB=0x08;
          UCSRC=0x86;
          UBRRH=0x00;
          UBRRL=0x19;
          
          // Analog Comparator initialization
          // Analog Comparator: Off
          // Analog Comparator Input Capture by Timer/Counter 1: Off
          ACSR=0x80;
          SFIOR=0x00;
          
          // LCD module initialization
          lcd_init(16);
             
          while (1)
             {   
             get_key();
             
             if(numb==13)
             {epass(); }
             
             if(numb==14)
             {
              lcd_putsf("ali22222a");
              delay_ms(500); 
              }
             else
             
              itoa(num,buf);
          lcd_puts(buf);
          delay_ms(50);
              lcd_clear();
             };
          }
                char get_key(void)
            {
            static char old;
            char kb,i;  
            for(i=0;i<4;i++)
              {
              PORTA=kbref[i];
              delay_ms(1);
              kb=(~PINA) & 15;
              if(kb==1) num=4*i;
              if(kb==2) num=4*i+1;
              if(kb==4) num=4*i+2;
              if(kb==8) num=4*i+3;
              }
            if(old!=num)old=num; 
            if(num!=255)    
            return(1);  
             }
            
            char epass(void) 
            {       
            }
          هرچه سعی کنیم لایه های نرم افزاری زیاد کرده و از سخت افزار دور کنیم مشکلات(باگ ها) کمتر خواهد شد(امنیت بیشتری خواهید داشت)
          بهترین جواب دهنده برای سوال شما، خود شما هستید البته بعد تلاش،پشتکار و مطالعه بیشتر
          میدونی مشکل ما کجاست؟سرمایه و مغز ها رو نمیتونیم یکجا جمع کنیم...

          تعدادی ماژول GPS GP5MX1513F1 با بالاتریت حساسیت -170db به قیمت خرید بفروش میرسد

          دیدگاه


            #6
            پاسخ : کمک در رابطه با کی پد 3*3

            کد:
            /*****************************************************
            This program was produced by the
            CodeWizardAVR V2.03.4 Standard
            Automatic Program Generator
            © Copyright 1998-2008 Pavel Haiduc, HP InfoTech s.r.l.
            http://www.hpinfotech.com
            
            Project : 
            Version : 
            Date  : 06-12-2009
            Author : 
            Company : 
            Comments: 
            
            
            Chip type      : ATmega32
            Program type    : Application
            Clock frequency   : 4,000000 MHz
            Memory model    : Small
            External RAM size  : 0
            Data Stack size   : 512
            *****************************************************/
            
            #include <mega32.h>
            
            // Alphanumeric LCD Module functions
            #asm
              .equ __lcd_port=0x18 ;PORTB
            #endasm
            #include <lcd.h>
            #include <delay.h>
            #include <stdlib.h>
            unsigned char second, minute,hour;
            unsigned char lcd_buff[10];
            char user1[2][4]={49,49,49,49},user2[4]={50,50,50,50};
            eeprom char save1[31],save2[31],save[31],save4[31];
            // Standard Input/Output functions
            #include <stdio.h>
            char buf[16];
            char NUM,KEY; 
            char code[4],id[4],temp[4];
            #define  FULL      PORTA.7=1;PORTA.6=1; PORTA.5=1; PORTA.4=1;
            #define  LINE1     PORTA.7=0;PORTA.6=1; PORTA.5=1; PORTA.4=1;
            #define  LINE2     PORTA.7=1;PORTA.6=0; PORTA.5=1; PORTA.4=1;
            #define  LINE3     PORTA.7=1;PORTA.6=1; PORTA.5=0; PORTA.4=1;
            #define  LINE4     PORTA.7=1;PORTA.6=1; PORTA.5=1; PORTA.4=0;
            #define  SCAN      PORTA.0=1;PORTA.1=1; PORTA.2=1; PORTA.3=1;
            #define  REFRESH    NUM=(PINA & 0x0f);
             int i,j,w=0;
            
            char KEY_SCAN(){   
            SCAN;   LINE1;  REFRESH;
             /**
            switch(NUM){ 
            case 0x0e:{delay_ms(5); REFRESH;  if(NUM==0x0f){KEY='/';  return(1);}  break;  }
            case 0x0d:{delay_ms(5); REFRESH;  if(NUM==0x0f){KEY='*';  return(1);}  break;  }
            case 0x0b:{delay_ms(5); REFRESH;  if(NUM==0x0f){KEY='-';  return(1);}  break;  }
            case 0x07:{delay_ms(5); REFRESH;  if(NUM==0x0f){KEY='+';  return(1);}  break;  }
            }  **/
            
            SCAN;   LINE2;  REFRESH;
            switch(NUM){
            case 0x0e:{delay_ms(5); REFRESH;  if(NUM==0x0f){KEY='3';  return(1);}  break;  }
            case 0x0d:{delay_ms(5); REFRESH;  if(NUM==0x0f){KEY='6';  return(1);}  break;  }
            case 0x0b:{delay_ms(5); REFRESH;  if(NUM==0x0f){KEY='9';  return(1);}  break;  }
            case 0x07:{delay_ms(5); REFRESH;  if(NUM==0x0f){KEY='#';  return(1);}  break;  }
            }
               
            SCAN;   LINE3;  REFRESH;
            switch(NUM){
            case 0x0e:{delay_ms(5); REFRESH;  if(NUM==0x0f){KEY='2';  return(1);}  break;  }
            case 0x0d:{delay_ms(5); REFRESH;  if(NUM==0x0f){KEY='5';  return(1);}  break;  }
            case 0x0b:{delay_ms(5); REFRESH;  if(NUM==0x0f){KEY='8';  return(1);}  break;  }
            case 0x07:{delay_ms(5); REFRESH;  if(NUM==0x0f){KEY='0';  return(1);}  break;  }
            }
            
            SCAN;   LINE4;  REFRESH;
            switch(NUM){
            case 0x0e:{delay_ms(5); REFRESH;  if(NUM==0x0f){KEY='1';  return(1);}  break;  }
            case 0x0d:{delay_ms(5); REFRESH;  if(NUM==0x0f){KEY='4';  return(1);}  break;  }
            case 0x0b:{delay_ms(5); REFRESH;  if(NUM==0x0f){KEY='7';  return(1);}  break;  }
            case 0x07:{delay_ms(5); REFRESH;  if(NUM==0x0f){KEY='*';  return(1);}  break;  }
            }
            return(0);
            }
            
            void admin(void){
                  lcd_clear();
                  lcd_putsf("Enter password:");
                  lcd_gotoxy(6,1);
                  for(i=0;i<4;i++){
                           while(KEY_SCAN()!=1){ 
                           
                                     };
                           code[i]=KEY;
                           lcd_putsf("*");
                           }
                          
            delay_ms(500); 
            
             
            }
            
            void get_pass(void){
                  lcd_clear();
                  lcd_putsf("Enter password:");
                  lcd_gotoxy(6,1);
                  for(i=0;i<4;i++){
                           while(KEY_SCAN()!=1){ 
                           
                                     };
                           code[i]=KEY;
                           lcd_putsf("*");
                           }
                          
            delay_ms(500);    
            }
            
            
            void get_id(void){
                  lcd_clear();
                  lcd_putsf("Enter ID:");
                  lcd_gotoxy(6,1);
                  for(i=0;i<4;i++){
                           while(KEY_SCAN()!=1){ 
                           
                                     };
                           id[i]=KEY;
                           lcd_putsf("*");
                           }
                          
            delay_ms(500);    
            }
            
            char check_id_pass(){
                     j=0;
                     
                     while(j<4){
                          if(user1[j]==code[j]) {
                                     j++;}
                                     else{ 
                                        
                                       /** lcd_clear();
                                        lcd_gotoxy(4,0);
                                        lcd_putsf("invalid");
                                        delay_ms(500); **/
                                        return(0);
                                        break;
                                        }
                                        
                                        
                          }
                          j=0; 
                          while(j<4){
                           
                           if(user2[j]==id[j]) {
                          j++;}
                           
                           else{ return(0); break;}}
                           
                     lcd_clear();
                     lcd_putsf("password accept");
                     delay_ms(500);
                     w=0;
                     return(1);  
                     } 
            // Timer 2 overflow interrupt service routine
            interrupt [TIM2_OVF] void timer2_ovf_isr(void)
            {
            if(second==59)
                {
                    second=0;
                    if(minute==59)
                    {
                        minute=0;
                        if(hour==24)
                            hour=0;
                            
                        else
                            hour++;
                    }
                    else
                        minute++;
                }
                else
                    second++;
                    
                sprintf(lcd_buff,"%d:%d:%d",hour, minute, second);
            
            
            
            }
            
            // Declare your global variables here
            
            void main(void)
            {
            // Declare your local variables here
            
            // Input/Output Ports initialization
            // Port A initialization
            // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 
            // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T 
            PORTA=0xFF;
            DDRA=0xF0;
            
            // Port B initialization
            // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 
            // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T 
            PORTB=0x00;
            DDRB=0x00;
            
            // Port C initialization
            // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 
            // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T 
            PORTC=0x00;
            DDRC=0x00;
            
            // Port D initialization
            // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 
            // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T 
            PORTD=0x00;
            DDRD=0x00;
            
            // Timer/Counter 0 initialization
            // Clock source: System Clock
            // Clock value: Timer 0 Stopped
            // Mode: Normal top=FFh
            // OC0 output: Disconnected
            TCCR0=0x00;
            TCNT0=0x00;
            OCR0=0x00;
            
            // Timer/Counter 1 initialization
            // Clock source: System Clock
            // Clock value: Timer 1 Stopped
            // Mode: Normal top=FFFFh
            // OC1A output: Discon.
            // OC1B output: Discon.
            // Noise Canceler: Off
            // Input Capture on Falling Edge
            // Timer 1 Overflow Interrupt: Off
            // Input Capture Interrupt: Off
            // Compare A Match Interrupt: Off
            // Compare B Match Interrupt: Off
            TCCR1A=0x00;
            TCCR1B=0x00;
            TCNT1H=0x00;
            TCNT1L=0x00;
            ICR1H=0x00;
            ICR1L=0x00;
            OCR1AH=0x00;
            OCR1AL=0x00;
            OCR1BH=0x00;
            OCR1BL=0x00;
            
            // Timer/Counter 2 initialization
            // Clock source: TOSC1 pin
            // Clock value: PCK2/128
            // Mode: Normal top=FFh
            // OC2 output: Disconnected
            ASSR=0x08;
            TCCR2=0x05;
            TCNT2=0x00;
            OCR2=0x00;
            
            // External Interrupt(s) initialization
            // INT0: Off
            // INT1: Off
            // INT2: Off
            MCUCR=0x00;
            MCUCSR=0x00;
            
            // Timer(s)/Counter(s) Interrupt(s) initialization
            TIMSK=0x40;
            
            // USART initialization
            // Communication Parameters: 8 Data, 1 Stop, No Parity
            // USART Receiver: Off
            // USART Transmitter: On
            // USART Mode: Asynchronous
            // USART Baud Rate: 9600
            UCSRA=0x00;
            UCSRB=0x08;
            UCSRC=0x86;
            UBRRH=0x00;
            UBRRL=0x19;
            
            // Analog Comparator initialization
            // Analog Comparator: Off
            // Analog Comparator Input Capture by Timer/Counter 1: Off
            ACSR=0x80;
            SFIOR=0x00;
            
            // LCD module initialization
            lcd_init(16);
            
            // Global enable interrupts
            #asm("sei")
            
            while (1)
               {
                  KEY_SCAN();   
                       sprintf(buf,"%c ",KEY);
                     lcd_puts(buf); 
                     delay_ms(10);
                     lcd_clear();   
                 
                    /**
                 
                   if(KEY==43)
                   { get_id();
                     get_pass();
                     check_id_pass();
                     if(check_id_pass()==1 )
                        {  lcd_clear();
                        lcd_gotoxy(2,0);
                         lcd_putsf("Hello Masaod"); 
                         delay_ms(500);
                        }
                        else
                         lcd_puts(lcd_buff);
                         delay_ms(500);
                         
                        
                    for(i=0;i<4;i++) 
                    if(code[i]== user1[i])
                    {lcd_clear(); 
                    
                    delay_ms(1000);}    
                    else
                    lcd_clear();
                     lcd_putsf("desable");
                    delay_ms(1000);    
                   }         
                   
                   if(KEY==55)
                   {
                   sprintf(buf,"%d%d%d%d",code[1],code[2],code[3],code[4]);
                   code[1]==buf;
                   lcd_puts(buf);
                   delay_ms(500);
                   lcd_clear();  
                   }      **/
                       
               };
            }
            هرچه سعی کنیم لایه های نرم افزاری زیاد کرده و از سخت افزار دور کنیم مشکلات(باگ ها) کمتر خواهد شد(امنیت بیشتری خواهید داشت)
            بهترین جواب دهنده برای سوال شما، خود شما هستید البته بعد تلاش،پشتکار و مطالعه بیشتر
            میدونی مشکل ما کجاست؟سرمایه و مغز ها رو نمیتونیم یکجا جمع کنیم...

            تعدادی ماژول GPS GP5MX1513F1 با بالاتریت حساسیت -170db به قیمت خرید بفروش میرسد

            دیدگاه


              #7
              پاسخ : کمک در رابطه با کی پد 3*3

              # include <mega32.h>
              #include <delay.h>
              #include <stdlib.h>
              #asm
              .equ __lcd_port=0x18 ;PORTB
              #endasm
              #include <lcd.h>
              unsigned char data;
              char s1[8];
              void ref_key(void){
              DDRA=0x0f;
              //******************************
              PORTA=0xff;
              PORTA.0=0;
              delay_ms(15);
              if(PINA.4==0)data=0;
              if(PINA.5==0)data=1;
              if(PINA.6==0)data=2;
              if(PINA.7==0)data=3;
              //*******************************
              PORTA=0xff;
              PORTA.1=0;
              delay_ms(15);
              if(PINA.4==0)data=4;
              if(PINA.5==0)data=5;
              if(PINA.6==0)data=6;
              if(PINA.7==0)data=7;
              //****************************
              PORTA=0xff;
              PORTA.2=0;
              delay_ms(15);
              if(PINA.4==0)data=8;
              if(PINA.5==0)data=9;
              if(PINA.6==0)data=10;
              if(PINA.7==0)data=11;
              //****************************
              PORTA=0xff;
              PORTA.3=0;
              delay_ms(15);
              if(PINA.4==0)data=12;
              if(PINA.5==0)data=13;
              if(PINA.6==0)data=14;
              if(PINA.7==0)data=15;
              //****************************
              }
              void main(void)
              {
              PORTA=0x0f;
              lcd_init(16);
              while (1)
              {
              ref_key();
              itoa(data,s1);
              lcd_gotoxy(6,1);
              lcd_puts(s1);
              delay_ms(300);
              };
              }
              هرچه سعی کنیم لایه های نرم افزاری زیاد کرده و از سخت افزار دور کنیم مشکلات(باگ ها) کمتر خواهد شد(امنیت بیشتری خواهید داشت)
              بهترین جواب دهنده برای سوال شما، خود شما هستید البته بعد تلاش،پشتکار و مطالعه بیشتر
              میدونی مشکل ما کجاست؟سرمایه و مغز ها رو نمیتونیم یکجا جمع کنیم...

              تعدادی ماژول GPS GP5MX1513F1 با بالاتریت حساسیت -170db به قیمت خرید بفروش میرسد

              دیدگاه


                #8
                پاسخ : کمک در رابطه با کی پد 3*3

                پوا اپ زدم با این برنامه اولی خوب بود ولی چه فایده بدرد کارمن نمی خوره
                هرچه سعی کنیم لایه های نرم افزاری زیاد کرده و از سخت افزار دور کنیم مشکلات(باگ ها) کمتر خواهد شد(امنیت بیشتری خواهید داشت)
                بهترین جواب دهنده برای سوال شما، خود شما هستید البته بعد تلاش،پشتکار و مطالعه بیشتر
                میدونی مشکل ما کجاست؟سرمایه و مغز ها رو نمیتونیم یکجا جمع کنیم...

                تعدادی ماژول GPS GP5MX1513F1 با بالاتریت حساسیت -170db به قیمت خرید بفروش میرسد

                دیدگاه

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