اطلاعیه

Collapse
No announcement yet.

keypad with codevision

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

    keypad with codevision

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

    #2
    پاسخ : keypad with codevision

    سلام
    هر بار که عددی رو از کیبورد دریافت میکنید باید عدد قبلی رو در 10 ضرب کنید و با عدد جدید جمعش کنید . هنگام گرفتن اولین عدد هم عدد قبلی شما صفر هست . یه کانتر هم تعریف کنید که با ورود هر عدد جدید یکی بهش اضافه بشه تا متوجه بشید چند عدد از ورودی دریافت کردید.فقط یه سری ریزه کاری میمونه که مثلا اولین عدد دریافتی صفر نباشه و ...
    جدیدترین ویرایش توسط mojitaba; ۱۳:۳۱ ۱۳۹۵/۰۵/۱۲.
    الهم صل علی محمد و آل محمد و عجل فرجهم
    www.adaksell.com

    دیدگاه


      #3
      پاسخ : keypad with codevision

      میشه کدش واسم بفرستید؟؟اخه عددی که بهم میده اسکیه....هر کاریم میکنم تبدیلش درست نمیشه...میشه کدش واسم بنویسید به زبان c...مرسی

      دیدگاه


        #4
        پاسخ : keypad with codevision

        اگه منظورتونو درست فهمیده باشم باید کد مورد نظرتون این باشه:
        کد:
        [FONT=Yekan]int a=0,b=0,c=0,m=0;[/FONT]
        
        //عدد اول
        a=PINX.x;
        
        
        //عدد دوم که در محل دهگان قرار میگیره
        b=PINX.x;
        
        
        m=b*10;
        b=m;
        
        
        
        
        //عدد سوم که در محل صدگان قرار میگیره
        c=PINX.x;
        m=c*100;
        c=m;
        
        
        
        
        
        
        //جمع همه ی اعداد
        m=m+b+a
        //یا 
        m=c+b+a
        جدیدترین ویرایش توسط saeed under line; ۲۰:۲۶ ۱۳۹۵/۰۵/۱۵.

        دیدگاه


          #5
          پاسخ : keypad with codevision

          ببینید شما یک پین خاص در نظر گرفتید من اعداد از کیپد میخونم یعنی معلوم نیس کدوم پین باشه!!!!
          کد:
          [LEFT]
          while (1)
                {  
                  mux=0;  
                  
                   for(i=0;i<3;i++) 
                  { 
                   ch=keypad();
                  lcd_gotoxy(i,0); 
                   lcd_putchar(ch);
                   mux=mux*10+ch;
                   mux=mux-30;
                  
                     if(ch=='#')
                     {
                       lcd_clear(); 
                       lcd_putchar(mux); 
                       break;
                     }
                     if(ch=='*')
                     {
                     lcd_clear(); 
                     break;
                     }
                   }
                  PORTD.6=0;
                  delay_ms(500);
                  PORTD.6=1;
                  delay_ms(500);
                }
          }
          
          
          char keypad(void)
            { 
              int row=0,column=-1,position=0,k;  
              while(1)
                {
                  for(row=0;row<4;row++)
                  {
                    PORTC=shift[row];
                    if(C0 == 0){column=0;}  
                    if(C1 == 0){column=1;}
                    if(C2 == 0){column=2;}
                    if(C3 == 0){column=3;} 
                  
                       if(column!=-1)  
                          { 
                            position=(row*4)+column;
                            while(C0 == 0){}
                            while(C1 == 0){}
                            while(C2 == 0){}
                            while(C3 == 0){}
                            column=-1; 
                                 delay_ms(50); 
                                 k=layout[position];
                                  return k;
                                  
                          };
                  }
                }
              
          [/LEFT]
          جدیدترین ویرایش توسط اشکان غفارزاده; ۲۳:۳۴ ۱۳۹۵/۰۶/۰۷.

          دیدگاه


            #6
            پاسخ : keypad with codevision

            من یه کی پد 4*3 دارم.....همه روشهایی رو که تو نت برا راه اندازیش بود رو خوندم ....بهترین روش اینه که روی یه برد هزار سوراخ یه پین هدر نری بزاری به تعداد خروجی های کی پدت....بعدش به هر پین یه مقاومت اختصاص بدی ......ینی هر کلیدرو با یه مقاومت مشخص کنی...اخرشم یا پین های ردیف یـــــا ستونی رو پول اپ کنی با ولتاژ ثابت مثلا 5ولت
            .
            .
            .
            .
            برای اولین دفعه که بتونی مقاومت حقیقی هر کلیدو به دست بیاری بهتره از طریق یه السیدی کارکتری ساده ولتاژی که تحت تاثیر مقاومت های ستونی و ردیفی قرار میگیره رو پیدا کنی مثلا وقتی کلید 5 رو فشار بدی روی السیدی عدد 200 رو نشون میده ...پس توی کدی که اول فرستادم باید بجای pin ، عدد 200 رو قرار بدی
            .
            .
            از نظر من این بهترین روشه چون فقط یه دونه از پایه ها اشغال میشه و دستور خوندن کی پد هم فقط یه خطه!
            جدیدترین ویرایش توسط saeed under line; ۱۳:۴۱ ۱۳۹۵/۰۶/۰۷.

            دیدگاه


              #7
              پاسخ : keypad with codevision

              خب این روش هم ADC میخاد و نویز و این مسائل وارد میشه و در ضمن فشردن 2 یا چند کلید نتایج نا مشخصی داره...
              تولید کننده تجهیزات برنامه پذیر اتوماسیون صنعتی

              www.intelart.ir


              ساخت کنترلر دما PID فازي با AVR [آموزشی]

              دیدگاه


                #8
                پاسخ : keypad with codevision

                هیچکس همزمان دو تا کلید فشار نمیده___
                دومن اول با السیدی دقیق به دست میاریم عددارو و بعدش با محاسبه خطا توی برنامه لحاظ میکنیم____(تا حالا فکر کردید اگه با روش معمولی یکی یکی ستونا رو اسکن کنیم و همزمان دو تا کلید فشرده بشه چه اتفاقی میافته؟؟؟...خطا دیگه همه جا هست!)
                والا من خودم همیشه این کار میکنم ....شما اگه روشی بلدین که نویز کمتری داره ممنون میشم بگید!!!

                دیدگاه


                  #9
                  پاسخ : keypad with codevision

                  در روش ماتریسی میشه فشرده شدن دو کلید رو پیش بینی کرد حتی تا چند کلید هم میشه...توضیحات مفصلشو گذاشتم داخل فروم..بگردید پیدا میشه

                  واسه کاهش نویز خب باید از فیلتر های مناسبش استفاده کنید...
                  تولید کننده تجهیزات برنامه پذیر اتوماسیون صنعتی

                  www.intelart.ir


                  ساخت کنترلر دما PID فازي با AVR [آموزشی]

                  دیدگاه


                    #10
                    پاسخ : keypad with codevision

                    نوشته اصلی توسط fkmj نمایش پست ها
                    سلام دوستان....
                    من میخوام یک عدد سه رقمی از کیپد بگیرم بعد اگر مثلا دکمه ی فلانو از کیپد زدم این عددو با یک عدد ثابت جمع کنم و بعد روی ال سی دی نشون بدم..
                    چی کار باید بکنم؟؟؟؟
                    به نظر شما اصلا کاربر توی این کار ،بیشتر از یک کلید در یک زمان فشار میده؟؟؟؟؟؟

                    دیدگاه

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