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

   

ماجد عباس محمد
:: نائب المشرف العام
::
تاريخ التسجيل: Jun 2009
الدولة: القاهرة - مصر
المشاركات: 11,652
نشاط [ ماجد عباس محمد ]
قوة السمعة:
قديم 24-06-2018, 08:24 AM المشاركة 41   
افتراضي استخدامات الميكروكونتروللر أو المتحكم




استخدامات الميكروكونتروللر أو المتحكم
البعض يتخيل أن الميكرو أو المتحكم هو رائعة العلم و أنه أتى ليقول لعالم ألتماثلى وداعا لكن مهلا نحتاج لفهم بعض الحقائق عن هذه الأشياء ثم نحكم.
أولا ما هى أقصى سرعة نتحدث عنها هنا؟ حسنا نلجأ للدائرة و سنجد كريستال هى الحاكم ألرئيسى و من الداتاشيت لهذه الأنواع نجد أن أعلى تردد استخدم هو 30 ميجا – طبعا الكثير منها 25 فقط أو 20 ميجا فقط.
إذن لا تحلم بأسرع من 30 ميجا
ماذا تعنى؟ أجل تعنى حدك الأقصى فلا تستطيع توليد تردد أو قياسه أو التحكم فى شيء بمعدل أسرع من ذلك.
أيضا هناك نقطة هامة وهى كيف يعمل الميكرو من الداخل؟
لدينا ما يسمى Sequencer أو مرتب الأحداث أو موالى الأحداث أو سمه ما شئت وهو المسؤول عن تنفيذ الأحداث بتتالى محدد وهو
1- قراءة الكود من ذاكرة البرنامج
2- زد واحد على مسجل عنوان البرنامج
3-تحليل الكود و معرفة الخطوة التالية هل تنفيذ السابق كأمر مفرد (مثلا NOP لا تفعل شيئا أو INC A زد واحد لمحتوى المراكم أو CLR A ألغى محتويات المراكم الخ) أو هو حساب يتطلب أخذ قيمة تالية من الذاكرة
4- قراءة الكود التالى من الذاكرة كبيان
5- تنفيذ الأمر ثم البدء من جديد
هذه الخطوات يأخذ وقتا وهذا الوقت يحسب بعدد نبضات الكريستال لهذا فعائلة C51 تحتاج 12 نبضة لتنفيذ دورة كاملة و التى قد تكفى تنفيذ أمر وحيد الخانات أو أمر مفرد كما سبق (مثلا NOP لا تفعل شيئا أو INC A زد واحد لمحتوى المراكم أو CLR A ألغى محتويات المراكم الخ) أو قد تحتاج 12 أخرى لغالبية الأوامر و التى تأخذ دورتين.
إذن30 ميجا / 24 ستصبح1.25 مليون أمر فقط فى الثانية.
لاحقا أنتجت الشركة وحدات تنفذ فى 6 دورات و حتى دورتين فقط لكن بكريستال لا تزيد عن 20 ميجا و من ثم أعلى سرعة هى 10 مليون أمر فى الثانية.
بالنسبة لميكروتشيب فهى تحتاج 4 نبضات فى الدورة إذن 30 /4 تصبح 7.5 مليون أمر فى الثانية
رائع ماذا نحتاج أكثر من ذلك؟
أجل أنت لست وحدك فى هذا العالم و تتحكم فيما حولك بالبرنامج أى المسألة ليست بسيطة كما نظن ولو عدنا للمثال السابق سنجد أننا لنتحكم فى بضع أمور بسيطة تطلب الأمر عدة خطوات و رغم أن البرنامج لا ينفذ كله فى كل مرة إلا أننا يجب أن نستوعب هنا خاصية من أهم خصائص البرمجة عن سرعة التنفيذ
لاحظ أن دورة أو Cycle هى 12 نبضة من الكريستال، وهكذا نستهلك 2 دورة فى كل تعليمه أى 4 دورات تمهيد من Start إلى Loop و من ثم 6 دورة لو كان المفتاح الأول مضغوطا ثم نكرر و إلا سنضيف 6 للمفتاح الثانى و إلا 6 للمفتاح الثالث.
أى كل دورة كاملة للبرنامج إما 6 أو 12 أو 18 دورة أى 72 نبضة من الكريستال أو 144 أو 216 دورة. وهذا زمن لا بأس به، و بالطرز الحديثة حيث تستخدم 2 نبضة من الكريستال لكل تعليمه ستستهلك 12 أو 24 أو 36 دورة من الكريستال

كود:
Start:
      Mov	Switches , #255   	   ;   2Byte, 2Cycle
      Mov	LEDs , #255			;   2Byte, 2Cycle
Loop:	
      jb		SW1 ,  SW2test		;   3Byte, 2Cycle
      mov	LEDs , #11111110b		;  = 254   2Byte, 2Cycle
      sjmp	Loop				;   2Byte, 2Cycle
SW2Test:     
     jb		SW2 , SW3Test		;   3Byte, 2Cycle
     mov		LEDs , #11111100b		; = 252   2Byte, 2Cycle
     sjmp	LOOP				;   2Byte, 2Cycle
SW3Test:
      jb		SW3 , start		;   3Byte, 2Cycle
      mov	LEDs , #11111000b		; = 248   2Byte, 2Cycle
      jmp 	Loop				;   2Byte, 2Cycle


مع ميكروتشيب الأمر أسهل حيث الكل يأخذ 3 دورة و بايت واحدة فيكون البرنامج يحتاج 8 تعليمات حتى يصل إلى Loop أى 32 دورة للتمهيد ثم

كود:
CLRF   STATUS       ; Bank0
      CLRF   PORTB        ; Initialize PORTB by clearing output data latches
      CLRF   PORTD        ; Initialize PORTD by clearing output data latches
      BSF    STATUS, RP0  ; Select Bank1
      CLRF   TRISB	  ; All OUTs

MOVLW      255
MOVWF      TRISD
CLRF   STATUS       ; Bank0

هنا أمرين لو لم يكن المفتاح الأول مضغوطا أو 4 لو مضغوطا ليكرر الدورة أى4 أو 6 للثانى أو 8 للثالث أو تكرار الدورة كاملة وهذا يعنى 4*4=16 أو 24 أو 32 دورة إضافة للتمهيد 32 دورة كريستال

كود:
Loop:  
      BTFSC      PORTD , 0
      GOTO	 Sw1
      MOVLW      1
      MOVWF      PORTB
      GOTO       Loop
Sw1:
      BTFSC      PORTD , 1
      GOTO       Sw2
      MOVLW      3
      MOVWF      PORTB
      GOTO       Loop
Sw2:
      BTFSC      PORTD, 2
      GOTO       SW3
      MOVLW      7
	MOVWF      PORTB
	GOTO       Loop
SW3:     
     CLRF	PORTB 
     GOTO Loop
هناك كثير من الأشياء الأخرى يجب مراعاتها مثلا محول ألتماثلى رقمى وفى PIC16 يحتاج على الأقل 200 ميكرو ثانية لكل تحويله أى 5000 مرة فى الثانية وأسرع من ذلك فى كل من PIC18 و عائلة AVR
وهذا يقودنا لمثال بسيط، تود أن تصنع دائرة مثبت فولت ، لديك طريقين إما تماثلى بالمتكاملات أو بمتحكم و الأخير يعطى إيهاما بأننا ننظمها بالحاسب الآلى
حسنا سرعة المتكاملة الخطية تستجيب فى أقل من ميكرو ثانية طبقا للداتاشيت فكم تعليمه تنفذها فى هذا الوقت؟؟ يمكنك وضع ميكرو للوجاهة و تعرض التيار و الفولت الخ لكن دع التحكم للمتكاملة الخطية سواء أكانت تماثلية أو تقطيعية.

الآن يمكننا أن نفكر فى تطوير برنامجنا السابق لنبدأ مثلا بغساله آلية ذات 6 برامج وهو موضوعنا القادم بإذن الله.


اعلانات

الصورة الرمزية burai nuraldaem
burai nuraldaem
:: عضو فضى ::
تاريخ التسجيل: Nov 2015
الدولة: السودان
المشاركات: 501
نشاط [ burai nuraldaem ]
قوة السمعة:
قديم 24-06-2018, 11:49 AM المشاركة 42   
افتراضي



استخدامات الميكروكونتروللر أو المتحكم
البعض يتخيل أن الميكرو أو المتحكم هو رائعة العلم و أنه أتى ليقول لعالم ألتماثلى وداعا لكن مهلا نحتاج لفهم بعض الحقائق عن هذه الأشياء ثم نحكم.
أولا ما هى أقصى سرعة نتحدث عنها هنا؟ حسنا نلجأ للدائرة و سنجد كريستال هى الحاكم ألرئيسى و من الداتاشيت لهذه الأنواع نجد أن أعلى تردد استخدم هو 30 ميجا – طبعا الكثير منها 25 فقط أو 20 ميجا فقط.
إذن لا تحلم بأسرع من 30 ميجا
ماذا تعنى؟ أجل تعنى حدك الأقصى فلا تستطيع توليد تردد أو قياسه أو التحكم فى شيء بمعدل أسرع من ذلك.
أيضا هناك نقطة هامة وهى كيف يعمل الميكرو من الداخل؟
لدينا ما يسمى Sequencer أو مرتب الأحداث أو موالى الأحداث أو سمه ما شئت وهو المسؤول عن تنفيذ الأحداث بتتالى محدد وهو
1- قراءة الكود من ذاكرة البرنامج
2- زد واحد على مسجل عنوان البرنامج
3-تحليل الكود و معرفة الخطوة التالية هل تنفيذ السابق كأمر مفرد (مثلا NOP لا تفعل شيئا أو INC A زد واحد لمحتوى المراكم أو CLR A ألغى محتويات المراكم الخ) أو هو حساب يتطلب أخذ قيمة تالية من الذاكرة
4- قراءة الكود التالى من الذاكرة كبيان
5- تنفيذ الأمر ثم البدء من جديد
هذه الخطوات يأخذ وقتا وهذا الوقت يحسب بعدد نبضات الكريستال لهذا فعائلة C51 تحتاج 12 نبضة لتنفيذ دورة كاملة و التى قد تكفى تنفيذ أمر وحيد الخانات أو أمر مفرد كما سبق (مثلا NOP لا تفعل شيئا أو INC A زد واحد لمحتوى المراكم أو CLR A ألغى محتويات المراكم الخ) أو قد تحتاج 12 أخرى لغالبية الأوامر و التى تأخذ دورتين.
إذن30 ميجا / 24 ستصبح1.25 مليون أمر فقط فى الثانية.
لاحقا أنتجت الشركة وحدات تنفذ فى 6 دورات و حتى دورتين فقط لكن بكريستال لا تزيد عن 20 ميجا و من ثم أعلى سرعة هى 10 مليون أمر فى الثانية.
بالنسبة لميكروتشيب فهى تحتاج 4 نبضات فى الدورة إذن 30 /4 تصبح 7.5 مليون أمر فى الثانية
رائع ماذا نحتاج أكثر من ذلك؟
أجل أنت لست وحدك فى هذا العالم و تتحكم فيما حولك بالبرنامج أى المسألة ليست بسيطة كما نظن ولو عدنا للمثال السابق سنجد أننا لنتحكم فى بضع أمور بسيطة تطلب الأمر عدة خطوات و رغم أن البرنامج لا ينفذ كله فى كل مرة إلا أننا يجب أن نستوعب هنا خاصية من أهم خصائص البرمجة عن سرعة التنفيذ
لاحظ أن دورة أو Cycle هى 12 نبضة من الكريستال، وهكذا نستهلك 2 دورة فى كل تعليمه أى 4 دورات تمهيد من Start إلى Loop و من ثم 6 دورة لو كان المفتاح الأول مضغوطا ثم نكرر و إلا سنضيف 6 للمفتاح الثانى و إلا 6 للمفتاح الثالث.
أى كل دورة كاملة للبرنامج إما 6 أو 12 أو 18 دورة أى 72 نبضة من الكريستال أو 144 أو 216 دورة. وهذا زمن لا بأس به، و بالطرز الحديثة حيث تستخدم 2 نبضة من الكريستال لكل تعليمه ستستهلك 12 أو 24 أو 36 دورة من الكريستال

كود:
Start:
      Mov    Switches , #255          ;   2Byte, 2Cycle
      Mov    LEDs , #255            ;   2Byte, 2Cycle
Loop:    
      jb        SW1 ,  SW2test        ;   3Byte, 2Cycle
      mov    LEDs , #11111110b        ;  = 254   2Byte, 2Cycle
      sjmp    Loop                ;   2Byte, 2Cycle
SW2Test:     
     jb        SW2 , SW3Test        ;   3Byte, 2Cycle
     mov        LEDs , #11111100b        ; = 252   2Byte, 2Cycle
     sjmp    LOOP                ;   2Byte, 2Cycle
SW3Test:
      jb        SW3 , start        ;   3Byte, 2Cycle
      mov    LEDs , #11111000b        ; = 248   2Byte, 2Cycle
      jmp     Loop                ;   2Byte, 2Cycle


مع ميكروتشيب الأمر أسهل حيث الكل يأخذ 3 دورة و بايت واحدة فيكون البرنامج يحتاج 8 تعليمات حتى يصل إلى Loop أى 32 دورة للتمهيد ثم

كود:
CLRF   STATUS       ; Bank0
      CLRF   PORTB        ; Initialize PORTB by clearing output data latches
      CLRF   PORTD        ; Initialize PORTD by clearing output data latches
      BSF    STATUS, RP0  ; Select Bank1
      CLRF   TRISB      ; All OUTs

MOVLW      255
MOVWF      TRISD
CLRF   STATUS       ; Bank0

هنا أمرين لو لم يكن المفتاح الأول مضغوطا أو 4 لو مضغوطا ليكرر الدورة أى4 أو 6 للثانى أو 8 للثالث أو تكرار الدورة كاملة وهذا يعنى 4*4=16 أو 24 أو 32 دورة إضافة للتمهيد 32 دورة كريستال

كود:
Loop:  
      BTFSC      PORTD , 0
      GOTO     Sw1
      MOVLW      1
      MOVWF      PORTB
      GOTO       Loop
Sw1:
      BTFSC      PORTD , 1
      GOTO       Sw2
      MOVLW      3
      MOVWF      PORTB
      GOTO       Loop
Sw2:
      BTFSC      PORTD, 2
      GOTO       SW3
      MOVLW      7
    MOVWF      PORTB
    GOTO       Loop
SW3:     
     CLRF    PORTB 
     GOTO Loop
هناك كثير من الأشياء الأخرى يجب مراعاتها مثلا محول ألتماثلى رقمى وفى PIC16 يحتاج على الأقل 200 ميكرو ثانية لكل تحويله أى 5000 مرة فى الثانية وأسرع من ذلك فى كل من PIC18 و عائلة AVR
وهذا يقودنا لمثال بسيط، تود أن تصنع دائرة مثبت فولت ، لديك طريقين إما تماثلى بالمتكاملات أو بمتحكم و الأخير يعطى إيهاما بأننا ننظمها بالحاسب الآلى
حسنا سرعة المتكاملة الخطية تستجيب فى أقل من ميكرو ثانية طبقا للداتاشيت فكم تعليمه تنفذها فى هذا الوقت؟؟ يمكنك وضع ميكرو للوجاهة و تعرض التيار و الفولت الخ لكن دع التحكم للمتكاملة الخطية سواء أكانت تماثلية أو تقطيعية.

الآن يمكننا أن نفكر فى تطوير برنامجنا السابق لنبدأ مثلا بغساله آلية ذات 6 برامج وهو موضوعنا القادم بإذن الله.

شكرا استاذ ماجد
بدات تتضح الصوره اكثر واكثر حول امكانيات المايكرو

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

ماجد عباس محمد
:: نائب المشرف العام
::
تاريخ التسجيل: Jun 2009
الدولة: القاهرة - مصر
المشاركات: 11,652
نشاط [ ماجد عباس محمد ]
قوة السمعة:
قديم 24-06-2018, 12:55 PM المشاركة 43   
افتراضي


الحمد لله ان مكنني من ذلك
وشكرا لاهتمامك وتعليقك


الصورة الرمزية burai nuraldaem
burai nuraldaem
:: عضو فضى ::
تاريخ التسجيل: Nov 2015
الدولة: السودان
المشاركات: 501
نشاط [ burai nuraldaem ]
قوة السمعة:
قديم 25-06-2018, 12:40 AM المشاركة 44   
افتراضي


الحمد لله ان مكنني من ذلك
وشكرا لاهتمامك وتعليقك
الله وحده يعلم كم انا مهتم بهذا الموضوع
وكم اعول عليك وعليه
انشاء الله ستتوالي الاسئله تترا كالعاده
لكن لندع الموضوع يتعمق اكثر في المحول التماثلي والرقمي وما الي هنالك
وفقك الله واعانك


ماجد عباس محمد
:: نائب المشرف العام
::
تاريخ التسجيل: Jun 2009
الدولة: القاهرة - مصر
المشاركات: 11,652
نشاط [ ماجد عباس محمد ]
قوة السمعة:
قديم 25-06-2018, 09:14 AM المشاركة 45   
افتراضي


شكرا أخى الكريم لكن لو لديك اسئلة لا تتركها كثيرا فتتراكم فربما إجابة سؤال الآن يوفر عليك بعض منها غدا


