اطلاعیه

Collapse
No announcement yet.

مشکل درست کارنکردن کلید وصل شده به میکرو

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    مشکل درست کارنکردن کلید وصل شده به میکرو

    یه مدار ساده است که با فشار یک کلید قرار فرمان روشن شدن یکLED را به میکرو بده .من فرآیند روشن و خاموش شدن ال ای دی رو تو یه while بی نهایت گذاشتم و شرط هایی رو هم برای روشن و خاموش شدن اون تو این حلقه تعریف کردم.ولی وقتی کلید را فشار می دم شرط اول داخل حلقه که برقرار میشه و led روشن میشه با برداشتن دستم از روی کلید باید شاهد خاموش شدن LED باشم که این اتفاق نمی افته وLED همین طور روشن میمونه مگر نباید شرط داخل حلقه بی نهایت با هر بار زدن و فشار کلید فقط یکبار عمل بکنه نه اینکه بارها اجرا بشه؟ممنون میشم راهنمایی کنید و اینکه برنامه نویسی مناسبی در رابطه با این مشکل که بشه با زدن کلید دستور مربوطه اجرا بشه و با رها کردن آن هم دستور دیگری که تعریف میشه مثلا خاموش شدن LED اجرا بشه.در زیر کد و شماتیک ساده مدار را می ذارم.
    #include <mega8.h>
    #include <delay.h>


    void main(void)
    {
    DDRC.2=0;
    PINC.2=0;
    DDRB.4=1;
    PORTB.4=0;
    while (1)
    {
    if(PINC.2==1)
    {

    PORTB.4=1;
    delay_ms(2000);
    }

    if(PINC.2==0)
    {

    PORTB.4=0;

    }
    [IMG][/IMG]
    }
    }

    #2
    پاسخ : مشکل درست کارنکردن کلید وصل شده به میکرو

    سلام
    ببینید این کدی که شما نوشتید شاید روی کاغذ درست باشه ولی از نظر عملی نکاتی برای کارکرد صحیح کم داره. اول اینکه وقتی کلید های شما فشار داده نشدن، سطح منطقی روی پایه میکروکنترلر مشخص نیست یا به عبارت دیگه float هستش. شما باید از مقاومت pull up یا pull down برای رفع این مشکل استفاده کنید.
    مورد بعدی اینه که هیچ چیزی در عمل رفتار ایده آل نداره. کلید هم از این قاعده پیروی میکنه. وقتی کلیدی فشار داده میشه، بلافاصله سطح منطقی تثبیت نمیشه و کمی بازی داره. به این پدیده میگن بانسینگ که اگر سرچ کنید توی اینترنت روش های مقابله با اون آموزش داده شدن.
    امیدوارم با رعایت این نکات کدتون درست کار کنه! ضمنا نتایجی که پروتئوس تولید میکه گاها غلطه و اصلا ربطی به درستی یا غلط بودن کد نداره. در نتیجه پروتئوس زیاد قابل اطمینان نیست و بهتره عملی تست بگیرید.

    دیدگاه


      #3
      پاسخ : مشکل درست کارنکردن کلید وصل شده به میکرو

      ممنون حسین جان ازبابت راهنماییت.نکات گفته شده رو بررسی می کنم .

      دیدگاه

      لطفا صبر کنید...
      X