طراحی کنترلر، مدارت دلخواه، پروژه ها و تمرینات درس میکروکنترلرها
در صورتی که برق شهر از حداقل تعریف شده کمتر، یا از حداکثر بیشتر شود رله خروجی قطع خواهد شد و از طریق بازر بوق هشدار پخش می شود. ولتاژ فعلی، زمان باقیمانده تا اتصال رله و پیغام ها روی نمایشگر نشان داده می شود.این پروژه در اصل یک شمارنده می باشد که می توان عبور مرور افراد از یک گیت را شمارش کرد، شمارنده هم می تواند به صورت بالا شمار و هم پایین شمار کار کند. همچنین توسط شدت نور یک عدد LED می‌توان سنسور فرستنده و گیرنده را در یک راستای مستقیم تنظیم کرد. سنسورها ار نوع مادون قرمز با برد تقریبی 120cm می باشد.این پروژه بدون نیاز به دریافت نور می تواند بر اساس تاریخ، ساعت، عرض جغرافیایی و طول جغرافیایی هر استان زمان طول و غروب خورشید را محاسبه کرده و به طور دقیق در این بازه زمانی لامپ های روشنایی را فعال کند. همچنین دارای یک تایمر داخلی می باشد که قابلیت فعال و غیر فعال کردن آن وجود دارد. دستگاه کلا با 3 کلید قابل تنظیم و برنامه ریزی می باشد.این پروژه یک مدار گیرنده رادیویی 433 یا 315 مگاهرتز می باشد که قابلیت تعریف و ذخیره سازی انواع ریموت کنترل هایی از قبیل (ریموت دزدگیر ماشین، پارکینگ، بالابر و ...) را دارد. با نگه داشتن یک میکروسوئیچ و فشار دادن یکی از کلید های ریموت به مدت 1 ثانیه کد شناسایی ریموت مورد نظر آشکار و سپس در حافظه ذخیره می شود و می توان با چهار کلید ریموت (کلیدهای A,B,C,D) چهار رله را روشن و خاموش کرد.یک سیستم امنیتی که دارای یک کاربر اصلی می باشد و توسط این کاربر می توان کاربرهای متعددی با پسورد های مجزا تعریف نمود. می توان تا 100 کاربر و 100 پسورد مختلف را تعریف، و در قسمت ورود هر یک از اعضاء که نام کاربری و رمز عبور خود را بدرستی وارد کند یک رله به همراه LED روشن خواهد شد.
پروژه محافظ لوازم برقی با avr و نمایشگر LCD

MCP-23

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

MCP-6

پروژه شمارش افراد با سنسور مادون قرمز و avr
پروژه تایمر-ساعت نجومی (فتوسل بدون نور)

MCP-26

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

MCP-27

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

MCP-12

پروژه سیستم امنیتی با قابلیت تعریف کاربر و رمز عبور با 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 کیلوبایت | دانلود 2491 بار

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

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

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

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

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