سوني مبايل SONY MOBILE
هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.

سوني مبايل SONY MOBILE


 
الرئيسيةأحدث الصورالتسجيلدخول

 

 ميكروكونتروللر 8051

اذهب الى الأسفل 
كاتب الموضوعرسالة
zakagadir
Admin
zakagadir


عدد المساهمات : 3267
تاريخ التسجيل : 17/11/2007

ميكروكونتروللر 8051 Empty
مُساهمةموضوع: ميكروكونتروللر 8051   ميكروكونتروللر 8051 Emptyالأربعاء سبتمبر 10, 2008 5:58 pm

عائلة MCS-51
احدى عائلات الميكروكونتروللر و التى تم تصميمها و انتاجها بواسطة شركة انتل ثم ظهرت بعض الشركات الاخرى لتنتج نفس العائلة مثل :-
Advanced Micro Devices (AMD)
Siemens
Fujitsu
Philips
و كانوا حاصلين على الترخيص بانتاج هذا الجيل .
تم طرح المنتج المعروف بـ ( 8051 ) كتطوير لهذا الجيل تجارياً و تتلخص خصائصه فى الاتى :
1- ذاكرة تخزين داخلية ثابتة من النوع ( ROM ) بسعة 4 كيلوبايت مع امكانية
الاتصال بذاكرة خارجية من نفس النوع بسعة 64 كيلوبايت كحد اقصى .
2- ذاكرة تداول داخلية عشوائى من النوع ( RAM ) بسعة 128 بايت
مع امكانية التوصل بذاكرة خارجية من نفس النوع بسعة 64 كيلو بايت كحد اقصى
3- عدد ( 4 ) منافذ توصيل كل منها بسعة 8 بت للادخال و الاخراج .
4- عدد ( 2 ) مؤقت بقدرة 16 بت .
5- امكانية الاتصال التسلسلى .
6- معالج منطقى ALU
7- عدد 210 موقع فى الذاكرة يمكن استدعاؤها على مستوى البت .
8- زمن تنفيذ عملية الضرب او القسمة هو 4 مللى ثانية .
ثم ظهر بعد ذلك عدة اجيال كتطويرات لهذا الجيل تتلخص فى التالى :
.................................................. ...............................................
hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
8051 -------> 4K ROM , 128B RAM , 2 timer/counter
8031 -------> 0 ROM , 128B RAM , 2 timer/counter
8751 -------> 4K EPROM , 128B RAM , 2 timer/counter

8052 -------> 8K ROM , 256B RAM , 3 timer/counter
8032 -------> 0 ROM , 256B RAM , 3 timer/counter
8752 -------> 8K EPROM , 256B RAM , 3 timer/counter

.hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
.................................................. ................................................
الرجوع الى أعلى الصفحة اذهب الى الأسفل
https://sonymobile.ahlamontada.net
zakagadir
Admin
zakagadir


عدد المساهمات : 3267
تاريخ التسجيل : 17/11/2007

ميكروكونتروللر 8051 Empty
مُساهمةموضوع: رد: ميكروكونتروللر 8051   ميكروكونتروللر 8051 Emptyالأربعاء سبتمبر 10, 2008 5:59 pm

منافذ الادخال و الاخراج للميكروكونتروللر 8051

----------------------------------------------------------

