پروژه ساعت، تقویم و دماسنج پیشرفته با 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
72 دیدگاه
تازه‌ترین
قدیمی‌ترین بیشترین رأی
بازخورد (Feedback) های اینلاین
مشاهده همه دیدگاه ها
javad004
javad004(@javad004)
عضو
سه شنبه، ۲۳ خرداد ۱۴۰۲ ۱۹:۰۰:۰۶
امتیاز :
     

سلام خسته نباشید
برای مونتاژ مدار بجای آی سی ATMEGA32 از ATMEGA32A استفاده کنیم فرقی داره ؟

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

سلام خسته نباشید
چرا سنسور دما با وجود اینکه وصله در داخل lcd -999.0 نشون میده.
ممنون میشم راهنمایی بفرمایید

میلاد
میلاد
میهمان
سه شنبه، ۲ خرداد ۱۴۰۲ ۱۸:۱۴:۱۴
امتیاز :
     

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

Mehdi.d
Mehdi.d(@mehdi-d)
عضو
پنجشنبه، ۳ آذر ۱۴۰۱ ۱۰:۲۹:۰۷
امتیاز :
     

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

motamedi kia
motamedi kia(@motamedi-kia)
عضو
دوشنبه، ۲۱ شهریور ۱۴۰۱ ۱۱:۴۲:۲۱
امتیاز :
     

سلام
LCD ها دارای دو پایه K و A هستند آیا این دو پایه را باید به VSS و VDD خود LCD که به منبع تغذیه متصل هست وصل کرد؟

motamedi kia
motamedi kia(@motamedi-kia)
عضو
دوشنبه، ۱۴ شهریور ۱۴۰۱ ۱۴:۲۵:۴۱
امتیاز :
     

سلام
باتری بک آپ میشه باتری سکه ای 3 ولتی باشه؟
LCD ارتباط I2c می خواد؟ اگه LCD این امکان را نداشت با مبدل میشه؟

motamedi kia
motamedi kia(@motamedi-kia)
عضو
پاسخ به  فقط آموزش
دوشنبه، ۲۱ شهریور ۱۴۰۱ ۱۱:۵۷:۵۱

سلام
پایه های VCC و AVCC و AREF باید به مثبت و دو پایه GND به منفی تغذیه باشه؟
درسته؟
چون در عمل دو پایه GND و یک پایه VCC علاوه بر AVCC داره
و پایه VO در LCD همان VEEهست؟

آخرین ویرایش 2 سال قبل توسط motamedi kia
motamedi kia
motamedi kia(@motamedi-kia)
عضو
پاسخ به  فقط آموزش
سه شنبه، ۲۲ شهریور ۱۴۰۱ ۱۲:۴۶:۰۶

پایه AREF در شماتیک به 5 ولت متصل شده یعنی من وصل نکنم؟

motamedi kia
motamedi kia(@motamedi-kia)
عضو
پاسخ به  فقط آموزش
چهارشنبه، ۲۳ شهریور ۱۴۰۱ ۱۸:۱۳:۲۳

ببخشید سوالم زیاد شد در عمل هم باید پایه ریست به 5 ولت متصل بشه؟

motamedi kia
motamedi kia(@motamedi-kia)
عضو
چهارشنبه، ۲ شهریور ۱۴۰۱ ۱۳:۵۸:۰۴
امتیاز :
     

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

motamedi kia
motamedi kia(@motamedi-kia)
عضو
سه شنبه، ۱ شهریور ۱۴۰۱ ۲۱:۱۵:۱۳
امتیاز :
     

سلام
میشه با اتمگا 8 هم این پروژه رو اجرا کرد فقط باید اتمگا 8 فراخوانی بشه؟

motamedi kia
motamedi kia(@motamedi-kia)
عضو
سه شنبه، ۱ شهریور ۱۴۰۱ ۱۶:۴۶:۵۲
امتیاز :
     

سلام خسته نباشید
ممنون بابت پروژه ای که در اختیار ما گذاشتید
وقتی کد های پروژه رو کپی کردم برای LCD ارور داد
کجای برنامه مشکل داره؟
و اگر بخوام از یک LCD 4*20 استفاده کنم و خط آخر LCD(خط 4) متنی رو نمایش بده(20 حرف باشه) ضمن اینکه ;lcd_init(16) رو به ;lcd_init(20) تغییر بدم باید چه کار کنم؟

error Pr_Cl_M .PNG
motamedi kia
motamedi kia(@motamedi-kia)
عضو
پاسخ به  فقط آموزش
سه شنبه، ۱ شهریور ۱۴۰۱ ۲۱:۳۶:۳۵

چطور باید تنظیم کرد
لطفا قسمت دوم سوالم رو هم پاسخ بدین ممنون
توضیحات رو هم بیشتر توضیح بدین ممنون چون برنامه نویسی بلد نیستم

Abolfazl Hoseini
Abolfazl Hoseini(@abolfazlhoseini)
عضو
سه شنبه، ۱۳ اردیبهشت ۱۴۰۱ ۱۷:۵۳:۵۹
امتیاز :
     

سلام مطمئن هستید کریستال رو باید به پورت c وصل کرد؟

abolfazl
abolfazl(@abolfazlhoseini)
عضو
سه شنبه، ۹ فروردین ۱۴۰۱ ۱۳:۳۵:۰۷
امتیاز :
     

سلام من این برنامه را روی پوروتئوس انجام دادم اما دما را 999 نشان میدهد مشکل از کجاست

Mehdi2235
Mehdi2235(@mehdi2235)
عضو
سه شنبه، ۲۶ بهمن ۱۴۰۰ ۱۹:۳۵:۰۶
امتیاز :
     

سلام یه سری مشکلات ک تو کامتا گذاسه شده بود برطرف شده و این فایل نهایی هست یا باید ویرایش کنیم ؟؟؟

margarit
margarit(@margarit)
عضو
چهارشنبه، ۱۶ تیر ۱۴۰۰ ۰۱:۴۳:۰۸
امتیاز :
     

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

Mohandesan
Mohandesan(@mohandesan)
عضو
دوشنبه، ۲۴ خرداد ۱۴۰۰ ۲۱:۲۳:۲۰
امتیاز :
     

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

Mohandesan
Mohandesan(@mohandesan)
عضو
پاسخ به  فقط آموزش
سه شنبه، ۲۵ خرداد ۱۴۰۰ ۱۰:۱۹:۳۳

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

فاطمه
فاطمه(@atemeh1400)
عضو
دوشنبه، ۲۰ اردیبهشت ۱۴۰۰ ۱۳:۳۶:۴۱
امتیاز :
     

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

hamed_ka_71
hamed_ka_71(@hamed_ka_71)
عضو
دوشنبه، ۱۸ اسفند ۱۳۹۹ ۱۳:۰۸:۳۹
امتیاز :
     

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

image_2021-03-08_130909.png
hamed_ka_71
hamed_ka_71(@hamed_ka_71)
عضو
پاسخ به  فقط آموزش
پنجشنبه، ۲۱ اسفند ۱۳۹۹ ۱۰:۴۴:۳۲

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

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

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

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

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

hamed_ka_71
hamed_ka_71(@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(@hamed_ka_71)
عضو
پاسخ به  فقط آموزش
جمعه، ۲۲ اسفند ۱۳۹۹ ۰۰:۲۳:۳۴

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

eli222222
eli222222(@eli222222)
عضو
جمعه، ۱۶ آبان ۱۳۹۹ ۱۳:۰۹:۱۲
امتیاز :
     

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

Capture.PNG
eli222222
eli222222(@eli222222)
عضو
پاسخ به  فقط آموزش
شنبه، ۱۷ آبان ۱۳۹۹ ۰۰:۲۸:۴۲

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

eli222222
eli222222(@eli222222)
عضو
پاسخ به  فقط آموزش
یکشنبه، ۱۸ آبان ۱۳۹۹ ۰۱:۲۵:۱۹

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

neginze
neginze(@neginze)
عضو
دوشنبه، ۵ آبان ۱۳۹۹ ۰۱:۴۳:۵۴

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

Hossein79
Hossein79(@hossein79)
عضو
چهارشنبه، ۵ شهریور ۱۳۹۹ ۱۲:۲۶:۲۹
امتیاز :
     

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

Hossein79
Hossein79(@hossein79)
عضو
سه شنبه، ۴ شهریور ۱۳۹۹ ۱۸:۵۵:۴۸
امتیاز :
     

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

آخرین ویرایش 4 سال قبل توسط Hossein79
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
 

آخرین ویرایش 4 سال قبل توسط Hossein79
Hossein79
Hossein79(@hossein79)
عضو
پاسخ به  فقط آموزش
سه شنبه، ۴ شهریور ۱۳۹۹ ۰۲:۳۱:۵۲

ممنون درست شد 

Hossein79
Hossein79(@hossein79)
عضو
یکشنبه، ۲ شهریور ۱۳۹۹ ۲۳:۳۱:۲۳
امتیاز :
     

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

آخرین ویرایش 4 سال قبل توسط Hossein79
Hossein79
Hossein79(@hossein79)
عضو
پاسخ به  فقط آموزش
دوشنبه، ۳ شهریور ۱۳۹۹ ۲۳:۱۸:۳۱

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

Hossein79
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(@amirhosseinpour)
عضو
شنبه، ۶ اردیبهشت ۱۳۹۹ ۲۲:۳۲:۴۳

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

Amirali Rashvand
Amirali Rashvand(@amiralirashvand)
عضو
سه شنبه، ۱۰ دی ۱۳۹۸ ۰۲:۲۰:۱۵
امتیاز :
     

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

amin5546
amin5546(@amin5546)
عضو
دوشنبه، ۲۲ مهر ۱۳۹۸ ۱۳:۲۷:۵۵
امتیاز :
     

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

isbari
isbari(@isbari)
عضو
پنجشنبه، ۴ مهر ۱۳۹۸ ۲۳:۵۷:۵۵
امتیاز :
     

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

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

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