اموزش ميكروكنترلر AVR به زبان ساده(Basic)-قسمت اول
جمعه 3 آذر 1391 6:51 PM
سلام . براي اونايي كه تا حالا با ميكرو كار نكردن كمي مشكله كه بعضي از مفاهيم رو ياد بگيرن براي همين من اشنايي مقدماتي با avr به زبان ساده در اوردم .راستش ديگه از اين ساده تر به ذهنم نرسيد . دوستاني كه تمايل به يادگيري avr دارن بايد بدونن كه بايد با مياني ديجيتال اشنايي داشته باشند حداقل اينكه با گيت هاي منطقي اشنايي داشته باشين براي اشنايي با ديجيتال كتاب مباني ديجيتال هنرستان يا كتاب طراحي ديجيتال نوشته موريس مانو خوبه.
نوشته زير مقدمه اي بر اشنايي با ميكرو هست كه گفتگوي بين دو دوست رو نشون ميده كه دارن درباره ميكرو avr صحبت مي كنن اميدوارم كه مفيد باشه.
قسمت اول
1- سلام خوبي
2- سلام خوبم تو خوبي
1- اره خوبم . چكار مي كني كم پيدايي
2- اره يك چند وقتيه دارم پروژه دانشگاه رو انجام مي دم
1- چي هست اين پروژت
2- هيچي ساخت يك دور سنج موتور با ميكروكنترلرAVR
1- چي ميكروكنترلرavr ؟؟؟؟ ميكرو كنترلر ديگه چيه
2- ميكروكنترلر رو اگه بخام به زبون ساده بهت بگم يك كنترل كننده هستش كه تقريبا هر چي ازش بخاي برايت انجام ميده
1- پس بگو يك رباته
2- نه منظورم هر كاري نبود ببين مثل يك كامپيوتر كه بهش فرمان ميدي اون هم انجام ميده البته از نظر ظاهري كه نگاهش كني يك ايسي 40 پايه هستش
1- چي؟؟؟؟؟ مگه ميشه يك كامپيوتر به اندازه يك ايسي چهل پايه باشه
2- نه خود كامپيوتر منظورم از كامپيوتر اينه كه بهش فرمان مي دي اونم انجام ميده
1- بازم نفهميدم بيشتر توضيح بده اصلا به چه دردي ميخوره
2- بزار بيشتر برات توضيح بدم اين يك ايسي هستش كه ما به وسيله كامپيوتر برنامه نويسي مي كنيم بعد برنامه رو مي ريزيم توي ميكرو . كاربردش هم خيلي زياده مثلا باهاش مي توني ساعت . فركانس متر. قفل رمز درست كني
1- يكم بيشتر درباه خود ميكرو توضيح بده
2- اين ميكرويي كه بهت ميگم يك خانواده هستش كه انواع مختلفي داره كه تشكيل شده از سه گروه 1-tiny 2-90s 3-mega
1- خوب فرق اين سه گروه باهم چيه مثلا tiny با 90s يا با mega چه فرقي دارن
2- فرفشون توي امكاناتي كه دارن هستش و همين فرق باعث شده كه قيمت هاشونم باهم فرق كنه
1- منظورت از امكاناتشون چيه
2- ببين بزار بيشتر برات درباره خود ميكرو توضيح بدم . از امكاناتي كه اين ميكرو ها دارن ميشه به تايمر – كانتر- توليد موج pwm – حافظه اي كه اطلاعات رو توي خودش حفظ كنه – سرعت بالاي انجام دستورات- I\O (يا همون ورودي خروجي خدمون) – مبدل انالوگ به ديجيتال adc – مقايسه كننده انالوگ و... . حالا كه با امكاناتش اشنا شدي همينو بهت بگم كه بعضي از ميكرو ها توي امكاناتشون و توي مقدار حافضه با هم فرق دارن براي همين قيمتهاشونم باهم فرق ميكنه
1- خوب حالا كدوم از همه امكاناتش بيشتره
2- نوع mega از همه امكاناتش بيشتر و از نظر مقدار حافضه هم از همه حافضه اش بيشتره بعد نوع 90s و در نهايت نوع tiny
1- اين همه امكانات همه توي يك ايسي پس حتما بايد يك صد هزار تومني قيمتش باشه
2- نه اگه بهت بگم كه بهترين نوع اين ميكرو كه نوع mega هستش رو توي خود بازار ايران با سه هزار تومن مي توني بخري باورت نمي شه
1- چي فط سه هزار تومن اون هم بهترين نوعش اخه چطور ممكنه اين همه امكانات فقط سه هزارتومن اون هم بهترين نوعش!!!!!!!!!!!!!!!!!!!!!!
2- خوب ديگه تكنولوژيه ديگه
1- راستي گفتي يكي از امكاناتش حافضه هستش بگو ببينم اصلا اين حافضه به چه دردي مي خوره؟؟
2- يادت مياد كه بهت گفته بودم كه بايد به اين ميكرو فرمان بديم
1- اره
2- خوب اين فرمان ها رو ما با يك نرم افزار مينويسيم
1- خوب چه ربطي داره به سوال من
2- يكم صبر داشته باش . اين برنامه اي كه مانوشتيم توي اين حالفضه قرار مي گيره
1- بيشتر توضيح بده
2- حافضه ميكرو avr دو تا هستش يكي حافضه بلند مدت كه بهش مي گن eeprom و دومي هستش حافضه كوتاه مدت كه بهش مي گن flash
1- خوب فرقشون باهم چيه
2- فرقشون در اينه كه در حافظه كوتاه مدت با قطع تغذيه (ولتاژ) ميكرو اطلاعات از بين مي ره ولي در حافضه بلند مدت با قطع شدن تغذيه ميكرو اطلاعات از بين نميره
1- اها فهميدم . خوب يادم مياد بهم گفتي كه هر كاري ازش بخايم برامون انجام ميده چطوري بايد بهش بگيم كه فلان كار رو انجام بده ؟
2- خوب بزار به صورت كلي بهت بگم كه گيج نشي . ما براي كارهايي كه از اين ميكرو مي خايم بايد بهش برنامه بديم اين برنامه توسط نرم افزار نوشته مي شه
1- چه نرم افزاري؟
2- نرم افزاراي مختلفي هستش كه باهاش براي ميكرو برنامه مي نويسن برنامه هايي رو كه من مي شناسم bascom –codvision و ... هستش كه من با bascom كار مي كنم. خوب حالا بزار ادامه مطلب رو بگم . برنامه اي رو كه ما مي نويسيم زبان هاي مختلفي داره
1- منظورت انگليسي يا فارسي هستش
2- نه بابا منظورم زبان هاي برنامه نويسي هستش كه عبارتند از baisic-c –اسمبلي
1- يعني بايد همه اي زبان هاي برنامه نويسي رو بلد باشيم
2- نه بابا ناراحت نباش من خودم وقتي كه مي خاستم ميكروكنترلر ياد بگيرم هيچ كدوم از اين زبان ها رو ياد نداشتم . چقدر سوال مي كني منو از موضوع پرت كردي . هر كدوم از اين زبان ها در يك نرم افزار خاص خودش نوشته مي شه مثلا اگه دوست داشتي برنامه رو با زبان بيسيك بنويسي بايد با نرم افزار baisic كار كني اگه خاستي با زبان c برنامه بنويسي بايد با نرم افزار codvision برنامه بنويسي . خوب حالا وقتي كه برنامه رو نوشتي بايد برنامه رو بريزي توي ميكرو . حتما مي خاي بپرسي چطوري برنامه رو ميريزن توي ميكرو خوب بهت مي گم با يك پروگرامر
1- چي پروگرامر ديگه چيه؟
2- نترس پروگرامر وسيله اي هستش كه ميكرو رو روي اون قرار ميدي ويك سر ديگش وصل مي شه به پرينتر كامپيوتر بعد كه به كامپيوتر نصب شد از طريق نرم افزار فرمان ارسال برنامه به داخل ميكرو رو ميدي مثلا در نرم افزار بيسكام كه بعدا مفصلا بهت توضيح ميدم با زدن كليد F4 برنامه ريخته مي شه داخل ميكرو
1- ببين من نفهميدم نقش اين پروگرامر اين وسط چيه
2- پروگرامر واسطه اي هست ميان ميكرو و كامپيوتر . خوب اخه مرد حسابي برنامه اي كه تو براي ميكرو نوشتي بايد بره توي ميكرو يا نه . پس از روي هوا هم كه نمي شه برنامه رو فرستاد پس ميان يك پروگرامر وصل مي كنند به كامپيوتر و ميكرو رو روي اين پروگرامر قرار ميدن بعد از توي كامپيوتر فرمان ارسال برنامه رو مي دن
1- ببين درست فهميدم يا نه پروگرامر تنها نقشي كه داره اينه كه برنامه اي كه ما توي كامپيوتر نوشيتم رو بريزه توي ميكروكنترلر
2- افرين
1- بازم سوال دارم
2- بگو
1- اين امكاناتي رو كه گفتي ميكرو داره چطوري مي تونيم ازش استفاده كنيم
2- اين كار رو موقع برنامه نويسي بهش مي گيم . مثلا مي خايم از كانتر ميكرو ( كانتر به معني شمارنده ) استفاده كنيم . بايد در اول برنامه بنويسيم كه از كانتر مي خا هيم استفاده كنيم . به اين كار در اصتلاح مي گويند config . البته بعدا درباره برناه نويسيش – نحوه كار با نرم افزار – اتصال سخت افزاري ميكرو براي كامل توضيح مي دم
1- يك مثال مي توني بزني كه كاربرد اين ميكرو و امكاناتش چيه؟؟؟
2- اره ولي قول بده كه نترسي كه برنامه شو بنويسم چون كه بعدا درباره كل دستورات برنامه نويسي و نحوه كار با نرم افزار برات توضيح مي دم
1- باشه
2- خوب گفتي يك مثال بزن منم يم مثال خيلي ساده ميزنم . فرض كن كه با دو تا ميكروسوييچ مي خايم يك led رو روشن خاموش كنيم . براي اين كار اول بايد برنامه توسط نرم افزار نوشته بشه كه من در اينجا از زبان بيسيك براي نوشتن برنامه استفاده ميكنم :
$regfile = "8515DEF.DAT"
$crystal = 8000000
Config Porta = Output
Config Pinb.0 = Input
Config Pinb.1 = Input
Config Debounce = 25
Do
Debounce Pinb.0 , 1 , Sett , Sub
Debounce Pinb.0 , 1 , Resett , Sub
Loop
End
Sett:
Set Porta.0
Return
Resett:
Reset Porta.0
Return
1- خوب درباره اينا توضيح بده
2- صبر داشته باش اسياب به نوبت گفتم كه بعدا درباره تك تك دستورات و نحوه كار با نرم افزار برات توضيح مي دم
1- قول مي دي
2- قول مي دم كه تك تك دستورات رو با مثال زباد برات توضيح بدم
1- خوب حالا من چكار كنم
2- فعلا برو نرم افزار بيسكام (bascom) رو نصب كن تا بعد
1- باشه پس فعلا تا بعد
پايان قسمت اشنايي با ميكروكنترلر AVR