[
attachment=10277]با عرض سلام خدمت مهندسین عزیز
دوستان من هر کار میکنم نمیتونم این صفحه کلید راه اندازی کنم لطفا کمکم کنید فایل برنامه و شبیه سازی شدشم گذاشتم
کد:
$regfile = "m161def.dat".
$crystal = 1000000
Config Lcdpin = Pin , Db4 = Pinb.0 , Db5 = Pinb.1 , Db6 = Pinb.2 , Db7 = Pinb.3 , _
Rs = Pinb.5 , E = Pinb.4
Config Lcd = 16 * 2
Dim B As Byte
Config Kbd = Porta,debounce=50
A:
Do
B = Getkbd()
If B > 15 Then
Goto A
End If
Cls
Home
Lcd B
Loop
End 'end program
فایل شبیه سازی شدشم داخل فرم گذاشتم
مهندس ابن برنامه با 15تا شستی جواب میده اما با صفحه کلید جواب نمیده دقیقا همین برنامه
علتش چیه؟
از مهندسین عزیز کسی هست که من در راه اندازی کیپد یاری کنه؟
با دستور خود کیپد اصلا نتونستم جواب بگیرم تو قسمت بالای بالا نوشتم وبرنامرو قرار دادم
یک برنامه دیگه از تو نت بیاری یکی از دوستان پیدا کردم اما توضیح برنامرو متوجه نمیشم
کد:
$regfile = "m16def.dat"
$crystal = 1000000
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db7 = Portb.7 , Db6 = Portb.6 , Db5 = Portb.5 , Db4 = Portb.4 , E = Portb.2 , Rs = Portb.0
Config Portd.4 = Output
Config Portd.5 = Output
Config Portd.6 = Output
Config Portd.7 = Output
Dim A As Byte
Do
Portd = &B11110000 منظور از خط چیست و چرا این کار کرد؟
Portd.4 = 0 اینجا چرا این دستور نوشت؟
Waitms 5
If Pind.0 = 0 Then A = 12
If Pind.1 = 0 Then A = 7
If Pind.2 = 0 Then A = 4
If Pind.3 = 0 Then A = 1
Portd = &B11110000
Portd.5 = 0
Waitms 5
If Pind.0 = 0 Then A = 0
If Pind.1 = 0 Then A = 8
If Pind.2 = 0 Then A = 5
If Pind.3 = 0 Then A = 2
Portd = &B11110000
Portd.6 = 0
Waitms 5
If Pind.0 = 0 Then A = 14
If Pind.1 = 0 Then A = 9
If Pind.2 = 0 Then A = 6
If Pind.3 = 0 Then A = 3
Portd = &B11110000
Portd.7 = 0
Waitms 5
Home
Cursor Off
Lcd A ; " "
Loop
End 'end program
سلام nj_1368 جان
{شاید اشتباه کرده باشم.... دوستان حرفامو چک کنید لطفا}
نقل قول: سوال1
Portd = &B11110000 منظور از خط چیست و چرا این کار کرد؟
Portd.4 = 0 اینجا چرا این دستور نوشت؟
خوب دیگه
این یعنی 4 تا پین آخری از پورت D رو اول یک میکنه
بعدا با اجرای سطر بعدی، (مثلا اینجا...) پین 5 ام از پورت d یعنی portD.4 رو صفر میکنه
میتونست از همون اول اینطوری بنویسه:
portD = &B1110 0000
منظورمو رسوندم؟
راستی اسم 4 تا بیت (یعنی نصف بایت، چه قسمت کم ارزش، چه قسمت پر ارزش)، nibble هه.
http://en.wikipedia.org/wiki/Nibble
نقل قول: مهندس ابن برنامه با 15تا شستی جواب میده اما با صفحه کلید جواب نمیده دقیقا همین برنامه
علتش چیه؟
تو شبیه سازی؟ یا در عمل؟
اگه در عمل با 15 تا شستی کار میکنه، یعنی مشکل از کی پد یا سیم هایی که بهش وصل شدن، هست...
در عمل راستش امتحان نکردم اما در شبیه سازی این شکلی جواب میده
3 2 1
6 5 4
9 8 7
13 11 10
باشه وقتی عدد 1 میزنی 1 نشون میده ،2 و 3 هم که فشار میدی باز 1 نشون میده برای سایر ردیف ها هم به همین شکل یعنی عدد کل ردیف همون عدد اول ردیف می باشه اما همین برنامه بدون هیچ تغییری با13 شستی که استفاده میکنی درست میشه مشکل اینجاست که من میخوام از کیپد استفاده کنم
لطفا کمک کنید
راستی مهندس خب چرا یک بار ی ک میکنه بعد صفر میکنه تازه من با این حالت stop و play آهسته پرتیوس امتحان کردم تعداد صفر و یک شدن پایه بنظرم با برنامه متفاوت میامد
کمک کن مهندس کمک
کلید هایی که بستی ماتریسی بستی و روی مدار چک کردی؟
اره مهندس میگم با شستی جواب میده اما با کیپد نمیدونم چرا جواب نمیده؟
نقل قول: در عمل راستش امتحان نکردم اما در شبیه سازی این شکلی جواب میده
3 2 1
6 5 4
9 8 7
13 11 10
باشه وقتی عدد 1 میزنی 1 نشون میده ،2 و 3 هم که فشار میدی باز 1 نشون میده برای سایر ردیف ها هم به همین شکل یعنی عدد کل ردیف همون عدد اول ردیف می باشه اما همین برنامه بدون هیچ تغییری با13 شستی که استفاده میکنی درست میشه مشکل اینجاست که من میخوام از کیپد استفاده کنم
لطفا کمک کنید
فکر کنم مشکل از برنامه نیست...
نقل قول: راستی مهندس خب چرا یک بار ی ک میکنه بعد صفر میکنه تازه من با این حالت stop و play آهسته پرتیوس امتحان کردم تعداد صفر و یک شدن پایه بنظرم با برنامه متفاوت میامد
کمک کن مهندس کمک
بالا گفتم دیگه
دلیل خاصی نداره
راستی شما یه بار روی برد بورد تست کنید....
شاید پروتئوس مشکل داره
شاید اون کی پدی که شما توی پروتئوس ازش استفاده کردید از این ماتریسی ها نباشه....
من پروتئوس کار نکردم...
(۲۴-شهریور-۱۳۹۲, ۲۲:۴۳:۴۵)nj_1368 نوشته است: [ -> ]با شستی جواب میده اما با کیپد نمیدونم چرا جواب نمیده؟
مشکل از شبیه ساز پروتئوس
با یه سری دستورات تطبیق نیست
رو سخت افزار ببندید با همون کی پد جواب میگیرید
خوش باشید.