پروژه ساعت، دماسنج و تقویم میلادی، شمسی و قمری دیجیتال با سون سگمنت ۷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)

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

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

 

بخش دانلود

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

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

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

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

توجهات:

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

مشترک شوید
اطلاع از
guest
0 دیدگاه
Inline Feedbacks
View all comments

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

2
0
همین حالا دیدگاه خود را به اشتراک بگذارید!x
()
x