طراحی کنترلر، مدارت دلخواه، پروژه ها و تمرینات درس میکروکنترلرها
کنترل زاویه ای 0 تا 180 درجه؛ قابلیت تعریف بیش 100 برنامه مجزا توسط کاربر؛ تعیین زاویه برای هر پله حرکت سروو موتور؛ تعیین سرعت حرکت سروو موتور؛ تعیین مدت زمان کارکرد در هر برنامه از 1 تا 255 دقیقه. منوی کاربری بسیار آسان برای تعریف برنامه ها.این پروژه بدون نیاز به دریافت نور می تواند بر اساس تاریخ، ساعت، عرض جغرافیایی و طول جغرافیایی هر استان زمان طول و غروب خورشید را محاسبه کرده و به طور دقیق در این بازه زمانی لامپ های روشنایی را فعال کند. همچنین دارای یک تایمر داخلی می باشد که قابلیت فعال و غیر فعال کردن آن وجود دارد. دستگاه کلا با 3 کلید قابل تنظیم و برنامه ریزی می باشد.این پروژه یک مدار گیرنده رادیویی 433 یا 315 مگاهرتز می باشد که قابلیت تعریف و ذخیره سازی انواع ریموت کنترل هایی از قبیل (ریموت دزدگیر ماشین، پارکینگ، بالابر و ...) را دارد. با نگه داشتن یک میکروسوئیچ و فشار دادن یکی از کلید های ریموت به مدت 1 ثانیه کد شناسایی ریموت مورد نظر آشکار و سپس در حافظه ذخیره می شود و می توان با چهار کلید ریموت (کلیدهای A,B,C,D) چهار رله را روشن و خاموش کرد.کنترل نور یک لامپ 12 الی 24 ولتی DC توسط دو عدد کلید در بازه روشنایی 1 تا 99 درصد. به همراه نمایشگر جهت نمایش درصد روشنایی.این پروژه یک مدار واسط I/O می باشد که دارای 4 خروجی رله است. توسط نرم افزار کنترلی که قابل نصب بروی ویندوز های XP, Win7, Win8, Win10 می باشد می توان هر چهار رله را به صورت مجزا فعال و غیر فعال کرد.
پروژه کنترل سروو موتور از 0 تا 180 درجه با avr

MCP-2

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

MCP-26

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

MCP-27

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

MCP-38

دیمر دیجیتال با AVR به زبان سی
پروژه کنترل رله توسط پورت USB با AVR و C شارپ

MCP-31

پروژه کنترل رله توسط پورت USB با AVR و C شارپ

پروژه ولت متر دیجیتال با 8051 به زبان اسمبلی

www.picpars.com پروژه ولت متر دیجیتال با 8051 به زبان اسمبلی 30

در دنياي امروزي يعني دنياي ديجيتال همه آيسي ها و يا ميكرو كنترولرها و ساير پردازنده عمده مصرف آنها در طراحي مدارتي است كه با سنسور ها سروكار دارند. همانطور كه مي دانيم خروجي تمامي سنسور ها يا جريان هستند و يا ولتاژ كه دامنه جريان و ولتاژ آنها بسيار پايين بوده و حتي در مواردي آنها را با استفاده از تقويت كننده هاي عملياتي تا يك محدوده اي تقويت مي كننده و بعدا تقويت شده آن را به ADC مي دهند. ADC يك مبدل آنالوگ به ديجيتال مي باشد كه با استفاده از پايه 9 يعني Vref مي توان مقدار دامنه سيگنال ورودي را با توجه به مقدار ولتاژ اين پايه تنظيم كرد.
به اين صورت كه اگر اين پايه را رها كنيم و به جايي وصل نكنيم ولتاژ دامنه سيگنال ورودي مي تواند در محدوده 0 تا 5 ولت باشد كه در اين صورت گام هر پله برابر با 19.23=256÷5 ميلي ولت خواهد شد. براي ديگر ولتاژ ها هم در زير مشخص شده است:

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


Verf=2v        -> vin=0v-4v   4/255=15.62mv
Verf=1.5v     -> vin=0v-3v   3/255=11.71mv
Verf=1.28v    -> vin=0v-2.56v   2.56/255=10mv
Verf=1v        -> vin=0v-2v   2/255=7.81mv
Verf=.5v       -> vin=0v-1v   1/255=3.90mv


گام پله يعني اينكه به ازاي چه مقداري از دامنه ورودي خروجي يك واحد باينري بالا يا پايين برود. مثلا با ولتاژ پايه 2ولت خروجي ديجيتال ما به ازاي هر 15.62 ميلي ولت ورودي يك واحد افزايش مي يابد يعني 18.62=00000001B و 37.24=00000010B خواهد شد و در ساير ولتاژ ها هم همين طور مي باشد. البته اگر قادر به توليد اين ولتاژ هاي پايه نباشيم مي توانيم توسط يك پتانسيومتر 10 كيلو و با تنظيم آن يك ولتاژ مبنا ايجاد كرد.
تشريح پايه ها:
1)     CS اين پايه در واقع انتخاب كننده چيپ مي باشد. كار برد اين پايه در مدارتي كه نياز به دو يا چند سنسنور باشد كه براي هر سنسور يك ADC استفاده مي كنيم و در ميكرو ما مي توانيم توسط اين پايه مشخص كنيم كه كدام يك از ADC ها انتخاب شوند و ميكرو زير برنامه چه سنسوري را اجرا كند. البته در مداراتي كه از يك سنسور استفاده مي كنيم چون ما يك آيسي داريم مي توانيم آن را زمين كنيم.
2)     RD همون طوري كه از معني آن پيدا است يعني خواندن. وقتي ما مي خواهيم يك سيگنال آنالوگ را به ديجيتال تبديل كنيم اگر پايه CS=0 باشد و پايه RD را هم صفر كنيم آيسي معادل ديجيتال سيگنال ورودي را در خروجي قرار مي دهد يعني D0-D7 . البته بايد از قبل توسط پايه WR كه در زير توضيح داده شده است سيگنال آنالوگ را براي تبديل آماده كنيم.
3)     WR يعني نوشتن. اگر پايه CS=0 باشد و WR را در يك لحظه صفر كنيم در واقع آغاز روند تبديل را به ADC اطلاع مي دهد. كه ADC بعد از متوجه شدن به سراغ سيگنال ورودي رفته و آن را تبديل كرده و در يك ثبات داخلي ذخيره مي كند تا زماني كه RD=0 شود و محتواي اين ثبات را به خروجي انتقال مي دهد.
4)     CLK IN اگر بخواهيم از يك منبع پالس ساعت بيروني استفاده كنيم پالس ساعت را به اين پايه اعمال مي كنيم و اگر بخواهيم از پالس ساعت داخلي خود ADC استفاده كنيم بايد اين پايه و پايه 19 را به يك مقاومت و خازن متصل كنيم. فركانس آن از طريق فرمول زير مي باشد: f=1/(1.1*RC)  مقادير پيشنهادي براي اين آيسي مقاومت 10 كيلو اهم و خازن 150 پيكو فاراد مي باشد كه زمان تبديل ADC با توجه به فرمول بالا 110 ميكرو ثانيه خواهد شد. يعني در زمان 110 ميكرو ثانيه اي مي تواند يك سيگنال را از ورودي بخواند و معادل ديجيتال آن را تحويل دهد.
5)     INTR همون وقفه هست. اين پايه هميشه در وضعيت يك قرار دارد و هرگاه سيگنالي در ورودي باشد و CS=0 و WR=0 باشد پس از پايان تبديل اين پايه صفر مي شود كه اگر اين پايه را به پايه وقفه بيروني 8051 وصل كنيم و آن را برنامه ريزي كنيم در اين صورت مي توانيم از CPU ميكرو كارهاي ديگري انجام دهيم و هرگاه عمل تبديل به اتما رسيد ميكرو متوجه مي شود و براي خواندن خرجي ADC مي رود و بعد از خواندن به كار قبلي خود خواهد برگشت. در كل براي صرفه جويي در وقت ميكرو مي باشد شما مي تواند اصلا استفاده نكنيد.(منظورم روش وقفه هست) البته من در اين مثال از روش وقفه سركش استفاده كردم يعني CPU كل خود را روي اين پايه مي گذارد و هرگاه صفر شده عمل فرائت را انجام مي دهد.
6)     VIN(+)
7)     VIN(-) اين دو پايه ورودي هاي تفاضلي هستند كه خروجي برابر با VIN=VIN(+)-VIN(-) خواهد بود. ولي ما اغلب از ورودي تفاضلي استفاده نمي كنيم و VIN(-) را به زمين وصل كرده و VIN(+) را هم سيگنال ورودي را به آن متصل مي كنيم.
8)     A GND زمين آنالوگ كه به زمين وصل مي كنيم.
9)     Vref/2 كه در بالا توصيح داديم
10)GND زمين آيسي
11)پايه 11 تا 18به ترتيب D0-D7 خطوط داده 8 بتي هستند. (D0=18…D7=11).
19)CLK R كه در بالا توضيح داديم.
20)VCC تغذيه آيسي.
قسمتي از برنامه را براي خواندن سيگنال آنالوگ و در نهايت تبديل به داده 8 بيتي و خواندن اين داده 8 بيتي و تبديل آن به مقدار ده دهي يعني دسيمال را نوشته ام در صورتي كه كل برنامه و سخت افزار كامل اين پروژه را بخواهيد با ايميل من تماس بگيريد. اين برنامه و شكل مداري در واقع يك نماي از اين پروژه هست. نام اين پروژه، محافظ ديجيتالي مي باشد كه ضمن اندازه گيري ولتاژ برق شهر و نمايش آن بر روي يك ال سي دي16*1 در صورتي كه برق شهر از 180 ولت پايين تر بيايد خروجي يعني رله را قطع مي كند و اگر از 240 ولت هم بالا تر رود باز هم خروجي را قطع مي كند. به طور كلي به ولتاژ هايي در محدوده 180تا 240 اجازه عبور مي دهد.
برنامه خواندن از ADC:


START:    CLR     P3.7        ;WR
          SETB    P3.7
LOOP:     JB      P3.6,LOOP   ;INTR
          CLR     P3.5        ;RD
              ACALL   DELAY
                  MOV     A,P1
برنامه تبديل هگز به دسيمال:
CONVERT: MOV     B,#0AH
                         DIV     AB
                         MOV     43H,B
                         MOV     B,#0AH
                         DIV     AB
                         MOV     42H,B
                         MOV     41H,A

 

فایل های سورس این برنامه (سورس اسمبلی و هگز و ..) همراه با فایل شبیه سازی آن که با پروتیوس 7.2 به بالا قابل اجرا می باشد در تاریخ 1390/10/19 به صورت رایگان برای دانلود عموم قرار گرفت.

  منبع: www.picpars.com

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

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

فایل شماره 135 | حجم 55 کیلوبایت | دانلود 1473 بار

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

منبع www.picpars.com  دانلود پروژه ولت متر دیجیتال با 8051 به زبان اسمبلی

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

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

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

در ارتباط با این مطلب پروژه های آماده زیر جهت خرید موجود است