پروژه ساعت، تقویم و دماسنج پیشرفته با LCD کاراکتری به زبان سی C با کدویژن CodeVision AVR

ساعت دقیق به همراه آی سی RTC به شماره DS1307، تقویم میلادی و شمسی، دماسنج با سنسور DS18B20 با بازه دمایی منفی 55 الی 125 و دقت 0.1 سانتی گراد، نمایش بر روی نمایشگر LCD متنی با ابعاد 2×16

این پروژه تنها یک ساعت و تقویم معمولی نیست. این ساعت امکان نمایش تاریخ به میلادی و شمسی، نمایش روز هفته، دما و ساعت را داراست. از ویژگی های اصلی این ساعت می توان به دقیق بودن آن اشاره کرد که به دلیل استفاده از آی سی RTC به شماره DS1307 می باشد؛ در نتیجه، شما دیگر نگران حذف شدن اطلاعات ثبت شده در ساعت نخواهید بود. در این پروژه آموزشی، شما با نحوه راه اندازی LCD گرافیکی، آی سی DS1307، استفاده از حافظه EEPROM را در نرم افزار کدویژن CodeVision AVR خواهید آموخت.

شرح مدار

در این مدار از میکروکنترلر ATMEGA32 از خانواده میکروکنترلرهای AVR استفاده شده است. نمایش ساعت، تاریخ، دما و … بر روی یک عدد LCD کاراکتری 16 در 2 صورت می گیرد. از سه عدد کلید فشاری جهت تنظیم ساعت و تاریخ تشکیل می شود. دمای محیط با استفاده از سنسور DS18B20 اندازه گیری می شود و در بازه دمایی 55- الی 125 و با دقت 0.1 درجه سانتی گراد بر روی LCD نمایش داده می شود.

خصوصیات مدار

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

  • نمایش ساعت به صورت 24 ساعته و به همراه ثانیه شمار
  • نمایش تاریخ به صورت میلادی و شمسی
  • نمایش دمای محیط از 55- الی 125 درجه سانتی گراد با دقت 0.1 درجه
  • نمایش روز هفته
  • دقت بسیار بالا
  • عدم پاک شدن تنظیمات ساعت به هنگام برق رفتگی

شماتیک مدار

برای مشاهده شماتیک به صورت PDF بر روی تصویر کلیک کنید.
پیش نمایشی از نحوه نمایش ساعت، تقویم و دما بر روی LCD

بخش دانلود

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

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

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

توجهات:

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

مشترک شوید
اطلاع از
guest
45 دیدگاه
جدیدترین
قدیمی ترین بیشترین رای
Inline Feedbacks
View all comments
margarit
margarit
کاربر سایت
چهارشنبه، ۱۶ تیر ۱۴۰۰ ۰۱:۴۳:۰۸
امتیاز :
     

سلام .
ممنون میشم اگه لیست قطعات مورد نیاز برای این پروژه رو بنویسید.

Mohandesan
Mohandesan
کاربر سایت
دوشنبه، ۲۴ خرداد ۱۴۰۰ ۲۱:۲۳:۲۰
امتیاز :
     

سلام وقتتون بخیر. ببخشید وقتی پروژه رو توی پروتئوس ران میکنم زمان ساعت خیلی کنده یعنی هر چند ثانیه یکبار شمارش ثانیه انجام میشه و ساعت عقب میمونه. من تنظیمات میکرو رو هم انجام دادم توی پروتئوس و روی 8 مگاهرتز قرار داره. ممنون میشم راهنمایی بفرمایید برای حل مشکل.

Mohandesan
Mohandesan
کاربر سایت
در پاسخ به  فقط آموزش
سه شنبه، ۲۵ خرداد ۱۴۰۰ ۱۰:۱۹:۳۳

ممنون از پاسختون. برای من بیشتر شبیه سازی مهمه. در این قسمت چه تغییراتی باید انجام بدم؟

