بنده اطلاعات کمی راجع به زبان برنامه نویسی بسکام دارم (درحال یادگیری هستم) با کمک شما یه راهنمایی واسه یه برنامه ساده میخوام.
شما دوشستی مثلا PD.0 و PD.1 (البته فرقی نداره) به عنوان ورودی و PC.0 و PC.1 هم به عنوان خروجی و متغیر A هم به عنوان مثلا Byte.
اول کار من میام Aرو مقدارشو رو صفر میکنم یعنی A=0
سپس میام با استفاده از PD.0 یه واحد به A اضافه میکنم. یعنی incr A
وشستی PD.1 رو به عنوان کم کردن A قرار میدم یعنی decr A
حالا میام یه شرط ساده میذارم و میگم اگر مثلا A از 10 بیشتر شد PC.0 رو 5ثانیه روشن کن و سپس خاموش شه.
if A>10 then
set portc.0
wait 5
reset portc.0
endif
و در ادامه میگم اگر A کوچتر از 5 شد PC.1 رو 5ثانیه روشن کن سپس خاموش کن.
if A<5 then
set portc.1
wait 5
reset portc.1
endif
تا اینجا در برنامه مشکلی نیست.
مشکل از اینجاست که وقتی A>10 میشه PC.0همینطور پشت سر هم روشن و خاموش میشه در صورتی که یکبار میخوام روشن و خاموش بشه و اگر دوباره A کوچکتر از 10 شده خروجی غیر فعال و اگر دوباره افزایش پیدا کرد فقط یک بار روشن و خاموش بشه. اگر از راه DO و LOOP استفاده نکنم این پروسه فقط یکبار صورت میگیره. درصورتی که من دائما میخوام استفاده کنم دوستان هرچی بلدن لطفا به صورت برنامه نویسی قرار بدن. متشکرم
این که کاری نداره مهندس بفرما
تغییرات برنامه رو با رنگ قرمز مشخص کردم
برای اینکار یه متغیر ایکس رو تعریف کردم و توسط اون به برنامه فهموندم که فقط یکبار ال ای دی رو روشن کنه تا وقتی که دوباره Aبرسه به 10 و کمتر
dim x as integer
do
if A>10 and x=0 then
set portc.0
wait 5
reset portc.0 x=1
endif
if a<11 then x=0
و در ادامه میگم اگر A کوچتر از 5 شد PC.1 رو 5ثانیه روشن کن سپس خاموش کن.
در اینجا هم اگر A کوچکتر از 5 بشه ال ای دی چشمک میزنه و برای اینکه روشن و خاموش شدن ال ای دی یک بار انجام بشه متغیر Y رو میذارم
if A<5 and y=0 then
set portc.1
wait 5
reset portc.1 y=1
endif
این که کاری نداره مهندس بفرما
تغییرات برنامه رو با رنگ قرمز مشخص کردم
برای اینکار یه متغیر ایکس رو تعریف کردم و توسط اون به برنامه فهموندم که فقط یکبار ال ای دی رو روشن کنه تا وقتی که دوباره Aبرسه به 10 و کمتر
dim x as integer
do
if A>10 and x=0 then
set portc.0
wait 5
reset portc.0 x=1
endif
if a<11 then x=0
و در ادامه میگم اگر A کوچتر از 5 شد PC.1 رو 5ثانیه روشن کن سپس خاموش کن.
در اینجا هم اگر A کوچکتر از 5 بشه ال ای دی چشمک میزنه و برای اینکه روشن و خاموش شدن ال ای دی یک بار انجام بشه متغیر Y رو میذارم
if A<5 and y=0 then
set portc.1
wait 5
reset portc.1 y=1
endif
if a>4 then y=0
loop
دمت گرم با این جواب کامل و بی نقصت. به این میگن جواب کامل و کوتاه و.... تشکر تشکر :-bd :-bd :-bd ^^ ^^ ^^ ^^
Dim A As Byte
A = 7
B:
Do
If Pind.0 = 1 Then Incr A
If Pind.1 = 1 Then Decr A
If A > 10 Then Goto C
If A < 5 Then Goto D
Loop
C:
A = 7
Portc.0 = 1
Wait 5
Portc.0 = 0
Goto B
دیدگاه