راه اندازی 7segment با AVR

نمایشگر سون سگمنت (7Segment)

یکی از نمایشگرهای پر استفاده در الکترونیک، سگمنت ها در ابعاد مختلف می باشند. این نوع نمایشگر از هفت LED تشکیل شده است به همین دلیل به آنها سون سگمنت می گویند. این هفت LED با حروف a تا g  نام گذاری شده اند که ترتیب قرار گرفتن آنها در سون سگمنت و همچنین چیدمان پایه های مربوط به هرکدام در شکل زیر نشان داده شده است.

نکته: ممکن است در بعضی از 7 سگمنت ها این ترتیب متفاوت باشد که در ادامه نحوه تست و پایه یابی 7 سگمنت ها را بیان خواهیم کرد.

پایه های 7 سگمنت

انواع سون سگمنت

۱) آند مشترک:

در سون سگمنت آند مشترک، آند تمامی LED ها به پایه مشترک سون سگمنت متصل شده اند و باید به منبع ولتاژ ۵ ولت وصل شود، برای روشن کردن هر LED باید پین مربوط به آن را به زمین ولت متصل کرد. ( پین مربوط باید صفر شود.)

۲) کاتد مشترک:

در سون سگمنت کاتد مشترک، کاتد تمامی LED ها به پایه مشترک سون سگمنت متصل شده اند و باید به زمین وصل شود،  برای روشن کردن هر LED باید پین مربوط به آن را به ۵+ ولت متصل کرد. ( پین مربوط باید یک شود.)

نحوه تست و پیدا کردن پایه های 7 سگمنت

این تست با کمک مولتی متر انجام می شود. ابتدا مولتی متر را در حالت تست دیود قرار دهید. در 7 سگمنت های کاتد مشترک، پراب مشکی مولتی متر میبایست بر روی پایه کاتد 7 سگمنت قرار بگیرد. با اتصال پراب قرمز به هر یک از پایه های دیگر یکی از LED ها روشن می شود. به همین ترتیب، با ثابت نگه داشتن پراب مشکی بر روی پایه کاتد و تست دیگر پایه ها توسط پراب قرمز می توان ترتیب پایه ها را مشخص کرد.

در 7 سگمنت های آند مشترک می بایست جای پراب های مولتی متر برعکس شود و مابقی مراحل مانند 7 سگمنت کاتد مشترک انجام شود.

کدهای مربوط به ساخت اعداد در 7 سگمنت، در تصویر زیر نشان داده شده است.

کد 7 سگمنت

در ادامه ی بحث پروژه ای را قرار داده ایم که اعداد ۰ تا ۹ را روی سون سگمنت شمارش کرده و زمانی که به ۹ رسید به صورت معکوس تا صفر می شمارد.

راه اندازی 7 سگمنت با AVR

همانطور که در شماتیک مشاهده می کنید از پورت A میکرو استفاده کرده ایم و سون سگمنت از نوع کاتد مشترک می باشد. (فرکانس را ۸ مگاهرتز داخلی انتخاب کرده ایم.)

#include <mega16.h>
#include <delay.h>

unsigned char num[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};

int i;
void main(void)
{
DDRA=0xFF;
while(1)
{
    for(i=0;i<=9;i++)
    {
    PORTA=num[i];
    delay_ms(1000);
    }
    for(i=8;i>0;i--)
    {
    PORTA=num[i];
    delay_ms(1000);
    }
}
}

خط ۴ تعریف کدهای سون سگمنت کاتد مشترک در یک آرایه می باشد که پیشتر در جدول بالا توضیح داده ایم. و در خط ۶ متغیر شمارشگر i را تعریف کرده ایم تا در دستور [num[i معادل کدهای سون سگمنت قرار بگیرد.

در این برنامه از دستور for دوبار استفاده کرده ایم، یکبار برای شمارنده از ۰ تا ۹ و بار دیگر برای شمارش معکوس بلافاصله بعد از رسیدن به عدد ۹، که برای این منظور متغیر i در دستو دوم از عدد ۸ شروع شده است تا تاخیری ایجاد نشود. دستورات را در حلقه بی نهایت while قرار داده ایم.

اطلاعات دانلود

  • حجم فایل: 40 کیلوبایت
  • فرمت: RAR

فیسبوک توییتر گوگل + لینکداین تلگرام واتس اپ کلوب

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *