محتويات الموقع
 
 منتديات سوريا ستار
 استضافة المواقع
 ركن التعارف
 الدردشــــة
 البطاقات والإهداء
 مكتبة البرامج
 مكتبة الدروس
 مكتبة السكربتات
 كتب علمية وتعليمية
 مكتبة الصور
 أحوال الطقس
 أسعار العملات
 عالم الألعاب
 الأبراج الفلكية
 دليل المواقع
 أكواد جافا
 عالم الطرب الأصيل
 أخبار وجرائم
  جديد
   
 
 
استضافة المواقع
 
 تصميم المواقع
 استضافة المواقع
 صيانة المواقع
 مواقع للبيع
 
 
عالم الألكترون
 
 المدخل الى عالم الألكترون
المتحكمات الصغيرة
 برامج الالكترون
 كتب ودروس
 مشاريع ودارات ألكترونية
 
 
 
 
 مجموعة التعليمات
 
 

العودة للسابق

مجموعة التعليمات 

INSTRUCTION SET

ما هي مجموعة التعليمات :

إن مجموعة التعليمات هي عبارة عن قائمة الشيفرات التي ينفذها المتحكم Microcontroller أثناء عمله ، وهي سهلة الفهم ولا تعتمد على تركيب لغة الآلة التي ينفذها المتحكم . كأن تعتمد على تركيب اللغة الرمزية (symbolic) المستخدمة لشرح لغة الآلة . تتألف لغة التجميع (Assembly) لمتحكمات Atmel الوميضية فقط من اثنين وأربعين تعليمة لتعطي المتحكمات AT89CXX إمكانية تحقيق ثلاثة وثلاثين تابعا .

يتألف تركيب أكثر تعليما لغة الأسمبلي لمتحكمات Atmel الوميضية من توابع عددية متبوعة بحقل معامل الهدف والمصدر (destination, source) مثال :

(MOV @ R0, Data) وهذه التعليمة تفسر على النحو التالي :

محتويات حجرة ذاكرة المعطيات الداخلية المعنونة بواسطة محتويات المسجل R0 سوف تستقبل محتويات حجرة ذاكرة المعطيات الداخلية المعنونة بواسطة المعطيات Data . وفي كلا معاملي التعليمة عنوان الهدف يصلح أيضا كعنوان المصدر الأول .

مثال (ANL Data, #5) وهذه التعليمة تفسر على النحو التالي :

محتويات حجرة ذاكرة المعطيات الداخلية تستقبل ناتج عملية الضرب المنطقية AND بين محتوى هذه الحجرة والعدد الفوري #5 .

تنظيم مجموعة التعليمات ORGANIZATION OF THE INSTRUCTION

إن مجموعة التعليمات صنفت إلى أربع مجموعات وظيفية وهي :

 

Data Transfer

     أولا : مجموعة نقل المعطيات

   Arithmetic

  ثانيا : المجموعة الحسابية

   Logic

 ثالثا : المجموعة المنطقية

  Control Transfer

رابعا : مجموعة نقل التحكم  

إن المجموعات الحسابية والمنطقية ونقل المعطيات المذكورة في قائمة العمل تكون أيضا مقسمة إلى شيفرات مرتبة ومحددة حسب العمل وتأثيرها على المتحول الفوري ، المسجل RB المختار عن طريق بنك المسجل ، المراكم ، مسجلات الوظائف الخاصة SFR أو حجرات ذاكرية . وعملها إما على الخانة bit أو النيبل nibble أو البايت Byte أو البايت المضاعف Double Byte وأنماط العنونة المستخدمة لذلك.

أولا : مجموعة نقل المعطيات DATA TRANSFER

يقسم عمل تعليمات نقل المعطيات إلى ثلاثة أنواع :

          1 – أغراض عامة .

          2 – مراكم – محدد .

          3 – عنوان – لهدف .

وهذه التعليمات ليس لها تأثير على الإعلام ما عدا تعليمة POP أو تعليمة MOV لمسجل كلمة حالات البرنامج PSW .

 

 1  – تعليمات نقل الأغراض العامة :

وتقسم إلى ثلاثة أقسام حيث تطبق على أكثر المعاملات ما عدا استثناءات محددة .

 MOV : تنفذ نقل خانة أو بايت من معامل المصدر إلى معامل الهدف .

  PUSH : تقوم بزيادة المسجل SP وتنقل البايت من معامل المصدر إلى عنصر المكدس المعنون بواسطة SP .

POP : تحمل معامل البايت من عنصر المكدس المعنون بواسطة المسجل SP إلى معامل الهدف ومن ثم تنقص SP .

2 – تعليمات النقل الخاصة بالمراكم :

تقسم إلى أربعة أقسام وهي :
XCH : تبديل معامل بايت المصدر مع المسجل A ( المراكم ) .
XCHD : تبديل النيبل (nibble) السفلي لمعامل بايت المصدر مع النيبل (nibble) السفلي للمراكم
MOVX : تقوم بتحميل البايت بين ذاكرة المعطيات الخارجية والمراكم A . ويحدد العنوان الخارجي بواسطة المسجل (16-bit)
 DPTR أو المسجل R1 أو R0     (8-Bit) .
MOVE : تقوم بتحميل البايت من ذاكرة البرنامج إلى المسجل A كالتالي :
 

يستخدم المعامل في المسجل A كمؤشر لجدول ذي 256 بايتا وأساس هذا الجدول يتوضع في مسجل مؤشر المعطيات EPTR أو في

 مسجل عداد البرنامج ومعامل البايت المعنون في هذه الطريقة ينتقل إلى المراكم A .

3 – تعليمات نقل عنوان الهدف :

تقوم تعليمة MOV DPTR, # data بتحميل 16-bit من المعطيات الفورية إلى مسجلي الهدف وهما DPL & DPH .

ثانيا : التعليمات المنطقية LOGIC
تنفذ سلسلة متحكمات Atmel الوميضية عمليات منطقية أساسية على كل من معاملات الخانة bit والبايت Byte .
العمليات على معامل وحيد SINGLE-OPERAND OPERATIONS
نستطيع العمل منطقيا مع سبعة معاملات وحيدة وهي مقسمة كالتالي :
·       CLR : وتستخدم لتصفير reset إما المراكم A أو علم الحمل C أو أي خانة معنونة عنونة مباشرة كي تجعلها صفرا (0) .
·       SETB : تضع ( تمكن ) (set) إما الخانة C أو أي خانة معنونة عنونة مباشرة كي تجعلها واحدا (1) .
·       CPL : تستخدم هذه التعليمة لإتمام محتويات المراكم A أو لإتمام علم الحمل C أو لإتمام أي خانة معنونة عنونة مباشرة .
·       SWAP, RRC, RR, RLC, RL : وهي خمس عمليات تدوير تنفذ على المراكم RL:A ( تدوير نحو اليسار ) ، RR ( تدوير نحو
اليمين ) ، RLC ( تدوير نحو اليسار عبر علم الحمل ) ، RRC ( تدوير نحو اليمين عبر علم الحمل ) ، SWAP ( تدوير أربع مرات
 نحو اليسار لخانات المراكم ) ، وبالنسبة لتعليمتي RCL و RRC فإن علم الحمل يصبح مساويا للخانة السابقة المدورة نحو الخارج .
تدور تعليمة SWAP خانات المراكم A نحو اليسار أربع مرات لتبدل الخانات 3÷5 بالخانات 7÷4 .
العمليات على معاملين TWO-OPERAND OPERATIONS
ANL : تنجز الضرب المنطقي لمعاملي المصدر ( من أجل كل من معامل الخانة ومعامل البايت ) ويتوضع الناتج في المعامل الأول .
ORL : تنجز عملية OR المنطقية على معاملي المصدر ( من أجل كل من معامل الخانة ومعامل البايت ) ويتوضع الناتج في المعامل الأول .
XRL : تنجز عملية XOR المنطقية على معاملي المصدر ( يكون المعاملان بطول بايت ) ويتوضع الناتج في المعامل الأول.

ثالثا : التعليمات الحسابية ARITHMETIC

تقوم متحكمات Atmel الوميضية بتنفيذ أربع عمليات حسابية أساسية حيث تستخدم معاملات ذات طول 8-bit ، وتقوم بتنفيذ العمليات الحسابية التالية : الجمع ، الطرح ، الضرب ، التقسيم . وفي كل العمليات الأربع يجب أن تكون المعاملات صحيحة وبدون إشارة .

مسجل الأعلام FLAG REGISTER

إن أعلام الحالة الثلاثة OV & AC & CY تأخذ القيمة إما (0) أو (1) وذلك بعد تنفيذ التعليمات الحسابية لتشير إلى خواص ناتج العملية . وهذه الأعلام لا تتأثر بتعليمات الزيادة أو الطرح . ويعبر علم التكافؤ P عن حالة خانات المراكم من ناحية الزوجية أو الفردية . والجدول التالي يبين خانات مسجل الأعلام .

·       CY علم الحمل : يكون CY=1 في حال أن ناتج العملية أكبر من FFH وذلك في حالات الإضافة أو الاستعارة للخانة الأكثر أهمية في
 عمليات الطرح . وفي كل الحالات الأخرى يكون
CY=0 .

·       AC علم الحمل المساعد : يكون AC=1 في حال أن ناتج العملية حصل فيه طفحان من خانة النتيجة الثالثة إلى الخانة الرابعة . وفي كل
الحالات الأخرى يكون
AC=0.

·       OV علم الطفحان : يكون OV=1 في حال أن ناتج العملية تعرض إلى حمل من الخانة السادسة إلى الخانة السابعة والعكس بالعكس أي
من الخانة السابعة إلى الخانة الثامنة وفي كل الحالات الأخرى يكون
OV=0 .

·       P علم التكافؤ : يكون P=1 إذا كان العدد الموجود في المراكم A فردي أي أن A.0=1 وفي كل الحالات الأخرى يكون P=0 ليشير إلى أن
العدد الثنائي الموجود في المراكم
A هو عدد زوجي .

 1 – تعليمات الجمع ADDITION

تقسم تعليمات الجمع إلى أربعة أقسام وهي :

INC الزيادة : تقوم بإنجاز الزيادة بمقدار واحد على معامل المصدر وتضع الناتج في نفس المعامل .

ADD الجمع : تقوم بإنجاز الجمع المراكم A ومعامل المصدر الثاني وتضع الناتج في المراكم A .

ADDC الجمع مع الحمل : تقوم بإنجاز الجمع بين المراكم A ومعامل المصدر الثاني وعلم الحمل وتضع الناتج في المراكم A .

DA تعلمية الضبط العشري من أجل أعداد BCD : تقوم بإنجاز عملية التصحيح العشرية للناتج وذلك بعد عملية الجمع الثنائية وتضع الناتج في المراكم A . وعلم الحمل يكون C=1 إذا نتيجة BCD مولدة من 99 وإلا C=0 .

2 – تعليمات الطرح SUBTRACTION

تقسم تعليمات الطرح إلى قسمين وهما :

SUBB طرح مع استعارة : تقوم بإنجاز عملية طرح معامل المصدر الثاني من المعامل الأول ( المراكم A ) ، يطرح واحد (1) إذا كان علم الحمل الموجود في تلك اللحظة C=1 ويضح الناتج في المراكم .

DEC طرح : تقوم بإنقاص معامل المصدر بواحد وتضع الناتج في نفس المعامل .  

3 – تعليمات الضرب MULTIPLICATION

MUL الضرب : تقوم بإنجاز عملية الضرب بين عددين ثنائيين بدون إشارة الأول متوضع في المراكم A والثاني متوضع في المسجل B والنتيجة تكون بطول بايتين . يستقبل المراكم A البايت السفلي للنتيجة ويستقبل المسجل B البايت العلوي للنتيجة . ويكون OV=0 إذا كان النصف العلوي من النتيجة صفرا و OV=1 إذا كان غير صفري . يبقى C=0 و AC بدون تعديل .  

4 – تعليمات التقسيم DIVISION

DIV التقسيم : تقوم بتقسيم عددين ثنائيين بدون إشارة الأول متوضع في المراكم A والثاني يتوضع في المسجل B . حيث يذهب ناتج العملية الصحيح إلى المراكم A ويذهب باقي عملية التقسيم إلى المسجل B .

نعطي عملية التقسيم على صفر معطيات غير محددة في المسجل A والمسجل B ويجعل OV=1 ، وفي كل الحالات الأخرى OV=0 ، C=0 ، AC تبقى بدون تعديل .

رابعا : تعليمات نقل التحكم CONTROL TRANSFER

يوجد ثلاثة تصنيفات لعمليات نقل التحكم وهي : الاستدعاء اللامشروط ، الدوران و القفز ، القفز ، القفز المشروط ، المقاطعات .

إن الاستدعاء اللامشروط : دوران وقفز ، ينقل التحكم من القيمة الحالية لعداد البرنامج PC إلى عنوان الهدف ، وتدعم كلا النقل المباشر وغير المباشر . وعمليات النقل الثلاث مشروحة في الأسفل .

  • ACALL & LCALL : تدفع عنوان التعليمة التالية إلى المكدس ( PCL إلى العنوان السفلي و PCH إلى العنوان العلوي ) ومن ثم
    تنقل التحكم إلى عنوان الهدف . تستخدم تعليمة الاستدعاء الأساسي
    2byte ACALL عندما يكون عنوان الهدف في صفحة 2K .
    إن تعليمة الاستدعاء الطويل
    LCALL تكون بطول 3-byte حيث تأخذ حيز عنونة ضمن ذاكرة البرنامج 64K .
  • RET : تنقل التحكم إلى العنوان المخزن ضمن مؤشر المكدس SP حيث تسحب البايت الحالي من المسجل SP وتقوم بطرح مؤشر المكدس  SP بمقدار 2 لتضبط SP من أجل سحب العنوان .
  • AJMP & LJMP & SJMP : تنقل التحكم إلى معامل الهدف ، إن عملية AJMP & LIMP مشابه لعملية LCALL & ACALL
    . تدعم تعليمة SJMP ( قفز قصير ) التفرع ضمن مجال 256 بايتا متمركزة حول بداية عنوان التعليمة التالية (127+÷128-) .
  • JMP @A + DPTR : تنجز قفزا متناسبا مع المسجل DPTR . حيث يستخدم المعامل في المراكم كإزاحة (256÷0) للعنوان في
     
          DPTR وهكذا فإن تأثير الهدف للقفز يكون في أي مكان في حيز ذاكرة البرنامج والقفز المباشر أيضا يكون نافعا لتحقيق N طريقة
     تفرع .

تعليمات القفز المشروط CONDITIONAL JUMPS

في مجموعة نقل التحكم ، ينجز القفز المشروط قفزا محتملا حسب الحالة المحددة ، ويتمركز الهدف داخل مجال 256 بايتا وذلك حول بداية عنوان التعليمة التالية (127+÷128-) .

  • JZ       : ينفذ قفزا إذا كان المراكم صفرا .
  • JNZ    : ينفذ قفزا إذا كان المراكم ليس صفرا .
  • JC      : ينفذ قفزا إذا كان علم الحمل C=1 .
  • JNC    : ينفذ قفزا إذا كان علم الحمل C=0 .
  • JB      : ينفذ قفزا إذا كانت الخانة المعنونة (1) .
  • HNB   : ينفذ قفزا إذا كانت الخانة المعنونة (2) .
  • CJNE  : يقارن المعامل الأول مع المعامل الثاني وينجز قفزا في حال اللامساواة . ويكون C=1 في حال المعامل الأول أقل من المعامل
    الثاني وإلا يصبح
    C=0 . ونمط المقارنة يكون بين المراكم A وبايتات معنونة بشكل مباشر في ذاكرة المعطيات الداخلية ، أو بين قيمة
     فورية مع المراكم أو المسجل
    RB المختار بواسطة بنك المسجل أو بايت يعنون مسجل بشكل مباشر ضمن ذاكرة المعطيات الداخلية
     
    RAM .
  • DJNZ  : أنقص معامل المصدر بمقدار واحد وحمل الناتج إلى نفس المعامل ونفذ قفزا إذا كانت النتيجة ليست صفرية .

تجعل تعليمة DJNZ حجرات ذاكرة المعطيات RAM فعالة من أجل استخدامها كعداد لحلقات البرنامج حيث تسمح للمبرمج بطرح وفحص العداد في كل تنفيذ للحلقة . إن معامل المصدر لتعليمة DJNZ يمكن أن يكون أي بايت في ذاكرة المعطيات الداخلية .  

المقاطعات INTRRUPTS

يتم الانتقال إلى روتين خدمة المقاطعات وخدمته عن طريق أحد المقاطعات الداخلية أو الخارجية . تنفذ كل المقاطعات نقل عداد البرنامج PC إلى المكدس ومن ثم تتفرع إلى روتين خدمة المقاطعة الذي يتوضع بشكل أساسي عند الموقع 35H & 19H & 11H & 3H في ذاكرة البرنامج . ويجب على المبرمج أن يدفع كل المسجلات التي سوف تعدل في برنامج روتين خدمة المقاطعة إلى المكدس SP .

في نهاية روتين خدمة المقاطعة من الضروري جدا وضع التعليمة التالية :

·       RETI العودة من برنامج روتين خدمة المقاطعة : تقوم هذه التعليمة بسحب عنوان التعليمة التالية للتعليمة التي تم منها التفرع إلىروتين خدمة المقاطعة من المكدس ومن ثم طرح مؤشر المكدس SP . بمقدار 2 .

سوف نعطي الآن تلخيصا سريعا لقائمة التعليمات المجدولة في الجداول التالية كي تشكل للمبرمج الدليل السريع لكافة متحكمات Atmel الوميضية .

تستخدم هذه التعليمات لكافة المتحكمات التي نواتها الأساسية المتحكم 8051

 

ACALL   addrll

Function  : استدعاء أساسي .

ACALL :

   Description  : هذه التعليمة تستدعي برنامج فرعي غير مشروط متوضع عند العنوان المشار وذلك وفق الخطوات التالية :

1‏- زيادة عداد البرنامج‏PC  مرتين وذلك لكي نحصل على عنوان التعليمة التالية  .

2‏- زيادة مؤشر المكدس SP بمقدار واحد ثم ندفع محتويات PC 7-0 إلى المكدس .

3‏- زيادة مؤشر المكدس بمقدار واحد ثم ندفع محتويات PC 15-8  إلى المكدس .

4‏- وأخيراً يدفع عنوان البرنامج الفرعي إلى عداد البرنامج PC وذلك كي ينتقل إلى تنفيذ هذا البرنامج .

 لا توجد أعلام متأثرة .

Operation                                                 ACALL     

          1           

(PC) +2

(PC) ¬

          2

 

(SP) +1

(SP) ¬

(PC 7-0)

((SP)) ¬

          3

(SP) + 1

(SP) ¬

(PC 15-8)

((SP)) ¬

          4          

Page address

(PC 10-0) ¬

 

——————————————————————————————————

ADD   A , <src-byte>

Function  : جمع .

ADD :

Description   :  هذه التعليمة تجمع متحول المصدر المشار إليه إلى المراكم A وتضع نتيجة الجمع في المراكم ، وعلم الحمل والحمل المساعد يكونان في حالة Set إذا وجد حمل من خارج الخانة السابعة أو الخانة الثالثة. ويكونان في حالة Reset في كل الحالات الأخرى، وعند جمع الأعداد الصحيحة بدون إشارة فإن علم الحمل C يشير إلى الطفحان الذي يحدث.

 يكون العلم OV في حالة Set إذا وجد حمل خارج الخانة السادسة ولكن ليس خارج الخانة السابعة، أو حمل خارج الخانة السابعة ولكن ليس من الخانة السادسة، وفي كل الحالات الأخرى يكون‏0V  في حالة الصفر, وعند جمع الأعداد الصحيحة غير المؤشرة (بدون إشارة) فإن OV يشير إلى العدد السالب الناتج من جمع معاملين موجبين أو الجمع الموجب لمعاملين سالبين.

وتمتلك هذه التعليمة أربعة نماذج عنونة هي:

عنونة مباشرة – عنونة غير مباشرة – عنونة مسجلية – عنونة فورية.

 

ADD  A,Rn

Operation  :ADD

(A) ¬ (A) + (Rn)

 

ADD  A , direct

Operation ADD

 (A) ¬ (A) + (direct) 

 

ADD  A,@Ri

Operation ADD

(A) ¬ (A) + ((Ri))

 

ADD  A,#data

Operation ADD

 (A) ¬ (A) + #data

 

ADDC A ,<scr-byte>

Function  : الجمع مع حمل.

: ADDC

Description  : تقوم هذه التعليمة في وقت واحد بجمع البايت المتحول المشار إليه مع علم الحمل C مع محتويات المراكم A, وتضع النتيجة في المراكم A.
إن علم الحمل C وعلم الحمل المساعد AC يكونان في حالة Set على الترتيب إذا وجد حمل خارج من الخانة السابعة أو الخانة الثالثة. وفي كل الحالات الأخرى يكونان في حالة Reset. عند جمع الأعداد الصحيحة غير المؤشرة فإن علم الحمل يشير إلى الطفحان الذي يحدث. يصبح علم الطفحان OV في حالة Set إذا وجد حمل خارج الخانة السادسة ولكن ليس خارج الخانة السادسة, وفي كل الحالات الأخرى OV=0, عند جمع الأعداد الصحيحة غير المؤشرة فإن العلم OV يشير إلى العدد السالب الناتج من جمع معاملين موجبين أو ناتج الجمع الموجب لمعاملين سالبين.
وأنماط العنونة لهذه التعليمة تماثل أنماط العنونة للتعليمة السابقة (ADD).
 

 

 

 
 
 
 

 
 
الرئيسية المنتدى الدعم الفني إتصل بنا