قسم الميكروكنترولر والروبوت ودوائر الاتصال بالحاسب الالي قسم المتحكمات الـ microcontroller و المعالجات microprocessor و التحكم الرقمي بالكمبيوتر CNC والانظمة الآلية والروبوت Robots

أدوات الموضوع

الصورة الرمزية رحال حول العالم
رحال حول العالم
:: عضو فضي ::
تاريخ التسجيل: Nov 2006
الدولة: الخبر : السعودية & القاهرة : مصر
المشاركات: 174
نشاط [ رحال حول العالم ]
قوة السمعة:78
قديم 08-03-2007, 09:38 PM المشاركة 17   
افتراضي الحلقة الاولى - الجزء الرابع - 1



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)



التعديل الأخير تم بواسطة : رحال حول العالم بتاريخ 08-03-2007 الساعة 09:45 PM
اعلانات

الصورة الرمزية رحال حول العالم
رحال حول العالم
:: عضو فضي ::
تاريخ التسجيل: Nov 2006
الدولة: الخبر : السعودية & القاهرة : مصر
المشاركات: 174
نشاط [ رحال حول العالم ]
قوة السمعة:78
قديم 08-03-2007, 09:40 PM المشاركة 18   
افتراضي الحلقة الاولى - الجزء الرابع - 2



Overflow Flag
OV

بما اننا نعمل على ميكرو 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

هذا العلم يستخدم لعمل فحص لعدد الـ ( 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 كيلو و من ثم فانه يشير لبيانات مخزنة فى ذاكرة خارجية )) .

اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )
  

الصورة الرمزية رحال حول العالم
رحال حول العالم
:: عضو فضي ::
تاريخ التسجيل: Nov 2006
الدولة: الخبر : السعودية & القاهرة : مصر
المشاركات: 174
نشاط [ رحال حول العالم ]
قوة السمعة:78
قديم 08-03-2007, 09:46 PM المشاركة 19   
افتراضي الحلقة الاولى - الجزء الرابع - 3


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 ) كناقل بيانات (( يكتب او يقرأ حسب طبيعة العملية )) .


الصورة الرمزية رحال حول العالم
رحال حول العالم
:: عضو فضي ::
تاريخ التسجيل: Nov 2006
الدولة: الخبر : السعودية & القاهرة : مصر
المشاركات: 174
نشاط [ رحال حول العالم ]
قوة السمعة:78
قديم 08-03-2007, 10:06 PM المشاركة 20   
افتراضي


ترقبوا بأمر الله تعالى الحلقة الثانية و الانتقال الى ربط الميكروكونتروللر 8051 بالعالم الخارجى
على الرابط التالى :-

http://www.qariya.com/vb/showthread....1486#post91486

و الان بعد اتمام الشرح و لكل من يجد ان هناك غموض فى الشرح فباب النقاش مفتوح لكل من يحب ان يستفسر عما تم الانتهاء منه فى الحلقة الاولى


التعديل الأخير تم بواسطة : رحال حول العالم بتاريخ 08-03-2007 الساعة 10:18 PM

الصورة الرمزية رحال حول العالم
رحال حول العالم
:: عضو فضي ::
تاريخ التسجيل: Nov 2006
الدولة: الخبر : السعودية & القاهرة : مصر
المشاركات: 174
نشاط [ رحال حول العالم ]
قوة السمعة:78
قديم 23-04-2007, 09:44 PM المشاركة 21   
بشرى للمشاركين فى الإستفتاء عن دورة الميكروكونتروللر 8051


السلام عليكم و رحمة الله و بركاته
اعزائى اعضاء المنتدى
نظراً لان مدة الاستفتاء اوشكت على الانتهاء ، حيث كنت قد قررت لها مدة 30 يوم فقط لم يتبقى منها سوى يومين
و حيث انه لم يشارك سوى 5 اعضاء فقط فى هذا الاستفتاء
معنى ذلك انه لا يتواجد مهتمين غيرهم و اسمحوا لى ان اتقدم لهم بالشكر لمشاركاتهم الايجابية و هم

mem222
FARID2006
hassankasim84
مصطفى سماعيـل
ميلاد صموئيل



و أود أن أوضح أن لهم مفاجأة :hry: فيما يتعلق بالتطبيقات العملية و سوف أعلنها فور البدء فى الحلقة الثالثة إن شاء الله تعالى


مهتاب
:: مهندس ::
تاريخ التسجيل: May 2006
المشاركات: 18
نشاط [ مهتاب ]
قوة السمعة:0
قديم 24-04-2007, 08:23 AM المشاركة 22   
افتراضي


ارج منكم الاخوه الكرام شرح برنامج بروتس :xlve:


antoon718
:: مهندس ::
تاريخ التسجيل: Mar 2007
المشاركات: 1
نشاط [ antoon718 ]
قوة السمعة:0
قديم 03-05-2007, 01:24 PM المشاركة 23   
sun


الموضوع ممتاز
رجاء الاكمال
شكرا


الصورة الرمزية م/سيدعبدالرحمن
م/سيدعبدالرحمن
:: مهندس متواجد ::
تاريخ التسجيل: May 2005
الدولة: Egypt - Cairo
المشاركات: 138
نشاط [ م/سيدعبدالرحمن ]
قوة السمعة:0
قديم 07-05-2007, 03:43 AM المشاركة 24   
Smile


السلام عليم ورحمة الله وبركاته

بارك الله فيك وذادكم من علمه أخى رحال ونحن معك وننتظر باقى الموضوع حتى تكتمل الفائدة المرجوه منه كما اننى اصوت على استمراركم فى هذه الدورة وانا اعتبر نفسى أحد المشاركين فيها .

تحياتى لك وللجميع :xlve: :xlve: :xlve:

أخوكم سيدعبد الرحمن

إضافة رد

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

«     الموضوع السابق       الموضوع التالي    »
أدوات الموضوع

الانتقال السريع إلى


الساعة معتمدة بتوقيت جرينتش +3 الساعة الآن: 10:51 AM
موقع القرية الالكترونية غير مسؤول عن أي اتفاق تجاري أو تعاوني بين الأعضاء
فعلى كل شخص تحمل مسئولية نفسه إتجاه مايقوم به من بيع وشراء وإتفاق وأعطاء معلومات موقعه
التعليقات المنشورة لا تعبر عن رأي موقع القرية الالكترونية ولايتحمل الموقع أي مسؤولية قانونية حيال ذلك (ويتحمل كاتبها مسؤولية النشر)

Powered by vBulletin® Version 3.8.6, Copyright ©2000 - 2025