با سلام می خواستم بدونه با استفاده از وقفه چطوری می تونم یک کی پد 4*4 رو اسکن کنم البته با Bascom
اطلاعیه
Collapse
No announcement yet.
کی پد با استفاده از وقفه
Collapse
X
-
پاسخ : کی پد با استفاده از وقفه
با سلام من برنامه رو نوشتم دوستان چک کنن ببینن کجاش ایراد داره جواب نمیده در ضمن فایل پروتئوسشم هست
http://www.mediafire.com/?uhwergxypxlj0ji
یا
http://d01.megashares.com/dl/9e9bdee/key.zip
-
پاسخ : کی پد با استفاده از وقفه
سلام
شما باید 4 تا سیم سطر رو به vcc وصل کنید. 4تا سیم ستون هم به 4 تا دیود وصل کنید و بعد از دیو به هم وصا کنید تا یک سیم بدست بیاد و بعدش به یکی از وقفه ها وصلش کنید. حالا وقتی وقفه اجرا شد ( یکی از کلید ها فشرده شد) داخل تابع وقفه به روش پولینگ یا همون سرکشی، چک کنید ببینید کدوم کلید بوده. البته اینم بگه روش بستن کیپد همون جوریه فقط سیم های ستون رو هم با به اضافه اینکه به میکرو وصله با دیود به وقفه وصل کنی.
دیدگاه
-
پاسخ : کی پد با استفاده از وقفه
نوشته اصلی توسط akbar4742سلام
شما باید 4 تا سیم سطر رو به vcc وصل کنید. 4تا سیم ستون هم به 4 تا دیود وصل کنید و بعد از دیو به هم وصا کنید تا یک سیم بدست بیاد و بعدش به یکی از وقفه ها وصلش کنید. حالا وقتی وقفه اجرا شد ( یکی از کلید ها فشرده شد) داخل تابع وقفه به روش پولینگ یا همون سرکشی، چک کنید ببینید کدوم کلید بوده. البته اینم بگه روش بستن کیپد همون جوریه فقط سیم های ستون رو هم با به اضافه اینکه به میکرو وصله با دیود به وقفه وصل کنی.
در ضمن، اونطرف که یک سیم بدست میاد و میخوای به پایه وقفه وصلش کنی، با مقاومت 4K7 به مثبت و با خازن 100nF به زمین مدار وصل کن........مادامی که از شخصی یاد میشود، او و افکارش زنده اند ....
Sh_Nourbakhsh@Yahoo.com
http://s2.picofile.com/file/7170362468/_Wall_e_.jp
دیدگاه
-
پاسخ : کی پد با استفاده از وقفه
نوشته اصلی توسط tofan_2050با سلام بازهم نشد اگه ممکنه تو پروتوس شبیه سازیش رو درست کنین و بزارین ممنون میشم
این راهنمائی که دوست خوبمون کردن، کاملا عملی و تست شده هست :biggrin:
احتمالا مشکل نرم افزاری داری....
کد و شماتیک رو بزار بررسی کنیم :nerd:oo:
مادامی که از شخصی یاد میشود، او و افکارش زنده اند ....
Sh_Nourbakhsh@Yahoo.com
http://s2.picofile.com/file/7170362468/_Wall_e_.jp
دیدگاه
-
پاسخ : کی پد با استفاده از وقفه
نوشته اصلی توسط tofan_2050با سلام شماتیک و کد برنامه رو تو پست دوم و یا سوم گذاشتم فایل پروتئوس هستش
پروتئوس ندارم و کار نمیکنم، :surprised: عکس شماتیک رو بزار...مادامی که از شخصی یاد میشود، او و افکارش زنده اند ....
Sh_Nourbakhsh@Yahoo.com
http://s2.picofile.com/file/7170362468/_Wall_e_.jp
دیدگاه
-
پاسخ : کی پد با استفاده از وقفه
با سلام،
سخت افزارت تقریبا باید مثل این باشه :
[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
دیدگاه
-
پاسخ : کی پد با استفاده از وقفه
نوشته اصلی توسط 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
دیدگاه
دیدگاه