سلام و عرض ارادت خدمت مهندسین.
بنده اطلاعات کمی راجع به زبان برنامه نویسی بسکام دارم (درحال یادگیری هستم) با کمک شما یه راهنمایی واسه یه برنامه ساده میخوام.
شما دوشستی مثلا 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 استفاده نکنم این پروسه فقط یکبار صورت میگیره. درصورتی که من دائما میخوام استفاده کنم دوستان هرچی بلدن لطفا به صورت برنامه نویسی قرار بدن. متشکرم
بنده اطلاعات کمی راجع به زبان برنامه نویسی بسکام دارم (درحال یادگیری هستم) با کمک شما یه راهنمایی واسه یه برنامه ساده میخوام.
شما دوشستی مثلا 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 استفاده نکنم این پروسه فقط یکبار صورت میگیره. درصورتی که من دائما میخوام استفاده کنم دوستان هرچی بلدن لطفا به صورت برنامه نویسی قرار بدن. متشکرم
دیدگاه