تبليغاتX
قطب رباتیک - EITTCROBOTIC
EITTCROBOTIC - اطلاعات در باره ی ربات ها, مسابقات روباتیک و .... - EITTCROBOTIC

بافر . . . !

بسیاری از المانهای الکترونیکی و به خصوص IC هاي ديجيتالي، قابليت جريان دهي محدودي دارند و قطعاتي مانند موتور، لامپ ، رله و ... که مصرف جريان زيادي دارند را نمي توان مستقيم به آن ها متصل نمود.

  
علاوه بر اين در بعضي مدارات ممکن است خروجي يک IC به ورودي چند IC ديگر داده شود. براي هر IC پارامتري به نام Fan-Out تعريف مي شود که مشخص مي کند خروجي IC به ورودي چند IC مي تواند داده شود. در بعضي موارد که تعداد اتصالات بيشتر از Fan-out آي سي باشد، IC نمي تواند جريان لازم براي تغذيه ي تمام خروجی هایش را فراهم کند و خروجي اش افت مي کند. در چنين مواردي مي بايست از ICهای بافر استفاده نمود. به عبارت ديگر Fan-out بافر ها بسيار زياد است.

بافرها 2 وظیفه ی مهم را انجام می دهند:

1- منطقی کردن ولتاژ ورودی: اگر ولتاژ ورودی بین 2.5-0 ولت باشد، بر روی خروجی مربوطه ولتاژ 0 قرار گرفته و اگر بین 5-2.5 ولت باشد، 5 ولت روی آن قرار می گیرد. در حقیقت بر روی پایه های خروجی همواره ولتاژ 0 یا 5 ولت (وابسته به ولتاژ ورودی) قرار می گیرد.(درباره ی ولتاژ منطقی در بخش دیجیتال توضیح خواهیم داد)

2- تقویت جریان ورودی ها بر روی خروجی ها


   پرکاربردترین بافر در کار ما آی سی 74245 می باشد که یک آی سی 20 پایه بوده و در آن 8 بافر مجزا تعبیه شده.
   ترتیب پایه های این IC در شکل زیر آمده است.(هر فلش سبز 2طرفه یک بافر را نشان می دهد)

   پایه ی 19 پایه ی"Enable" یا فعال ساز نام دارد، اگر این پایه به زمین (0 منبع تغذیه) وصل شود، بافرها فعال می شوند و اگر به 5ولت متصل شود، بافرها خاموش می شوند.(در شکل بالا، مثلاً A0 و B0 یک بافر هستند)
   پایه ی 1 نیز که پایه ی جهت یا "Direction" نام دارد، جهت بافرها را نشان می دهد. مثلاً اگر DIR به زمین متصل شود، جهت بافر ازB به A (یعنی B ورودی و A خروجی است)و اگر به 5 ولت متصل شود، جهت بافر A به B می شود(یعنی A ورودی و B خروجی است).

پایه ی 20هم به 5ولت و پایه ی 10 هم به زمین یا 0ولت متصل می شود.

http://www.roshd.ir/
+ نوشته شده در  یکشنبه هجدهم فروردین 1387ساعت 0:0  توسط Students  | 

برنامه نويسي و ساخت رابط کيبورد کامپيوتر به ميکرو AVR

برنامه نويسي و ساخت رابط کيبورد کامپيوتر به ميکرو AVR با CodeVisionAvr با ارتباط مستقيم با پروتکل کيبورد .

در اين پروژه از ATMEGA8 به عنوان نمونه استفاده شده كه به راحتي با تغييرات در رجيسترها ميتواند براي ديگر AVR ها نيز استفاده شود . دقت كنيد كه براي اين كار وقفه خارجي صفر مورد استفاده قرار گرفته است .اميدوارم از اين پروژه كهدوست عزيزم آقا بهزاد معروف به Khazma نوشته مورد توجه شما قرار بگيره.


دانلود

منبع : http://e85.parsiblog.com/
+ نوشته شده در  چهارشنبه پانزدهم اسفند 1386ساعت 12:21  توسط Students  | 


آموزش نرم افزار  Bascom AVR به صورت PDF


 
نرم افزار BasCom يک نرم افزار جامع براي پروگرام کردن ميکرو به کار مي رود که با زبان برنامه نويسي نزديک به QBASIC کار مي کند .

اينPDF آموزش BasCom براي سري AVR مي باشد که اميدوارم از خواندن آن لذت ببريد .

420 صفحه به زبان انگليسي باحجم 1.04 مگابايت دانلود در ادامه مطلب .

www.e85.ir

حجم فايل: 1.04 مگابايت

دانلود


منبع : http://e85.parsiblog.com/
+ نوشته شده در  چهارشنبه پانزدهم اسفند 1386ساعت 12:16  توسط Students  | 

نحوه خواندن عدد از پورت در avr

در این جا برای شما دوستان قسمتی از برنامه نویسی avr  را آموزش می دهیم که در آن نحوه خواندن عدد از پورت ورودی میباشد. گاهی اوقات لازم است که در میکرو کنترلر ها مقدار را از پورت ورودی بخوانیداین برنامه طریقه خواندن مقدار را از پورت ورودی را نشان می دهد.

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

مثلا Portb  میکرو کنترلر avr از 8 عدد پین که هر کدام دارای مقدار مشخص می باشد . برای تفهیم این جمله ادامه مطالب را دنبال نمایید.

(جهت خواندن ادامه متن بر روی ادامه مطلب کلیک نمائید)


ادامه مطلب
+ نوشته شده در  پنجشنبه یازدهم بهمن 1386ساعت 19:45  توسط Students  | 

رگولاتور ولتاژ ها پایین

رگولاتور های ولتاژ امروز جز یکی از قطعات اصلی هر مدار الکترونیکی به حساب می ایند مخصوصا در مداراتی که در ان از آی سی های سری TTL استفاده شده باشند و یا مدارات میکرو کنترلر و یا میکرو پرسسور. اما اغلب رگولاتر های از رنج 5 ولت به بالا میباشد و در صورتی که شما مداری داشته باشید که به ولتاز های پایین تر از 5 ولتاژ نیاز داشته باشد چه باید کرد؟

معمولا با تقسیم دیود و افت ولتاژ دو سر دیود میتوان ولتاژ مورد نظر را ساخت اما اگر به دلایلی ولتاژ ورودی افزایش یافت و دیود ها آسیب ببیند قاعدتا افت ولتاژ دوسر ان ها نیز تغییر خواهد کرد. اما میتوان به کمک آی سی ams1117 ولتاژهای رگوله شده 1.5و 1.8 و2.5 و 2.85 و 3.3و 5 ولت را داشت.البته این نوع رگولاتور قادر به ارئه جریانی حدود 800 میلی امپر میباشد

(جهت خواندن ادامه مطلب بر روی ادامه مطلب کلیک نمائید)


ادامه مطلب
+ نوشته شده در  پنجشنبه یازدهم بهمن 1386ساعت 19:38  توسط Students  | 

ای سی  L298  برای درایو موتورهای  DC   در ساخت روبات ها مانند روبات مسیر یاب استفاده می شود .در روبات های مسیر یاب از موتورهای DC  معمولی و در بعضی موارد از موتو رهای پله ای برای حرکت روبات استفاده می کنند.

از این جا به بعد در مورد روباتهای DC  که با موتور معمولی حرکت می کنند توضیح داده می شود.در این رباتها اطلاعات گرفته شده از دیود های مادون قرمز به میکرو ارسال می شود و سپس بعد از پردازش اطلاعات توسط میکرو به موتورهای  DC  فرمان حرکت داده می شود. میکرو ها می توانند جریان های کم در حدود 20 میلی امپر را به خروجی بدهند که این جریان برای راه اندازی یک موتور کافی نیست .

ساده ترین مدار برای راه اندازی موتور توسط میکرو در زیر کشیده شده است.

(برای خواندن ادامه مطلب بر روی ادامه کلیک نمایید)


ادامه مطلب
+ نوشته شده در  پنجشنبه یازدهم بهمن 1386ساعت 19:29  توسط Students  | 

مدارات avr: stk200/300


در دنیای امروز میکرو کنترلر ها و میکرو پرسسورها در ساخت دستگاه ها نقش اصلی را ایفا میکنند اما کسانی که برنامه نویسی این میکرو کنترلرها را یاد میگیرند همیشه یه مشکل و دغدغه اصلی دارند و آن این که چه طور برنامه ای را که نوشتند را برروی آی سی پروگرم کنند.
میکروکنترلر های avr که در زمان اندکی طرفدارن زیادی نیز پیدا کرده برای پروگرم کردن با حداقل هزینه میتوان پروگرم برای آن ساخت و برنامه را برروی آی سی های ان پروگرم کرد. شاید تا به حال برای خرید پروگرم به مغازه ای مراجعه کرده باشید وبا پروگرم های از 10 هزارتومان تا 200 هزار توامان مواجه شده باشید اما پروگرمی که نقشه آن درادامه مطلب وجودارد باهزینه کمتر از 1500 تومان ساخته میشه و کارایی بالایی هم دارد.
من خودم شخصا با این پروگرم کارمیکنم و تا حالا هیچ گونه مشکلی نداشته و به خوبی کارکرده و از آن هم خیلی خیلی راضی هستم.
منبع : یزد کیت دات کام
(برای خواندن ادامه متن به ادامه مطلب مراجعه کنید)
 

ادامه مطلب
+ نوشته شده در  پنجشنبه یازدهم بهمن 1386ساعت 19:14  توسط Students  | 

تقویت كننده های عملیاتی

تقویت كننده های عملیاتی، تقویت كننده های كوپل مستقیم بوده، كه دارای گین (Gian) خیلی زیادی می باشند. كه مقدار این گین را با كمك مقاومت فیدبك ( مقاومتی كه بخشی از ولتاژ و یا جریان خروجی را به ورودی منتقل می كند) می توان كنترل نمود. این تقویت كننده ها اكثراً در مدارات خطی بكار می روند و اغلب در مدارات غیرخطی نیز از آنها استفاده می شود.

روی ادامه مطلب کلیک کنید

منبع:http://www.lahijancity.com


ادامه مطلب
+ نوشته شده در  دوشنبه هفدهم دی 1386ساعت 14:40  توسط Students  | 

شناسایی از طریق فرکانس رادیویی (RFID)

اصولاً به هر سيستمی كه قادر به خواندن و تشخيص اطلاعات افراد يا كالاها باشد سيستم شناسايی يا Identification System گفته ميشود.
بطور كلی شناسايی خودكار و نگهداری داده ها (AIDC) روشی است كه طی آن تجهيزات خواه سخت افزای يا نرم افزاری قادر به خواندن و تشخيص داده ها بدون كمك گرفتن از يك فرد هستند.
باركدها، كدهای دو بعدی، سيستم های انگشت نگاری ، سيستم شناسايی با استفاده از فركانس راديويی، سيستم شناسايی با استفاده از قرنيه چشم و صدا و ... از جمله اين راهكارها در اين مقال ميباشند. يكی از جديد ترين مباحث مورد توجه دانشمندان جهت شناسايی افراد يا كالاها استفاده از سيستم شناسايی با استفاده از فركانس راديويی يا RFID ميباشد.
RFID كه مخفف سه واژه Radio Frequency Identification است؛ امروزه توسط فروشگاه های زنجيره ای بزرگی چون "وال مارت" و "مک دونالد" و نيز سازمانهای مهمی چون "وزارت دفاع ايالت متحده آمريكا" استفاده شده و امتحان خود را به خوبی پس داده است.

RFID چيست ؟

منبع:روزنامه کائنات


ادامه مطلب
+ نوشته شده در  دوشنبه هفدهم دی 1386ساعت 14:7  توسط Students  | 

اسمبلی برای اتمل

Data sheet 74ls244

دیتا شیت رگولاتور های سری 78

دیتاشیت 4016(مبدل آنالوگ به دیجیتال)

دیتا شیت ULN2004

دیتا شیت میکروکنترلرATMEGA16

کمی درباره ی ربات های جنگنده

قوانین مسابقات رباتیک مشهد

قوانین مسابقات رباتیک قزوین

 

L298

میکرو کنترلر 8051-فارسی

سنسور و انواع آن

دیتا شیتPIC16F84

آموزش AVR

 

 

AT89s51.pdf

AVR-tutorial.pdf

cd4016b.pdf

L298.pdf

LM324.pdf

Mashhad.pdf

Microcontroller8051-soft.ppt

PIC16f84.pdf

sensor.pdf

Qazvin.pdf

 

 

دیتا شیت AT89s51

آموزش AVR

دیتا شیت 4016(یه آی سی انالوگ به دیجیتال)

دیتا شیت LM324

میکروکنترلر 8051-فارسی

دیتا شیت PIC16F84

مجموعه قوانین مسابقات دانش آموزی-دانشجویی مشهد

مجموعه قوانین مسابقات رباتیک دانشجویی قزوین!

 

 

مثال هایی با اسمبلی

 

آموزش:میکرو کنترلر 8051

دیتا شیت:LM324

+ نوشته شده در  دوشنبه بیست و نهم خرداد 1385ساعت 18:2  توسط Students  | 

 

 

حافظه ROM

 حافظه ROM يک نوع مدار مجتمع (IC) است  که در زمان ساخت داده هائی در آن ذخيره می گردد. اين نوع از حافظه ها علاوه بر استفاده در کامپيوترهای شخصی در ساير دستگاههای الکترونيکی نيز بخدمت گرفته می شوند. حافظه های ROM از لحاظ تکنولوژی استفاده شده، دارای انواع  زير می باشند:

·          ROM

·         PROM

·         EPROM

·         EEPROM

·         Flash Memory

 هر يک از مدل های فوق دارای ويژگی های منحصربفرد خود  می باشند . حافظه های فوق در موارد زيردارای ويژگی مشابه می باشند:

داده های ذخيره شده در اين نوع تراشه ها " غير فرار " بوده و پس از خاموش شدن منبع تامين انرژی اطلاعات خود را از دست نمی دهند.
داده های ذخيره شده در اين نوع از حافظه ها غير قابل تغيير بوده و يا اعمال تغييرات در آنها مستلزم انجام عمليات خاصی است.

 مبانی حافظه های  ROM

حافظه ROM از تراشه هائی شامل شبکه ای از سطر و ستون تشکيل شده است ( نظير حافظه RAM) . هر سطر وستون در يک نقظه يکديگر را قطع می نمايند. تراشه های ROM دارای تفاوت  اساسی با تراشه های  RAM می باشند. حافظه RAM از " ترانزيستور " بمنظور فعال و يا غيرفعال نمودن دستيابی به يک " خازن " در نقاط  برخورد سطر و ستون ، استفاده می نمايند.در صورتيکه تراشه های  ROM از يک " ديود" (Diode) استفاده می نمايد. در صورتيکه خطوط مربوطه "يک"  باشند برای اتصال از ديود استفاده شده و اگر مقدار "صفر"  باشد خطوط به يکديگر متصل نخواهند شد. ديود، صرفا"  امکان حرکت " جريان " را در يک جهت ايجاد کرده و دارای يک نفطه آستانه خاص است . اين نقطه اصطلاحا" (Forward breakover) ناميده می شود. نقطه فوق ميزان جريان مورد نياز برای عبور توسط ديود را مشخص می کند. در تراشه ای مبتنی بر سيليکون نظير پردازنده ها و حافظه ، ولتاژ Forward breakover تقريبا" معادل  شش دهم ولت است .با بهره گيری از ويژگی منحصر بفرد ديود،  يک تراشه ROM قادر به ارسال يک شارژ بالاتر از Forward breakover  و پايين تر از ستون متناسب با سطر انتخابی  ground شده  در يک سلول خاص است .در صورتيکه  ديود در سلول مورد نظر ارائه گردد،  شارژ هدايت  شده (از طريق Ground ) و با توجه به سيستم باينری ( صفر و يک )، سلول يک خوانده می شود ( مقدار آن 1 خواهد بود) در صورتيکه مقدار سلول صفر باشد در محل برخورد سطر و ستون ديودی وجود نداشته و شارژ در ستون ، به سطر مورد نظر منتقل نخواهد شد.

همانطور که اشاره گرديد،  تراشه ROM ، مستلزم برنامه نويسی وذخيره داده در زمان ساخت است . يک تراشه استاندارد ROM را نمی توان برنامه ريزی مجدد  و اطلاعات جديدی را در آن نوشت . در صورتيکه داده ها درست نبوده و يا مستلزم تغيير و يا ويرايش باشند، می بايست تراشه را دور انداخت و مجددا" از ابتدا عمليات برنامه ريزی يک تراشه جديد را انجام داد.فرآيند  ايجاد تمپليت اوليه برای تراشه های ROM  دشوار است .اما مزيت حافظه  ROM بر برخی معايب آن غلبه می نمايد. زمانيکه تمپليت تکميل گرديد تراشه آماده شده، می تواند بصورت انبوه و با قيمت ارزان به فروش رسد.اين نوع از حافظه ها از برق ناچيزی استفاده کرده  ، قابل اعتماد بوده  و در رابطه با اغلب دستگاههای الکترونيکی کوچک، شامل تمامی دستورالعمل های لازم بمنظور کنترل دستگاه مورد نظر خواهند بود.استفاده از اين نوع تراشه ها در برخی از اسباب بازيها برای نواختن موسيقی، آواز و ... متداول است .

حافظه PROM

توليد تراشه های ROM مستلزم صرف وقت و هزينه بالائی است .بدين منظور اغلب توليد کنندگان ، نوع خاصی از اين نوع حافظه ها را که PROM )Programmable Read-Only Memory) ناميده می شوند ، توليد می کنند.اين نوع از تراشه ها با محتويات خالی با قيمت مناسب عرضه شده و می تواند توسط هر شخص با استفاده از دستگاههای خاصی که Programmer ناميده می شوند ، برنامه ريزی گردند. ساختار اين نوع از تراشه ها مشابه ROM بوده با اين تفاوت که در محل برخورد هر سطر و ستون از يک فيوز( برای اتصال  به يکديگر) استفاده می گردد. يک شارژ که از طريق يک ستون ارسال می گردد از طريق فيوز به يک سلول پاس داده شده و بدين ترتيب به يک سطر Grounded که نماينگر مقدار "يک" است ، ارسال خواهد شد. با توجه به اينکه تمام سلول ها دارای يک فيوز می باشند، درحالت اوليه ( خالی )، يک تراشه PROM دارای مقدار اوليه " يک" است . بمنظور تغيير مقدار يک سلول به صفر، از يک Programmer برای ارسال يک جريان خاص به سلول مورد نظر، استفاده می گردد.ولتاژ بالا، باعث قطع  اتصال بين سطر و ستون (سوختن فيوز) خواهد کرد. فرآيند فوق را " Burning the PROM " می گويند. حافظه های PROM صرفا" يک بار قابل برنامه ريزی هستند. حافظه های فوق نسبت به RAM شکننده تر بوده  و يک جريان حاصل  از الکتريسيته ساکن، می تواند باعث سوخته شدن فيور در تراشه شده و مقدار يک را به صفر تغيير نمايد. از طرف ديگر ( مزايا ) حافظه ای PROM دارای قيمت مناسب بوده و برای نمونه سازی داده برای يک ROM ، قبل از برنامه ريزی نهائی کارآئی  مطلوبی دارند.

حافظه EPROM

 استفاده کاربردی از  حافظه های ROM و PROM با توجه به نياز به اعمال تغييرات در آنها قابل تامل است ( ضرورت اعمال تغييرات و اصلاحات در اين نوع حافظه ها می تواند به صرف هزينه بالائی منجر گردد)حافظه هایEPROM)Erasable programmable read-only memory) پاسخی مناسب به نياز های مطح شده است ( نياز به اعمال تغييرات )  تراشه های EPROM را می توان چندين مرتبه باز نويسی کرد. پاک نمودن محتويات يک تراشه EPROM مشتلزم استفاده از دستگاه خاصی است که باعث ساطع کردن  يک فرکانس خاص ماوراء بنفش  باشد.. پيکربندی اين نوع از حافظه ها مستلزم استفاده  از يک Programmer  از نوع EPROM است که يک ولتاژ را در يک سطح خاص ارائه نمايند ( با توجه به نوع EPROM استفاده شده ) اين نوع حافظه ها ، نيز دارای شبکه ای مشتمل از سطر و ستون می باشند. در يک EPROM سلول موجود در نقظه برخورد  سطر و ستون دارای دو ترانزيستور است .ترانزيستورهای فوق توسط يک لايه نازک اکسيد از يکديگر جدا شده اند. يکی از ترانزيستورها Floating Gate و ديگری Control Gate ناميده می شود. Floating gate صرفا" از طريق Control gate به سطر مرتبط است. ماداميکه لينک برقرارباشد سلول دارای مقدار يک خواهد بود. بمنظور تغيير مقدار فوق به صفر به فرآيندی با نام Fowler-Nordheim tunneling نياز خواهد بود .Tunneling بمنظور تغيير محل الکترون های Floating gate استفاده می گردد.يک شارژ الکتريکی  بين 10 تا 13 ولت به floating gate داده  می شود.شارژ از ستون شروع و پس از ورود به floating gate در ground تخليه خواهد گرديد. شارژ فوق باعث می گردد که ترانزيستور floating gate مشابه يک "پخش کننده الکترون  " رفتار نمايد . الکترون های مازاد فشرده شده و در سمت ديگر لايه اکسيد به دام افتاد  و يک شارژ منفی را باعث می گردند. الکترون های شارژ شده منفی ، بعنوان يک صفحه عايق  بين control gate و floating gate  رفتار می نمايند.دستگاه خاصی با نام Cell sensor سطح شارژ پاس داده شده به floating gate را مونيتور خواهد کرد. در صورتيکه جريان گيت بيشتر از 50 درصد شارژ باشد  در اينصورت مقدار "يک" را دارا خواهد بود.زمانيکه شارژ پاس داده شده از 50 درصد آستانه عدول نموده مقدار به "صفر" تغيير پيدا خواهد کرد.يک تراشه EPROM دارای گيت هائی است که تمام آنها باز بوده و هر سلول آن مقدار يک را دارا است.

بمنظور باز نويسی يک EPROM می بايست در ابتدا محتويات آن پاک گردد. برای پاک نمودن می بايست يک سطح از انرژی زياد را بمنظور شکستن الکترون های منفی Floating gate استفاده کرد.در يک EPROM استاندارد ،عمليات فوق از طريق اشعه ماوراء بنفش با فرکانس 253/7 انحام می گردد.فرآيند حذف در EPROM انتخابی نبوده و تمام محتويات آن حذف خواهد شد. برای حذف يک EPROM می بايست آن را از محلی که نصب شده است جدا کرده و به مدت چند دقيقه زير  اشعه ماوراء بنفش دستگاه پاک کننده EPROM قرار داد.

حافظه های EEPROM و Flash Memory

با اينکه حافظه ای EPROM  يک موفقيت مناسب نسبت به حافظه های PROM از بعد استفاده مجدد می باشند ولی کماکن نيازمند بکارگيری تجهيزات خاص و دنبال نمودن فرآيندهای خسته کننده بمنظور حذف و نصب مجدد آنان در هر زمانی است که به يک شارژ نياز باشد. در ضمن، فرآيند اعمال تغييرات در يک حافظه EPROM نمی تواند همزمان با نياز و بصورت تصاعدی صورت پذيرد و در ابتدا می بايست تمام محتويات را پاک نمود.حافظه های Electrically Erasable Programmable Read Only Memory)EEPROM)  پاسخی مناسب به نيازهای موجود است . در حافظه های EEPROM تسهيلات زير ارائه می گردد:

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

در عوض استفاده از  اشعه ماوراء بنفش، می توان الکترون های هر سلول را با استفاده از يک برنامه  محلی و بکمک  يک ميدان الکتريکی  به وضعيت طبيعی برگرداند. عمليات فوق باعث حذف سلول های مورد نظر شده و می توان مجددا" آنها را بازنويسی نمود.تراشه های فوق در هر لحظه يک بايت را تغيير خواهند داد.فرآيند  اعمال تغييرات در تراشه های فوق  کند بوده و در مواردی که می بايست اطلاعات با سرعت تغيير يابند  ، سرعت لازم را نداشته  و دارای چالش های خاص خود می باشند.

توليدکنندگان با ارائه Flash Memory که يک نوع خاص از حافظه های EEPROM می باشد به محدوديت اشاره شده پاسخ لازم را  داده اند.در حافظه Falsh از مدارات از قبل پيش بينی شده در زمان طراحی ، بمنظور حذف  استفاده می گردد (  بکمک ايجاد يک ميدان الکتريکی).  در اين حالت می توان تمام  و يا بخش های خاصی از تراشه را که " بلاک " ناميده می شوند، را حذف کرد.اين نوع حافظه نسبت به حافظه های EEPROM سريعتر است ، چون داده ها  از طريق بلاک هائی  که معمولا" 512 بايت می باشند ( به جای يک بايت در هر لحظه ) نوشته می گردند.

 

 

http://elecom.blogfa.com  برگرفته از

 

 

+ نوشته شده در  پنجشنبه هجدهم خرداد 1385ساعت 20:30  توسط Students  | 

زبانهای سطح بالا  یا همان HLL بسرعت در حال تبدیل شدن به زبان برنامه نویسی استاندارد

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

  Basic و C بیشترین استفاده را در برنامه نویسی میکروها دارند ولی در اکثر کاربردها کدهای

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

  معماری جهت کاهش کد به مقدار مینیمم را درک کرد که نتیجه این تحول میکروکنترلرهای AVR

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

  توسط معماری RISC انجام میدهند و از 32 رجیستر همه منظوره استفاده میکنند که باعث

  شده 4 تا 12 بار سریعتر از میکروهای مورد استفاده کنونی باشند .

 تکنولوژی حافظه های کم مصرف غیر فرار شرکت ATMEL برای برنامه ریزی AVR ها

              مورد استفاده قرار گرفته است در نتیجه حافظه های FLASH و EEPROM در داخل مدار

              قابل برنامه ریزی (ISP) هستند . میکروکنترلرهای اولیه AVR دارای 1, 2 و 8 کیلوبایت حافظه

              FLASH و بصورت کلمات 16 بیتی سازماندهی شده بودند .

            AVR ها بعنوان میکروهای RISC با دستورات فراوان طراحی شده اند که باعث میشود حجم کد

             تولیدشده کم و سرعت بالاتری بدست آید .

 

 

 

 

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

     برای شروع برنامه نویسی با میکرو لازم است با دستورات پر کاربرد آن آشنا شویم . البته یک مرجع سریع دستورات زبان برنامه نویسی جزء ابزار های ضروری برای یک برنامه نویس است.اصولا برای یادگیری هر زبان برنامه نویسی علاوه بر آشنایی با دستورات زبان ، تمرین و نوشتن برنامه های گوناگون بسیار لازم است .

برای شروع برنامه نویسی با میکرو لازم است با دستورات پر کاربرد آن آشنا شویم . البته یک مرجع سریع دستورات زبان برنامه نویسی جزء ابزار های ضروری برای یک برنامه نویس است.اصولا برای یادگیری هر زبان برنامه نویسی علاوه بر آشنایی با دستورات زبان ، تمرین و نوشتن برنامه های گوناگون بسیار لازم است تا برنامه نویس ساختار صحیح دستورات برایش ملکه ذهن شود و از وقت بسیار ارزشمندی که باید به جای اینکه صرف نوشتن کد های جدیدتر شود صرف عمل طاقت فرصا و وقت گیر Debugging می شود کاست .پس بعد از آشنایی با هر دستور العملی انواع مودهای آدرس دهی آن را مورد بررسی قرار دهید و مثال های کوتاه اما پر ارزش با محتوا را تمرین کنید.
دستورالعمل های 8051 را بر اساس نوع عملکرد می توان به پنج گروه تقسیم کرد.

• دستورالعمل های محاسباتی
• دستورالعمل های منطقی
• دستور العمل های انتقال داده
• دستور العمل های بولی
• دستور العمل های انشعاب برنامه

نخست دستور العمل های محاسباتی :

این مجموعه دستورالعمل ها شامل دستورالعمل های جمع و تفریق و کاهش وافزایش و ضرب و تقسیم 8 بیتی می باشند.
دستور العمل
ADD برای جمع کردن یک مقدار 8 بیتی با ثبات A مورد استفاده قرار می گیرد . عملوند اول این دستورالعمل ثبات A (انباره) می باشد . این دستورالعمل در 4 مود آدرس دهی مورد استفاده قرار می گیرد.
مودهای آدرس دهی را در مقاله قبلی بررسی کردیم حال خودتان باید بتوانید این مود های آدرس دهی را از همدیگر با استفاده از مشخصه های هر مود آدرس دهی از همدیگر تفکیک کنید.

ADD A,Rn
ADD A,direct
ADD A,@Rn
ADD A,#data



در دستورالعمل های بالا عملوند های دوم (
Rn,@Rn,#data,direct) سمبل هایی هستند که نشان دهنده نوع آدرس دهی می باشند .منظور از Rn هر کدام از ثبات های بانک ثبات است ،منظور از data هر عدد ثابت 8 بیتی می تواند باشدمنظور از diret عدد یا نامی است که نشان دهنده آدرس مکانی از حافظه باشد.
مثال:

ADD A,R0
ADD
A,090h
ADD A,@R0
ADD A,#10



دستور اول محتویات
R0 را با ثبات A جمع و دوباره در A قرار می دهد دستور دوم محتویات آدرس90h حافظه (پورت یک) را با A جمع می کند و دوباره در A قرار می دهد .دستور سوم محتویات جایی که R0 به آن اشاره می کند را با A جمع کرده و در A قرار می دهد .و دستور چهارم آنچه را که در A قرار دارد با عدد 10 دهدهی جمع می کندو نتیجه باز هم در A قرار می گیرد.
حتما متوجه شده اید که نوع آدرس دهی در دستور اول ثبات ، دستور دوم مستقیم ، دستور سوم غیر مستقیم ، و در دستور چهارم فوری است.


دستور دیگری برای جمع وجود دارد با سمبل
ADC که مخفف ADD with Carry می باشد و به معنای جمع با رقم نقلی است عملکرد آن بدین صورت است که ابتدا مقدار بیت C (نقلی) با ثبات A جمع شده و سپسعملوند دوم هم به ثبات A اضافه می شود . این دستور هم مانند دستور ADD در چهار مود آدرس دهی بالا مورد استفاده قرار می گیرد.

دستورالعمل تقسیم 8 بیتی :

DIV A



این دستور العمل مقدار موجود در ثبات
A را بر مقدار موجود در ثبات B تقسیم می کند . خارج قسمت در ثبات A و باقیمانده عمل تقسیم در ثبات B ذخیره خواهد شد.
فرض کنید که ثبات
A حاوی مقدار 11 است و ثبات B حاوی مقدار 4 باشد پس از اجرای عمل تقسیم مقدار 2 در ثبات A و مقدار 3 در ثبات B ذخیره خواهد شد.

دستور العمل افزایش :



یک دستور العمل تک عملوندی است این دستور عملوند خود را یک واحد افزایش می دهد .نکته ای که در مورداین دستور العمل باید به آن توجه کرد اینست که هیچ پرچمی بعد از اجرای دستور تغییر نخواهد کرد برای مثال اگر ثبات
A حاوی مقدار #offh باشد بعد از اجرای این دستور مقدار A, 00 خواهد شد اما پرچم تغییر نخواهد کرد.
این دستور العمل در سه مود آدرس دهی ثبات ، مستقیم و غیر مستقیم عمل می کند.


INC A
INC direct
INC Rn
INC @Ri
INC DPTR



دستورالعمل کاهش:

این دستور العمل یک عملوند دارد .پس از اجرای دستور از محتوای عملوند یک واحد کم می شود.

DEC A
DEC Rn
DEC direct
DEC @Rn



توجه :
دستور
DEC DPTR وجود ندارد و باید برای کاهش DPTR دو ثبات DPLو DPH را جداگانه کاهش دهیم .

اگر ثبات
A حاوی مقدار 10 باشد پس از اجرای DEC A ثبات A حاوی مقدار 9 خواهد بود .

دستور العمل ضرب :


MUL AB



این دستور العمل محتوای ثبات
A را در ثبات B ضرب می کند نتیجه ضرب بدین گونه ذخیره می شود .بایت پایین حاصلضرب در ثبات A و بایت بالای حاصلضرب در ثبات B ذخیره می شود.

دستور العمل تفریق:

دستور
SUBB برای ع تفریق یک مقدار 8 بیتی از ثبات A مورد استفاده قرار می گیرد.این دستور مخفف(Sub with Barrow) است و عملوند دوم را به اضافه ی Carry از ثبات A کم می کند اگر در جریان تفریق از بیت هشتم نیاز به رقم قرضی باشد Carry یک می شود و در غیر اینصورت صفر می شود.در زیر مود های آدرس دهی عمل تفریق آمده اند .

SUBB A,Rn
SUBB A, direct
SUBB A, @Rn
SUBB A,#data



مجموعه دستورالعمل های منطقی :

دستور العمل های منطقی بر روی تک تک بیت ها اعمال منطقی
ANDو OR وXOR را انجام می دهند دستورات چرخش و شیفت بیتی هم در زمره این دستورات هستند.
در
AND کردن ، نتیجه دو بیت زمانی یک است که هر دو بیت یک باشند.در OR کردن دو بیت نتیجه دو بیت زمانی صفر است که هر دو بیت صفر باشند در XOR کردن (یای انحصاری ) نتیجه هنگامی صفر است که هر دو بیت یا صفر باشند یا یک.
XOR برای مکمل کردن بیت ها هم به کار می رود .نتیجه XOR یک بیت با بیت 1 مکمل آن خواهد بود و نتیجه XOR یک بیت با بیت 0 خود آن بیت را نتیجه خواهد داد. این دستورات برای مکمل کردن بیتهای مشخصی از یک بایت حافظه ، که بیت آدرس پذیر نیستند مفیداست.
دستور اسمبلی که برای
And کردن مورداستفاده قرار می گیرد ANL ( And Logic) است.

ANL A,direct
ANL A,@Ri
ANL A,Rn
ANL A,direct
ANL A,#data
ANL direct,A
ANL direct,#data
ANL c, bit



دستور آخر یک دستور بیتی است یعنی بر روی یک بیت به تنهایی عمل می کند بقیه دستورات دستورات بایتی هستند.
مثال:
فرض کنید که پورت یک حاوی مقدار #01001111
b است و همچنین در ثبات A هم مقدار باینری #00001010b را داشته باشیم
پس از اجرای دستور العمل
ANL A,P1 نتیجه به صورت زیر خواهد بود :

01001111
AND
00001010
--------------
00001010

و این مقدار در ثبات A قرار خواهد گرفت .

 

 

 

ميكروكنترلرهاي خانواده PIC از معماري هاردوارد استفاده ميكنند . اين بدان معنا است كه كل حافظه به  دو قسمت تقسيم شده است  . كه عبارتند از : حافظه داده و حافظه برنامه .

 

مزيت اين معماري آن است كه ميتوان به هر دو بخش حافظه در يك دستورالعمل دسترسي داشت  .

 

اغلب PIC  ها داراي سه بلاك حافظه داخلي ميباشند :

 

 

۱_ Data memory  : كه اين حافظه به Bank0 و Bank1 و ... تقسيم ميشوند .هر بانك شامل حافظه

 

RAM  معمولي (general purpose register) و ريجيستر هاي مخصوص (status,intcon,option,…)

 

مي باشد.

 

2_ Eeprom memory  : يكي از تفاوت هاي اصلي ميكروهاي گذشته مثل سري 8051 با PIC و AVR  ،

 

 همين حافظه ميباشد. اين حافظه تقريبا بينابين RAM  و ROM   از نظر كاربرد ميباشد . اين  حاظه به

 

صورتي است كه ميتوان در حين برنامه نويسي ، اطلاعات را در آن ذخيره يا پاك  كرد (RAM) واطلاعات آن

 

 در صورت قطعي برق نيز پاك نمي شود (ROM) . نسيت به  RAM  و ROM  داراي سرعت به مراتب

 

 پايين تر ميباشد .

 

3_Program memory  : برنامه اي كه توسط كاربر نوشته ميشود . در اين حافظه LOAD ميشود . به

 

عنوان مثال PIC16F877 (40 پين) داراي پروگرام كانتر 13 بيتي براي آدرس دهي كردن Flash program

 

memory به حجم (8k*14bit) ميباشد .

 

PIC ها از لحاظ نوع Program memory  به 4 دسته تقسيم ميشوند .

 

1) Flash Program Memory

 

مزيت اين گونه PIC ها سرعت نسبتا بالاي خواندن اطلاعات از ROM و درنتيجه سرعت بالاتر اجراي

 

عمليات ميباشد . حافظه هاي فلش موجب گرديده تا سرعت اجراي برنامه از 12 كلاك در 8051 به 4 كلاك

 

 در PIC و 1 كلاك در AVR كاهش يابد .

 

خانواده هايي كه نام IC داراي F باشد داراي اين گونه حافظه ميباشند (مانند 16F84 , 16F877.....) .

 

2) Eprom program memory

 

خانواده هايي كه نام IC داراي C يا CE باشد.(16C84)

 

3)Rom Program Memory

 

خانواده هايي كه نام IC  داراي CR باشد (16CR84)

 

4) Eeprom Program Memory

 

همچنين بعضي از PIC ها نيز داراي رنج ولتاژي گسترده ميباشند كه داراي مشخصه L

 

 در نام  IC  مي باشد.(PIC16LF84)

PIC16F84 

 

در اين قسمت به توضيح مشخصات ميكروكنترلر PIC16F84 ميپردازيم

 

اما قبل از آن به data sheet این میکرو  مراجعه کنید و  ویژگیهای  آن را بخوانید .

 

(روی لینک زیر کلیک کنید )

 

Data sheet : 16F84A device

اطلاعاتي كه Data Sheet دراختیار ما قرار ميدهد :

در ابتدا PIC هاي از اين خانواده كه داراي ويژگي هاي يكسان ميباشند معرفي شده است .

 

درقسمت بعد مشخصه هاي CPU كه در اين ميكرو از نوع RISC  (Reduce Instruction Set Computer )ميباشد گفته شده:

 

 

داراي 32 دستور العمل يك كلمه اي ميباشد (تعداد دستورات نسبت به ميكرو هاي ديگر به مراتب كمتر)

 

همه دستورالعمل ها در يك سيكل ( 4 Clock) اجرا ميشود .(سرعت آن  1.5 برابر 8051 با كريستال

 

 يكسان )

 

در قسمت بعد حداكثر فركانس  كاري را 10MHz مشخص نموده است .

 

طبق جدول تراشه PIC16F84  داراي 1k  كلمه (word) ( عرض هر كلمه برابر 14bit ) حافظه برنامه

 

Flash   ، 68 bytes حافظه داده (RAM) و 64 bytes حافظه Eeprom ميباشد . (در مورد اين حافظه ها

 

 ميتوانيد به قسمت قبل سر بزنيد ) .

 

پهناي هر دستورالعمل (flash program memory)  14 بيت و پهناي داده (data memory)  8 بيت

 

 ميباشد.

 

15*8 bits به ثبات داخلي ميكرو براي انجام عمليات هاي خاص    (SFR)مانند option و Statuse و

 TMR0 و .....  تعبيه گرديده است و 8*8 bits  جهت حافظه پشته (stack)  (در قسمت بعد در مورد اين   گونه حافظه ها توضيح داده خواهد شد ) .

 داراي 4 منبع وقفه ميباشد (در اين مورد نيز در قسمت وقفه كامل توضيح داده خواهد شد ):

 قابليت 1000 بار خواندن و نوشتن حافظه flash

 قابليت 10.000.000  بار خواندن و نوشتن حافظه Eeprom

 قابليت 40 سال نگهداري  اطلاعات Eeprom

مشخصات جانبي :

داراي 13 پايه ورودي خروجي (دو درگاه ورودي- خروجي به نام A با 5 پايه و B با 8 پايه ) ، هر پين ورودي

  خروجي داراي مدار Latch ميباشد ، يعني هر بيت اطلاعات كه از طريق ميكرو به عنوان خروجي به پورت

 

 ريخته ميشود روي پورت باقي ميماند تا وقتي كه اطلاعات جديد روي آن ريخته شود . همچنين اگر هر  بيت اطلاعات به عنوان ورودي روي پورت ها ريخته شود تا وقتي اطلاعات جديد وارد نگردد  تغيير نميكند .

 

اغلب PIC ها در پورت B داراي pull up داخلي ضعيف ميباشند ( اين بدان معنا هست كه پايه ورودي  با  يك مقاومت پر اهم به Vcc  متصل شده ) . بيت هفتم از رجيستر OPTION_REG مربوط به pull up  ميباشد . اگر اين بيت صفر باشد  pull up فعال ميشود و اگر يك باشد pull up غير فعال ميگردد. وقتي  پايه اي به عنوان خروجي تعريف گردد pull up آن خود به خود غير فعال ميشود .

بيشترين جريان كه هر پايه ميتواند بدهد 20 mA است كه ميتواند يك LED را مستقيما روشن نمايد.

 بيشترين جرياني  كه ميتواند دريافت كند 25 mA ميباشد .

 تايمر/كانتر 8 بيت.

 در قسمت بعد از خصوصيات برتر اين ميكرو كنترلر توضيح داده شده كه مهمترين آن محدوده  ولتاژ كار  ميكرو را بين 2تا  6 ولت مشخص نموده است و توان مصرفي ميكرو را در حالت هاي مختلف بيان نموده  كه به شرح زير است :

با ولتاژ 5 ولت و فركانس 4MHz  ، 2 ميلي آمپر

 با ولتاژ 2 ولت با فركانس 32kHz ، 15 ميكرو آمپر

 و در حالت Standby و ولتاژ 2 ولت ، 1 ميكرو آمپر

 اين اطلاعاتي بود كه از صفحه اول data sheet ميكرو استخراج شده است

پايه هاي PIC و رجيستر هاي آن 

 

 

همانگونه كه ميدانيد ميكرو كنترلر يك تراشه ايست قابل برنامه ريزي كه تنها با تغيير دادن (صفر و يك  منطقي ) تعدادي پايه ميتواند با عالم خارج و وسايل ديگر ارتباط برقرار كند و وسيله اي  را كنترل كند.

 

  

تعريف : به مجموعه اي از چند پايه كه به رجيستر واحد  اختصاص يافته درگاه يا پورت ميگويند .

 

PIC16F84 داراي 2 درگاه به نامهاي A با 5 پايه و B با 8 پايه ميباشد كه به هر پورت دو رجيستر اختصاص  يافته است . يكي رجيستر TRIS و ديگري رجيستر آدرس پورت ميباشد .Tris  يك رجيستر 8 بيتي است

  

 قابل برنامه ريزي و پيكره بندي پايه هاي I/O  را به عنوان خروجي يا ورودي كنترل ميكند . اگر يك بيت از  اين رجيستر (TRISA/TRISB)  مقدار صفر باينري قرار گرفته باشد پايه متناظر با آن رجيستر در پورت A يا

 

 B به عنوان پايه خروجي خواهد بود و اگر يك باينري قرار گيرد پايه متناظر با آن به عنوان ورودي خواهد   بود . البته به صورت پيش فرض تمام رجيستر يك ميباشد يعني تمام پايه ها به عنوان ورودي تعريف شده   اند . و توصيه ميگردد در هنگام برنامه نويسي نيز دقت نماييد پايه هايي كه احتياجي به آنها نيست  در  همان حالت ورودي باقي بماند .

 

كاربر ميتواند پس از پيكربندي شدن پورت ها (ورودي خروجي شدن پورت ) با استفاده از رجيستر آدرس  پورت ، اطلاعات را در آن پورت بنويسد يا از آن بخواند مثلا اگر بخاهيم RB0 تا RB3 را به عنوان خروجي و  RB4 تا RB7 را به عنوان ورودي تعريف كنيم بايد عدد 11110000  را در رجيستر TRISB قرار دهيم.

 

رجيستر TRISB  در آدرس 86H از حافظه قرار دارد كه PICbasic به صورت خودكار با نوشتن دستور زير اين  رجستر را مقدار رهي ميكند :

 

 

 Tris(port / pin) =

 Example:

 Trisb=%11110000                          B    تغيير دادن كل پايه هاي پورت

 Trisb.5=0                                                   به عنوان خروجي تعريف گرديده    B   پين پنجم از پورت

همچنين در صورتي كه احتياج به تغيير يك پين خاص از پورت داشته باشيم ميتوانيم از دستورات INPUT  و   OUTPUT به صورت زير استفاده كنيم :

 Input pin   or Output pin

 Example :  Output portb.5    ç == è    Trisb.5=0

براي تغيير دادن مقدار منطقي پيني كه به عنوان خروجي تعريف گرديده  ميتوان به صورت زير عمل نمود:

 Portb.5 = 0                      B  صفر كردن پين 5 از پورت

 Portb.0 = 1                      B   يك (منطقي) كردن پين 0 از پورت

يا ميتوان كل پايه هاي پورت را با هم تغيير كرد :

 Portb=%11000001                    پايه هاي 0 و 6 و 7 را يك و باقي پايه ها صفرمنطقي  

تذكر :

دستورات Input و Output مربوط به رجيستر Tris ميباشد . در ضمن با Tris  نميتوان مقدار

 

 منطقي پين را تغيير داد . تنها ميتوان يك پين را به عنوان ورودي يا خروجي مشخص نمود .

 

تنها پيني ميتوان صفر يا يك منطقي كرد كه به عنوان خروجي مشخص گردد .

 

ميتوان مقدار منطقي پيني كه به عنوان ورودي مشخص گرديده نيز به صورت زير خواند :

 Var = port / pin

 Example :   sw=portb.2                  

با اين دستور مقدار منطقي پين 2 از پورت B را در متغير  sw   قرار ميدهد .

 Dipsw = portb

با اين دستور مقدار منطقي كل پين هاي پورت  B را كه به عنوان ورودي تعريف گرديده در متغير Dipsw قرارميدهد

 

آشنایی با میکرو کنترلر 

 میکروکنترلرها یکی از قطعات پرکاربرد الکترونیکی در صنایع گوناگون و مصارف

 

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

 

در واقع یک میکروکنترلر یک CPU مانند CPU ی کامپیوتر شماست همراه با

 

مدارات و قطعاتی که برای کار آن ضروری است به اضافه مداراتی که امکاناتی

 

 را به آن اضافه می کند و اینها همگی در کنار هم و در یک تراشه جمع شده اند.

 

 در واقع میکروکنترلرها برنامه هایی را که برایشان نوشته شده و در داخل آنها

 

قرار داده شده را اجرا می کنند. این برنامه ها دقیقا شبیه برنامه هایی است

 

که در کامپیوترهای شخصی با زبانهایی مثل اسمبلی ، C ، بیسیک یا پاسکال

 نوشته می شوند.

میکرو کنترلرها از ابتدا تا کنون پیشرفتهای زیادی داشته اند و هم اکنون تولید

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

 بعضی از مهمترین تولید کنندگان عباتند از Atmel و Microchip .

همانطور که ذکر شد در داخل میکرو کنترلرها علاوه بر CPU (که عموما دارای

گذرگاه داده 8 بیت است) مدارات دیگری نیز وجود دارند که بسته به تولید

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

ساعت سیستم، حافظه Flash برای ذخیره برنامه، حافظه RAM ،

حافظه EEPROM / Flash  برای داده، شمارنده / تایمر، پورت سریال،

مقایسه کننده آنالوگ، مبدل آنالوگ به دیجیتال / دیجیتال به آنالوگ، PWM ،

 پورت USB و... باشد.

همانطور که گفته شد با وجود این مدارات در داخل تراشه، تقریبا برای کار

میکروکنترلربه هیچ مدار خارجی دیگری نیاز نیست ولی در CPU ها تمامی

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

 و هم عیب . طراحی سخت افزار و سیستم با میکروکنترلر ساده است ولی

 بعنوان مثال نمی توان به آسانی فضای حافظه را افزایش داد.

از نظر پایه ها انواع آن از 8 پایه تا 40 پایه بصورت DIP و بالاتر ساخته می شود.

هر میکروکنترلر دارای یک سری دستورالعمل های نرم افزاری است که می تواند

 آنهارا اجرا کند که به آن مجموعه دستورالعمل گفته می شود. این دستورات از یک

میکرو کنترلر به دیگری تفاوت هایی دارند و در بعضی از مدلها مثل PIC و AT89s51

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

بعنون مثال برنامه ای که برای PIC16F84 نوشته شده بر روی ATMega8535 قابل

اجرا نیست. تفاوت چشمگیر بین دستور العمل های مربوط به سازندگان است.مثلا 

میکروهای سری PIC بابقیه همخوانی ندارد. این سری ساخت شرکت Microchips

بوده و بقیه ساختشرکت Atmel هستند. حال آنکه دستورات و برنامه های At89s51

کاملا به درستی بر روی At89s52 اجرا می شود. همچنین مجموعه دستورالعملها

در سری 89s شبیه سری های tiny و Mega است.

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

 کد ماشین برای آن میکرو تولید شود (نوشتن برنامه و تبدیل آن عموما بر روی یک

 PC صورت می گیرد.). پس از اینکار برنامه ترجمه شده باید به حافظه کدی که در

 درون میکرو است انتقال یابد. این کار توسط یک دستگاه کمکی بنام پروگرامر انجام

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

 برنامه در درون میکرو باقی می ماند و هنگامی که میکرو بر روی بورد دستگاه

 موردنظر نصب شود شروع به اجرای برنامه می کند.در واقع چون سخت افزار

میکروها(مثل تعداد پایه ها و طریقه پروگرام کردن آنها) متفاوت است هر سری

 از آنها پروگرامرمخصوص به خود را می خواهد.

پس برای اینکه بتوانیم از یک سری از میکروکنترلرها استفاده کنیم دو چیز لازم

است: یکی اسمبلر یا کمپایلر و دیگری پروگرامر. امروزه میکروها در دستگاه های

زیادی بکارمی روند مثل ضبط صوت، ماشین لباس شوئی، یخچال، اتومبیل،

رسیورهای ماهواره، شارژرهای باطری، تلوزیون، گوشی موبایل و ... در واقع

هرجا که طراحی مدار درحدی پیچیده باشد که نتوان آنرا با قطعات گسسته

اجرا کرد از میکروها استفاده می شود.

كمپاني هاي توليد كننده خانواده 8051 

بعضي از كمپاني هاي توليد كننده اعضاي خانواده 8051

ميكرو كنترلر 8051 ابتدا به وسيله ي Intel ساخته شد، 

 بعد چندين كمپاني ديگر نيز شروع به توليد آن كردند از جمله:

 

 Philips/signetics ، atmel ،  amd ،  simens ،  matra

 

و dallas semiconductor  بايد متذكر شد كه  Motorola

 

و zilog و technology microchip تعداد زيادي شبعات را براي

 

 اين منظور انتخاب كرده اند تا توليدات خود را به طور گسترده

 

و بموقع دردسترس قرار دهند زيرا توليدشان با ثبات ، در حد

 

كمال و قابليت دسترسي ، از يك مركز است.درسالهاي اخير

 

 آنها نيز شروع به فروش سلول كتابخانه asic از ميكرو كنترلركرده اند.

آموزش میکروکنترلر 8051 (قسمت اول) 

كامپيوتر ها وظيفه ي كنترل رو در ارتباط با دنياي واقعي بر عهده دارند.ميكرو كنترلر ها بر

 

 خلاف ميكرو كامپيوتر ها و ريز پردازنده ها اغلب در چنين كاربرد ها يي يافت ميشن . همون

 

 طور كه ميدونيد ، ميكرو كنترلر، قطعه اي شبيه به ريزپردازنده است. كافيه به داخل كيبورد

 

 نگاه كنيد تا مثالي از يك ميكرو كنترلر رو در يك طراحي با كمترين اجزا ممكن ببينيد.

 

در سال 1971 ، اينتل ،8080 رو به عنوان اولين ريز پردازنده ي موفق  و درسال 1976 ،

 

 8748 رو به عنوان اولين قطعه ي خانواده ي ميكرو كنترلرهايMCS-8051   معرفي كرد.

 

 8748 با 17000 ترانزيستور در يك مدار مجتمع، شامل يك CPU ، 1 كيلو بايت  EPROM ،

 

 64 بايت RAM ، 27 بايه يI/O  و يك تايمر 8بيتي بود.

 

اما تفاوت ميكرو كنترلر ها و ريز پردازنده ها در معماري سخت افزار ، كاربرد ها  و دستورالعمل

 

 ها خلاصه ميشه ؛ در حالي كه ريز پردازنده يك CPU ي تك تراشه است ، ميكرو كنترلر در

 

 يك تراشه ي واحد ،علاوه بر CPUشامل ROM  ، RAM ، يك رابط سريال ،يك رابط موازي ،

 

 تايمر و مدارات زمان بندي وقفه هم هست ؛

 

يك ويژگي مهم ميكرو كنترلر ها ، سيستم وقفه ي موجود در داخل اونهاست . ميكروكنترلر

 

 ها به عنوان ابزار ها ي كنترل گرا ( control-oriented devices ) اغلب براي پاسخ بي درنگ

 

 به محرك هاي خارجي    ( وقفه ها ) مورد استفاده قرار ميگيرند .يعني بايد در پاسخ به يك

 

 اتفاق ، سريعا يك فرايند رو معوق نگه داشته ، به فرايند ديگر بپردازند .

 

از نظر كاربرد ميكرو كنترلر ها برا ي كنترلر ابزار هاي I / O مناسبند ، اما ريز پردازنده ها براي

 

 پردازش اطلاعات در سيستم هاي كامپيوتري .

از طرفي مجموعه دستورالعمل هاي ريز پردازنده ها بر عمل پردازش تمركز پيدا كردن و در

 

 نتيجه داراي روش هاي آدرس دهي قدرتمند به همراه دستورالعمل هايي براي انجام

 

 عمليات روي حجم زياد داده هستند . دستور العمل ها روي چهار بيت ها ( nibbles  ) ، بايت

 

 ها ، 16 بيت ها و حتي 32 بيت ها ( double words ) عمل ميكنند. در حالي كه ميكرو

 

 كنترلر ها مجموعه دستورالعمل هايي مناسب براي كنترل ورودي ها و خروجي ها دارند.اين

 

 كار تنها نيازمند يك بيت است .

 

ميكرو كنترلر ها دستورالعمل هايي براي 0 و 1 كردن بيت ها ي جداگانه دارن

 

 ( clear & set ) ، و عمليات ديگري رو هم روي بيت ها مثل and و or و xor كردن

 

 منطقي بيت ها ، برش در صورت 1 يا پاك بودن يك بيت و مانند آنها انجام ميدن .اين

 

 ويژگي مفيد بندرت در ريز پردازنده ها يافت ميشه چون اون ها معمولا براي كار روي

 

 بايت ها يا واحد هاي بزرگ تر داده طراحي ميشن . با اين همه در قدرت پردازش

 

 محض ، يه ميكروكنترلر هرگز به ريزپردازنده نميرسه .

 

   و اما مزايا و معايب

 

وظايفي كه ميكروكنترلر ها انجام ميدن وظايف تازه اي نيستن ؛ چيزي كه جديده اينه

 

 كه طراحي ها با تعداد اجزاء كمتري از گذشته انجام ميشن . اعمال منطقي كه

 

 نيازمند چندين IC هستند اغلب توسط يك ميكرو كنترلر با اضافه كردن يك برنامه ي

 

 كنترلي انجام مي شن .

 