ماجد عباس محمد
:: نائب المشرف العام
::
تاريخ التسجيل: Jun 2009
الدولة: القاهرة - مصر
المشاركات: 11,652
نشاط [ ماجد عباس محمد ]
قوة السمعة:
قديم 25-06-2018, 09:20 AM المشاركة 46   
افتراضي برنامج غسالة صغيرة



برنامج غسالة صغيرة :
الغسالة عادة ما يكون لها شاشة تكتب المراحل و مجموعة أزرار لتحديد برنامج من عشرات البرامج، لكن لكوننا لسنا خبراء فى الغسيل سنكتفى بما يلى:
ثلاث أزرار لاختيار البرنامج خفيف – وسط – كامل يحدد الوقت من 4 أو 10 أو 20 دقيقة وثلاث للدورة بارد/بارد أو غسيل دافئ و شطف بارد أو غسيل ساخن و شطف بارد ، وآخر للبدء و سابع إيقاف للطوارئ و ثامن للباب مفتوح/مغلق و مدخل تاسع لحساس الحرارة العالية و عاشر لحساس الحرارة المتوسطة و حادى عشر لمستوى الماء
سته مخارج لسته ليدات للبرامج الثلاث و الدورات الثلاث و مخرج سابع لتشغيل / إيقاف الموتور مخرج ثامن للسخان و مخرج تاسع لفتح دخول المياه و عاشر لصرف المياه و حادى عشر لسرعة الموتور .
قبل أن نعرض للدائرة هناك بعض الأساسيات التى تجعلنا نلجأ لتصميم ما أفضل من الآخر وهذا يرجع أساسا لسلوك الميكرو ألذى سنستخدمه لذلك سنكرر هذا البرنامج مع الأربع متحكمات المتفق عليها و اللغات الثلاث .

غسالة باستخدام C51 و لغة الأسيمبلى:
من الخبرة السابقة وجدنا أن عند تطبيق التيار يحدث إعادة بدء تشغيل RESET ومن ثم كل المنافذ تصبح آحاد أى +5 فولت وكثير من المصممون يفضلون أسلوب أن واحد يعنى تشغيل و صفر يعنى إيقاف لأنه منطقى و يبدأ البرنامج بأمر جعل المنفذ =صفر و يفاجأ أنه عند التشغيل تفعل كل الريلايات معا ثم تفصل مما يسبب لحظة بدء تشغيل خاطئه فى البدء.
هذه قد تكون مكروهة ولكنها أحيانا تكون خطيرة و تسبب مشاكل.
قد تسأل نفسك أليس أول أمر هو التصفير؟ وهل فى ميكرو ثانية تستجيب الريلايات؟ هذا غير منطقى!!
الواقع أنك لم تحسب كم من الوقت يمر قبل أن ينفذ هذا الأمر، ارجع للداتاشيت ستجد أن المذبذب أولا يحتاج بضع مللى ثانية ليقوم و يستقر و الميكرو يحتاج لبضع نبضات حتى يستجيب للريست أو إعادة التشغيل و أخيرا يبدأ فى تنفيذ الأمر.
لذا الأفضل أن تعتمد حالة البدء كأساس و عندما تريد تغييرها افعل ذلك فى الوقت المناسب.
من هنا سنجعل كافة المخارج كما هى = 1 و تعنى فصل الريلايات و عندما نريد تفعيل أى منها نستخدم صفر.
أسهل طريقة و أقلها كلفة أن نستخدم ريلاى 5 فولت وهو متوافرو معه ترانزستور س م س أو PNP ومقاومة و دايود كالآتى

ببساطة عندما تكون مقاومة القاعدة R8 متصله ب +5 فولت سيكون جهد القاعدة Base مساو للباعثEmitter ولا يمر تيار و عندما يكون طرف المقاومة = صفر سيمر تيار القاعدة Base و من ثم يفتح الترانزستور و يفعل الريلاى. الدايود D8 طبعا لإلغاء تأثير الملف عند الغلق.
هذه الدائرة سنكررها 5 مرات لتشغيل الموتور و تسريع الموتور عند العصر و فتح المياه و فتح مصرف المياه و تشغيل السخان
دوائر الليدات لبيان الدورة و الحرارة سبق نقاشها فى البرنامج الأول وهى هنا امتداد له و أيضا توصيل المفاتيح Switches هو امتداد لما سبق فيما عدا طرفى Start/Stop أو بدء التشغيل و طرف Emergency. طرف بدء التشغيل لبدء التشغيل بالخيارات المطروحة ولكن لن يوقف الغسالة فى المنتصف. هذا لا ينفى حدوث مشاكل تستوجب توقف الدورة لذا بالضغط على زر Start أو البدء مع زر الطوارئ Emergency تفرض إيقاف الغسالة و ذلك لتجنب إيقاف الغسالة بالخطأ عند الضغط العفوى على الزر .
هذا تم بحيلة بسيطة وهى إدخال إشارة الطوارئ على طرف المقاطعة الخارجية INT0