فاطمه
فاطمه
کاربر سایت
دوشنبه، ۲۰ اردیبهشت ۱۴۰۰ ۱۳:۳۶:۴۱
امتیاز :
     

سلام میشه پروژه ی ساعت و تقویم و آلارم رو قرار بدید لطفا؟

hamed_ka_71
hamed_ka_71
کاربر سایت
دوشنبه، ۱۸ اسفند ۱۳۹۹ ۱۳:۰۸:۳۹
امتیاز :
     

سلام جناب مهندس سپاس بیکران از زحماتتون
ارور بنده چطور رفع میشه؟

image_2021-03-08_130909.png
hamed_ka_71
hamed_ka_71
کاربر سایت
در پاسخ به  فقط آموزش
پنجشنبه، ۲۱ اسفند ۱۳۹۹ ۱۰:۴۴:۳۲

سلام مجدد جناب مهندس
خیلی خیلی ممنونم
من چون برای اوقاتی که خانه نیستم مداری بسازم لحظه به لحظه چک میکردم جوابتونو ببینم و انقدر غرق شدم فراموش کردم قدردانی کنم

فقط الان که مدار رو بستم
منو و تنظیم تاریخ و ساعت همگی به درستی کار میکنه
اما ثانیه اول روی 80 بود و هنگام تغییرش 00 میمونه

و بعد از تنظیم منو ثانیه شمار رقم نمیندازه

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

ممنونم از محبت راهنماییتون

hamed_ka_71
hamed_ka_71
کاربر سایت
در پاسخ به  فقط آموزش
پنجشنبه، ۲۱ اسفند ۱۳۹۹ ۱۷:۲۹:۱۱

سلام مجدد قربان
پیام قبلی که دادم مشکل از باتری ماژول بودو سالم که انداختم درست شد

اما مشکل نهاییم اینه که تاریخ و ساعت انلاین روی ال سی دی نمیاد

هر بار که ریست میکنم میکرو رو اطلاعات صحیح اپدیت میشه روی ال سی دی

مشکل از کجاست

از کلاک هست؟
من ماژولم کریستال ساعت داره
و میکرو هم کلاک داخلی

hamed_ka_71
hamed_ka_71
کاربر سایت
در پاسخ به  فقط آموزش
پنجشنبه، ۲۱ اسفند ۱۳۹۹ ۱۹:۲۸:۵۴

بالاخره مشکل برنامه رو متوجه شدم
داخل حلقه(1) while
دو خط زیر اضافه شود
rtc_get_date(&Weekday, &Day, &Month, &Year);
    rtc_get_time(&Hour, &Minute, &Second);
تا تاریخ و ساعت انلاین ودقیق دیده بشه روی ال سی دی

واقعا ممنون از سایت و زحماتتون

hamed_ka_71
hamed_ka_71
کاربر سایت
در پاسخ به  فقط آموزش
جمعه، ۲۲ اسفند ۱۳۹۹ ۰۰:۲۳:۳۴

خیلی محبت کردید ممنونم
فقط من متوجه نمیشم که وقتی توی حلقه while میفته کجای برنامه داره زمان حساب میشه
بنظرم نیاز به همون فراخوانی هر از گاهی باشه

eli222222
eli222222
کاربر سایت
جمعه، ۱۶ آبان ۱۳۹۹ ۱۳:۰۹:۱۲
امتیاز :
     

سلام، وقتی کامپایل میکنم با این خطاها مواجه میشم. 🙁

Capture.PNG
eli222222
eli222222
کاربر سایت
در پاسخ به  فقط آموزش
شنبه، ۱۷ آبان ۱۳۹۹ ۰۰:۲۸:۴۲

سلام
خیلی خیلی ممنونم حل شد
یه مشکل دیگه هم هست. با اینکه خط دوم ال سی دی سالمه و تو بخش عدد دهی کار میکنه، موقع نمایش تقویم و ساعت دیگه عدد نشون نمیده. خط اول رو نشون میده ولی.
ممنونم

eli222222
eli222222
کاربر سایت
در پاسخ به  فقط آموزش
یکشنبه، ۱۸ آبان ۱۳۹۹ ۰۱:۲۵:۱۹

سلام
حل شد
خیلی از پاسخگویی سریع و راهنمایی های بجاتون ممنونم.
 

neginze
neginze
کاربر سایت
دوشنبه، ۵ آبان ۱۳۹۹ ۰۱:۴۳:۵۴

با سلام و خسته نباشید ممنون از سایت خوبتون
ببخشید برنامه نویسی موضوع ساعت، تقویم و دماسنج با LCD کاراکتری به زبان سی C با کدویژن CodeVision AVR هم موجود؟
ممنون میشم راهنمایی کنید

Hossein79
Hossein79
کاربر سایت
چهارشنبه، ۵ شهریور ۱۳۹۹ ۱۲:۲۶:۲۹
امتیاز :
     

سلام
من مدار رو بستم ثانیه شمارش کار نمیکنه ic ds1307 و باتری رو هم دوبار تعویض کردم فرکانس رو هم روی 8mhz داخلی تنظیم کردم اما مشکلم حل نشده میشه راهنمایی کنید
 
 

Hossein79
Hossein79
کاربر سایت
سه شنبه، ۴ شهریور ۱۳۹۹ ۱۸:۵۵:۴۸
امتیاز :
     

سلامی دوباره
من مدار روبستم فقط مشکلی که دارم اینه که ساعت کار نمی کنه اول مدار رو به تغذیه وصل میکنم ثانیه رو 80 نمایش میده و ثابت هستش تنظیمات رو هم که تغییر میدم فقط ثانیه شمار تغییر نمیکنه از 80 به 0 فقط تغییر میکنه
به نظرشما مسکل از کجاست
 

آخرین ویرایش در 1 سال قبل توسط Hossein79
Hossein79
Hossein79
کاربر سایت
دوشنبه، ۳ شهریور ۱۳۹۹ ۲۳:۲۶:۰۵
امتیاز :
     

define ها رو خودم اضافه کردم ولی باز هم Error وجود دارد
Error: C:\Users\hossein\Desktop\LCD Clock Calendar\CodeVision\LCD Clock Calendar.c(124): invalid expression
Error: C:\Users\hossein\Desktop\LCD Clock Calendar\CodeVision\LCD Clock Calendar.c(139): invalid expression
Error: C:\Users\hossein\Desktop\LCD Clock Calendar\CodeVision\LCD Clock Calendar.c(177): undefined symbol ‘OCIE0’
Error: C:\Users\hossein\Desktop\LCD Clock Calendar\CodeVision\LCD Clock Calendar.c(184): invalid expression
Error: C:\Users\hossein\Desktop\LCD Clock Calendar\CodeVision\LCD Clock Calendar.c(201): invalid expression
 

آخرین ویرایش در 1 سال قبل توسط Hossein79
Hossein79
Hossein79
کاربر سایت
در پاسخ به  فقط آموزش
سه شنبه، ۴ شهریور ۱۳۹۹ ۰۲:۳۱:۵۲

ممنون درست شد 

Hossein79
Hossein79
کاربر سایت
یکشنبه، ۲ شهریور ۱۳۹۹ ۲۳:۳۱:۲۳
امتیاز :
     

بله
<include <mega32a.h# شده حتی فایل رو دوباره دانلود کردم اما مشکلم حل نشد
ممنون از جواب دادن سریعتون

آخرین ویرایش در 1 سال قبل توسط Hossein79
Hossein79
Hossein79
کاربر سایت
در پاسخ به  فقط آموزش
دوشنبه، ۳ شهریور ۱۳۹۹ ۲۳:۱۸:۳۱

به جای فایل های mega32.h و mega32_bits.h فایل های
mega32.hو maga8_bits.h هست و خطاها define نشدن

Hossein79
Hossein79
کاربر سایت
یکشنبه، ۲ شهریور ۱۳۹۹ ۱۴:۵۳:۲۳
امتیاز :
     

سلام خسته نباشید خدمت اعضای سایت
فایل ارسال شده مشکل دارد موقع کامپایل
Error: D:\project melec.ir\saat-tem-day\LCD.Clock_.Calendar\LCD Clock Calendar\CodeVision\LCD Clock Calendar.c(109): undefined symbol ‘DDA7’
Error: D:\project melec.ir\saat-tem-day\LCD.Clock_.Calendar\LCD Clock Calendar\CodeVision\LCD Clock Calendar.c(111): undefined symbol ‘PORTA7’
Error: D:\project melec.ir\saat-tem-day\LCD.Clock_.Calendar\LCD Clock Calendar\CodeVision\LCD Clock Calendar.c(121): undefined symbol ‘DDC7’
Error: D:\project melec.ir\saat-tem-day\LCD.Clock_.Calendar\LCD Clock Calendar\CodeVision\LCD Clock Calendar.c(123): undefined symbol ‘PORTC7’
Error: D:\project melec.ir\saat-tem-day\LCD.Clock_.Calendar\LCD Clock Calendar\CodeVision\LCD Clock Calendar.c(136): undefined symbol ‘WGM00’
Error: D:\project melec.ir\saat-tem-day\LCD.Clock_.Calendar\LCD Clock Calendar\CodeVision\LCD Clock Calendar.c(174): undefined symbol ‘OCIE0’
Error: D:\project melec.ir\saat-tem-day\LCD.Clock_.Calendar\LCD Clock Calendar\CodeVision\LCD Clock Calendar.c(181): undefined symbol ‘ISC2’
Error: D:\project melec.ir\saat-tem-day\LCD.Clock_.Calendar\LCD Clock Calendar\CodeVision\LCD Clock Calendar.c(198): undefined symbol ‘ADATE’
ممنون میشم بررسی کنین
با تشکر از سایت خوبتون

Untitled.png
Amir Hosseinpour
Amir Hosseinpour
کاربر سایت
شنبه، ۶ اردیبهشت ۱۳۹۹ ۲۲:۳۲:۴۳

سلام و خسته نباشید وقتی کد رو می نویسم دچار خطا میشه لطفا راهنمایی کنید ممنونinclude Converter.lib#

Amirali Rashvand
Amirali Rashvand
کاربر سایت
سه شنبه، ۱۰ دی ۱۳۹۸ ۰۲:۲۰:۱۵
امتیاز :
     

سلام
پروتئوس من ورژنش پایینه خودم پروتئوس رو بستم همه چیز اکی بود به جز دما
عینا مثل خود مدار بستم ولی دما رو -9999 نشون میده . یک مشکل دیگه‌ای که باهاش روبرو شدم این بود که وقتی باتن ها رو میزدم خیلی خیلی با تاخیر عمل میکرد.
یک سوال دیگه هم داشتم اینکه خواستم از کد سردر بیارم ولی خیلی از دستوراتش رو ندیده بودم فرمتش یکم فرق داشت مثلا void loop رو توی آردوینو دیده بودم ولی تاحالا توی کدویژن ندیده بودم.

amin5546
amin5546
کاربر سایت
دوشنبه، ۲۲ مهر ۱۳۹۸ ۱۳:۲۷:۵۵
امتیاز :
     

سلام وقتتون بخیر
سپاس بابت پروژه های جالبتوت
اگه ممکنه تابع تبدیل تاریخ رو هم ب صورت کتابخانه قرار بدید
تشکر…

isbari
isbari
کاربر سایت
پنجشنبه، ۴ مهر ۱۳۹۸ ۲۳:۵۷:۵۵
امتیاز :
     

ایام هفته را درست نشان نمی دهد
همش در شنبه(sat) می ماند

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

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