عيب كار در سرعت است . راه حل هاي ميكرو كنترلي هرگز دز سرعت به باي راه

 

 حل هاي مشابه با اجزاي گسسته نميرسند .در موقعيت هايي كه نياز به پاسخ

 

 هاي خيلي سريع وجود داره (كه البته  به ندرت چنين كاربرد هايي پيدا ميشن ) ،

 

 ميكرو ها عكس العمل ضعيفي از خودشون نشون ميدنبه عنوان يك مثال نمايش

 

 ساده شده اي از انجام عمل nand با استفاده از ميكرو رو در نظر ميگيريم ؛به كار

 

 بردن ميكرو براي چنين عملي چندان مرسوم نيست ، اما اين امكان وجود داره . نرم

 

 افزار بايد عمليات منطقي اي رو انجام بده كه برنامه ي زبان اسمبلي 8051 براي اين

 

 عمل منطقي به اين صورته :

 loop

 mov         c,p1.4          ; read p1.4 bit in to carry flag 

 anl           c.p1.5          ; and with p1.5

 anl           c,p1.6          ; and with p,1.6           

 cpl           c                 ; convert to "nand" result                       

 mov         p1.7,c          ; send to p1.7 output bit                         

 sjmp        loop             ; repeat

 

اگه اين برنامه در يك ميكرو 8051 اجرا بشه ، تاخير انتشار از يك transition يا همون

  گذار ، در ورودي تا استقرار سطح منطقي درست در خروجي دست كم در مقايسه با

  معادل TTL آن ( transistor-transistor logic ) بسيار طولاني است . بسته به نسبت

  زماني تغيير در ورودي و تشخيص اين تغيير توسط برنامه ، تاخير بين 3 تا 17 ميكرو

  ثانيه خواهد بود .در حالي كه تاخير انتشار در معادل TTL  از مرتبه ي 10 نانو ثانيه

  است يعني حدود 1000 بار كمتر .پر واضحه كه در ايجاد توابع منطقي سرعت ميكرو

  ها با مدار هاي TTL معادل ، قابل مقايسه نيست .

 در بسياري كاربرد ها به ويژه اونهايي كه با عمل كرد انسان سر و كار دارن ،اين كه

  تاخير ها به نانو ثانيه اندازه گيريي بشه يا ميكرو و ميلي اهميتي نداره . (وقتي كه

  فشار روغن اتومبيل افت بيدا ميكنه يا سنسور ربات يه انحراف رو در مسير مي بينه

  لزومي نداره ظرف چند نانو ثانيه مطلع شيم ) مثال گيت منطقي nand نشون ميده

  ميكرو ها مي تونن عمليات منطقي انجام بدن . از اين گذشته هر چي طراحي ها

  پيچيده تر باشه مزاياي طراحي ميكرو كنترلري بيشتر خودش رو نشون ميده

آموش میکروکنترلر 8051 (قسمت دوم) 

 در این قسمت معماري سخت افزار 8051 رو با نگاهي از بيرون به پايه هاي اون بررسي ميكنيم .

 خلاصه ي مشخصات اين IC  به اين ترتيبه :

 1) 4 KB : ROM

 2) 128 B : RAM

 3) چهار I /O port    هشت بيتي

 4) رابط سريال يا serial interface

 5)64 KB  : فضاي حافظه ي خارجي براي كد

 6) 64 KB : فضاي حافظه ي خارجي براي داده

 7) دو تايمر/ شمارنده ي 16 بيتي ( timer / counter )

 8) Boolean processor  يا پردازنده ي بولي

 9) 210 مكان بيتي آدرس پذير ( bit – addressable  )

 10) انجام عمليات ضرب و تقسيم در 4 ميكرو ثانيه .

  

و اما پايه ها :

 جمعاً 32 پين يا همون پايه از 40 پين 8051 به عنوان خطوط I / O port ( درگاه ورودي

 

  خروجي ) عمل مي كنند ؛ علاوه بر اين 24 خط از اين خطوط دو منظوره هستند .

 

هر يك از اين خطوط مي تونن به عنوان I/O يا خط كنترل ويا بخشي از address bus

 

( گذرگاه آدرس ) و يا data bus ( گذرگاه داده ) به كار برن .

 

هر 8 خط يك port  يا درگاه ، مي تونن به صورت يك واحد در ارتباط با وسايل موازي

 

مثل چاپگرها و مبدل هاي ديجيتال به آنالوگ بكار برن . و يا هر خط به تنهايي با

 

وسايل تك بيتي مثل سوئيچ ها ، LED ها ، ترانزيستورها ، سيم پيچ ها ، موتور ها و

 

بلند گو ها ارتباط برقرار كند .اما قبل از اين كه وارد جزئيات پايه ها بشيم بهتره در مورد

 

نحوه ي آدرس دهي اطلاعاتي داشته باشيم ؛يه حافظه رو با چهار خانه ي حافظه در

 

 نظر بگيريد . خونه هاي اين حافظه رو به اين شكل آدرس دهي ميكنيم :

                     

پس  اين حافظه با دو تا خط آدرس ، آدرس دهي ميشه ؛ كه هر كدوم از اين خطوط

 

 ميتونن مقادير 0  و 1  رو بپذيرند .

 

خطوط آدرس رو با Ai  معرفي ميكنيم . پس A1  و  A0 خطوط آدرس ما هستن . به

 

A1  بيت بالا و به A0 بيت پايين حافظه گفته ميشه .

 

اين يك نمونه ي ساده بود از حافظه ؛ به همين ترتيب مي شه خونه هاي حافظه هاي

 

 بزرگ رو هم آدرس دهي كرد . در اين صورت ما به تعداد بيشتري خط آدرس نياز داريم

 

 تا بتونيم خونه ها رو به صورت يكتا آدرس دهي كنيم . به طوري كه با n خط آدرس

 

2^n خانه ، قابل آدرس دهي هستند. از اون جايي كه 8051 داراي 210 مكان بيتي

 

 آدرس پذير است ،براي آدرس دهي اين تعداد خانه ي حافظه به حداقل 8 خط آدرس

 

 نياز داريم . و هر يك از اين خطوط به شكل يك پين در ميكرو در مي آن . اما اين 8 خط

 

 فقط در مواقع استفاده از حافظه ي داخلي است كه كافي اند . وقتي لازمه از حافظه

 

 ي خارجي هم استفاده كنيم به خطوط بيشتري براي آدرس دهي نياز داريم كه در

 

 اين حالت از پورت مالتي پلكس شده استفاده مي كنيم ؛ در اين زمينه در توضيحات

 

 پورت هاي 0 و 2 توضيحاتي داده شده .

 

Port يا درگاه 0:

 

 پورت 0 يك پورت دو منظوره از پين 32 تا 39  تراشه 8051 است . اين پورت ، در

 

 طراحي هايي با كمترين اجزاي ممكن به عنوان يه پورت I /O عمومي استفاده

 

 ميشه . در طراحي هاي بزرگتر كه از حافظه ي خارجي استفاده مي كنيم ، اين

 

 پورت يه address & data bus  مالتي پلكس شده است . معني اين جمله اينه كه

 

 گاهي لازمه براي جمع و جور كردن ميكرو ، از يه پين ، هم داده منتقل بشه هم

 

 آدرس. از طرفي عمل انتقال داده و آدرس هرگز با هم صورت نمي گيرن ؛ به طوري

 

 كه هميشه اول آدرس داده ي مورد نظر عبور ميكنه ، بعد اين آدرس ذخيره ميشه ، و

 

 سپس ميكرو از روي اون آدرس داده رو انتقال مي ده ؛ پس ما ميتونيم از يه پورت هم

 

 به عنوان گذرگاه داده استفاده كنيم و هم به عنوان گذرگاه آدرس . به اين جور

 

 گذرگاهي ، گذرگاه مالتي پلكس شده مي گن .

 

  پورت 1 :

 

اين درگاه ، پورت اختصاصي I/O روي پين هاي 1 تا 8 است . پين هاي p1.0 تا

 

p1.7 در صورت نياز براي ارتباط با وسايل خارجي به كار مي رن . وظيفه ي ديگه اي

 

 براي اين پايه ها در نظر گرفته نشده . هر چند استثناءً در IC ها ي 8032 و 8052 از

 

 p1.0 و p1.1 به عنوان خطوط I/O  و يا ورودي تايمر سوم استفاده مي شه .

 

   پورت 2 :

 

يه پورت دو منظوره كه به عنوان I / O عمومي و يا بايت بالاي   address busدر

 

 طراحي با حافظه ي كد خارجي external code memory  به كار مي ره اين پورت

 

 همچنين در طراحي هايي كه به بيش از 256  بايت از حافظه ي داده ي خارجي

 

( external data memory ) نياز دارن هم استفاده مي شه .

        

    توضيح : فرض كنيد در يك طراحي ، مي خواهيم از external memory  استفاده

 

 كنيم . گفتيم كه  UC (مخفف ميكرو كنترولر ) علاوه بر داده بايد آدرس اون رو هم

 

 داشته باشه  . ما از پورت 2  به عنوان گذرگاه آدرس استفاده مي كنيم .

 

در واقع ما براي ارتباط ميكرو با هر IC ديگه اي هم به داده نياز داريم هم به آدرس ؛ و

 

 البته  آدرس ها يكتا هستند . همون طور كه قبلاً گفته شد در اين حالت به 16 خط

 

 آدرس نياز داريم كه 8 خط (بايت بالا ) رو پورت 2 تاًمين ميكنه و 8 خط ديگه (بايت

 

 پايين ) رو پورت 0 به شكل مالتي پلكس شده .

 

 اگه اين خطوط آدرس رو به شكل زير در نظر بگيريم به خطوطA15  تا A8 بايت بالاي

 

 آدرس و به خطوط A7 تا A0 بايت پايين گفته مي شه .

 

