امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
نوشتن عدد روی LCD با KEYPAD
نویسنده پیام
ehsancompany آفلاین
كاربر تک ستاره
*

ارسال‌ها: 38
موضوع‌ها: 10
تاریخ عضویت: خرداد ۱۳۹۰

تشکرها : 43
( 2 تشکر در 2 ارسال )
ارسال: #1
نوشتن عدد روی LCD با KEYPAD
سلام سلام بچه ها Happy
بازم یه مشکلWhistle
این دفعه مشکلم اینه که میخوام یه عددی مثلا 3272 رو با KEYPAD روی LCD بنویسم
ولی......جریان دارهAngry
اول برنامه رو داشته باشین
تا توضیحاتشم بدم:
کد:
$regfile = "m16def.dat"
$crystal = 1000000

Config Kbd = Portb

Dim A As Word , B As Word , C As Word

Cursor Off
Home

Main:
Locate 2 , 1

Do

A = Getkbd()

If A > 15 Then
   Goto Main
Else


If A = 14 Then B = 2
If A = 13 Then B = 3
If A = 11 Then B = 4
If A = 10 Then B = 5
If A = 9 Then B = 6
If A = 8 Then B = 5
If A = 2 Then B = 0
If A = 7 Then B = 7
If A = 5 Then B = 9
If A = 6 Then B = 8
If A = 2 Then B = 0
If A = 1 Then B = 1
If A = 0 Then B = 1



     If B <= 9 Then
           C = C * 10
           C = C + B
             Lcd C

             Waitms 1000


Loop
  End If

End If

End

حالا مشکل کجاس......!Whistle
مشکل اینه که میخوام وقتی عدد 3 رو به عنوان عدد اول زدم تا تهش نرهAngry
یعنی 3 رو زدم حتی اگه دستم روی دکمه هم باشه همون 3 رو نشون بده
بعدش که دستمو از 3 برداشتم
2 رو زدم تا اینجاش 32 رو نشون بده

خلاصش:
دستمو رو دکمه نگه داشتم تا ته نره و 1 عدد نمایش بده نه N تا

همینConfused

GOD ,YOU KNOW BETTER
۰۵-دى-۱۳۹۰, ۲۰:۳۰:۵۳
ارسال‌ها
پاسخ
sharin آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 2,053
موضوع‌ها: 28
تاریخ عضویت: مرداد ۱۳۸۹

تشکرها : 3714
( 8171 تشکر در 2772 ارسال )
ارسال: #2
RE: نوشتن عدد روی LCD با KEYPAD
سلام.

وقتي دكمه اي زده نشه ، عدد 16 به ميكرو فرستاده مي شه ... ( اين يه قائده هست ... )
يعني براي getkbd :
قبلش يه label براش بذاريد. بعد از getkbd يه شرط مي ذاريد كه اگر مقدار گرفته شده مثلا بيشتر از 15 بود ، پرش كنه به همون label ...
اينطوري اونقدر دور مي خورهه تا شما يه عدد رو وارد كنيد .

براي وارد كردن چندتا عدد باز بايد به صورت جدا گانه اين كار رو انجام بديد ( البته از حلقه هم مي شه استفاده كرد كه فعلا توصيه نمي شه ... )
مابين هر بار getkbd بايد با دستور waitms ، كمي تاخير ايجاد كنيد.
.
.
.
چند بار سعي كنيد مشكلتون حل مي شه ...

موفق باشيد.
يا علي.

۰۷-دى-۱۳۹۰, ۲۰:۴۸:۳۹
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : ehsancompany, رسول
EBKA آفلاین
مخترع
****

ارسال‌ها: 1,099
موضوع‌ها: 89
تاریخ عضویت: آذر ۱۳۸۸

تشکرها : 1655
( 2792 تشکر در 982 ارسال )
ارسال: #3
RE: نوشتن عدد روی LCD با KEYPAD
سلام دوسته من شما اگه از دستور حلقه شرطی استفاده کنی کارت راحت تر و با اطمینان تر میشه..
کد:
a=grtkbd()
while a=16
a=getkbd()
waitms 20
wend
lcd a
while a<>16
a=get kbd()
wend
کل برنامت میشه همین .. راحت..
اگه سوالی داشتی بپرس تا بهت بگم..
موفق باشی

ابراهیم خوانین زاده
 ساعت کار بدن انسان بیشتر وقتها, کمتر از 657.000 ساعت است و بعد از آن از کار می افتد  :():کمی فکر کنیم.....

259-734

[/url]
وبلاگ من


وب سایت من
[url=http://www.ebka-intelligent.com/]
آموزش کار با rfm12b,آموزش کامل ای سی ds1307, آموزش اتصال ماژول em18,سنسور رنگ ,سنسور گاز, و ... در وبلاگ من خواهید دید



۰۷-دى-۱۳۹۰, ۲۲:۰۱:۵۸
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : ehsancompany, رسول
abbasalifix غایب
کاربر با تجربه
****

ارسال‌ها: 1,394
موضوع‌ها: 82
تاریخ عضویت: دى ۱۳۸۸

تشکرها : 1496
( 2198 تشکر در 1065 ارسال )
ارسال: #4
RE: نوشتن عدد روی LCD با KEYPAD
یه فرمان wait بهش اضافه کن درست میشه
۰۸-دى-۱۳۹۰, ۱۶:۴۷:۱۹
ارسال‌ها
پاسخ


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
Exclamation [فوری] کمک در نوشتن برنامه student123 1 2,028 ۰۸-مرداد-۱۳۹۳, ۲۰:۳۵:۵۳
آخرین ارسال: sharin
  کمک برای نوشتن برنامه مسیریاب hamedskort 11 9,574 ۲۸-شهریور-۱۳۹۰, ۱۹:۵۰:۵۹
آخرین ارسال: mg.javad
  نوشتن برنامه ربات مسیریاب skh1300 1 3,858 ۱۶-دى-۱۳۸۹, ۱۷:۲۷:۳۳
آخرین ارسال: ALI cv-c

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS