اطلاعیه

Collapse
No announcement yet.

کی پد با استفاده از وقفه

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

    کی پد با استفاده از وقفه

    با سلام می خواستم بدونه با استفاده از وقفه چطوری می تونم یک کی پد 4*4 رو اسکن کنم البته با Bascom

    #2
    پاسخ : کی پد با استفاده از وقفه

    با سلام من برنامه رو نوشتم دوستان چک کنن ببینن کجاش ایراد داره جواب نمیده در ضمن فایل پروتئوسشم هست
    http://www.mediafire.com/?uhwergxypxlj0ji
    یا
    http://d01.megashares.com/dl/9e9bdee/key.zip

    دیدگاه


      #3
      پاسخ : کی پد با استفاده از وقفه

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

      دیدگاه


        #4
        پاسخ : کی پد با استفاده از وقفه

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

        دیدگاه


          #5
          پاسخ : کی پد با استفاده از وقفه

          نوشته اصلی توسط akbar4742
          سلام
          شما باید 4 تا سیم سطر رو به vcc وصل کنید. 4تا سیم ستون هم به 4 تا دیود وصل کنید و بعد از دیو به هم وصا کنید تا یک سیم بدست بیاد و بعدش به یکی از وقفه ها وصلش کنید. حالا وقتی وقفه اجرا شد ( یکی از کلید ها فشرده شد) داخل تابع وقفه به روش پولینگ یا همون سرکشی، چک کنید ببینید کدوم کلید بوده. البته اینم بگه روش بستن کیپد همون جوریه فقط سیم های ستون رو هم با به اضافه اینکه به میکرو وصله با دیود به وقفه وصل کنی.
          سلام،

          در ضمن، اونطرف که یک سیم بدست میاد و میخوای به پایه وقفه وصلش کنی، با مقاومت 4K7 به مثبت و با خازن 100nF به زمین مدار وصل کن........
          مادامی که از شخصی یاد میشود، او و افکارش زنده اند ....

          Sh_Nourbakhsh@Yahoo.com

          http://s2.picofile.com/file/7170362468/_Wall_e_.jp

          دیدگاه


            #6
            پاسخ : کی پد با استفاده از وقفه

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

            دیدگاه


              #7
              پاسخ : کی پد با استفاده از وقفه

              نوشته اصلی توسط tofan_2050
              با سلام بازهم نشد اگه ممکنه تو پروتوس شبیه سازیش رو درست کنین و بزارین ممنون میشم
              با سلام،

              این راهنمائی که دوست خوبمون کردن، کاملا عملی و تست شده هست :biggrin:
              احتمالا مشکل نرم افزاری داری....
              کد و شماتیک رو بزار بررسی کنیم :nerd: oo:
              مادامی که از شخصی یاد میشود، او و افکارش زنده اند ....

              Sh_Nourbakhsh@Yahoo.com

              http://s2.picofile.com/file/7170362468/_Wall_e_.jp

              دیدگاه


                #8
                پاسخ : کی پد با استفاده از وقفه

                نوشته اصلی توسط aivhl
                با سلام،

                این راهنمائی که دوست خوبمون کردن، کاملا عملی و تست شده هست :biggrin:
                احتمالا مشکل نرم افزاری داری....
                کد و شماتیک رو بزار بررسی کنیم :nerd: oo:
                با سلام شماتیک و کد برنامه رو تو پست دوم و یا سوم گذاشتم فایل پروتئوس هستش

                دیدگاه


                  #9
                  پاسخ : کی پد با استفاده از وقفه

                  نوشته اصلی توسط tofan_2050
                  با سلام شماتیک و کد برنامه رو تو پست دوم و یا سوم گذاشتم فایل پروتئوس هستش
                  سلام،

                  پروتئوس ندارم و کار نمیکنم، :surprised: عکس شماتیک رو بزار...
                  مادامی که از شخصی یاد میشود، او و افکارش زنده اند ....

                  Sh_Nourbakhsh@Yahoo.com

                  http://s2.picofile.com/file/7170362468/_Wall_e_.jp

                  دیدگاه


                    #10
                    پاسخ : کی پد با استفاده از وقفه

                    با سلام،

                    سخت افزارت تقریبا باید مثل این باشه :
                    [shadow=red,left]( و چون از پورت C استفاده شده، حتما باید JTAG غیر فعال شده باشه! )[/shadow]



                    و کد برنامت هم مثل این :
                    کد:
                    $regfile = "m32def.dat"
                    $crystal = 4000000
                    Config Lcd = 16 * 2
                    Config Lcdpin = Pin , Db4 = Portb.2 , Db5 = Portb.3 , Db6 = Portb.4 , Db7 = Portb.5 , E = Portb.1 , Rs = Portb.0
                    Const Debouncetime = 150
                    Config Pinb.6 = Output
                    Config Pind.2 = Input
                    Config Int0 = Falling
                    Dim Wtime As Byte
                    Dim Keycode As Byte
                    Dim Keychar As String * 1
                    Dim Row As Byte
                    Dim Column As Byte
                    
                    On Int0 Button
                    
                     Ddrc = &B11110000
                     Portc = &B00000000
                    
                    Wtime = 255
                    Cls
                    
                    Lcd "ready..."
                    Wait 1
                    Cls
                    
                    Enable Interrupts
                    Enable Int0
                    
                    Do
                     Set Portb.6
                     Waitms Wtime
                     Reset Portb.6
                     Waitms Wtime
                    Loop
                    
                    '*********************************************
                    Button:
                    	Disable Int0
                    	Waitms Debouncetime
                    
                     Portc = &B11101111
                     Keycode = Pinc
                    	If Keycode <> &B11101111 Then GoTo lbl1
                    
                     Portc = &B11011111
                     Keycode = Pinc
                    	If Keycode <> &B11011111 Then GoTo lbl1
                    
                     Portc = &B10111111
                     Keycode = Pinc
                    	If Keycode <> &B10111111 Then GoTo lbl1
                    
                     Portc = &B01111111
                     Keycode = Pinc
                    	If Keycode <> &B01111111 Then GoTo lbl1
                    
                    	Keycode = &B11111111
                    	
                    	lbl1:
                    
                    	 Select Case Keycode
                    	  Case &B11101110 : Keychar = "0"
                    	  Case &B11101101 : Keychar = "4"
                    	  Case &B11101011 : Keychar = "8"
                    	  Case &B11100111 : Keychar = "C"
                    	
                    	  Case &B11011110 : Keychar = "1"
                    	  Case &B11011101 : Keychar = "5"
                    	  Case &B11011011 : Keychar = "9"
                    	  Case &B11010111 : Keychar = "D"
                    	
                    	  Case &B10111110 : Keychar = "2"
                    	  Case &B10111101 : Keychar = "6"
                    	  Case &B10111011 : Keychar = "A"
                    	  Case &B10110111 : Keychar = "E"
                    	
                    	  Case &B01111110 : Keychar = "3"
                    	  Case &B01111101 : Keychar = "7"
                    	  Case &B01111011 : Keychar = "B"
                    	  Case &B01110111 : Keychar = "F"
                    	
                    	  Case &B11111111 : Keychar = "N"
                    	 End Select
                    	
                    	
                    	 If Column = 16 Then
                    	 	Incr Row
                    	  Column = 1
                    	 End If
                    	 
                    	 If Row = 3 Then
                    			Row = 1
                    	  Cls
                    	 End If
                    		
                    		Locate Row , Column
                    		Incr Column
                    	 Lcd Keychar
                    		
                    	
                    	 	Portc = &B00000000
                    		Enable Int0
                    	
                    		Return
                    End


                    ( البته من بیسیک بلد نیستم، این همون کد خودته که من تغییرش دادم، شاید اشکال سینتکسی داشته باشه! )
                    مادامی که از شخصی یاد میشود، او و افکارش زنده اند ....

                    Sh_Nourbakhsh@Yahoo.com

                    http://s2.picofile.com/file/7170362468/_Wall_e_.jp

                    دیدگاه


                      #11
                      پاسخ : کی پد با استفاده از وقفه

                      با سلام و ممنون از شما بازهم جواب نداد باید عملی ببندم ببینم جواب میده چون پروتئوس که جواب نداد اگه کس دیگه راهنمایی داره لطف کنه بذاره

                      دیدگاه


                        #12
                        پاسخ : کی پد با استفاده از وقفه

                        با سلام
                        دوستان نشد عملی هم جواب نمیده
                        اگه لطف کنید راهنمایی کنید ممنون میشم

                        دیدگاه


                          #13
                          پاسخ : کی پد با استفاده از وقفه

                          نوشته اصلی توسط tofan_2050
                          با سلام
                          دوستان نشد عملی هم جواب نمیده
                          اگه لطف کنید راهنمایی کنید ممنون میشم
                          با سلام،

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

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

                          .
                          .
                          .
                          On Int0 Button

                          Ddrc = &B11110000
                          [shadow=red,left] Portc = &B00000000[/shadow]

                          Wtime = 255
                          Cls
                          .
                          .
                          .

                          [shadow=red,left] Portc = &B00000000[/shadow]
                          Enable Int0

                          Return
                          .
                          .
                          .
                          .
                          مادامی که از شخصی یاد میشود، او و افکارش زنده اند ....

                          Sh_Nourbakhsh@Yahoo.com

                          http://s2.picofile.com/file/7170362468/_Wall_e_.jp

                          دیدگاه


                            #14
                            پاسخ : کی پد با استفاده از وقفه

                            با سلام نقشه و کد داخل پست اول
                            http://www.mediafire.com/?uhwergxypxlj0ji
                            یا
                            http://d01.megashares.com/dl/9e9bdee/key.zip

                            دیدگاه


                              #15
                              پاسخ : کی پد با استفاده از وقفه

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

                              دیدگاه

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