A15  A14  A13  A12  A11 A10  A9 A8 A7  A6  A5  A4  A3  A2  A1 A0    

                   

 نتيجه اين كه خطوط آدرسي كه مربوط به بايت بالاي آدرس هستند از طريق پورت 2

 

 مي تونن با خارج در ارتباط باشن .

 

  پورت 3  :

 

روي پين هاي 10  تا 17  كه علاوه بر  I /O  عمومي ، هر يك از اين پايه ها وظايف

 

 ديگه اي رو هم در ارتباط با امكانات خاص 8051  دارند .  

 

تا اين جا وظبفه ي 32 پين مشخص شد .  پين هاي 40  و 20  به ترتيب براي اتصال

 

به منبع تغذيه يا Vcc  و زمين يا Vss  به كار ميرن .

 

نوسان ساز  ( oscillator) ميكرو به پايه هاي 18  و 19  وصل ميشه ؛ و نهايتاً

 

8051  چهار سيگنال اختصاصي براي كنترل گذرگاه داره كه روي پين هاي

 

9 , 29 , 30 , 31 قرار مي گيرن .

 

 

اولين ميكرو كنترلرها در اواسط دهه 1970 ساخته شدند. اين ميكرو كنترلرها در ابتدا

پردازنده هاي ماشين حساب بودند كه داراي حافظه برنامه كوچكي از نوع ROM ، حافظه

 

داده از نوع RAM و تعدادي درگاه ورودي/خروجي بودند.

 

با توسعه فناوري سيليكون ، ميكرو كنترلرهاي 8 بيتي قويتري ساخته شدند. در اين ميكرو كنترلرها علاوه بر بهينه شدن دستورالعمل ها، تايمر/شمارنده روي تراشه، امكانات وقفه و كنترل بهينه شده خطوط  I/O نيز به آنها اضافه شده است. حافظه موجود  بر روي تراشه هنوز هم محدود مي باشد و دربسياري موارد كافي نيست.يكي از پيشرفتهاي قابل توجه در آن زمان، قابليت استفاده از حافظة EPROM قابل پاك شدن با  اشعه ماورا بنفش، روي تراشه بود. اين قابليت، زمان طراحي و پياده سازي محصول را بطور محسوسي كاهش داد و نيز براي اولين بار امكان استفاده از ميكرو كنترلر ها  را در كاربردهايي كه حجم توليد پاييني دارند، فراهم ساخت.خانواده8051 در اوايل دهه

 198۰ توسط شركت اينتل معرفي گرديد.

از آن زمان تاكنون... 8051 يكي از محبوبترين ميكرو كنترلرها بوده و بسياري از شركتها ديگر نيز به توليد آن

 

 اقدام كرده اند. در حال حاضر مدل هاي مختلفي از 8051 وجود دارد كه در بسياري از  آنها امكاناتي نظير مبدل آنالوگ به ديجيتال حجم نسبتاً بزرگ از حافظه برنامه و حافظه  داده، مدولاتور عرض پالس (PWM) در خروجيها و حافظه فلش (Flash) كه امكان پاك كردن  و برنامه ريزي مجدد آن توسط سيگنالهاي الكتريكي وجود دارد، تعبيه شده است.

ميكرو كنترلرها اكنون به سمت 16 بيتي شدن در حركت هستند. ميكرو كنترلر هاي 16

  بيتي، پردازنده هايي با كارايي بالا (نظير پردازش سيگنالهاي ديجيتال ) مي باشند كه در كنترل فرايندهاي بلادرنگ و در مواردي كه حجم زيادي از عمليات محاسباتي مورد نياز است، به كار برده مي شوند.

بسياري از ميكرو كنترلرهاي 16 بيتي، امكاناتي نظير حجم زياد حافظه برنامه و حافظه  داده، مبدل هاي آنالوگ به ديجيتال چند كانالي، تعداد زيادي درگاه I/O ، چندين درگاه سريال، عملكردهاي بسيار سريع رياضي و منطقي و مجموعه دستورالعمل هاي بسيار قدرتمند با قابليت پردازش سيگنال را دارا مي باشند.

  ساده ترين معماري ميكرو كنترلر، متشكل از يك ريز پردازنده، حافظه و درگاه  ورودي/خروجي است. ريز   پردازنده نيز متشكل از واحد پردازش مركز (CPU) و  واحد كنترل (CU) است.

CPUدرواقع مغز يك ريز پردازنده است و محلي است كه در آنجا تمام عمليات رياضي و منطقي ،انجام مي شود. واحد كنترل ، عمليات داخلي ريز پردازنده را كنترل مي كند و سيگنال هاي كنترلي را به ساير بخشهاي ريز پردازنده ارسال مي كند تا دستورالعمل ها ي مورد  نظر انجام شوند.

حافظه بخش خيلي مهم از يك سيستم ميكرو كامپيوتري است. ما مي توانيم بر اساس به كارگيري حافظه، آن را به دو گروه دسته بندي كنيم: حافظه برنامه و حافظه داده . حافظه برنامه ، تمام كد برنامه را ذخيره مي كند. اين حافظه معمولاً از نوع حافظه فقط خواندني (ROM) مي باشد. انواع ديگري از حافظه ها نظير EPROM و حافظه هاي فلش EEPROM براي كاربردهايي كه حجم توليد پاييني دارند و همچنين هنگام پياده سازي برنامه به كار مي روند . حافظه داده از نوع حافظه خواندن / نوشتن (RAM) مي باشد . در كاربردهاي پيچيده كه به حجم بالايي از حافظه RAM نياز داريم ، امكان اضافه كردن تراشه هاي حافظه بيروني به اغلب ميكرو كنترلر ها وجود دارد.

 

درگاهها ورودي / خروجي (I/O )به سيگنال هاي ديجيتال بيروني امكان مي دهند كه با ميكرو كنترلر ارتباط پيدا كند. درگاههاي I/O معمولاً به صورت گروههاي 8 بيتي دسته بندي مي شوند و به هر گروه نيز نام خاصي اطلاق مي شود. به عنوان مثال ، ميكروكنترلر 8051 داراي 4 درگاه ورودي / خروجي 8 بيت مي باشد كه P3, P2, P1, P0 ناميده مي شوند. در تعدادي از ميكرو كنترلر ها ، جهت خطوط درگاه I/O قابل برنامه ريزي مي باشد. لذا بيت هاي مختلف يك درگاه را مي توان به صورت ورودي يا خروجي برنامه ريزي نمود. در برخي ديگر از ميكروكنترلرها (از جمله ميكروكنترلرهاي 8051) درگاههاي I/O به صورت دو طرفه مي باشند. هر خط از درگاه I/O اين گونه ميكرو كنترلرها را مي توان به صورت ورودي و يا خروجي مورد استفاده قرار داد . معمولاً ، اين گونه خطوط خروجي ، به همراه مقاومتهاي بالا كش بيروني به كار برده مي شوند.

 

خانواده 851  

خانواده 8051 يك خانواده ميكرو كامپيوتر (ميكرو كنترلر ) 8 بيتي تك تراشه اي استاندارد است كه بسيار محبوب و عامه پسند مي باشد و توسط سازندگان مختلف با قابليت هاي متفاوت توليد مي گردد. اين آي سي استاندارد اصلي كه اولين عضو اين خانواده مي باشد، 8051 است كه يك ميكرو كنترلر 40 پايه مي باشد.

 هم اكنون اين آي سي با پيكربندي هاي مختلف موجود مي باشد. 80C51  نوع  cmos و كم مصرف اين خانواده است.  8751 داراي حافظه برنامه از نوع EPROM است كه عمدتاً در هنگام پياده سازي به كار برده مي شود.

89c51 نيز داراي حافظه فلش قابل برنامه ريزي و پاك شدن (PEROM) است لذا بدون نياز به پاك كردن با  اشعه ماورابنفش ، مي توان حافظه برنامه را برنامه ريزي كرد.8052 عضو بهينه شده اين خانواده مي باشد و حافظه RAM آن بيشتر بوده و تعداد تايمر/شمارنده آن نيز بيشتر است. انواع مختلفي از خانواده 40 پايه وجود دارد كه داراي مبدل هاي آنالوگ به ديجيتال ، مدولاتورهاي عرض پالس و نظاير آن هستند. در بخش پايين خانواده 8051 ، ميكرو كنترلر هاي 20 پايه قرار دارند كه از لحاظ كد ، سازگاري كاملي با انواع 40 پايه دارند و اين ادوات 20 پايه براي كاربردهايي با پيچيدگي كمتر كه نياز به خطوط I/O كمتري دارند و نيز براي كاربردهايي كه بايد مصرف توان كمتري داشته باشند (مثل سيستم هاي قابل حمل)،ساخته شده اند.

 

آي سي هاي AT89C2051 و AT89C1051 (ساخت شركت Atmel)چنين ميكرو كنترلرهايي هستند كه از لحاظ كد سازگاري كاملي با خانواده 8051 دارند و مصرف توان آنها نيز كمتر است.

میکرو کنترلر 

 

کتاب میکرو کنترلر ۸۰۵۱ از جمله کتب مشهور درباره میکرو کنترلر ۸۰۵۱

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

مطالب آن به گونه ای است که با دانستن مبانی دیجیتال و اطلاعاتی

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

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

 برگرفته از     http://bia24me.blogfa.com/             

+ نوشته شده در  جمعه بیست و دوم اردیبهشت 1385ساعت 12:17  توسط Students  |