نحتاج لمنطق يقول لو صفر مع صفر يكون الخرج صفر ولو أى تركيبة أخرى يكون الخرج =1

هذا يتطلب بوابة "أو" OR-Gate كما بالرسم المتكاملة 4071 فعند الضغط على أى من المفتاحين سيكون على الطرف الآخر واحد و يبقى الخرج واحد حتى يتم الضغط على كلاهما فيصبح الخرج صفر وهذا يسبب مقاطعة المتحكم ومن ثم إيقافه لكونه على طرف INT0 .
أعلم أن من سيفحص البرنامج لاحقا سيقول أن الطرف المتصل بالمنفذ3.0 و المسمى Emergency لم يستخدم، نعم و لكن إما تستبدل البوابة و تستخدم 7432 أو توصل طرف 4071 بمقاومة للموجب ولو نحتاج لهذا الطرف للتحكم فى أى شيء آخر يمكننا فعل ذلك   - بهذه الطريقة نوفر مقاومة تعليق Pullup .
الآن دورة الغسالة تحتاج حتى 24 دقيقة فكيف نحصل عليها؟
البعض يلجأ فى اللغات العالية لأوامر تسبب عدم استجابة المتحكم لأى شيء آخر وهذا يلغى فائدته لذا استخدام عداد و نقوم بتغييره له مضاره ومثال على ذلك

كود:
	MOV	R0,#250
	DJNZ	R0,$

وهذه تعنى ضع فى المسجل R0 القيمة 250 (لاحظ وجود شباك هنا)
ثم الأمر DJNZ هو اختصار Decrement and Jump if Not Zero ثم المسجل R0 و علامة الدولار ، علامة الدولار هذه اختصار لكلمة "هنا" فكأنك استبدلت العنوانين التاليين بها
Here: DJNZ R0,Here
فيما عدا أنك فى كل مرة تستخدم هذه الدورة ستحتاج لأسم جديد لها أما "$” فلا
و الحادث أنك تضع 250 فى المسجل ثم تنقص 1 فإن لم يكن صفرا تعود لذات الأمر أى تنقص منه 1 أى باختصار تظل تنقص 1 حتى يصبح محتواه صفرا لن تنفذ الانتقال مرة أخرى و تخرج منها أى لف حول نفسه 250 مرة كل مرة تستهلك 24 نبضة من الكريستال – زمن قليل جدا
وكان من الممكن استخدام الأمر

كود:
	MOV	10,#250
	DJNZ	10,$

وهو يعنى ضع فى خانة الذاكرة 10 (لاحظ عدم وجود شباك هنا) القيمة 250 (لاحظ وجود شباك هنا) … فقط ستستهلك خانة ذاكرة اكثر لأن عنوان الذاكرة يحتاج بايت كاملة بينما عنوان المسجل هو جزء من الأمر.
لذا سنحتاج عديد من هذه الدوائر و يا حبذا لو متداخلة لكن بصعوبة نصل لثانية لذا نلجأ لحيلة المقاطعة أيضا

نأخذ عينة من أحد طرفى المحول 9 فولت متردد (النقطة 1) و من خلال الدايود D7 نأخذ أنصاف الموجة الموجبة فقط ثم نمررها على ترانزستور كمكبر يحولها لموجة مربعة و نضعها على طرف المقاطعة INT1 باسم Clock إذن كل مقاطعة بعد 20 مللى ثانية و كل 50 مقاطعة بثانية كاملة.
إذن مزيد من شرح المقاطعة المرة القادمة إن شاء الله



ayam
:: مهندس جيد ::
تاريخ التسجيل: Dec 2005
المشاركات: 287
نشاط [ ayam ]
قوة السمعة:
قديم 25-06-2018, 04:39 PM المشاركة 47   
افتراضي


متابع رغم رداءة النت , الله يحفظك


ماجد عباس محمد
:: نائب المشرف العام
::
تاريخ التسجيل: Jun 2009
الدولة: القاهرة - مصر
المشاركات: 11,652
نشاط [ ماجد عباس محمد ]
قوة السمعة:
قديم 25-06-2018, 06:49 PM المشاركة 48   
افتراضي


شكرا اخي الكريم



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