ايران ويج

نسخه‌ی کامل: اتصال دو کی پد به میکرو؟
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
سلام
دوستان من باید یه ماشین حساب مهندسی با بسکام بنویسم و زود تحویل بدم!!!
میخواستم بپرسم اگه دو تا کی پد مثلا به پورتهای a,b وصل کنم چطوری تو بسکام ورودی بگریم از دوتاشون!؟
منتظر راهنمایی شما و متشکرم
(۰۸-تير-۱۳۹۰, ۱۷:۱۷:۳۵)fffkral نوشته است: [ -> ]سلام
دوستان من باید یه ماشین حساب مهندسی با بسکام بنویسم و زود تحویل بدم!!!
میخواستم بپرسم اگه دو تا کی پد مثلا به پورتهای a,b وصل کنم چطوری تو بسکام ورودی بگریم از دوتاشون!؟
منتظر راهنمایی شما و متشکرم
سلام..
فک کنم این طور بشه که تو وسط برنامه config kbd=portx رو عوض کنی!!!
سلام
منظورتون از اتصال دو تا کیپد چیه ؟ شما در استفاده از دو کیپد میتونین دو هدف رو داشته باشین.
1-یکی اینکه این دو در کنار هم تشکیل یک کیپد بزرگتر رو بدن مثال با دو کیپد 4*4 میتونیم یک کیپد 4*8 داشته باشیم و
2- اینکه این دو کیپد در کنار هم یک کار رو انجام بدن یعنی در کل ما با یکی از دو کیپد 4*4 به صورت دلخواه یک کار رو انجام میدیم.(دو کیپد با کار مشابه)
جواب گزینه 1:
اگر منظورتون گزینه یک هست شما میتونید ستونهای دو کیپد رو به هم وصل کنید و در کل یک کیپد با چار ستون و هشت سطر بدست بیارید.برای وصل کردن اون به میکرو ستونها مشترک و سطرهای کیپد اول به پورت اول (مثال PA ) وصل میشه حالا برای وصل کردن 4 سطر بعدی که مربوط به گیپد دوم هست رو با دستور زیر پیکربندی میکیم(فرض کنید این چهار سطر رو میخوایم به PB0 تاPB3 وصل کنیم.بجای نوشتنconfig kbd = portA مین.یسیم
config kbd=porta ,debounce=50 , row4=pinb.0 , row5=pinb.1 , row6=pinb.2 , row7=pinb.3
با این دستور سطرهای اظافی را معرفی کرده و توسط دستور get kbd=() راحت اطلاعات رو از کیپد جدید میگیرید.


جواب گزینه2:
از روشی که تو گزینه اول گفتم میتونی استفاده کنی فقط باید تو نوشتن برنامه دقت کنی به طور مثال ما یک کیپد 4*8 داریم ولی میوایم به صورت دو کیپد 4*4 باشه که کلیدهای مشابه یک کار انجام بدن.خوب ما در دستور getkbd اعداد0تا (31رو دریافت میکنیم(0 تا 15 برای کیپد اول و 16 تا 31 برای کیپد دوم) حالا باید توجه کنی که کلید 0 متناظر با کلید 16 هست برای هر دو یک برنامه مشابه مینویسیم .
0=16 و1=17 و2=18 و3=18 و...
مثال )با فشردن هر کلید عدد مورد نظر در متغییر data قرار بگیره . با فرض پیکر بندی مدارمینویسیم:
source=getkbd()
if source=0 or source=16 then
data = source
....
امیدوارم متوجه شده باشی در ضمن میتونی از ایسی دیکودر با شماره MM74C922 استفاده کنی . البته به نظر من روش بالا بهتر چون سخت افزار اظافی نداره بهتره موفق باشی.