پروژه ساعت با avr به همراه شبیه سازی در پروتئوس-atmega128

پروژه ای که در این پست برای شما قرار داده ام مربوط به راه اندازی LCD کاراکتری با میکروکنترلر atmega128 و ساخت ساعت با آن می باشد.در این پروژه از یک عدد میکروکنترلر قدرتمند شرکت اتمل با شماره atmega128 ،یک عدد LCD کاراکتری با سایز 16*2 استفاده شده است. این پروژه در نرم افزار شبیه ساز پروتئوس نیز شبیه سازی شده است.

در این پروژه بدون استفاده از تایمر ها و با استفاده از توابع تاخیر کامپایلر کد ویژن مدت زمان یک ثانیه درست شده است در زیر کد پروژه آورده شده است که در ادامه به توضیح این کدها می پردازیم.

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

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

در خط بعدی کتابخانه مربوط به LCD کاراکتری فراخوانی شده است. در کامپایلر کدویژن با استفاده از کد ویزارد شما می توانید پایه های LCD مورد نظر خود را پیکربندی کرده و بعد از ذخیره کامپایلر تنظیمات رو در این کتابخانه قرار می دهد و به صورت اتوماتیک این کتابخانه به برنامه اضافه می شود. در این کتابخانه توابع لازم برای نوشتن و پاک کردن وجود دارد.

در خط بعدی کتابخانه stdio فراخوانی شده و به برنامه اضافه می گردد. از این کتابخانه برای تبدیل عدد به رشته با استفاده از توابعی مانند sprintf استفاده شده است.طریقه کارکرد برنامه بسیار ساده می باشد، در برنامه سه متغییر با نام second برای نگه داری ثانیه ، minute برای نگاه داری دقیق و hour برای نگه داری ساعت استفاده شده است. هر یک ثانیه یک واحد به متغییر second  اضافه می گردد و بعد از رسیدن متغییر second به عدد 60 این متغییر صفر شده و یه واحد به متغییر minute افزوده می شود.

متغییر minute بعد از رسیدن به مقدار 60 صفر شده و یک واحد به متغییر hour اضافه می شود. با استفاده از دستور شرطی if دستور نوشته شده داخل آن برسی شده و در صورت درست بودن دستورات داخل شرط if  اجرا خواهد شد.

نمایی از پروژه در پروتئوس

پروژه ساعت با avr به همراه شبیه سازی در پروتئوس-atmega128

دانلود پروژه ساخت ساعت با atmega128

 

 

کانال تلگرام ایده نگر