سلام این کار ساده ای هست
برای این کار
با یک دستور debounce آی سی ورودی رو چک می کنه هر موقع یک شد به یک sub یا lable پرش می کنه
حالا توی اون sub یا lable شما باید a رو یک واحد اضافه کنید و بایک شرط if مشخص کنید که وقتی a=8 یک واحد به b اضافه شود و
a=0 و بعدش ال سی دی b رو نشون بده
![008 008](https://www.iranled.com/forum/images/smilies/pack1/2008.gif)
![008 008](https://www.iranled.com/forum/images/smilies/pack1/2008.gif)
سلام دوست گرامی
در پیوست قرار دادم برنامه مورد نظرتو .
برنامه 1 : اگر روی کلید داشته باشی ، هر 300 میلی ثانیه ، یک واحد به a اضافه می کند و بعد اینکه a بزرگتر از 8 شد یک واحد به b اضافه می کند .
برنامه 2 :کار برنامه 1 رو انجام میده . با این تفاوت که با هر بار فشار دادن کلید یک واحد به a اضافه می کند .
موفق باشی ....
(۰۱-آبان-۱۳۹۱, ۲۱:۱۴:۳۲)hadikh73 نوشته است: [ -> ]سلام این کار ساده ای هست
برای این کار
با یک دستور debounce آی سی ورودی رو چک می کنه هر موقع یک شد به یک sub یا lable پرش می کنه
حالا توی اون sub یا lable شما باید a رو یک واحد اضافه کنید و بایک شرط if مشخص کنید که وقتی a=8 یک واحد به b اضافه شود و a=0 و بعدش ال سی دی b رو نشون بده ![008 008](https://www.iranled.com/forum/images/smilies/pack1/2008.gif)
![008 008](https://www.iranled.com/forum/images/smilies/pack1/2008.gif)
جان ؟؟؟؟
چی فرمودین ؟؟؟؟؟
میشه یه جوری بگی که منه چوپون بی سواد هم بفهمم ؟؟؟؟؟
(۰۱-آبان-۱۳۹۱, ۲۱:۵۶:۲۶)robojalal نوشته است: [ -> ]سلام دوست گرامی
در پیوست قرار دادم برنامه مورد نظرتو .
برنامه 1 : اگر روی کلید داشته باشی ، هر 300 میلی ثانیه ، یک واحد به a اضافه می کند و بعد اینکه a بزرگتر از 8 شد یک واحد به b اضافه می کند .
برنامه 2 :کار برنامه 1 رو انجام میده . با این تفاوت که با هر بار فشار دادن کلید یک واحد به a اضافه می کند .
موفق باشی ....
سوال : من برنامه ها رو خوندم و سوالاتی برام پیش اومد
برنامه اول
1- در خطوط 11 و 12 و13 خطوط 11 و 12 دستور شرط و کاری هستند که باید انجام بشند اما مگه برنامه دستورات رو به نوبت نمی خونه ؟ اگه اینجوری باشه پس خط 13 رو میخونه و b اقزایش پیدا میکنه و این خطاست
2- دستورات end و end if چه تفاوتی باهم دارند و هر کدوم چه جاهایی به کار میروند
3- در خط 13 دستور home چیه ؟ کارش چیه ؟ به چه درد میخوره ؟ کجا به کار میره ؟
4- در خط 19 lover line چیه ؟ کارش چیه ؟ به چه درد میخوره ؟ کجا به کار میره ؟
در برنامه دوم
سوالات قبل و
دستور bitwait چیه ؟ کارش چیه ؟ به چه درد میخوره ؟ کجا به کار میره ؟
به جای شرط با if از این دستور استفاده کن
کد:
debonce pxy,state,lable[,sub]
px.y پایه ای که کلید وصل میشه
state می تواند 1 و 0 باشد اگر 1 باشه وقتی پایه یک بشه به زیر برنامه میره وقتی 0 باشد لحظه ای که پایه 0 شد به زیر برنام میره
lable برچسبی که آی سی به آن پرش می کند
sub اختیاری اگر خواستی زیر برنامه فراخوانی بشه بنویس در غیر این صورت آی سی به یک lable پرش می کند
به این مثال ها نگاه کن
کد:
debounce pinb.0,1,hadi
hadi:
incr a
return
کد:
debounce pinb.0,1,hadi,sub
sub hadi:
incr a
end sub
حالا برنامه شما
کد:
do
debounce pinb.0,1,ab,sub
loop
sub ab
incr a
if a>8 then
a=0
incr b
end if
end sub
(۰۱-آبان-۱۳۹۱, ۲۱:۵۶:۲۶)robojalal نوشته است: [ -> ]سلام دوست گرامی
در پیوست قرار دادم برنامه مورد نظرتو .
برنامه 1 : اگر روی کلید داشته باشی ، هر 300 میلی ثانیه ، یک واحد به a اضافه می کند و بعد اینکه a بزرگتر از 8 شد یک واحد به b اضافه می کند .
برنامه 2 :کار برنامه 1 رو انجام میده . با این تفاوت که با هر بار فشار دادن کلید یک واحد به a اضافه می کند .
موفق باشی ....
سوال : من برنامه ها رو خوندم و سوالاتی برام پیش اومد
برنامه اول
1-
در خطوط 11 و 12 و13 خطوط 11 و 12 دستور شرط و کاری هستند که باید انجام بشند اما مگه برنامه دستورات رو به نوبت نمی خونه ؟ اگه اینجوری باشه پس خط 13 رو میخونه و b اقزایش پیدا میکنه و این خطاست
2-
دستورات end و end if چه تفاوتی باهم دارند و هر کدوم چه جاهایی به کار میروند
3-
در خط 13 دستور home چیه ؟ کارش چیه ؟ به چه درد میخوره ؟ کجا به کار میره ؟
4-
در خط 19 lover line چیه ؟ کارش چیه ؟ به چه درد میخوره ؟ کجا به کار میره ؟
در برنامه دوم
سوالات قبل و
دستور bitwait چیه ؟ کارش چیه ؟ به چه درد میخوره ؟ کجا به کار میره ؟
[/quote]
سلام دوست گرامی
داخل برنامه اول :
در خط 9 هروقت کلید شما زده شد ( کلید وصل است به پایه میکرو ) یک واحد اضافه میکنه و هروقت هم بیشتر از 8 شد صفر میکنه و از اول میشماره . برای اینکه بتونیم عدد رو خیلی خوب بخونیم یه تاخیر 300 میلی ثانیه ایجاد کردیم .
دستور end پایان برنامه میکرو هست ، هر وقت میکرو به این دستور برسه وضعیت قبلی خود رو حفظ میکنه و دیگه هیچ کاری انجام نمیده . برای راه اندازیش باید میکرو رو ریست کرد .
دستور endif پایان شرطی هست که نوشتیم . هر وقت از این دستور میخوایم استفاده کنیم باید یه شرطی ایجاد کنیم .
کسایی که میکرو کار میکنن به این نتیجه شرطی میرسن :
هر endif . if داره
هر next . for داره
هر wend . while داره
هر loop . do داره
![Rolleyes Rolleyes](https://www.iranled.com/forum/images/smilies2/rolleyes.gif)
دستور home زمانی که از ال سی دی داری استفاده میکنی ، مکان نمای ال سی دی رو به سطر اول،ستون اول میاره
دستور lowerline مانند دستور home هست ، فقط مکان نما را به خط پایینی میبره
در برنامه دوم:
دستور bitwait زمانی از این دستور استفاده میکنیم به عنوان مثال یک ورودی داریم و میخوایم برنامه تا زمانیکه ورودی از حالت 1 به صفر برنگشت کاری انجام نده که در این برنامه به همین منظور استفاده شده است .
موفق باشی .....