در این پروژه یک ساعت دیجیتال چندمنظوره با قابلیت نمایش ساعت، تاریخ و دما بر پایه میکروکنترلر ATmega8 طراحی و شبیهسازی شده است. این پروژه برای علاقهمندان به الکترونیک و برنامهنویسی AVR میتواند نمونه مناسبی برای آشنایی با مالتیپلکس کردن نمایشگرهای 7Segment، کار با RTC، خواندن سنسور دما و استفاده از تایمر میکروکنترلر باشد.
در این مدار از آیسی DS1307 برای نگهداری و نمایش ساعت و تاریخ استفاده شده و ارتباط آن با ATmega8 از طریق رابط I2C انجام میشود. برای اندازهگیری دما نیز از سنسور LM35 استفاده شده که به ورودی ADC میکروکنترلر متصل است.
یکی از بخشهای جالب این پروژه، استفاده از 16 رقم نمایشگر 7Segment است. برای کنترل تعداد زیاد سگمنتها، از آیسیهای 74HCT164 و 74HC154 استفاده شده و نمایشگرها به روش مالتیپلکس کنترل میشوند. به این ترتیب اطلاعاتی مانند ساعت، دقیقه، ثانیه، روز، ماه، سال و دمای محیط روی نمایشگر قابل مشاهده است.
برنامه این پروژه با زبان BASCOM-AVR نوشته شده و فایل HEX آماده برای پروگرام کردن میکروکنترلر ATmega8 نیز در فایلهای پروژه قرار گرفته است. همچنین شماتیک کامل مدار در محیط Proteus طراحی شده و امکان اجرای شبیهسازی پروژه با فایل HEX وجود دارد.
امکانات و ویژگیهای پروژه
- نمایش ساعت، دقیقه و ثانیه
- نمایش تاریخ
- نمایش دمای محیط با استفاده از سنسور LM35
- استفاده از RTC مدل DS1307 برای نگهداری ساعت و تاریخ
- ارتباط I2C بین ATmega8 و DS1307
- استفاده از 16 رقم نمایشگر 7Segment
- مالتیپلکس کردن نمایشگرها
- استفاده از 74HCT164 برای انتقال اطلاعات سگمنتها
- استفاده از 74HC154 برای انتخاب رقم نمایشگر
- امکان تنظیم ساعت و تاریخ توسط کلیدهای مدار
- برنامهنویسی با زبان BASCOM-AVR
- فایل HEX آماده برای ATmega8
- شماتیک کامل مدار در Proteus
- مناسب برای یادگیری AVR، تایمر، وقفه، ADC، I2C و نمایشگرهای 7Segment
نحوه عملکرد مدار
میکروکنترلر ATmega8 وظیفه اصلی کنترل مدار را بر عهده دارد. اطلاعات مربوط به ساعت و تاریخ از طریق رابط I2C از آیسی DS1307 دریافت شده و پس از پردازش، روی نمایشگرهای 7Segment نمایش داده میشوند.
برای اندازهگیری دمای محیط نیز از LM35 استفاده شده است. خروجی این سنسور به ورودی مبدل آنالوگ به دیجیتال ATmega8 متصل شده و مقدار دما توسط میکروکنترلر خوانده و روی نمایشگر نشان داده میشود.
از آنجا که مدار دارای 16 رقم نمایشگر است، برای کاهش تعداد پایههای موردنیاز میکروکنترلر، نمایشگرها به صورت مالتیپلکس کنترل میشوند. آیسی 74HCT164 برای انتقال اطلاعات سگمنتها و آیسی 74HC154 برای انتخاب رقم فعال مورد استفاده قرار گرفته است.
تنظیم ساعت و تاریخ
در مدار چند کلید برای تنظیم بخشهای مختلف ساعت و تاریخ در نظر گرفته شده است. با استفاده از این کلیدها میتوان مقدار دقیقه، ساعت، روز، ماه، سال و روز هفته را تنظیم کرد و مقدار جدید در آیسی DS1307 ذخیره میشود.
قطعات اصلی مورد استفاده
- ATmega8 – میکروکنترلر اصلی
- DS1307 – ماژول ساعت و تقویم RTC
- LM35 – سنسور اندازهگیری دما
- 74HCT164 – شیفت رجیستر برای کنترل سگمنتها
- 74HC154 – دیکودر 4 به 16 برای انتخاب ارقام
- 7Segment – نمایش اطلاعات
- کلیدهای فشاری برای تنظیم ساعت و تاریخ
فایلهای پروژه
فایل پروژه شامل سورس برنامه BASCOM، فایل HEX، فایل شبیهسازی Proteus و فایلهای موردنیاز برای اجرای پروژه است. با استفاده از فایل Proteus میتوانید مدار را در محیط شبیهسازی اجرا کرده و عملکرد آن را مشاهده کنید.
این پروژه میتواند علاوه بر استفاده به صورت مستقل، پایه مناسبی برای توسعه یک ساعت دیجیتال حرفهایتر با امکاناتی مانند آلارم، تنظیمات پیشرفته، تقویم کاملتر و نمایش اطلاعات بیشتر باشد.