.................................................. .....
- عدد 32 طرف من اجمالى 40 طرف يمثلون منافذ الادخال و الاخراج مقسمين الى نوعين :-
أ) عدد 8 طرف ( يمثلون Port 1 ) لهم وظيفة وحيدة و هى الادخال و الاخراج .
ب) عدد 24 طرف ( يمثلون Port 0 , Port 2 , Port 3 ) ولهم اكثر من وظيفة (
اطراف ادخال و اخراج – خطوط تحكم – جزء منهم يستخدم للعنونة او نقل
البيانات ((( ناقلات عناوين او بيانات ))) .- يمكن التعامل مع كل 8 اطراف
(تمثل منفذ 8 بت ) على انها وحدة واحدة عند التعامل مع المسارات المتوازية
مثل ( الطابعة – محولات الاشارات التناظرية الى رقمية ........ الخ ) .
- و كذلك يمكننا التعامل مع كل طرف ( من الاطراف الثمانية فى كل منفذ )
على حدا (( نعتبرها مفاتيح ببتحكم فى اضاءة LED او كنبضة لتشغيل ثايريستور
– ا نبضة لتشغيل موتور Stepper )) .
.................................................. .................................................. .......
منافذ الادخال و الاخراج
المنفذذ ( 0 ) Port 0
-----------------------
منفذ متعدد الاغراض و يحتل الاطراف ( من 32 الى 29 ) فى الميكروكونتروللر 8051 .
و يتم استخدامه فى الاغراض البسيطة كمنفذ ادخال او اخراج فقط .
اما فى التصميمات المتقدمة فيستخدم كناقل للعناوين او البيانات .
المنفذ ( 1 ) Port 1
-----------------------
يستخدم لغرض وحيد و هو الادخال او الاخراج و يحتل الاطراف ( من 1 الى 8 ) .
المنفذ ( 2 ) –Port 2
-----------------------
منفذ متعدد الاغراض و يحتل الاطراف ( من 21 الى 28 ) فى الميكروكونتروللر 8051 .
و يستخدم بشكل عام فى الادخال و الاخراج .
كما يمكنه استخدامه كناقل للعناويين ( فى حالة الاتصال بذاكرة ROM ) او ( الاتصال بذاكرة RAM اكبر من 256 )
المنفذ ( 3 ) Port 3
-----------------------
منفذ متعدد الاغراض و يحتل الاطراف ( من 10 الى 17 ) فى الميكروكونتروللر 8051
يستخدم بشكل عام فى الادخال و الاخراج
الرجوع الى أعلى الصفحة اذهب الى الأسفل
https://sonymobile.ahlamontada.net
zakagadir
Admin
zakagadir


عدد المساهمات : 3267
تاريخ التسجيل : 17/11/2007

ميكروكونتروللر 8051 Empty
مُساهمةموضوع: رد: ميكروكونتروللر 8051   ميكروكونتروللر 8051 Emptyالأربعاء سبتمبر 10, 2008 6:01 pm

نتعرف على اشارات التحكم

---------------------------------------
PSEN

------------
Program Store Enable
–يستخدم
لاخراج اشارة على الطرف رقم 29 و التى يتم توصيلها على الذاكرة الخارجية
(ROM). ((( اذا تم استخدام ذاكرة خارجية ))) ، و هى تعبر عن اشارة التحكم
فى الشريحة لجعلها فعالة Enabled او غير فعالة Disabled حيث يتم فعلياً
بتوصيلها على الطرف الخاص بالتفعيل ( OE == Output Enable ) للذاكرة
الخارجية للسماح بقراء الكود المخزن عليها .
- هذه الاشارة تعتمد على التفعيل السلبى ( Active Low ) بمعنى اننا نخرج عليها 0 للسماح بعملية القراءة من الذاكرة الخارجية .
- الكود الثنائى المعبرعن البرنامج ( يسمى Opcode ) يتم قرائته من الذاكرة
الخارجية EEPROM و يتم نقله عبر ناقل البيانات و يخزن على
الميكروكونتروللر 8051 على مخازن التعليمات instruction register (IR)
ليتم اعادة ترجمته decoding و تنفيذه .
[size=12]ALE
-------------
Address Latch Enable
- اشارة خرج تظهر على الطرف رقم 30
-تستخدم فى فك التكويد الخاص بناقل البيانات و ناقل العناوين و يتم ذلك كالتالى :-
عندما يعمل المنفذ رقم 0 كناقل للبيانات تعبر الـ ALE عن الاشارة التى
تخزن العنوان على مخزن خارجى خلال النصف الاول من دورة الذاكرة first-half
of a memory cycle و بالتالى يكون خطوط المنفذ رقم 0 متاحة لادخال او
اخراج البيانات .
خلال النصف الثانى من دورة الذاكرة second-half of the memory cycle يكون نقل البيانات قد تم .
- اشارة الـ ALE لها تردد يساوى 1/6 من تردد الميكروكونتروللر و يمكن
استخدامها كنبضة عامة لتشغيل باقى الدوائر الرقمية المتصلة بالنظام .
ُِ
EA

----------

External Access
- اشارة دخل يتم ادخالها على الطرف رقم 31 للميكروكونتروللر 8051
- تأخذ أحد القيمتين ( 0 أو 1 )
القيمة ( 1 ) ، تستخدم إذا أردنا تنفيذ الأوامر المخزنة على الذاكرة
الداخلية للميكروكونتروللر 8051 ، الذاكرة الداخلية محدودة ( 4/8 كيلو )
- القيمة ( 0 ) ، و تستخدم إذا أردنا أن ننفذ الأوامر المخزنة على الذاكرة
الخارجية فقط ( هنا يجب ان تكون اشارات PSEN منخفضة === 0 )
RST
-----------
Reset
- اشارة دخل يتم ادخالها على الطرف رقم 9 للميكروكونتروللر 8051
- اذا تم ادخال القيمة ( 1 ) (( 5 فولت )) على هذا الطرف لمدة لا تقل عن
زمن تنفيذ دورتين (machine cycles ) يتم تحميل المخازن بالقيم الاولى فى
البرنامج (( يقوم الميكرو بانهاء التطبيقات الحالية و البدء من اول خطوة
))
- فى حالة التشغيل الطبيعية يجب ادخال ( 0 ) على هذا الطرف .
ترتيب الذاكرة
------------------
معظم
المعالجات تنجز تداول البيانات و اوامر البرنامج من خلال المشاركة السريعة
للذاكرة بينهما ، فكل من البيانات و الاوامر البرمجية تكون مقيمة فى
الذاكرة العشوائية للميكروكونتروللر RAM بينما نجد دائماً ان اوامر التحكم
فى البرنامج تكمن فى الذاكرة الدائمة ROM
الذاكرة الداخلية للميكروكونتروللر تحتوى على كل من ROM و RAM
و نجد ان الـ RAM تحتوى على عدد كبير من المخازن المستخدمة فى الاغراض
العامة general-purpose storage و بعضها يستخدم كمخازن يمكن استدعاوها على
مستوى البت bit addressable storage و البعض الاخر يستخدم كمصفوفة مخازن
register banks و هناك مخازن لها وظائف خاصة special function registers.
== SFR
الرسم التالى يوضح تقسيم الذاكرة RAM الداخلية
ميكروكونتروللر 8051 6045_1172368994
المخازن المستخدمة للاغراض العامة تنقسم كما هو بالشكل
General-Purpose RAM
[center]---------------------------------------------------------
ميكروكونتروللر 8051 6045_1172369227
نلاحظ انه لدينا عدد ( 210 ) موقع فى الذاكرة يتم استدعاؤهم على مستوى البت
210 (128+82) Bit-Addressable RAM
و الفكرة هنا هى امكانية الوصول و التعامل مع كل خانة Bit داخل مجموعة من
البايت Bytes كل على حدا من خلال البرنامج ، مما اعطى ميزة قوية جداً
للميكروكونتروللر .
و الرسم التالى يوضح اماكن هذه المجموعة داخل الذاكرة :-
ميكروكونتروللر 8051 6045_1172369913
توضيح لمنطقة الاغراض العامة و موقع الـ 128 موقع الذين يتم استدعاؤهم على مستوى البت
128 General-Purpose Bit-Addressable Locations
ميكروكونتروللر 8051 6045_1172370016
و الان يمكننا وضع قيمة 1 داخل البت رقم 3 داخل البايت ذات العنوان ( 25H ) بالامر التالى :-
SETB 2BH
[/size]
الرجوع الى أعلى الصفحة اذهب الى الأسفل
https://sonymobile.ahlamontada.net
zakagadir
Admin
zakagadir


عدد المساهمات : 3267
تاريخ التسجيل : 17/11/2007

ميكروكونتروللر 8051 Empty
مُساهمةموضوع: رد: ميكروكونتروللر 8051   ميكروكونتروللر 8051 Emptyالأربعاء سبتمبر 10, 2008 6:03 pm

ترتيب الذاكرة

معظم المعالجات تنجز تداول البيانات و اوامر البرنامج من
خلال المشاركة السريعة للذاكرة بينهما ، فكل من البيانات و الاوامر
البرمجية تكون مقيمة فى الذاكرة العشوائية للميكروكونتروللر RAM بينما نجد
دائماً ان اوامر التحكم فى البرنامج تكمن فى الذاكرة الدائمة ROM
الذاكرة الداخلية للميكروكونتروللر تحتوى على كل من ROM و RAM
و نجد ان الـ RAM تحتوى على عدد كبير من المخازن المستخدمة فى الاغراض
العامة general-purpose storage و بعضها يستخدم كمخازن يمكن استدعاوها على
مستوى البت bit addressable storage و البعض الاخر يستخدم كمصفوفة مخازن
register banks و هناك مخازن لها وظائف خاصة special function registers.
== SFR


الرسم التالى يوضح تقسيم الذاكرة RAM الداخلية

ميكروكونتروللر 8051 Intro4ram
المخازن المستخدمة للاغراض العامة تنقسم كما هو بالشكل
General-Purpose RAM

ميكروكونتروللر 8051 Intro5
نلاحظ انه لدينا عدد ( 210 ) موقع فى الذاكرة يتم استدعاؤهم على مستوى البت
210 (128+82) Bit-Addressable RAM

و الفكرة هنا هى امكانية الوصول و التعامل مع كل خانة Bit
داخل مجموعة من البايت Bytes كل على حدا من خلال البرنامج ، مما اعطى ميزة
قوية جداً للميكروكونتروللر .

و الرسم التالى يوضح اماكن هذه المجموعة داخل الذاكرة
[center]ميكروكونتروللر 8051 Intro6
توضيح لمنطقة الاغراض العامة و موقع الـ 128 موقع الذين يتم استدعاؤهم على مستوى البت
128 General-Purpose Bit-Addressable Locations

ميكروكونتروللر 8051 Intro7
و الان يمكننا وضع قيمة 1 داخل البت رقم 3 داخل البايت ذات العنوان ( 25H ) بالامر التالى :-
SETB 2BH

مصفوفات المخازن

Register Banks

ميكروكونتروللر 8051 Intro8

يتم التعامل هنا مع المخازن كالتالى :
- لقراءة محتويات الموقع رقم ( 05H ) ووضع القيمة فى الـ accumulator
1- استخدام اسم المخزن :-
MOV A, R5
( هذا الامر يأخذ بايت واحد كى يتم التفيذ )
2- استخدام عنوان النخزن :-
MOV A, 05H
( هذا الامر يأخذ 2 بايت كى يتم التنفيذ )
- حدد الموقع فى الذاكرة الذى سيتم كتابة القيمة المخزنة فى الـ accumulator اليه .
SETB RS1
SETB RS0
MOV R0, A

من الواضح هنا انه تم وضع 1 فى المخازن ذات الاستخدامات
الخاصة (RS1 وRS0 ) بالتالى يتم الاشارة الى المصفوفة رقم (3)Bank 3 و
التى تبدأ بالعنوان ( 18H )
حيث سيتم وضع قيمة الـ داخل المخزن رقم ( 0 ) فى المصفوفة ( 3 ) اى العنوان ( 18H).

ميكروكونتروللر 8051 Intro9
و الان نتعرف على مخازن الوظائف الخاصة (SFR)

21 Special Function Registers (SFR)
الرجوع الى أعلى الصفحة اذهب الى الأسفل
https://sonymobile.ahlamontada.net
zakagadir
Admin
zakagadir


عدد المساهمات : 3267
تاريخ التسجيل : 17/11/2007

ميكروكونتروللر 8051 Empty
مُساهمةموضوع: رد: ميكروكونتروللر 8051   ميكروكونتروللر 8051 Emptyالأربعاء سبتمبر 10, 2008 6:05 pm









Special Function Registers

SFR

الجدول التالى يوضح موقع كل من الـ accumulator و المخزن المساعد B
ميكروكونتروللر 8051 6045_1173386904
الرسم التالى يوضح موقع ال منفذ ( 1 ) ( port 1 ) العنوان من (90H ) الى (97H )
ميكروكونتروللر 8051 6045_1173387270
Program Status Word

PSW
ميكروكونتروللر 8051 6045_1173387462
يحتوى الـ PSW على التالى :-
Carry flag

CY

يستخدم اثناء عمليات الجمع او الطرح حيث يخزن فيه 1 اذا ما
ظهر لدينا قيمة تنتقل الى خانة اعلى او عند الطرح و ظهور رقم اقل من
امطروح منه .
الامثلة التالية تحدد وظيفة الـ Carry :-

1-
MOV A, #FFFH
ADD A, #1


ما هى حالة الـ Cary Flag ؟
FFH+1H=100H
هنا نجدأن:-
A=#00 , CY = 1

2-
MOV R5, #55H
MOV A, #0AAH
ADD A, R5
[/SIZE];
ما هى حالة الـ Cary Flag ؟

0AAH+55H = 0FFH

هنا نجد أنه لا يوجد باقى
A=FFH and CY=0 (No Carry)

Auxiliary Carry flag
AC

ميكروكونتروللر 8051 6045_1173387855
[SIZE="4"
]
- عند التعامل مع نظام التكويد العشرى على هيئة ثنائى ( BCD ) و تحديداً
عند عمل إضافة فانه عند الانتقال من الخانة الثالثة الى الخانة الرابعة
فانه ( AC ) تحمل الرقم 1 .
- مثال لتوضيح استخدام ( AC )
مطلوب معرفة حالة ( AC ) و محتوى المسجل ( Accumulator ) بعد تنفيذ التتابع التالى :-

MOV R5, #1;
MOV A, #9;
ADD A, R5

;
الاجابة :-
لفهم هذا المثال يلزم مراجعة الانظمة العددية ( ليست مجال الموضوع حالياً )

A=10H (BCD) =1010 = 00010000B , AC=1
Register bank select bit
RS1 and RS0

ميكروكونتروللر 8051 6045_1173388238

كيفية اختيار المخزن داخل كل مصفوفة
يتم ذلك من خلال تحديد قيم ( D3 & D4 ) داخل الـ ( PSW )
و ذلك من خلال عمل تكويد بسيط يحمل اربع قيم ( 0 ، 1 ، 2 ، 3 ) و كل فيمة تعبر عن رقم المصفوفة المستخدمة .
(
RS1, RS0 ) à ( 0 , 0 ) à ( Regester Bank 0 is Selected )
( RS1, RS0 ) à ( 0 , 1 ) ---> ( Regester Bank 1 is Selected )
( RS1, RS0 ) à ( 1 , 0 ) ---> ( Regester Bank 2 is Selected )
( RS1, RS0 ) ---> ( 1 , 1 ) à ( Regester Bank 3 is Selected
)
و يتم التحكم فى هذه القيم من خلال الأوامر التالية :-
SETB RS1; CLR RS0

هنا تم ضبط نظام التكويد الى الوضع ( RS1, RS0 ) = ( 1 , 0 ) و من ثم اختيار المصفوفة Regester Bank 2
لاحظ وظيفة الامر SETB و التى يمكن استخدامها مع اسم (( SFR او عنوانها مباشرة

SETB RS1 (= SETB 0D4H)
SETB RS0 (=SETB 0D3H)



Overflow Flag
OV

ميكروكونتروللر 8051 6045_1173388633
بما
اننا نعمل على ميكرو 8 بت فمن ثم فاننا محددين بقيم فى المدى ( 127 الى
–128 ) حيث ان الاعداد المستخدم كقيمة عظمى هى ( 2^8 = 256 ) و يتم
توزيعهم كالتالى
( 1 : 127 & 0 & -1 : -128 )
و من ثم فإن اى عملية حسابية يجب ان يكون الرقم الناتج عنها فى نطاق
(-128 < X < 127 ) و اذا كان خلاف ذلك يحمل المخزن ( OV ) القيمة ( 1 ) .
مثال توضيحى :-
MOV R7, #0FFH;
MOV A, #0FH;
ADD A, R7

مطلوب تحديد حالة الـ OV
R7=11111111
لتحويل هذا الرقم الى النظام العشرى:-
راقب الصورة العامة تجدها ( 1xxxxxxx
) و التى تعنى ان الرقم سالب لذلك نحول كل ( 0 ) الى ( 1 ) و كل ( 1 ) الى
( 0 ) ثم اجمع ( 1 ) على الناتج و اكتب الرقم بالشارة السالبة .
(00000000+1= - 00000001 so (( R7 = -1))
A=00001111 (15)
راقب الصورة العامة تجدها ( 0xxxxxxx ) و التى تعنى ان الرقم موجب اى ان A= 15
A=-1+15=14 =0EH< 127 so OV=0 --No overflow)
الموضوع هنا يحتاج الى وقفة :-

اتفقنا ان الاعداد بين (127 : – 128 ) ، إذن كيف يتم التعبير عنها ؟؟؟؟
الرقم ( 0 ) هو ( 00000000 )
الارقام الموجبة تكتب على الصورة ( 0xxxxxxx ) اى من ( 00000001 ) = ( 1 ) الى ( 01111111) = ( 127 ) .
الارقام السالبة تكتب على الصورة (1xxxxxxx ) اى من (10000000) = ( - 128 ) الى ( 11111111 ) = ( - 1 )
A=-1+15=14 =0EH< 127 ------> OV=0 (No overflow)

Parity bit

P

ميكروكونتروللر 8051 6045_1173389127
هذا
العلم يستخدم لعمل فحص لعدد الـ ( 1 ) التى تمر ضمن البيانات الى الـ
Accumulator و تتغير قيمة هذا العلم كل دورة Machine Cycle ، و يحمل العدد
0 اذا كانت الـ 1s زوجية و يحمل القيمة 1 اذا كانت الـ 1 s فردية اى انها
تعبر عن الـ ( ODD Parity Bit ) كالتالى :-
MOV A, #55H
A=01010101B ---> numbers of 1-bit = 4 ----> P=0

B register or B accumulator
ميكروكونتروللر 8051 6045_1173389326
يستخدم ال( Accumulator ( B كمساعد الـ ( Accumulator ( A
- فمثلاً عند عملية الضرب ممكن جداً ان يكون الناتج خارج اطال الـ 8 بت و
من ثم يتم تقسيم ناتج الضرب الى جزئين ( علوى High و سفلى Low ) بحيث تحمل
الـ ( Accumulator ( B القيم العليا بينما يحمل الـ ( Accumulator ( A
القسم السفلى
MUL AB

Results of low-byte in A and high-byte in B.
- و كذلك عند عملية القسمة نجد ان خارج القسمة يتجزأ الى جزئين الارقام
الصحيحة تخزن فى الـ ( Accumulator ( A .. بينما الكسور تخزن فى الــ
Accumulator ( B )

Stack Pointer
SP
هو
مخزن سعته8 بت عند العنوان 81H و يستخدم عند التعامل مع البرامج او
البيانات المخزنة على ذاكرة خارجية ملحقة بالميكروكونتروللر 8051 . و لا
يمكن التعامل معه على مستوى الـبت
Data pointer (DPTR)
ميكروكونتروللر 8051 6045_1173389435

عبارة عن مخزن سعته 16 بت (16-bit register) وو يستخدم فى الاحتفاظ
بعناويين البيانات و يمكنه الاشارة الى عناوين حتى 64 كيلو و من ثم يستخدم
غالباً عند التعامل مع الذاكرة الخارجية و هومنقسم الى جزئين علوى و سفلى
:-
DPH: Data Pointer High-byte----> at 83H
DPL: Data Pointer Low-byte-----> at 82H
و
له استخدامات هامة للتعامل مع الذاكرة الخارجية حيث انه يشير الى عناوين
البيانات و تصل حجم البيانات الى 16 بت ( 2^16 ) == ( 64 كيلوبت ) و
المثال التالى يوضح احد استخداماته :-
MOV A, #55H è A=55H
MOV DPTR, #1000H è DPTR=1000H (16-bit)
MOVX @DPTR, A

---> Move the content of A to the external RAM location whose address is in DPTR==1000H
الامر الاخير يقوم بتحويل القيم المخزنة فى ال ( Accumulator ( A الى
العنوان المخزن على الـ Data pointer (( لاحظ انه يشير لعنوان خارج نطاق 4
كيلو و من ثم فانه يشير لبيانات مخزنة فى ذاكرة خارجية )) .

Port Registers

ميكروكونتروللر 8051 6045_1173390122

و الان جاء الدور لنتحدث عن المخازن التى تحمل القيم المارة عبر منافذ الادخال و الاخراج ( Port 0 & 1 & 2 & 3 ) .
نلاحظ ان المنافذ (Port 0 & 2 & 3 ) قد لا تكون لاستخدامات
الادخال و الاخراج اثناء التعامل مع الذاكرة الخارجية أو فى حالة استخدام
بعض الامكانات الخاصة بالميكروكونتروللر 8051 مثل التعامل مع ( interrupt.
Serial port ) و بالرغم من ذلك نجد ان المنفذ ( Port 1 ) مستخدم دائماً و
ابداً كمنفذ اخال و اخراج و كذلك يمكننا التعامل معه على مستوى البت , و
من ثم يمكن ادارة و ايقاف عدد 8 محركات من خلال اشارة خرج على الاطراف
الثمانية المتاحة كالتالى :-


SETB P1.7 (=SETB 97H)---> might turn the motor ON
CLR P1.7 (=CLR 97H)----> might turn the motor OFF.

Timer Registers

ميكروكونتروللر 8051 6045_1173390291

يحتوى الميكروكونتروللر 8051 على عدد 2 مؤقت بسعة 16 بت يطلق عليهم ( ( TL0 and TL1.
يتم تشغيل المؤقت من خلال ضبط مخازن الحالة (TMOD) و كذلك مخازن التحكم (TCON) .
و من المعروف ان مخازن التحكم (TCON) يتم التعامل معها على مستوى البت

Serial Port Registers

ميكروكونتروللر 8051 6045_1173390401

مخازن منفذ التوصيل التسلسلى
- من المعروف ان الميكروكونتروللر 8051 له منفذ توصيل تسلسلى للاتصال
بالجهزة التى تعمل على ارسال و استقبال البانات التسلسلية مثل ( الفأرة –
لوحة المفاتيح – الموديم – او حتى الاتصال باى دائرة متكاملة تعتمد على
نقل البيانات المتسلسل مثل محولات الاشارات التماثلية Analog الى رقمية
Digital و مخازن الترحيل Shift Register و الذاكرة RAM و ....... ......
..... الخ ) .
- يتم تخزين البيانات المراد نقلها ( مرسلة او مستقبلة ) داخل مخزن مستقل عند العنوان 99H و يسمى SBUF (serial data buffer) .
- و يوجد كذلك مخزن للتحكم فى عدة لنواع من الاتصال التسلسلى يسمى SCON (serial port control register).
المخزن يمكن التعامل معه على مستوى البت

Interrupt Registers

ميكروكونتروللر 8051 6045_1173390511

مسجلات الاعاقة ( الطوارئ )
- هذه المسجلات تكون غير نشطة عقب التشغيل مباشرة و لا تنشط الا من خلال المخزن الخاص بها
interrupt enable register ==IE عند العنوان A8H .
- و لدينا اكثر من نوع من الاعاقات يمكن ان تحدث عبر هذا السجل و تسجل
الاولويات عبر مخزن الاولويات priority register ==IP عند العنوان B8H .
- كل من مخزن الاعاقة و مخزن الاولويات يتم التعامل معه على مستوى البت .


Power Control Register

ميكروكونتروللر 8051 6045_1173390634
مخزن التحكم بالطاقة
-يحتوى هذا المخزن على مجموعة من الاعلام الهامة جداً ، نفصلها فيما يلى :-

SMOD

تستخدم لجعل معدل التدفق للبيانات baud rate التسلسلية
يتضاعف baud rate is doubled و ذلك فى حالاتها الثلاث serial port modes
1, 2, and 3 و يتم ذلك بجعلها تحمل القيمة ( 1 )

GF1 & GF0
اعلام متعددة الاغراض
PD

Power down
تستخدم
لتفعيل حالة النوم للميكروكونتروللر حيث يكون كل الوظائف متوقفة و تظل
الذاكرة ( RAM ) محتفظة بالبيانات التى عليها و كذلك تظل ارجل المنافذ
محتفظة بحالتها بينما يتم اجبار كل من (ALE ) و (PSEN ) على البقاء فى
الحالة ( low ) و جهد التغذية (VCC ) المطلوب وقتئذٍ هو ( 2V ) حتى
المذبذب ( oscillator ) يتوقف و للخروج من هذه الحالة هو مفتاح reset .

IDL

Idle mode

يستخدم لتنشيط حالة الخمول .
عند تفعيل هذا العلم ، المذبذب الداخلى (internal clock signal ) يحجب عن
المعالج ( CPU ) بينما تكون حالة المعالج باقية على حالتها و كذلك كل
محتويات المخازن و كذلك تظل اطراف المنافذ محتفظة بحالتها بينما تجبر كل
من ( ALE ) و (PSEN ) على البقاء فى الحالة (high ) .
External Memory
ميكروكونتروللر 8051 6045_1173391098
-
عند استخدام الذاكرة الخارجة يكون المنفذ رقم ( 0 ) (Port 0 ) غير متاح
كمنفذ ادخال و اخراج و لكنه يتحول الى مؤشر للعنوان من (A0 ) الى (A7 ) و
كذلك حامل للبيانات من (D0 ) الى (D7 ) فيما يعرف بـ
multiplexed address and data
و ذلك بالتعاون مع (ALE ) و التى تعمل على حفظ او تخزين الجزء السفلى من
عناوين البيانات (low-byte of the address ) و ذلك فى بداية كل دورة
للذاكرة الخارجية بينما يقوم المنفذ رقم ( 2 ) (Port 2 ) محتفظاً بالجزء
العلوى من عناوين البيانات (high byte of the address )

Accessing External Code Memory
ميكروكونتروللر 8051 6045_1173391243

- طبعاً سيتسأل الجميع عن آلية عمل الــ ( multiplexed arrangement ) ؟؟؟؟؟؟؟؟؟
الموضوع بسيط جداً و يتم كما يلى :-
- خلال النصف الاول من دورة الذاكرة ( memory cycle ) القيمة السفلى فى
العنوان low-byte تظهر على المنفذ رقم ( 0 ) (Port 0 )و يتم الحتفاظ به
بواسطة ( ALE )
و التى ترسلها الى متكاملة التخزين ( 74HC373 ) و التى تحفظها خلال كل الدورة (duration of the memory cycle )
- خلال النصف الثانى من الدورة يستخدم المنفذ رقم ( 0 ) (Port 0 ) كناقل بيانات (( يكتب او يقرأ حسب طبيعة العملية )) .

الرجوع الى أعلى الصفحة اذهب الى الأسفل
https://sonymobile.ahlamontada.net
 
ميكروكونتروللر 8051
الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1
 مواضيع مماثلة
-
» الحلقة الثانية للميكروكونتروللر 8051
» الحلقة الثالثة للميكروكونتروللر 8051

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
سوني مبايل SONY MOBILE :: المساعدة والاقتراحات :: GSM PROGRAMMING-
انتقل الى: