اطلاعیه

Collapse
No announcement yet.

اشکال در key_pad یا ورژن protuse

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

    اشکال در key_pad یا ورژن protuse

    با سلام خدمت مهندسین گرامی
    وقتی با پروتئوس 7.7 برنامه اسکن صفحه کلید رو با بسکام نوشتم همه کلید های یک سطر رو یکی نشون میده رو lcd قبلا با برنامه مشابه همچنین مشکلی نداشتم.میشه توضیح بدین مشکل از کجاست؟و یه کد ساده از برنامه ای که جواب گرفتین ارائه بدین؟
    فوق کل ذی علم علیم
    مهندسین هیچ گاه به بن بست نمیرسند یا راهی پیدا می کنند یا راهی میسازند

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

    #2
    پاسخ : اشکال در key_pad یا ورژن protuse

    سلام دوست من
    منم همین مشکل تورو داشتم
    شما احتمالا بعد از خواندن صفحه کلید دستور goto استفاده کردید که همین باعث میشه درست کار نکنه
    راه حلش اینه که موقع کانفیگ کردن کیپد اون زمان تاخیر یا دیبانس رو که اختیاریه بنویسی مقدارش هم مهم نیست فقط باید بنویسیش
    نمیدونم چرا ولی وقتی دیبانس رو تعریف نکنی و بعدش دستور goto بنویسی درست کار نمیکنه
    در ضمن زمانی که من این مشکل رو نمیدونستم یه سورس نوشتم که خیلی طولانی تر و سختتره ولی درست جواب میده
    اگه جواب نگرفتی بگو برات بذارم

    دیدگاه


      #3
      پاسخ : اشکال در key_pad یا ورژن protuse

      سلام دوست عزیز منم مشکل شما رو داشتم .اما این برنامه جواب داد . استفاده کنید .موفق باشید

      $regfile = "m32def.dat"
      $crystal = 8000000
      Config Lcdpin = Pin , Db4 = Portb.2 , Db5 = Portb.3 , Db6 = Portb.4 , Db7 = Portb.5 , E = Portb.1 , Rs = Portb.0
      Config Lcd = 16 * 2
      Config Kbd = Portd , Debounce = 100 , Delay = 10
      Dim M As Byte , D As Byte
      Dim A As Byte
      Cls
      Home
      Main:
      M = Getkbd()
      If M = 16 Then Goto Main
      Main2:
      D = Getkbd()
      If D <> 16 Then Goto Main2
      A = Lookup(m , Read_key)

      Lcd A
      'Cls
      'Goto Main

      End
      Read_key:
      Data 7 , 8 , 9 , 10 , 4 , 5 , 6 , 11 , 1 , 2 , 3 , 12 , 13 , 0 , 14 , 15

      دیدگاه


        #4
        پاسخ : اشکال در key_pad یا ورژن protuse

        نوشته اصلی توسط shadi_computer
        سلام دوست عزیز منم مشکل شما رو داشتم .اما این برنامه جواب داد . استفاده کنید .موفق باشید

        $regfile = "m32def.dat"
        $crystal = 8000000
        Config Lcdpin = Pin , Db4 = Portb.2 , Db5 = Portb.3 , Db6 = Portb.4 , Db7 = Portb.5 , E = Portb.1 , Rs = Portb.0
        Config Lcd = 16 * 2
        Config Kbd = Portd , Debounce = 100 , Delay = 10
        Dim M As Byte , D As Byte
        Dim A As Byte
        Cls
        Home
        Main:
        M = Getkbd()
        If M = 16 Then Goto Main
        Main2:
        D = Getkbd()
        If D <> 16 Then Goto Main2
        A = Lookup(m , Read_key)

        Lcd A
        'Cls
        'Goto Main

        End
        Read_key:
        Data 7 , 8 , 9 , 10 , 4 , 5 , 6 , 11 , 1 , 2 , 3 , 12 , 13 , 0 , 14 , 15
        واست اصلاحش کردم
        $regfile = "m32def.dat"
        $crystal = 8000000
        Config Lcdpin = Pin , Db4 = Portb.2 , Db5 = Portb.3 , Db6 = Portb.4 , Db7 = Portb.5 , E = Portb.1 , Rs = Portb.0
        Config Lcd = 16 * 2
        Config Kbd = Portd , Debounce = 100 , Delay = 10
        Dim M As Byte , D As Byte
        Dim A As Byte
        Cls
        Home
        Main:
        M = Getkbd()
        If M >15 Then Goto Main
        A = Lookup(m , Read_key)
        Lcd A
        Cls
        Goto Main

        End
        Read_key:
        Data 7 , 8 , 9 , 10 , 4 , 5 , 6 , 11 , 1 , 2 , 3 , 12 , 13 , 0 , 14 , 15
        [/quote]



        $regfile = "m32def.dat"

        دیدگاه


          #5
          پاسخ : اشکال در key_pad یا ورژن protuse

          بعدش هم پروتئوس های ورژن جدید همین مشکل رو با کی پد دارند من خودم با button کی پد رو درست می کنم

          دیدگاه


            #6
            پاسخ : اشکال در key_pad یا ورژن protuse

            ممنونم از اصلاحتون 2تا سوال بپرسم ؟
            1- مشکل چی بود دقیقا؟
            2- وقتی برنامه شما رو توی پروتئوس اجرا کردم هر عددی رو که زدم 2 بار روی نمایشگر نشون داده می شد.چرا ؟

            دیدگاه


              #7
              پاسخ : اشکال در key_pad یا ورژن protuse

              نوشته اصلی توسط shadi_computer
              ممنونم از اصلاحتون 2تا سوال بپرسم ؟
              1- مشکل چی بود دقیقا؟
              2- وقتی برنامه شما رو توی پروتئوس اجرا کردم هر عددی رو که زدم 2 بار روی نمایشگر نشون داده می شد.چرا ؟
              مشکل اینکه برای کی پد 4*4 وقتی کلیدی فشرده نمیشه عدد 16 برگردونده می شه و شما باید شرطی می زاشتید که این رو ندید بگیره و باید شرط m>15 رو می زاشتید .

              2- اگر دو بار نشون می ده مقدار Debounce = 100 , Delay = 10
              رو بیشتر کن مثلا Debounce = 200, Delay = 100
              اگر باز هم 2 تا نشون داد بعد از Lcd A
              waitms 100 بزار درست میشه

              دیدگاه


                #8
                پاسخ : اشکال در key_pad یا ورژن protuse

                نوشته اصلی توسط hemati01
                سلام دوست من
                منم همین مشکل تورو داشتم
                شما احتمالا بعد از خواندن صفحه کلید دستور goto استفاده کردید که همین باعث میشه درست کار نکنه
                راه حلش اینه که موقع کانفیگ کردن کیپد اون زمان تاخیر یا دیبانس رو که اختیاریه بنویسی مقدارش هم مهم نیست فقط باید بنویسیش
                نمیدونم چرا ولی وقتی دیبانس رو تعریف نکنی و بعدش دستور goto بنویسی درست کار نمیکنه
                در ضمن زمانی که من این مشکل رو نمیدونستم یه سورس نوشتم که خیلی طولانی تر و سختتره ولی درست جواب میده
                اگه جواب نگرفتی بگو برات بذارم
                دوست عزیز از goto استفاده کردم اما موقع config هم همین کارها رو انجام دادم و باز این مشکلو دارم.ممنون از پاسختون
                فوق کل ذی علم علیم
                مهندسین هیچ گاه به بن بست نمیرسند یا راهی پیدا می کنند یا راهی میسازند

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

                دیدگاه


                  #9
                  پاسخ : اشکال در key_pad یا ورژن protuse

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

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

                  دیدگاه


                    #10
                    پاسخ : اشکال در key_pad یا ورژن protuse

                    سلام دوست عزیز
                    شما از کیپد اماده خود پروتئوس استفاده کردین ؟؟؟؟
                    شما با push buttom خودتون درست کنین
                    100 جواب میده

                    دیدگاه


                      #11
                      پاسخ : اشکال در key_pad یا ورژن protuse

                      سلام دوست من
                      برات یه نمونه کیپد موبایل که حروف هم مینویسه همراه با شبیه سازی داخل یه فایل زیپ پلود کردم که میتونی از اینجا دانلود کنی
                      http://www.mediafire.com/?6l5r8d00ot8bg7o
                      این پروژه رو همین الان تو کامپیوتر خودم با ورژن 7.8 پروتیوس چک کردم و درسته اگه جواب نداد بدون کامپیوترت مشکل داره
                      اگه بازم مشکلی داشتی بگو

                      دیدگاه


                        #12
                        پاسخ : اشکال در key_pad یا ورژن protuse

                        سلام ببخشید می دونم جای این سوال اینجا نیست :cry2:
                        اما واقعا عجله دارم . لطفا کمک کنید :cry2::
                        من می خوام یه برنامه بنویسم که وقتی بریزی رو میکرو ، میکرو منتظر بمونه که من یکی از سه تا کلیدی رو که روی پورت a قرار دادم رو فشار بدم و بعد شروع کنه به خوندن زیر برنامه های مربوط.
                        من برنامه زیر رو نوشتم ولی وقتی تست میکنم فرقی نمیکنه که کدوم کلید رو بزنم میکرو فقط دستور اولی رو اجرا میکنه "لطفا کمک کنید نمیدونم باید چیکار کنم واسه فردا هم حتما باید امادش کنم :angry: :angry:


                        $regfile = "m16def.dat"
                        $crystal = 1000000
                        Config Portb = Output
                        Config Pina.0 = Input
                        Config pina.1 = Input
                        Config Pina.2 = Input
                        Config Debounce = 25

                        Ahoora:
                        Do

                        Debounce Pina.0 , 1 , Jimi
                        Debounce Pina.1 , 1 , Jimi2
                        Debounce Pina.2 , 1 , Jimi3

                        Loop
                        End

                        Jimi:
                        Debounce Pina.1 , 1 , Jimi2
                        Portb.1 = 1
                        Waitms 500
                        Toggle Portb.1
                        Waitms 500
                        Portb.1 = 1
                        Waitms 500
                        Toggle Portb.1
                        Waitms 500
                        Goto Ahoora


                        Jimi2:
                        Debounce Pina.2 , 1 , Jimi3
                        Portb.1 = 1
                        Waitms 500
                        Toggle Portb.1
                        Waitms 500
                        Portb.1 = 1
                        Waitms 500
                        Toggle Portb.1
                        Waitms 500
                        Portb.1 = 1
                        Waitms 500
                        Toggle Portb.1
                        Waitms 500
                        Goto Ahoora

                        Jimi3:
                        Portb.1 = 1
                        Waitms 500
                        Toggle Portb.1
                        Waitms 500
                        Portb.1 = 1
                        Waitms 500
                        Toggle Portb.1
                        Waitms 500
                        Portb.1 = 1
                        Waitms 500
                        Toggle Portb.1
                        Waitms 500
                        Portb.1 = 1
                        Waitms 500
                        Toggle Portb.1
                        Waitms 500
                        Goto Ahoora




                        لطفا کمک کنید :angry: :angry:
                        شکست اولین قدم پیروزیه /

                        دیدگاه


                          #13
                          پاسخ : اشکال در key_pad یا ورژن protuse

                          سلام جمشید جان
                          من برنامه شما رو شبیه سازی کردم
                          زمانی که اجرا کردم درست بود و هر کلید زیربرنامه خودش رو اجرا میکرد برای اینکه متوجه بشی در زیربرنامه ها portb.1 رو به portb.2 تغییر بده
                          در ضمن اگه مقاومت به کلیدها وصل نکنی درست جواب نمیده شما مثل این عکس مقاومت ها رو وصل کن

                          دیدگاه

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