پروژه ساعت، دماسنج و تقویم میلادی، شمسی و قمری دیجیتال با سون سگمنت ۷Segments به زبان سی C

ساعت و تقویم با قابلیت نمایش سه نوع تاریخ میلادی، شمسی و قمری با دقت بسیار بالا به همراه آی سی RTC و نمایش دمای محیط با دقت 0.1 درجه سانتی گراد

مقدمه

پیاده‌سازی یک ساعت یا تقویم که از دقت بسیار بالایی برخوردار بوده و علاوه بر آن بتواند تاریخ‌های مختلفی را در خود شامل شود، کار ساده‌ای نخواهد بود. در این پروژه، تمامی این امکانات مهیا شده‌است. ساختار این ساعت به گونه‌ای است که طبق ساختار زمان‌سنجی استفاده‌شده در خیلی از رایانه‌ها و سیستم‌عامل‌ها می‌باشد. این به این معناست که روند زمان‌سنجی و شمارش کاملا اصولی، بر پایه استاندارد بوده و پایداری و دقت آن بالاست. علاوه بر این، تبدیل تاریخ‌ها به یکدیگر طبق برنامه‌ها و الگوریتم‌های اصولی بوده و هیچ نقصی در آن وجود نداشته و باعث شده‌است که اطمینان لازم از صحت زمان‌سنجی برآورده شود.

امکانات سخت‌افزاری

میکروکنترلر استفاده‌شده در این پروژه، ATMEGA32 از سری خانواده میکروکنترلرهای AVR است. در این مدار سعی شده‌است المان‌های ساده‌تری مورد استفاده قرار گیرد تا سهولت ساخت مدار افزایش یابد. از این‌رو، سه عدد دکمه فشاری جهت برنامه‌ریزی مدار؛ و یک عدد دکمه فشاری که به‌عنوان دکمه Alt بر روی مدار تعبیه شده‌است که می‌تواند با ترکیب شدن با دکمه‌های دیگر، کارکردهای مختلفی را به‌وجود آورد. از دیگر امکانات سخت‌افزاری می‌توان به استفاده از آی‌سی شیفت رجیستر جهت درایو سون‌سگمنت‌ها اشاره نمود؛ از این‌رو پایه‌های کمتری از میکروکنترلر اشغال شده و علاوه بر آن می‌توان تعداد سون‌سگمنت‌های بیش‌تری را — بدون اشغال شدن پایه‌های بیشتری از میکروکنترلر — به مدار اضافه نمود. علاوه بر آن می‌توان از سون‌سگمنت‌های بزرگ‌تر — با رعایت اصول و تعبیه مدار درایو — نیز استفاده نمود. از امکانات سخت‌افزاری مرتبط با زمان‌سنجی، می‌توان به بهره‌گیری از آی‌سی RTC به شماره DS1307 اشاره نمود که همانطور که از عنوانش پیداست، دقت زمان‌سنجی بسیار بالایی دارد و علاوه بر آن می‌تواند تاریخ و زمان را به‌هنگام برق‌رفتگی در خود ذخیره نگه‌داشته و شمارش کند؛ همچنین می‌توان به لحاظ نمودن تغییرات ساعات تابستانی (DST یا Daylight Saving Time) — که موجب می‌شود دیگر نیازی به تنظیم ساعت به صورت دستی در این مواقع نباشد — اشاره کرد. از امکانات سخت‌افزاری مربوط به سنجش دمای محیط می‌توان به استفاده از سنسور دمای DS18B20 اشاره نمود که ساخته شرکت Dallas Semiconductors بوده و از نقاط قوت آن می‌توان به دقت و صحت اندازه‌گیری بالا، نویز بسیار پایین و راه‌اندازی ساده‌تر اشاره نمود. این سنسور می‌تواند دمای محیط را با دقت 0.1 درجه در محدوده دمایی 55- الی 125+ درجه سانتی‌گراد اندازه‌گیری کند. علاوه بر همه این امکانات، از تایمر Watchdog نیز استفاده شده‌است تا در هنگام ایجاد اختلال یا هنگ‌کردن برنامه، میکروکنترلر ریست شود.

امکانات نرم‌افزاری

برای برنامه‌ریزی میکروکنترلر این مدار، از نرم‌افزار معروف CodeVision AVR که یکی از کامپایلرهای رایج زبان سی C می‌باشد، استفاده شده‌است. حالت نوشتار و الگوریتم برنامه‌نویسی مطابق با استاندارد و رعایت اصول برنامه‌نویسی می‌باشد. از این‌رو برنامه بهینه (Optimize) بوده و با کمترین نقص و خطا همراه می‌باشد. یکی از نقاط قوت موجود در این برنامه، پارامتری‌بودن هر کدام از بخش‌های تشکیل‌دهنده آن می‌باشد. از جمله این پارامترها می‌توان به موارد زیر اشاره نمود:

  1. تعیین تعداد سون‌سگمنت‌ها
  2. تعیین نوع سون‌سگمنت‌ها (آند مشترک / کاتد مشترک)
  3. تعیین پایه‌های شیفت رجیستر
  4. تعیین پایه‌های دیکدر نمایشگر روز هفته
  5. تعیین پورت دیتا برای سون‌سگمنت‌ها
  6. تعیین پورت و پایه دکمه‌های فشاری
  7. تعیین نوع سنسور دما (DS18B20 یا LM35) و پایه
  8. تعیین بازه زمانی آپدیت زمان و نمایش آن
  9. تعیین نوع تاریخ‌ها جهت نمایش
  10. تعیین جایگاه ساعت و تاریخ بر روی سون‌سگمنت‌ها
  11. تعیین لحاظ یا عدم لحاظ نمودن Leading-zeros برای هر یک از پارامترهای ساعت به هنگام نمایش بر روی سون‌سگمنت
  12. تعیین فاصله زمانی بین نمایش هر نوع تاریخ (میلادی، شمسی و قمری)
  13. تعیین زمان تغییرات ساعت تابستانی (DST یا Daylight Saving Time) برای هر نوع تاریخ (ساعات تابستانی به‌طور پیش‌فرض برای تاریخ شمسی تنظیم شده‌است.)

مروری بر امکانات کلی

از مهم‌ترین و اساسی‌ترین امکانات این ساعت می‌توان به موارد زیر اشاره نمود:

  1. امکان نمایش ساعت، دقیقه و ثانیه (ساعت دیجیتال 6 رقمی)
  2. امکان نمایش تقویم: سال، ماه، روز و روزِ هفته
  3. نمایش تاریخ‌های میلادی، شمسی و قمری و انتخاب هر کدام جهت نمایش
  4. عدم نیاز به تنظیم تاریخ‌های شمسی و قمری و روز هفته (کافیست تاریخ میلادی را تنظیم فرمایید و ساعت به صورت خودکار تبدیلات و محاسبات لازم را انجام می‌دهد.)
  5. بهره‌گیری از تنظیمات ساعات تابستانی (DST و Daylight Saving Time) و تنظیم خودکار ساعت به هنگام وقوع
  6. نمایش دمای محیط با دقت 0.1 درجه سانتی‌گراد و قابلیت تنظیم نوع سنسور دما
  7. نگهداری تنظیمات و زمان‌سنجی به هنگام برق‌رفتگی (Backup)

پیش‌نمایش از نحوه کارکرد مدار

در حالت نمایش تاریخ شمسی

 

بخش دانلود

بخش دانلودتوضیحات

توجه: کاربران محترمی که به هر دلیل، توانایی پرداخت فایل‌ها را ندارند، می‌توانند از طریق بخش پشتیبانی با ما در ارتباط باشند.

آپدیت 26 آذر 1401: تمامی پروژه‌های غیررایگان موجود روی وب‌سایت رایگان شد.

آپدیت 9 آبان 1403: علی‌رغم بارها تاکید بر اینکه پروژه‌های موجود روی وب‌سایت صرفاً جنبه آموزشی دارد، برخی افراد سودجو که از حداقل دانش برنامه‌نویسی و طراحی PCB برخوردار نیستند، اقدام به ساخت عجولانه مدارات -بدون در نظر گرفتن اصول طراحی- کرده و با مشکلاتی مواجه می‌شوند؛ از این‌رو، دانلود این پروژه به‌صورت دائمی غیرفعال شد و دیگر امکان دانلود آن از طریق وب‌سایت وجود ندارد. برای دانلود، با پشتیبانی تلگرام در ارتباط باشید.

شامل موارد زیر:

  • فایل راهنمای آموزشی (شامل توضیحات سورس کد)
  • فایل شبیه سازی پروژه با Proteus 8.9
  • سورس کد کامل پروژه
  • کد هگز مخصوص پروگرام کردن میکروکنترلر

توجهات:

  • برای تهیه این مطلب زحمت فراوانی کشیده شده است؛ لذا، کپی برداری ممنوع می باشد.

اشتراک در
اطلاع از
guest
14 دیدگاه
تازه‌ترین
قدیمی‌ترین بیشترین رأی
بازخورد (Feedback) های اینلاین
مشاهده همه دیدگاه ها
محمدحسین
محمدحسین
میهمان
سه شنبه، ۱۱ مهر ۱۴۰۲ ۱۰:۱۷:۰۷
امتیاز :
     

سلام وقت بخیر.این پروژه را میشه عملی بست؟در فایل هایی که قرار دادید آیا فایل PCB پروژه هم موجوده؟آیا در توضیحات مفصل آمده که کدام قطعه را کجا قرار میدهیم و چرا؟بعد از خرید فایل آیا پشتیبانی وجود داره که سوالاتی که در بخش عملی پیش میاد جواب بده؟

علی
علی
میهمان
سه شنبه، ۱۰ مرداد ۱۴۰۲ ۱۵:۲۶:۲۷
امتیاز :
     

سلام ممنون از پروژه های عالی من ساعت با 18سون السیدی را درست کردم کارنمکند ولی ساعت با 6سون عالی چرا فایل هگز 18سون والسیدی عملی کار نمی کند چرا؟تشکر

علی
علی
میهمان
پاسخ به  فقط آموزش
چهارشنبه، ۱۱ مرداد ۱۴۰۲ ۰۷:۲۳:۳۴

سلام یعنی می فرماید فایلها درست هستند،من مدار ساعت با 18 سون سگمنت را درست نبسته ام

علی
علی
میهمان
چهارشنبه، ۱۰ خرداد ۱۴۰۲ ۱۵:۵۱:۲۹
امتیاز :
     

سلام ممنون از پروژه های عالی و توضیحات شیوا من ساعت و تقویم با شش عدد سون سگمنت را بستم مرتب کار میکند ولی ساعت با تقویم با18 عدد سون سگمنت کار نمی کنه

reza
reza(@yarezaahmadi)
عضو
جمعه، ۲۵ شهریور ۱۴۰۱ ۱۴:۲۱:۴۲
امتیاز :
     

سلام در مورد پروژه ساعت، دماسنج و تقویم میلادی، شمسی و قمری دیجیتال با سون سگمنت ۷Segments به زبان سی فیوز بیت ها مشخص نیست لطفا اگر ممکنه توضیح بدین یا یک عکس از اون رو برام بفرستین با تشکر

اصغر
اصغر(@jak24)
عضو
پاسخ به  فقط آموزش
پنجشنبه، ۳ فروردین ۱۴۰۲ ۱۷:۳۸:۰۴

آقا تو این مدار ساعت هی گیر میکنه !! یعنی یه چند ساعت دقیقا درست کارمیکنه بعدش گیرمیکنه و دیگه ساعت اصلا به جلو نمیره و بعد از روشن خاموش کردنش دوباره یه چند ساعت درست کار میکنه و بعدش گیرمیکنه و تا وقتی ریست نشه دیگه کار نمیکنه
البته مدار به درستی کار میکنه ها فقط زمان هست که جلو نمیره و در نتیجه تارخ هم به جلو نمیره !!!

اصغر
اصغر(@jak24)
عضو
پاسخ به  فقط آموزش
سه شنبه، ۲۸ آذر ۱۴۰۲ ۰۵:۰۸:۵۶

عکسی از ساعت ساخته شده در حال کار

اصغر
اصغر(@jak24)
عضو
پاسخ به  اصغر
چهارشنبه، ۱۵ آذر ۱۴۰۲ ۰۴:۰۳:۵۸

سلام آیا میشه این مدار را با atmega16 هم پیاده کرد ممنون.

این وبسایت جهت تقویت در خدمات، از کوکی های مرورگر شما استفاده می کند. قبول کردن

0
افکار شما را دوست داریم، لطفا نظر دهید.x
()
x