اطلاعیه

Collapse
No announcement yet.

کمک در مورد خوندن کیبرد

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

    کمک در مورد خوندن کیبرد

    با سلام (:
    چطوری وقتی با میکرو کیبرد رو میخونیم میشه اطلاعات وارد شده رو ذخیره کرد؟ من برای اینکار یک آرایه تعریف کردم اطلاعات رو پس از اینکه با دستور String به رشته تبدیل کردم همزمان به روی ال سی دی نمایش میدم در ضمن یک آرایه عددی هم تعریف کردم که اطلاعات رو هر چقدر سعی میکنم توی اون بریزم نمیشه و موقع خوندن تمام آرایه هاش صفرن ( اطلاعات رو قبل از ریختن داخل آرایه تبدیل به عدد میکنم ) مشگل از کجا ممکنه باشه ؟ ممنون میشم کمکم کنید ؟


    - با تشکر

    گاهی به آسمان نگاه کن ...

    #2
    پاسخ : کمک در مورد خوندن کیبرد

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

    نفهمیدم . اگر ممکنه همین یک تیکه رو دوباره توضیح بدید .(من یه کم کندم :redface برنامتون روهم بذارید البته من با C کار می کنم موفق باشید :nerd:


    [hr]ایمان علم عشق عدالت
    دوستان! مدتی کمتر به سایت میام ..

    دیدگاه


      #3
      پاسخ : کمک در مورد خوندن کیبرد

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

      دیدگاه


        #4
        پاسخ : کمک در مورد خوندن کیبرد

        با سلام
        من با بسکام کار میکنم کدش هم اینه

        کد:
         $regfile = "m32def.dat"
         $crystal = 1000000
        '-----------------LCD Config -------------------------------------
        Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , _
         Db7 = Portb.7 , E = Portb.3 , Rs = Portb.2
         Config Debounce = 80
         Config Lcd = 16 * 2
         Cursor On : Cls : Home
        Cursor Blink
        Declare Sub Keyboard
        '------------------- keyboard declartion ------------------------
         Config Keyboard = Pind.6 , Data = Pind.5 , Keydata = Keydata
        
        '--------------------------Variables -----------------------------
         Dim Key As Byte
         Dim Key_str As String * 1 : Dim Temp(15) As Byte
         Dim I As Byte
        '---------------------------- main -------------------------------
        
        Main:
         'If Pind.3 = 0 Then Call Keyboard
         'Debounce Pinb.3 , 0 , Keyboard
         Keyboard
        
         jmp main
        
        End
        
        ' ------------------------- Keyboard ------------------------
        Sub Keyboard
         I = 1
         Cls : Home : Lcd "Enter your Text:" : Lowerline
         While I <> 4
          Key = Getatkbd()
          If Key = 44 Then
          Cls : Home : Lcd "Enter your Text:" : Lowerline : I = 1
          Else
          Incr I
          Key_str = String(1 , Key)
          Lcd Key_str
          Temp(i) = Val(key_str)
          Waitus 100
          End If
          Wend
          Cls : Home : Lcd "You've typed:" : Lowerline : I = 1
          While I <> 4
          Incr I
          Lcd Str(temp(i))
         Wend
        End Sub Keyboard
        ' ------------------------- Keyboard LOOKUP ------------------------
        
         Keydata:
        Data 0 , 0 , 0 , 0 , 0 , 200 , 201 , 202 , 0 , 0 , 0 , 0 , 0 , 0 , &H5E , 0
        Data 0 , 0 , 0 , 0 , 0 , 113 , 49 , 0 , 0 , 0 , 122 , 115 , 97 , 119 , 50 , 0
        Data 0 , 99 , 120 , 100 , 101 , 52 , 51 , 0 , 0 , 32 , 118 , 102 , 116 , 114 , 53 , 0
        Data 0 , 110 , 98 , 104 , 103 , 121 , 54 , 7 , 8 , 44 , 109 , 106 , 117 , 55 , 56 , 0
        Data 0 , 44 , 107 , 105 , 111 , 48 , 57 , 0 , 0 , 46 , 45 , 108 , 48 , 112 , 43 , 0
        Data 0 , 0 , 0 , 0 , 0 , 92 , 0 , 0 , 0 , 0 , 13 , 0 , 0 , 92 , 0 , 0
        Data 0 , 60 , 0 , 0 , 0 , 0 , 8 , 0 , 0 , 49 , 0 , 52 , 55 , 0 , 0 , 0
        Data 48 , 44 , 50 , 53 , 54 , 56 , 0 , 0 , 0 , 43 , 51 , 45 , 42 , 57 , 0 , 0
        
        'shifted keys UPPER case
        Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0
        Data 0 , 0 , 0 , 0 , 0 , 81 , 33 , 0 , 0 , 0 , 90 , 83 , 65 , 87 , 34 , 0
        Data 0 , 67 , 88 , 68 , 69 , 0 , 35 , 0 , 0 , 32 , 86 , 70 , 84 , 82 , 37 , 0
        Data 0 , 78 , 66 , 72 , 71 , 89 , 38 , 0 , 0 , 76 , 77 , 74 , 85 , 47 , 40 , 0
        Data 0 , 59 , 75 , 73 , 79 , 61 , 41 , 0 , 0 , 58 , 95 , 76 , 48 , 80 , 63 , 0
        Data 0 , 0 , 0 , 0 , 0 , 96 , 0 , 0 , 0 , 0 , 13 , 94 , 0 , 42 , 0 , 0
        Data 0 , 62 , 0 , 0 , 0 , 8 , 0 , 0 , 49 , 0 , 52 , 55 , 0 , 0 , 0 , 0
        Data 48 , 44 , 50 , 53 , 54 , 56 , 0 , 0 , 0 , 43 , 51 , 45 , 42 , 57 , 0 , 0
        با این برنامه فقط کیبرد رو میخونه و رو ال سی دی نمایش میده اما آرایه خونده شده رو توی TEMP نمیریزه

        مشکل کجا میتونه باشه ؟

        - ممنون
        گاهی به آسمان نگاه کن ...

        دیدگاه


          #5
          پاسخ : کمک در مورد خوندن کیبرد

          سلام
          بجای تبدیلات مکرر مقدار key رو مستقیم وارد آرایه کن


          یا حق

          دیدگاه


            #6
            پاسخ : کمک در مورد خوندن کیبرد

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

            دیدگاه


              #7
              پاسخ : کمک در مورد خوندن کیبرد

              با سلام (:
              1- من میخوام مقدار گرفته شده رو تو ایپرام بنویسم پس قاعدتاٌ باید تبدیل به مقدار عددی بشه بعد تو ایپرام نوشته بشه اگر بخوام مستقیماٌ مقداد داده شده رو توی ارایه بنویسم باید آرایه رشته ای تعریف کنم که البته اینکار رو هم کردم و جواب نمیده
              2- دلیل اینکه تو جدول تغییر دادم اینه که من میخوام کلیدهای اف یک و اف دو و اف دوازده رو بخونم ولی با جدول لوک اپ کتاب کاهه فقط کلیدهای عددی و حرفی خونده میشه بنابراین مجبور به دستکاری کردن جدول شدم درضمن میتونسم به راحتی از حلقه های راحتری مثل for و next استفاده کنم و حتی تابع استفاده نکنم ولی چون این برنامه قسمتی از یک برنامه خیلی بزرگتر هست باید جایی که لازم دارم تابع خوندن کیبرد رو صدا کنم . حلقه for و Next هم اینجا جواب نیمده ! یعنی اگر حلقم 16 تا باید بشمره بعد از 4 تا شمردن از حلقه خارج میشه ! مگر حلقه های نا متناهی!!! من این برنامه رو بدون تعریف تابع هم نوشتم ولی بازم کار نمیکنه ! بدون تبدیلات متوالی هم جواب نگرفتم مثلاٌ 16 کاراکتر رو داخل آرایه ریختم ولی موقع نمایش اون تماماٌ آرایه خالی بود!

              بازم ممنون از راهنمایی های دوستان

              گاهی به آسمان نگاه کن ...

              دیدگاه


                #8
                پاسخ : کمک در مورد خوندن کیبرد

                سلام
                من با آقا حامد موافقم چرا اینقدر برنامه رو پیچوندی
                تابع های str بیشتر برای نمایش اطلاعات به کار میرن نه برای ذخیره!
                به نظر من باید اطلاعات عددی از کیبرد رو ذخیره کنی و موقعی لازم داشتی
                دیتا رو از حافظه تبدیل به str کن( برای نمایش پس اول ذخیره بعد تبدیل)
                موفق باشی

                یا حق

                دیدگاه


                  #9
                  پاسخ : کمک در مورد خوندن کیبرد

                  با استفاده از دستورات از پیش تعیین شده بیسکام فقط کافیه کد اسکی حرف فشرده شده رو بخونی. پس بعد از فشردن کلید یک عدد 8 بیتی داری که باید اون رو تا حافظه EEPROM بریزی. تا اینجا نیازی به آرایه نیست.
                  در مورد حلقه و تابع و ... به نظر میرسه خیلی راحت تر میشد این کار رو کرد. اگه یه بار توضیح بدی که دقیقا وظیفه صفحه کلید تو برنامت چیه و چه روندی باید طی بشه می تونم بهتر توضیح بدم

                  دیدگاه


                    #10
                    پاسخ : کمک در مورد خوندن کیبرد

                    با سلام (:
                    این برنامه قسمتی از یک تابلو روان هست . نوشته مورد نظر کاربر تو ایپرام هست و روی تابلو نمایش داد میشه حالا اگه کاربر بخواد نوشته رو عوض کنه یک کلید خارجی رو میزنه و برنامه به روال کیبرد میره بعد از ورود متن جدید که با کیبرد نوشته میشه و تایید اون این متن توی ایپرام قرار میگیره ( جای متن قبلی ) و دوباره روی تابلو نمایش داده میشه . پس من مجبورم اول این قابلیت ورود متن قابلیت ادیت رو ایجاد کنم بعد از تایید نهایی توی ایپرام ذخیره کنم .

                    چه باید بکنم ؟

                    - مرسی
                    گاهی به آسمان نگاه کن ...

                    دیدگاه


                      #11
                      پاسخ : کمک در مورد خوندن کیبرد

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

                      دیدگاه


                        #12
                        پاسخ : کمک در مورد خوندن کیبرد

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

                        سوال دوم راجع به مطلب آقای fpgaintel هست که فرموده بودند اول اطلاعات ذخیره بشه .چه جوری میشه این کار رو انجام داد؟

                        دیدگاه


                          #13
                          پاسخ : کمک در مورد خوندن کیبرد

                          با تشکر

                          دیدگاه


                            #14
                            پاسخ : کمک در مورد خوندن کیبرد

                            با سلام (:
                            جناب جعفری ممنون از راهنماییتون . من هم دقیقاٌ از یک میکرو سئوییچ جداگانه استفاده میکنم . وقتی وقفه داده میشه تابلو متوقف میشه و ال سی دی روشن و کیبرد اسکن میشه . دارم به این نتیجه میرسم بر خلاف میکروی پی آی سی بیسیک آی وی آر خیلی ضعیفه . باید سی کار کنم :agree:


                            - شاد باشید
                            گاهی به آسمان نگاه کن ...

                            دیدگاه

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