تبليغاتX
وبلاگ آموزشی میکروکنترلر
وبلاگ آموزشی میکروکنترلر 8051
 elmats bigin
سلام

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

 

|+| نوشته شده توسط elmat در سه شنبه 1387/06/12  |
 اعمال حسابی در میکروکنترلر
با سلام خدمت دوستان  غزیز .
امروز می خوام از سر فصل اول شروع کنم که در مورد اعمال ریاضی در میکرو کنترلر هستش .
میکروکنترلر 8051 قابلیت انجام اهر چهار عمل ریاضی رو داره و اعمال * و ÷ و + و -  رو انجام می ده .
اگه یادتون باشه در جلسات قبل در مورد ثباتی به نام انباره صحبت شد. در اعمال ریاضی عملوند اول یا همون object1 یک باید انباره انتخاب بشه . یعنی یک طرف اعمال حسابی باید در انباره (A) ذخیره بشه . طرف دوم هم می تونسم  به وسیله آدرس دهی مستقیم یا غیر مسبقیم یا  به صورت نوشتن عدد ، مقدار دهی کنیم .
در اینجا من باید یک بیت و یک ثبات رو معرفی کنم.
ثباتی که می خوام معرفی کنم ثبات B هستش و مقدار باقیمانده تقسیم  به وسیله میکروکنترلر در اون ریخته می شه . و بیتی که می خوام معرفی کنم بیت CARY یا ((C)) هستش. کری بیتیه که هنگامی که اعمال ریاضی به قول خودمون بر دست دارن یک می شه . البته  می شه اونو با مقدار دهی بیتی کنترل کرد.
و یک بیت دیگه که به اون پرچم (CY) می گن رو معرفی می کنم. اگر مقدار خروجی عمل حسابی از 128- کمتز یا از 127 بیشتر باشه ، این بیت یک می شه . در این صورت حاصلی که از عمل حسابی به دست اومده درست نیست و باید بسته به مقداری که به دست اوردیم اصلاحاتی رو انجام بدیم. یه این صورت که اگه مقدار نیم بایت پایین در عمل حسابی مقداری بیشتر از 10 در بیاد باید عدد مورد نظر رو دوباره با 06 جمع کنیم تا درست بشه و اگه مقدار نیم بایت بالا بیشتر از 10 باشه باید با عدد 60 حاصل رو جمع بندی کنیم و اگه هر دو نیم بایت از عدد 10 بزرگتر باشن باید جواب رو با 66 جمع کنیم .
البته درک اینها کمی مشکله بنابرین با کمی مثال و تمرین باید یاد بگیریم.
اسم تمام ثبات ها و بیت هایی رو که می گم باید حفظ کنین چون در اعمال حسابی و در هر برنامه نویسی به درد می خوردن و برنامه نویس باید اونها رو حفظ باشه.
اول از دستور جمع شروع می کنیم (ADD) .
خود کلمه ADD به معتی جمع هستش و در میکرو هم برای همین کا مورد استفاده قرار می گیره.
مثال:
ADD      A,R1
در این مثال مقداری که قبلا در ثبات R1 ذخیره شده با مقدار انباره جمع می شه .
مثلا وقتی می خوایم عدد 5 و 4 رو با هم جمع کنیم به این صورت برنامه نویسی می کنیم.
مثال:
MOV      R1,#5
MOV      A,#4
ADD      A,R1
بعد از انجام این دستورات مقدار 9 در ثبات انباره ذخیره می شه . حالا با چند تا مثال دیگه کاملا جمع رو یاد می گیریم.
مثال :
MOV      A,#3
ADD      A,#4
مقدرای که از این عمل به دست می آد و در انباره ذخیره می شه 7 هستش .
مثال:
MOV      32H,#30
ADD      A,32H
در این مثال مقدار 30 در محلی از RAM با آدرس 30H  ذخیره می شه و با انباره جمع می شه .
خوب برای امروز فکر می کنم بس باشه .
برای جلسه بعد تفریق رو یاد می دم.
اگر نظر بدین خوشحال می شم.



 
|+| نوشته شده توسط elmat در شنبه 1387/02/28  |
 دستورات میکرو کنترلر
    سلام دوستان عزیز .
از امروز دوباره دستورات میکرو کنترلر رو شروع می کنیم.
دستورات جا به جایی
همون طور که قبلا گفیتم در داخل میکرو کنترلر 4 بانک ثبات وجود داره که داخل هر کدوم 32 تا رجیستر یا ثبات هستش. با دستوری که الان می خوام براتون بگم کار جا به جایی در رجیستر ها و سایر قسمت ها انجام می شه.
mov   object1,object2
دستور جا به جایی چند اصل دارد که به شرح زیر است:
1 - تعداد بیت های object1  و  object2  باید برابر باشد.
2 -  با این دستور محتویات یک ثبات (رجیستر) را در خروجی یک پورت می توان قرار داد به شرطی که اصل اول برقرار باشد.
3 - این دستور  به صوزت بیتی نیز عمل می کند.
مثال :
mov      a,r1
mov      p1,a
mov      r3,p2
در هر کدام از این دستورات مقدار از انباره و ثبات ها و پورت ها در داخل یکدیگر کپی می شود.
برای جا به جایی از ram و rom خارجی از دستور movc استفاده می شود که کاربرد آن مانند مثال های بالا است.
دستورات پرش

|+| نوشته شده توسط elmat در پنجشنبه 1387/02/19  |
 بازگشت
با سلام خدمت دوستان عزیز از اینکه این مدت نتونستم آپ کنم معذرت می خوام . یه مقدار یزم شلوغ بود . از دوستانی که یر می زنن و نظز نمی دن کمال تشکر رو دارم !!
به هر حال از این به بعد می تونین با عضویت در خبر نامه وبلاگم از پست های جدید با خبر بشین.
ضمنا این رو هم بگم که در این مدت کاملا زبان basic برای میکرو های avr آشنایی پیدا کردم. از پست های جدید در قسمت برنامه نویسی avr می تونین استفاده کنین.
|+| نوشته شده توسط elmat در چهارشنبه 1387/02/18  |
 جلسه ششم / دستورات میکرو کنترلر ( بازگشت دوباره)

سلام عزیزان .

ببخشید که این چند روز هیچ ژست جدیدی نداشتم . آخه وقت اتحاناتم بود و نمی تونستم وقتمو رو این بذارم . خلاصه ببخشید.

البته برام مهم نیست که روزانه بیشتر از ۳ - ۴ نفر بازدید کننده ندارم. اگه یه نفر هم از من میکرو کنترلر یاد بگیره کافیه!!!!! از کانی هم که میان و نظر هم نمی دن ناراضی نیستم.

 من تو این چند روز تونستم حدود ۶۰ درصد از زبان برنامه نویسی

BASCOM  برای میکرو های سرای

AVR

 رو یاد بگیرم امیدوارم شما هم بتونین یاد بگیرین . زبان سطح بالا و ساده ای هستش . البته من فعلا همین اسمبلی رو ادامه می دم تا به آخر برسه . و لی از من می شنوین کتاب دکتر مزیدی در مورد میکروکنترلر های ۸۰۱۵۱ رو بخرین مطالعه منین . حتما می تونین یاد بگیرین . برای میکرو های ای وی آر هم کتاب علی کاهه ُ انتشارات نص رو پیشنهاد می کنم . از پست بعدی دوباره اسمبلی رو شروع می کنم . غعلا با اجازه .

|+| نوشته شده توسط elmat در شنبه 1386/11/13  |
 جلسه پنجم ( datasheet )
سلام عزیزان
البته لازم نیست به خاطر دیر کرد در ارسال مطالب عذر خواهی کنم !!! چون خودم هم کار و زندگی دارم !!!
امروز باهاتون حرف خاصی ندام فقط سه تا دیتا شیت مربوط به میکرو کنترلر های خانواده 8051 رو براتون می ذارم .

برای دانلود دیتاشیت (datasheet) میکرو 8051 اینجا رو کلیک کنین . (میکرو 40 پایه

برای دانلود دیتاشیت(datasheet) میکرو at89c51 اینجا رو کلیک کنین .(میکرو 40 پایپ پیشرفته تر

برای دانلود دیتا شیت(datasheet) میکرو at80c2051 اینجا رو کلیک کنین .(میکرو 20 پایه )

استفاده از این دیتا شیت ها در وبلاگ ها و سایت ها با ذکر نام elmat51.blogfa.com مانعی ندارد .
خب شما رو به خیر و ما رو به سلامت
راستی یادتون باشه دیتا شیت ها انگلیسی هستن و pdf  تشریف دارن یعنی acrobat reader  نصب باشه
حالا اگه راه گم کردین یه نظر هم بدین بد نیست .!!!
|+| نوشته شده توسط elmat در شنبه 1386/09/24  |
 جلسه چهارم :RAM و ROM و نقش و کاربرد آنها در 8051
سلام بر همه دوستان عزیز که دوست دارن بحث شیرین 8051 رو ادامه بدن
البته این وبلاگ با خطر تعطیلی روبه روست . امتحانات من شروع می شه و من کمتر میتونم براش وقت بذارم

درس همینجا شروع می شه لطفا سکوت رو رعایت کنین .
در اکثر میکروکنترلر ها دو نوع حافظه با نام های RAM (حافظه با دسترسی تصادفی ) و ROM (حافظه فقط خواندنی)وجود دراد.
ROM: این نوع حافظه که مخصوص برنامه و بعضی اطلاعات می باشد فقط به وسیله کامپیوتر قابل دستیابی می باشد . به این صورت که برنامه ای که توسط برنامه نویس در یک محیط خاصی نوشته شده به وسیله کامپایلر مخصوص خود به فایل HEX (زبان ماشین) تبدیل شده و بعد از قرار دادن آی سی میکرو در پروگرامر کامپیوتر اطلاعات برنامه را در یک زمان کوتاه به میکروکنترلر انتقال می دهد . این حافظه معمولا تا زمانی که خود میکرو سالم است می تواند به وسیله کامپیوتر پاک و دوباره پر شود (حدود 10000 بار ) .
اطلاعاتی که در ROM  قرار گرفته (همان برنامه ) به وسیله CPU  اجرا شده و کار خواسته شده توسط برنامه نویس را انجام می دهد . این نوع حافظه با قطعی برق پاک نمی شود.
RAM: این نوع حافظه برای که از 32 ثبات هشت بیتی در چهار بانک ثبات میبشد وظیفه نگه درای اطلاعات مربوط به پورت سریال ، وظعیت تایمر ،مقدار شمارش تایمر، پورت های موازی خروجی ، انتخاب بانک ثبات و .. را به عهده دراد . و در 32 رجیستر اطلاعتی که برنامه نویس با دستورات خاصی نوشته است قرار می گیرد .
مثلا می توان اطلاعاتی که ئر حال حاظر در پورت یک است با یک دستور به یکی از این ثباتها کپی کرد .
MOV   Rn,Pn
به وسیله این دستور اطلاعات روی پورت n  درون ثبات n  قرار می گیرد . این اطلاعات تا زمانی که برق میکرو وصله و با دستور دیگری این اطلاعات عوض نشه پابرجاست.

دستورات امبلی برای میکروکنترلر 8051
اولین دستوری که باید یاد بگیرین مکان ذخیره برنامه داخل ROM  هست . همون طوری که گفتم ROM  داراری 4 کیلو بایت حافظه است و اگر با دستوری مکان شروع ذخیره سازی برنامه توسط کامپیوتر را عوض نکنیم ، برنامه از مقدار  00 شروع به ذخیره سازی می شود .
آدرس شروع ذخیره سازی به هگز          ORG
امیدوارم که شمایی که دارین اینا رو می خونین سیستم های اعداد رو بلد باشین (باینری ، هگز ، اوکتال ،..)البته اگر هم بلد نیستین اشکالی نداره کافیه کتاب های مقدماتی دیجیتال یا کامپیوتر رو مطالعه کنین یا تو قسمت نظر بگین من خودم بذارم .
این آدرس به وسیله شما مشخص می شه و میتونین برای ذخیره سازی داده و برنامه این ادرس رو تغییر بدین .
خب فعلا بای من کار دارم .
|+| نوشته شده توسط elmat در یکشنبه 1386/09/18  |
 جلسه سوم
سلام

ببخشید که جلسه هام کوتاه هستن چون خودم دانشجو هستم و بایدبه درسام هم برسم (مثلا)

خب از همین الا جلسه سوم شروع می شه

آموزش ما فعال فقط زیان اسمبلی هیت که در محیط NOTEPAD خود کامپیوتر نوشته می شه . حالا از چند اصطلاح یا اسم که در درسمون کاربر زیادی دارن توضیحی می دم

۱ ـ ثبات یا رجیستر (REGISTER) :همون طوری که از اسمش پیداست ثبات در داخل میکرو وظیفه ثبت اطلاعات رو بر عهده دارن با این صورت که و قتی شما به یکی از پورت ها مثلا این مقدار رو دادین ۱۰۰۱۰۱۱۰

و به وسیله یه دستو خاص اونو می خوین وارد میکرو کنین این ورودی در داخل یک پبات باید ذخیره بشه . ذخیره شدنش هم با توجه به بیت های کم ارزش و پر ارزش از ۰ نا هفت ذخیره میشه . شما میتونین در داخل میکرو به وسیله دستوراتی اطلاعات یک پبات رو داخل یک ثبات دیگه کپی کنید . در کل ثبات ها به دو دسته تقسیم می شن :

ا ـ ثبات های با کار بد خاص :  این نوع ثیات ها اطلاعات مربوط به اعمال منطقی و ریاضی ، کنترل تایمر ها ،انتخاب بانک ثبات ، دستر سی به پورت سر یال و .... نگه داری می کنند .

۲ ـ ثبات های با کار برد زیاد : این نوع ثبات ها که از R0 ...R7 می باشند و به صورت چهار بانک ثبات ۷ تایی می باشند برای ذخیره اطالعات و انجام عملیات ریاضی و منطقی به مار می روند . ( در مجموع ۴ بانک ۷ تایی که ۳۲ ثیات می شود )

اطلاعاتی که در این ثبات ها ذخیره RAM در صورت قطع شدن منبع  تغذیه پاک می شوند ولی اطلاعات روی ROM (برنامه) با قطعی برق پاک نمی شوند .

خب حرف از بانک ثبات شد : بانک ثبات که در ۸۰۵۱ چهار عدد می باشد همان ۳۲ ثبات ROM می باشد که به وسیله ۴ بانک هفت تایی سازمان دهی شده اند . در حلت شروع بانک اول از ثبات ها انتخاب شده است که با اثر گذاری بر بیت های یک ثبات با کارزبرد خاص می توان آن را عوض کرد .

فرم کلی برنامه نویسی اسمبلی۸۰۵۱ به صورت زیر است

(عملوند)      (عمل گر): (بر چسب)

برچسب :امی است که برای یک قسمت انتخاب می شود (برنامه) و در صورت لزروم می توان به آن پرش کرد یا آن را فراخواند .

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

عمل گر : فر مانی است که به وسیله آ میکرو کی فهمد چه عملی را با ید انجام دهد و تعداد آنها در ۸۰۵۱ در حدود ۳۰ عدد می باشد که یک برنامه نویس باید همه آنها و فرم کار برد آنها را بداند (مثل من )

عملوند نام ثبات یا قسمتی است که عمل گر ( دستور ) روی آن اثر گذاشته و عملی انجام می شود .

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

خب فعلا بای

حلال اگه راتونو گم کردین یه نظری هم بدین (فش ندین کافیه )

|+| نوشته شده توسط elmat در سه شنبه 1386/09/13  |
 جلسه دوم

سلام جلسه دوم از همین الان شروع می شه (الفا موبایلاتونو خاموش کنین)

آره درست حدس زدین عکس بالا شکل پایه های ۸۰۵۱ رو نشون می ده همون طور که می بینین ۸۰۵۱ دارای ۴ ژورت مواری و یک پورت سریال و . می باشد .

خصوصیات ۸۰۵۱

۱ - حافظه  ROM داخلی ۴ کیلو بایت

۲ - حافظه RAM داخلی ۱۲۸ بایت (۳۲ رجیستر یا ثبات ۸ بیتی)

۳- یک پورت سریال قابل اتصال به کامپیوتر

۴ - قابلیت اتصال به RAM و RAM خارجی

۵- دارای نوسان ساز (CLOCK) داخلی که به وسیله کریستال خارجی کنترل می شود (حد اکثر فرکانس ۱۲ مگا هرتز)

۶ - منبع تغذیه ۵ ولتی

...

خب فکر می کنم تا اینجا کا فی باشه .

البته مد های دیگر سری ۸۰۵۱ مانند AT89C2051 وجود دارد که دارای ۲۰ پایه می باشد و ...

اطلاعات مر بوط به پایه ها و سخت افزار داخلی خانواده ۸۰۵۱ رو می تونین از طریق دیتا شیت به دست بیارین که اگه تونستم براتون می ذارم .

و این هم شکل خود خود ۸۰۵۱ .

حالا بریم سر اصل مطلب (با اجازه بزرگترا)

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

تا جلسه تعدی بای

نظر هم دادین ممنون می شم

 

|+| نوشته شده توسط elmat در سه شنبه 1386/09/13  |
 جلسه اول
سلام
با اجازه بزرگترا از امروز می خوام آموزس میکرو کنترلر رو شروع کنم .
اطفا سر کلاس من مودب باشین ....!!!

مقدمه : اول ببینیم اصلا میکرو کنترلر یعنی چی ؟ ها ؟
به بیان ساده میکرو کنترلر یه تراشه هایی گفته می شه که کثل کامپیوتر دارای ram , rom , cpu , port,... می باشد و کار به این صورت است که توسط برنامه ای که در rom ذخیره شده و در ram اجرا میشود درگاه های ورودی و خرروجی میکرو کنترلر ، کنترل شده و با هر عملی عکس العملی در خروجی ها دیده می شود ؟؟!!!!
خوی هر کی متوجه نشد ( نفهمید) دستشو بالا بیاره ؟؟!!
میکرو کنترلر ها عمدتا در سه گروه 8051 , avr , pic دسته بندی می شوند که ما با نوع atmel (8051) سرو کار داریم .
محیط برنامه نویسی 8051 معمولا محیط notpad هست . البته محیط های دیگه مثل keil51 هم وجود دارن .
خب کلاس امروز همین جا تموم می شه
بای
|+| نوشته شده توسط elmat در شنبه 1386/09/10  |
 
 
بالا