طراحی کنترلر، مدارت دلخواه، پروژه ها و تمرینات درس میکروکنترلرها
این پروژه بدون نیاز به دریافت نور می تواند بر اساس تاریخ، ساعت، عرض جغرافیایی و طول جغرافیایی هر استان زمان طول و غروب خورشید را محاسبه کرده و به طور دقیق در این بازه زمانی لامپ های روشنایی را فعال کند. همچنین دارای یک تایمر داخلی می باشد که قابلیت فعال و غیر فعال کردن آن وجود دارد. دستگاه کلا با 3 کلید قابل تنظیم و برنامه ریزی می باشد.این پروژه یک مدار گیرنده رادیویی 433 یا 315 مگاهرتز می باشد که قابلیت تعریف و ذخیره سازی انواع ریموت کنترل هایی از قبیل (ریموت دزدگیر ماشین، پارکینگ، بالابر و ...) را دارد. می توان رله مربوطه را روی هر کلید دلخواه تعریف نمود.این پروژه جریان برق مصرفی را اندازه گیری و توسط یک ماژول سیم کارت اطلاعات مورد نظر را به شماره همراه دلخواه ارسال میکند. ولتاژ کاری آن AC220 ولت و حداکثر جریان عبور آن 50 آمپر می باشد.یک کنترل کننده موتور با جریان خروجی 2 آمپر شامل کنترل جهت چرخش و سرعت می باشد. این مدار دارای نمایشگر LCD متنی بوده که سرعت و جهت چرخش موتور را نمایش می دهد.در صورتی که برق شهر از حداقل تعریف شده کمتر، یا از حداکثر بیشتر شود رله خروجی قطع خواهد شد و به صورت پیوسته توان مصرفی اندازه گیری و نمایش داده می شود.
پروژه تایمر-ساعت نجومی (فتوسل بدون نور)

MCP-26

پروژه تایمر-ساعت نجومی (فتوسل بدون نور)
پروژه ریموت کنترل 433-315 مگاهرتز تک کاناله با قابلیت لرنینگ

MCP-30

پروژه ریموت کنترل 433-315 مگاهرتز تک کاناله با قابلیت لرنینگ
پروژه کنتور برق با AVR و ارسال اطلاعات توسط سیم کارت

MCP-40

پروژه کنتور برق با AVR و ارسال اطلاعات توسط سیم کارت
کنترل سرعت و جهت موتور DC

MCP-9

کنترل سرعت و جهت موتور DC
پروژه محافظ برق و اندازه گیری توان مصرفی با avr و نمایشگر سون سگمنت

MCP-43

پروژه محافظ برق و اندازه گیری توان مصرفی با avr و نمایشگر سون سگمنت

كار با EEPROM خارجي و داخلي (قسمت پنجم)

EEPROM خارجي:
توسط ميكرو كنترلر AVR شما مي توانيد داده هاي خود را در يك حافظه خارجي ذخيره كنيد. كه من در اينجا نحوي پيكره بندي و برنامه نويسي آن را براي آيسي هاي EEPROM با مد سريال I2C خواهم گفت.
در پروتكل I2C ما تنها از دو سيم براي خواندن و نوشتن اطلاعات استفاده مي كنيم كه يك سيم آن به پايه SCL مشهور مي باشد كه روي اين پايه توسط ميكرو ما يك كلاك پالس با فركانس مشخص (بستگي به نوع EEPROM دارد) توليد مي كنيم. اين پايه اين كلاك را به EEPROM مي دهد و كه EEPROM بر اساس اين پالس ساعت داده ها را مي خواند و مي نويسد.
سيم دوم آن SDA مي باشد كه در واقع ما توسط اين پايه اطلاعات خانه هاي حافظه و محتواي داده را به EEPROM مي فرستيم و يا دريافت مي كنيم. از جمله اطلاعات يا شماره خانه حافظه و بعد اطلاعات خواندن و نوشتن و بعد هم فرستادن و يا دريافت كردن اطلاعات مي باشد.

از بخش سفارش طراحی هم اکنون درخواست خود را ثبت کنید
حل و تشریح کلیه تمرینات درس میکروکنترلر AVR
طراحی و ساخت مدارات دلخواه شما با میکروکنترلر AVR


اكنون به پيكره بندي EEPROM در محيط بيسكام مي پردازيم:

تعيين پايه هاي SCL و SDA :
Config Scl= x
Config Sda= x
در اينجا x يكي از پين هاي يك پورت مي باشد. مثلا PORTB.0 , PORTB.1  بستگي به طراحي خودتان دارد.
تعيين نرخ بيتي سريال و فركانس كلاك پالس و ...
نرخ بيتي برابر با 9600 بيت بر ثانيه $baud= 9600
اندازه حافظه بافر Config Serialout = Buffered , Size = 254
تعيين كلاك پالس 400 كيلو هرتزي Config I2cdelay = 1
عدد 161 براي خواندن از  EEPROM Const Xeeread = 161
 عدد 160 براي نوشتن در EEPROM Const Xeewrite = 160
توضيح برنامه:
در خط اول من به دلخواه نويسه LCD رو خاموش كردم و بعد هم پاكش كردم.
هدف از اين برنامه نحوي ارسال و دريافت داده به EEPROM هست بنابراين من مي خوام تاريخ امروز كه دارم اينو مي نويسم رو در EEORPM از خانه 20 نوشتم و بعد هم اونو خوندم و رو روي LCD نمايش داد. كه روند كار به صورت زير هست:
Address = 20 : C = 0
While Address < 30
Tmp = Lookup(c , Text)
Aa = High(address)
Bb = Low(address)
Gosub Writeeepromserial
Incr Address
Incr C
Wend
ابتدا به متغيير Address مقدار ثابت 20 رو دادم كه اين عدد ميشه خانه 20 EEPROM و اولين خانه اي كه اولين ديتا درونش نوشته ميشه بعد هم اومدم يه حلقه While ايجاد كردم و براش يه شرط هم گذاشتم يعني گفتم تا زماني كه Address برابر با 30 نشده دستورات توي حلقه رو تكرار كن! حالا عدد 30 چي؟ گفتيم مي خوام اولين خانه شروع 20 باشه و ما هم 10 ديتاي 8 بيتي داريم كه بايد نوشته بشه پس 10+20 ميشه 30.
در خط بعدي ما از جدول Lookup استفاده كرديم يعني ما اون تاريخ رو در جدولي با ليبل Text نوشتيم و بعد هم براي فراخواني اونها از يك شمارنده كه ردون حلقه هست استفاده كرديم به اين صورت كه ابتدا C=0 قرار داديم يعني ميگه اولين ديتاي جدول Text رو بخون و درون متغيير tmp قرار بده حال مي رسيم به دو دستور:
Aa = High(address) , Bb = Low(address)
از اين دستور براي توليد آدرس استفاده مي كنيم كه متغيير آدرس يك داده از نوع WORD مي باشد بنابر اين با قرار دادن آدرس خانه مورد نظر و بالا و پايين كردن آن آدرس ايجاد مي شود. حال ما ديتا را آماده كرديم و آدرس رو هم آماده كرديم و كافي كه اين اطلاعات رو براي EEPROM بفرستيم كه به كمك زير برنامه Writeeepromserial اين كار رو انجام مي ديم. و در خط بعدي هم يك واحد به شمارنده يعني C و يك واحد هم به Address اضافه مي كنيم تا در نوبت بعد ديتاي جديد و آدرس جديد ايجاد شود.
قسمت خوان از EEPROM هم شبيه به نوشتن هست با اين تفاوت كه از زير برنامه Readeepromserial استفاده مي شود.
زير برنامه هاي Readeepromserial و Writeeepromserial تقربيا براي اينگونه استفاده كردن از EEPROM ثابت هستند فقط در قسمت waitms 10 اين 10 ميلي ثانيه تاخير بستگي به نوع EEPROM دارد. ما آيسي هايي داريم كه 1 ميلي ثانيه نياز دارند و بعضي هم 5 و بعضي هم 10 ميلي ثانيه ...
EEPROMداخلي:
براي استفاده از EEPROM داخلي از دو دستور زير مي توانيد استفاده نماييد يكي براي خواندن و يكي هم براي نوشتن. نكته: حتما بين هر خوندن و يا نوشتن بايد 5 ميلي ثانيه تاخير بزاريم تا عمليات نوشتن تكميل شود.
Readeeprom Mgh1 , 10 : Waitms 5
Writeeeprom Mgh2 , 10 : Waitms 5
در دستور اولي محتواي خانه 10 از EEPROM داخلي خوانده مي شود و درون متغيير MGH1 ريخته مي شود.
در دستور دومي محتواي متغيير mgh2 در خانه 10 از EEPROM داخلي نوشته مي شود.

  منبع: www.picpars.com

  لطفا مقالات، آموزش‌ها و پروژه های خود را به آدرس ایمیل ارتباطی ایمیل نمائید تا آن را با نام خودتان در سایت منتشر کنیم.

فایل های ضمیمه ( ورود - عضويت )

فایل شماره 138 | حجم 96 کیلوبایت | دانلود 2507 بار

منبع www.picpars.com  نویسنده: سید محسن قاسمیان

منبع www.picpars.com  دانلود کار با حافظه داخلی و خارجی با پروتکل I2C

منبع www.picpars.com  پسورد: www.picpars.com

به این مطلب امتیاز دهید

برچسب ها:
تاریخ ارسال چهارشنبه، 21 بهمن ماه، 1388    نویسندهنویسنده: مدیریت    نظرات 7 نظر    بازدید بازدید [ 31035 ]   پرینتنسخه چاپی
فایل پی دی اف فایل پی دی اف   ارسال به دوستان ارسال به دوستان