دیتاشیت خانواده 8051 و ...

این مجموعه شامل مشخصات کامل انواع خانواده ۸۰۵۱ می باشد و چند میکرو از خانواده های دیگر هم در آن موجود می باشد.

نوع فایل RAR --->  PDF

حجم فايل: 863 كيلو بايت

دانلود

پسورد: mc8051.blogfa.com (به كوچك بودن حروف دقت نماييد)

کار با مبدل آنالوگ به دیجیتال ADC804

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

به اين صورت كه اگر اين پايه را رها كنيم و به جايي وصل نكنيم  ولتاژ دامنه سيگنال ورودي مي تواند در محدوده 0 تا 5 ولت باشد كه در اين صورت گام هر پله برابر با 19.23=256÷5 ميلي ولت خواهد شد. براي ديگر ولتاژ ها هم در زير مشخص شده است:

ادامه نوشته

آموزش ميكرو كنترلر 8051 قسمت ششم (تايمرها و شمارنده ها)

تايمرهاي 8051

8051 دو تايمر به نام هاي تايمر صفر 0و تايمر 1 دارد. همانطور كه در مطالب قبلي گفتيم براي ايجاد يك تاخير دقيق نمي توان از حلقه و ساير دستورات استفاده كرد به همين دليل اگر ما تايمر هاي 8051 را فعال كنيم قادر هستيم تا زمانهايي با دقت بسيار بالا توليد كنيم. براي راه اندازي تايمرها بايد ابتدا ثبات TMOD و خود ثبات تايمر ها را بشناسيم.

ابتدا ثبات تايمرهاي 0 و 1:

در 8051 ثبات هاي تايمر 16 بيتي هستد كه به TL بايت سبك و TH بايت سنگين تجزيه مي شوند. كه اگر ما از تايمر صفر استفاده كنيم اين ثبات ها TL0 و TH0 ناميده مي شود و اگر از تايمر يك استفاده كنيم اين ثبات ها TL1‌و TH1 ناميده مي شود.

TL

TH

تايمر

D0

D1

D2

D3

D4

D5

D6

D7

D8

D9

D10

D11

D12

D13

D14

D15

T0

D0

D1

D2

D3

D4

D5

D6

D7

D8

D9

D10

D11

D12

D13

D14

D15

T1

 

ثبات TMOD

ادامه نوشته

آموزش ميكرو كنترلر 8051 قسمت پنجم (معرفي دستورات)

دستورات منطقي و مقايسه اي

دستور  (AND)  ANL

اين دستور دو داده 8 بيتي رل با هم AND‌ مي كند. AND به معني "و" مي باشد يعني اينكه مثلا بيت P1.1 و P1.2 هرگاه صفر شدن فلان كار را ميكرو انجام دهد.

قالب دستوري آن به اين صورت مي باشد. ANL  REG,DATA عملوند مبدا يعني REG مي تواند يك ثبات يا يك حافظه باشد و عملوند مقصد DATA هم مي تواند ثبات يا حافظه يا يك داده فوري (عدد) باشد.بعد از انجام اين عمل منطقي نتيجه در انباره قرار مي گيرد.

مثال مي خواهيم عدد 56 و25 را با هم AND كنيم:

MOV    A,#56H

ANL    A,25H     A=4H

طبق جدول صحت گيت AND هرگاه ورودي هاي A وB  يك شد خروجي هم يك مي شود.

 طبق اين جدول براي AND كردن اين  دو داده داريم:

OUT

B

A

0

0

0

0

1

0

0

0

1

1

1

1

0

1

1

0

1

0

1

0

56H

1

0

1

0

0

1

0

0

25H

0

0

1

0

0

0

0

0

OUT=4H

ادامه نوشته

آموزش ميكرو كنترلر 8051 قسمت چهارم (معرفي دستورات)

 جمع و تفريق بي علامت )دستور (ADD

از اين دستور براي جمع دو داده 8 بيتي استفاده مي شود. براي عمل جمع حتما بايد يكي از داده ها در انباره A باشد و ديگري مي تواند در يكي از ثباتها يا داده فوري باشد.

قالب دستور:  ADD  A,SOURCE

مثال عدد 10H را با E5 جمع كنيد؟

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

MOV    A,#10H                  10H

ADD   A,#0E0H                 +E5H  =F5H        A=F5H

نكته: اگر بعد از علامت پوند # عددي در مبناي هگز باشد كه بايت سنگين آن يكي از حروفهاي A تا  F باشد بايد حتما بين اين حروفها و # صفر قرار دهيم تا كامپايلر آن را يك عدد در مبناي هگز بشناسد نه يك حرف انگليسي.

بعد از عمليات جمع نتيجه حاصل جمع در خود انباره قرار مي گيرد.

ادامه نوشته

آموزش ميكرو كنترلر 8051 قسمت سوم (معرفي دستورات)

دستورات JUMP , LOOP , CALL

دستور LOOP

LOOP به معناي حلقه مي باشد كاربرد آن در 8051 براي تكرار يك رشته دستورات مي باشد به كمك اين دسور مي توان تعداد خيلي زيادي از دستورات را تكرار كرد كه اگر بخواهيم آن دستورات را تك تك بنويسيم هم طول برنامه زياد مي شود و حجم برنامه كه باعث مي شود ROM 8051 به راحتي پر شود.قالب دستور به اين صورت مي باشد: DJNZ   ERG,LABEL

از اين دستور بيشتر براي ايجاد حلقه هاي تاخيري و شمارنده بكار مي رود. براي مثال كاربرد آن را در تاخير با يك مثال روشن مي كنيم:

            MOV  R1,#09H

LOOP:   MOV  R2,#05H

MGH1:  DJNZ  R2,MGH1

            DJNZ  R1,LOOP

ادامه نوشته

آموزش ميكرو كنترلر 8051 قسمت دوم (معرفي دستورات)

دستور EQU  و DB  

البته اين دو دستور جزء قالب هاي دستوري 8051 نيست يعني اصلا ميكرو چنين دستوري را ندارد و اجرا هم نمي كند. اين دو دستور را فقط كامپايلر ها مي شناسد كه به رهنمون هم معرف هستند اينها براي راحتي كار و برنامه نويسي هستند.

EQU به كمك اين دستور مي توان يه متغير تهريف كنيم مثلا ما در يك پروژه داريم كه در آن يك كليد به نام OK وجود دارد ما مي خواهيم OK را روي بيت 3 از پورت 2 قرار دهيم يعني اينكه P2.3=OK براي راحتي كار در طول برنامه ممكن از اين كليد بخواهيم زياد استفاده كنيم به همين دليل اول برنامه اين بيت را به متغيير OK نسبت مي دهيم به روش زير:

OK   EQU  P2.3

…………………….

JB  OK,LOOP

ادامه نوشته

آموزش ميكرو كنترلر 8051 قسمت اول (سخت افزار)

قبل از همه چيز چرا 8051 ؟

ميكروکنترلر 8051 پايه و اساسي است براي يادگيري ديگر ميكروكنترلر ها دستورات اسمبلي اين ميكرو نسبت به AVR خيلي كمتر هست و داراي امكانات كمتري نسبت به ديگر ميكرو ها است به همين دليل يادگيري و فهم آن خيلي راحت و آسان مي باشد كه براي شروع ابتدا بايد مفاهيم منطق و ديجيتال را خوب فهميده باشيد و بعد از آن بايد سخت افرار 8051 و RAM و ROM داخلي آن را درك كرده باشيد تا بتوانيد يك برنامه كاربردي بنويسيد تا يك پروسه را كنترل كند. خيلي ها براي يادگيري ميگن كه ما كه مي خواهيم برنامه نويسي ميكرو را ياد بگيرم پس بهتر بالاترين ميكرو يعني AVR يا PIC ياد بگيريم در صورتي كه به نظر من كاملا اشتاه بوده و كار غلطي است كه اگه بخواهيد تا آخر ادامه دهيد كاري طاقت فرسا خواهد بود. مثل اين خواهد بود كه سقف طبقه اول يك ساختمان را درست نكرده باشيم و بخواهيم طبقه دوم را درست كنيم. در اين وبلاگ من تا بتوانم به زبان ساده و روان مطالب را بيان خواهم كرد كه البته اگه يكم علاقه و پشتكار داشته باشد مطمئن باشيد به ميكرو مسلط خواهيد شد و مي توانيد آن را به راحتي برنامه ريزي كنيد. قيمت اين ميكرو خيلي ارزان مي باشد در حدود 1000 تومان و حافظه ROM آن قابل پاك كردن و استفاده مجدد مي باشد پس شما به راحتي مي توانيد در خانه يا محل كار براي راحتي خود و افراد خانواده چيزهايي با آن بسازيد كه آدم باورش نشه كه اينو خودش ساخته و طراحي كرده.

ادامه نوشته

طرز كار LCD ماتريسي كدها و دستورالعمل ها و مثال (ال سي دي 1*16 و 2*20)

پايه E: (فعال) LCD از اين پايه براي لچ كردن اطلاعات ارانه شده به پايه هاي داده اش استفاده مي كند. وقتي داده به پايه هاي داده اعمال شد، يك پالس بالا-پايين با اين پايه، اعمال مي گردد تا به اين وسيله LCD داده موجود در پايه هاي داده را لچ كند. اين پالس حداقل بايد 450 نانو ثانيه عرض داشته باشد.MGH

ادامه نوشته

شمارنده 3رقمي به زبان اسمبلي COUNTER

اين شمارنده به زبان اسمبلي نوشته شده و از 000 تا 999 را مي شمارد و با رسيدن به عدد 999 تمام ثبات ها و حافظه هاي مورد استفاده شده را ريست مي كند و از نو شروع به شمارش مي كند اين روند همين طور ادامه دارد. همانطور كه ميدانيد به علت بالا بودن سرعت ميكروكنترلر (اگر از كريستال 11.0592 مگاهرتزي استفاده شود سرعت اجراي هر دستور توسط ميكر حدود 1.085 ميكرو ثانيه مي شود) اگر بخواهيم از يك پورت ميكرو اطلاعاتي بخوانيم (بستگي به شرايط برنامه دارد) بايد از يك تاخير استفاده كنيم. مثلا من در اين شمارنده از يك كليد براي شمارش استفاده كرده ام (با هر بار فشار داده يك عدد به عدد قبلي اضافه مي كند) كه اگر از برنامه تاخيري استفاده نكنم با هر بار فشار دادن كليد به علت بالا بودن سرعت ميكرو  اين كليد را بيش از هزار بار از زير دست من مي خواند و مي بينيم كه يك دفعه شمارنده يك عدد بسيار بزرگي را به ما نشان مي دهد. MGH

ادامه نوشته