zakagadir Admin
عدد المساهمات : 3267 تاريخ التسجيل : 17/11/2007
| موضوع: ميكروكونتروللر 8051 الأربعاء سبتمبر 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 .................................................. ................................................ | |
|
zakagadir Admin
عدد المساهمات : 3267 تاريخ التسجيل : 17/11/2007
| موضوع: رد: ميكروكونتروللر 8051 الأربعاء سبتمبر 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 يستخدم بشكل عام فى الادخال و الاخراج | |
|
zakagadir Admin
عدد المساهمات : 3267 تاريخ التسجيل : 17/11/2007
| موضوع: رد: ميكروكونتروللر 8051 الأربعاء سبتمبر 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 الداخلية المخازن المستخدمة للاغراض العامة تنقسم كما هو بالشكل
General-Purpose RAM[center]--------------------------------------------------------- نلاحظ انه لدينا عدد ( 210 ) موقع فى الذاكرة يتم استدعاؤهم على مستوى البت 210 (128+82) Bit-Addressable RAM و الفكرة هنا هى امكانية الوصول و التعامل مع كل خانة Bit داخل مجموعة من البايت Bytes كل على حدا من خلال البرنامج ، مما اعطى ميزة قوية جداً للميكروكونتروللر . و الرسم التالى يوضح اماكن هذه المجموعة داخل الذاكرة :- توضيح لمنطقة الاغراض العامة و موقع الـ 128 موقع الذين يتم استدعاؤهم على مستوى البت 128 General-Purpose Bit-Addressable Locations و الان يمكننا وضع قيمة 1 داخل البت رقم 3 داخل البايت ذات العنوان ( 25H ) بالامر التالى :- SETB 2BH [/size] | |
|
zakagadir Admin
عدد المساهمات : 3267 تاريخ التسجيل : 17/11/2007
| موضوع: رد: ميكروكونتروللر 8051 الأربعاء سبتمبر 10, 2008 6:03 pm | |
| ترتيب الذاكرة معظم المعالجات تنجز تداول البيانات و اوامر البرنامج من خلال المشاركة السريعة للذاكرة بينهما ، فكل من البيانات و الاوامر البرمجية تكون مقيمة فى الذاكرة العشوائية للميكروكونتروللر RAM بينما نجد دائماً ان اوامر التحكم فى البرنامج تكمن فى الذاكرة الدائمة ROM الذاكرة الداخلية للميكروكونتروللر تحتوى على كل من ROM و RAM و نجد ان الـ RAM تحتوى على عدد كبير من المخازن المستخدمة فى الاغراض العامة general-purpose storage و بعضها يستخدم كمخازن يمكن استدعاوها على مستوى البت bit addressable storage و البعض الاخر يستخدم كمصفوفة مخازن register banks و هناك مخازن لها وظائف خاصة special function registers. == SFR
الرسم التالى يوضح تقسيم الذاكرة RAM الداخلية
المخازن المستخدمة للاغراض العامة تنقسم كما هو بالشكل General-Purpose RAM نلاحظ انه لدينا عدد ( 210 ) موقع فى الذاكرة يتم استدعاؤهم على مستوى البت 210 (128+82) Bit-Addressable RAM و الفكرة هنا هى امكانية الوصول و التعامل مع كل خانة Bit داخل مجموعة من البايت Bytes كل على حدا من خلال البرنامج ، مما اعطى ميزة قوية جداً للميكروكونتروللر .
و الرسم التالى يوضح اماكن هذه المجموعة داخل الذاكرة [center] توضيح لمنطقة الاغراض العامة و موقع الـ 128 موقع الذين يتم استدعاؤهم على مستوى البت 128 General-Purpose Bit-Addressable Locations و الان يمكننا وضع قيمة 1 داخل البت رقم 3 داخل البايت ذات العنوان ( 25H ) بالامر التالى :-SETB 2BH
مصفوفات المخازن Register Banks يتم التعامل هنا مع المخازن كالتالى : - لقراءة محتويات الموقع رقم ( 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).
و الان نتعرف على مخازن الوظائف الخاصة (SFR)
21 Special Function Registers (SFR) | |
|
zakagadir Admin
عدد المساهمات : 3267 تاريخ التسجيل : 17/11/2007
| موضوع: رد: ميكروكونتروللر 8051 الأربعاء سبتمبر 10, 2008 6:05 pm | |
| Special Function Registers
SFR الجدول التالى يوضح موقع كل من الـ accumulator و المخزن المساعد B الرسم التالى يوضح موقع ال منفذ ( 1 ) ( port 1 ) العنوان من (90H ) الى (97H )
Program Status Word
PSW يحتوى الـ 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 [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
كيفية اختيار المخزن داخل كل مصفوفة يتم ذلك من خلال تحديد قيم ( 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)
بما اننا نعمل على ميكرو 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)
P هذا العلم يستخدم لعمل فحص لعدد الـ ( 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 يستخدم ال( 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)
عبارة عن مخزن سعته 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
و الان جاء الدور لنتحدث عن المخازن التى تحمل القيم المارة عبر منافذ الادخال و الاخراج ( 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 على عدد 2 مؤقت بسعة 16 بت يطلق عليهم ( ( TL0 and TL1. يتم تشغيل المؤقت من خلال ضبط مخازن الحالة (TMOD) و كذلك مخازن التحكم (TCON) . و من المعروف ان مخازن التحكم (TCON) يتم التعامل معها على مستوى البت
Serial Port Registers
مخازن منفذ التوصيل التسلسلى - من المعروف ان الميكروكونتروللر 8051 له منفذ توصيل تسلسلى للاتصال بالجهزة التى تعمل على ارسال و استقبال البانات التسلسلية مثل ( الفأرة – لوحة المفاتيح – الموديم – او حتى الاتصال باى دائرة متكاملة تعتمد على نقل البيانات المتسلسل مثل محولات الاشارات التماثلية Analog الى رقمية Digital و مخازن الترحيل Shift Register و الذاكرة RAM و ....... ...... ..... الخ ) . - يتم تخزين البيانات المراد نقلها ( مرسلة او مستقبلة ) داخل مخزن مستقل عند العنوان 99H و يسمى SBUF (serial data buffer) . - و يوجد كذلك مخزن للتحكم فى عدة لنواع من الاتصال التسلسلى يسمى SCON (serial port control register). المخزن يمكن التعامل معه على مستوى البت
Interrupt Registers
مسجلات الاعاقة ( الطوارئ ) - هذه المسجلات تكون غير نشطة عقب التشغيل مباشرة و لا تنشط الا من خلال المخزن الخاص بها interrupt enable register ==IE عند العنوان A8H . - و لدينا اكثر من نوع من الاعاقات يمكن ان تحدث عبر هذا السجل و تسجل الاولويات عبر مخزن الاولويات priority register ==IP عند العنوان B8H . - كل من مخزن الاعاقة و مخزن الاولويات يتم التعامل معه على مستوى البت .
Power Control Register
مخزن التحكم بالطاقة -يحتوى هذا المخزن على مجموعة من الاعلام الهامة جداً ، نفصلها فيما يلى :-
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 - عند استخدام الذاكرة الخارجة يكون المنفذ رقم ( 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 - طبعاً سيتسأل الجميع عن آلية عمل الــ ( multiplexed arrangement ) ؟؟؟؟؟؟؟؟؟ الموضوع بسيط جداً و يتم كما يلى :- - خلال النصف الاول من دورة الذاكرة ( memory cycle ) القيمة السفلى فى العنوان low-byte تظهر على المنفذ رقم ( 0 ) (Port 0 )و يتم الحتفاظ به بواسطة ( ALE ) و التى ترسلها الى متكاملة التخزين ( 74HC373 ) و التى تحفظها خلال كل الدورة (duration of the memory cycle ) - خلال النصف الثانى من الدورة يستخدم المنفذ رقم ( 0 ) (Port 0 ) كناقل بيانات (( يكتب او يقرأ حسب طبيعة العملية )) .
|
| |
|