توضیحات

icon فایل هایی که با لینک مستقیم در سایت قرار گرفته اند بدون پسورد می باشند.

استفاده از EEPROM داخلی با Code Vision AVR

E00

گاهی اوقات در طراحی سیستم های الکترونیکی نیاز داریم تا مقدار متغییر ها را در یک حافظه دائمی ذخیره کنیم تا در صورت قطع تغذیه اطلاعات از دست نرود. مثلا در سیستم ترموستات حتما نیاز است تا مقدار دمای نرمال که دمای محیط با آن مقایسه می شود همیشه بعد از تنظیم محفوظ بماند تا هر بار بعد از قطع برق نیازی به تنظیم مجدد آن نباشد. برای ذخیره این مقادیر می توان از حافظه های EEPROM داخلی میکروکنترلر نیز استفاده کرد. استفاده از حافظه EEPROM داخلی به جای حافظه های خارجی باعث کاهش هزینه ها می شود.

 

در این پروژه قصد داریم تا با ارئه یک نمونه آموزش نحوه استفاده از حافظه داخلی میکروکنترلر AVR را با استفاده از کامپایلر Code Vision AVR آموزش دهیم.

 

برای درک بهتر این مسئله یک مثال آموزش تهیه شده است که در نرم افزار پروتیوس نیز شبیه سازی شده است. با استفاده از کلید های UP و DOWNE میتوان مقدار متغیر I را کم و زیاد کرد. مقدار این متغیر با ریست کردن میکروکنترلر از بین نمیرود.

 

نکته: توجه داشته باشید که اول برنام تمام متغییر های ذخیره شده در حافظه eeprom باید در متغییر ها معمولی باز نشانده شود.

 

برنامه این پروژه به روش ساب روتین نوشته شده است و جنبه آموزشی سورس این پروژه شامل نحوه کد نویسی نیز می شود.

 

اهداف آموزشی:

.        • آشنایی با حافظه EEPROM داخلی میکروکنترلر

.        • آشنایی با روش ذخیره کردن و خواندن اطلاعت از حافظه EEPROM داخلی میکروکنترلر AVR

.        • آشنایی با روش برنامه نویسی ساب روتین

 

محتویات فایل دانلود:

.        • سورس برنامه با کامپایلر Code Vision AVR

.        • شبیه سازی پروژه با نرم افزار پروتیوس

 

جهت دانلود فایل های این پروژه اینجا کلیک کنید. ( ۱۳۴KB )

 

تهیه و تنظیم: علیرضا جودی

 

لینک منبع:

http://projects.m32.ir/2555/

 

خواننده گرامی : برای تهیه هر یک از این مقالات زمان ، انرژی و هزینه بسیار زیادی صرف می شود. در حق ما لطف نموده و مطالب را بدون هیچ تغییر و با ذکر منبع انتشار دهید. رعایت کپی رایت باعث انگیزه و امید تولید کننده های مطالب آموزشی میشود. با سپاس از خوانندگان محترم و با امید به روزهای بهتر
 
 

دی ۱۰ام, ۱۳۹۲ | 8,910 views | دسته: Alphanumeric LCD، Code Vision AVR
برچسب ها: ، ،


نظرات دیگران در مورد این مطلب:
دانلود موزیک :

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

 

پاسخ:

در این پروژه از اسیلاتور داخلی استفاده می شود.

آرمان :

با سلام و عرض خسته نباشید
بار اول است که به سایت شما سر میزنم بسیار لذت بردم و فقط خواستم خسته نباشیدی عرض کرده باشم
ممنون

malihe :

ممنون
مفید بود

ALI :

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

این فیبر اولی چرا pcb ایش اینطوری هست..؟به روش ساختش بر میگرده..؟ممنون

“www.8pic.ir/images/w0iuu9e2a013sdf7kc9d.jpg”
http://projects.m32.ir/up/2012/03/B11.jpg

 

پاسخ:

تصویر اولی که فرستادید از قرار زیر است.

2

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

 

سجاد :

سلام خسته نباشید خیلی متشکرم از آموزش مفیدتون .
یه سوال داشتم من متوجه نمیشم عدد اول ۳۲ کجا تعریف شده و چرا من هر
جای برنامه رو تغیر میدم باز عدد ۳۲ به نمایش در میاد . کجا میشه تعریف کرد که این عدد در ابتدا ۳۲ نباشه . و مثلا ۱۰ باشه

 

پاسخ:

در هیچ کجای برنامه برای متغییر I عدد ۳۲ را تعریف نکرده ایم. بلکه مقدار اولیه این عدد ۲۵۵ بوده است. (حافظه خالی عدد ۲۵۵ می باشد) چون در زمان اجرای برنامه با استفاده از کلید UP اقدام به افزایش این عدد تا عدد دلخواه (در اینجا همان عدد ۳۲ می باشد) نمودیم این عدد در حافظه EEPROM داخلی میکرو ذخیره شده است. به همین دلیل در زمان شروع شبیه ساز، این عدد نمایش داده می شود. در صورت تست این برنامه بر روی یک تراشه خام احتمالا شما در زمان شروع عدد ۲۵۵ را خواهید دید. بعد از تغییر این عدد توسط کلیدها، آخرین عدد در زمان روشن شدن پروژه نمایش داده خواهد شد. برای دیدن این مورد در شبیه ساز، حتما باید قبل از خارج شدن و بستن برنامه، با گزینه Save نرم افزار پروتیوس، آخرین تغییرات انجام شده بر روی فایل را ذخیره نمایید.

سجاد :

خیلی سپاسگزار هستم از پاسخ کاملتون . اگر من در ابتدای برنامه عدد برابر ۱۰

باشه از چه راهی باید اینکار رو انجام بدم ؟

بهنام :

سلام
خیلی ممنون.مختصر و مفید کمک بزرگی بهم کرد

arash :

با سلام
حافظه eeprom با قطع برق هم پاک نمیشه ولی تو شبیه سازی پروتیوس با خاموش روشن کردن شبیه سازی آخرین مقدار پاک میشه یعنی از ۳۲ بازم شروع میکنه
در عمل هم همینطور عمل میکنه؟
اگه بخواهیم تو عمل آخرین مقدار در راه اندازی مجدد(با قطع برق نه ریست کردن) باقی بمونه و پاک نشه چیکار باید کرد؟
با تشکر
 
پاسخ:
با Stop و Start کردن شبیه ساز، آخرین مقدار ذخیره شده محفوظ می ماند. ولی چنانچه زمان بستن نرم افزار پروتیوس، آخرین تغییرات اعمال شده در شبیه ساز پروتیوس را Save نکنید، در اجرای بعدی مقادیر آخر را نخواهید داشت. برای داشتن شبیه ساز واقعی حتما زمان بستن نرم افزار، آن را Save کنید.
در عمل آخرین مقدار، در حافظه داخلی ذخیره می شود و با ریست کردن یا خاموش و روشن کردن تغذیه هم پاک نمیشود.

آرمان :

سلام آموزشتون خیلی به کارم اومد . خیلی ممنون .خسته نباشید 🙂

mamareza :

سلام
ممنون مطالب عالی بود

nima :

ممنون.

امیررضا خزلی :

با سلام بیار عالی بود اموزشتون ممنونم


افزودن نظر: