پروژه AVR شمارنده سون سگمنت با کلید افزایشی و کاهشی

12

در این پست از سایت اِمیک, ما یک سون سگمنت تکی را با استفاده از میکروکنترلر AVR راه اندازی خواهیم کرد. قطعات اصلی این پروژه علاوه بر میکروکنترلر ATmega16 و سون سگمنت, شامل دو کلید هم می باشد که به صورت افزایشی و کاهشی عمل می کنند. عملکرد پروژه به این صورت است که در ابتدا با اتصال منبع تغذیه, روی سون سگمنت عدد 0 نمایش داده می شود و با فشار دادن کلید افزایشی (++) عدد روی سون سگمنت یکی اضافه می شود و با فشار دادن کلید کاهشی (–) عدد یکی کاهش می یابد.

قبلا راه اندازی سون سگمنت با میکروکنترلر AVR را اموزش داده بودیم که در اون پست به طور کامل در مورد سون سگمنت ها و پایه های انها و همچنین نحوه راه اندازی انها توضیح داده شد, که توصیه می کنم مطالعه کنید. در ادامه شماتیک این پروژه را مشاهده می کنید.

پروژه AVR شمارنده سون سگمنت با کلید افزایشی و کاهشی :

avr-prj-seven segment2-emic

همانطور که در بالا گفته شد این پروژه دارای دو کلید افزایشی و کاهشی می باشد که با فشار داده هر کدام از انها عدد روی سون سگمنت افزایش یا کاهش می یابد. از انجایی که ما از سون سگمنت تکی استفاده می کنیم, فقط امکان نمایش عدد 0 تا 9 را داریم بنابراین در این پروژه زمانی که عدد در حال افزایش از 9 بیشتر شد, به طور خودکار عدد دوباره 0 می شود و زمانی هم که در حال کاهش عدد هستیم عدد از 0 کمتر نمی شود.

نکات :

  • دو مقاومت R1 و R2 برای پول اپ (Pull-up) کردن کلید ها استفاده شده اند. از انجایی که پین های 39 و 40 میکرو به کلیدها متصل هستند و به صورت ورودی تنظیم شده اند لازم است انها را پول اپ کنیم.
  • توجه کنید که در این پروژه ما از سون سگمنت کاتد مشترک استفاده کرده ایم. در صورتی که با پین های سون سگمنت اشنا نیستید یا می خواهید از سون سگمنت اند مشترک استفاده کنید, حتما پست معرفی شده در ابتدای مطلب را مطالعه کنید.
  •  در پروتئوس, سون سگمنت به صورت بالا می باشد که پایه های ان از سمت چپ به ترتیب a تا g می باشند و پایه اخر که بجایی وصل نشده همان DP می باشد که در این پروژه از ان استفاده نکرده ایم.
  • پایه های تغذیه میکروکنترلر (پایه های 10 و 11) که در تصویر بالا وجود ندارند را فراموش نکنید به تغذیه 5 ولت متصل کنید.

برنامه :

توضیحات کامل برنامه نوشته شده, اگر سوالی داشتید می تونید در قسمت نظرات مطرح کنید.

کلیپ شبیه سازی در پروتئوس :

 

دانلود فایل ها

پسورد فایل زیپ : www.emic.ir

نظر یادتون نره …

12 دیدگاه‌ها

  1. سلام
    مطلب خیلی مفید بود.
    یه خواهشی دارم…
    اگر میشه همین کد رو برای دوتا سون سگمنت هم بزارین.
    با دو کلید شمارش از 0 تا 99.
    واقعا لازم دارم کارم گیره. هرچی تو نت گشتم پیدا نکردم.

  2. سلام مهندس
    میخاستم ببینم در پروژه هایی که اپلود کردین پروزه ای به این منظور هست که:
    یک شمارنده برای شمارش محصولات تولید شده داشته باشیم که مقدار محصولات تولید شده و بسته بندی ان را روی ledنمایش دهد و با یک کیبورد بتوان مقدار محصول در هر بسته رو تغییر بدیم و یک سونسگمنت هم برای نمایش عدد کیبود داشته باشیم

    • سلام, یک کلید دیگه اضافه کنید و در برنامه نیز یک شرط if دیگر اضافه کنید و با فشار دادن کلید شرط if برقرار شده و درون if متغیر a را صفر کنید و روی سون سگمنت نمایش دهید. همچنین می توانید مدار ریست میکروکنترلر را ببندید, با ریست کردن میکرو سون سگمنت 0 را نمایش می دهد

  3. سلام
    در این حالت اگر کلید ++ وصل بماند عدد دائم افزایش می یابد.اگر بخواهیم با هر بار فشرده شدن(بدون در نظر گرفتن مقدار زمان وصل بودن) یکی به a اضافه شود باید چگونه بنویسیم؟

    • سلام, یک متغیر جدید از نوع int دارای مقدار اولیه 0 تعریف کنید و درون شرط if با key اند (&) کنید. با هر بار اجرای هر کدام از if ها این متغیر 1 شود و ان if دیگر اجرا نشود و در انتها با برداشتن دست از روی کلید ان متغیر دوباره 0 شود. برای اینکه بهتر متوجه بشید به برنامه زیر دقت کنید(متغیر جدیدی که تعریف کردیم x می باشد)
      int x=0;
      if((key==0)&(x==0))
      {
      دستورات مورد نظر
      x=1;
      }
      if(key1 == 1) {x=0;}

  4. سلام اگه بخوایم از دوتا سون سگمنت استفاده کنیم که اعداد ۰تا ۹۹ رو بتونیم نمایش بدیم باید چجوری سون سگمنت دوم رو به پروژه وصل کنیم و برنامه چه تغییراتی میکنه؟

ارسال دیدگاه

لطفا دیدگاه خود را وارد کنید!
لطفا نام خود را در اینجا وارد کنید