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

   

الصورة الرمزية عبدالله حجازى
عبدالله حجازى
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2011
الدولة: مصر .. محافظة دمياط
المشاركات: 1,682
نشاط [ عبدالله حجازى ]
قوة السمعة:
قديم 18-12-2019, 07:23 AM المشاركة 41   
افتراضي



أختبار وجواب

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

الحل



هنا تم وضع تعليقات امام كل أمر لكي نوضح حالة ورقم البورت بالنظام الثنائي. وهذة هي التعليقات

PORTB=0B00000001; . OK //
ملحوظة عند وضع علامتين قبل الكود تكون الكتابة بعدها مجرد تعليق وتعتبر غير موجوده في الكود وعادة يكون لونها أخضر

لو تلاحظ تم كتابة البرنامج بالنظام العشري وهنا لكي لا اقع في أخطاء اذهب الي نافذة التحويل انظر الصورة


والأن اريد تشغيل الليد الأول فقط ماذ افعل ؟

أذهب الي نافذة التحويل للأرقام واكتبت في مربع خانة BINARY ..
00000001 كتبت واحد في اول رقم وباقي الأرقام كتبتها اصفار لكي تكون هكذ 00000001 ... ولاحظ في الصورة اعلاة ماذا حدث لقد ظهر لنا في المربع الثاني اسمة DECIMAL ظهر لنا رقم. 1 وهذا الرقم هوا ناتج عملية التحويل نأخذ هذ الرقم ونضع في الكود
هكذا PORTB=1; . OK وهذا الأمر مكتوب الأن بالنظام العشري وهوا لإضاءة الليد الأول نكمل الشرح في الصورة التاليه


هنا نريد اضاءة الليد الأول والثاني لاحظ الصورة للإضاءة الليد الأول والثاني يجب الكتابة للبورت B هكذا PORTB=0B00000011; . OK
طيب خلينا نحول هذا الرقم الثنائي الي رقم عشري
بنفس الطريقة بدون أن ندخل في أي تعقيدات نذهب لنافذة تحويل الأرقام ونكتب في خانة BINARY هذا الرقم. 00000011 ونلاحظ يظهر لنا ناتج التحويل من ثنائي لعشر ويظهر لنا في خانة DECIMAL هذا الرقم 3 نأخذ هذا الرقم ونضعة في الكود
هكذا. PORTB=3; . OK وهنا وبدون تعقيد ايذا اردنا تحويل أي رقم نذهب لنافذة التحويل لكي نسهل الأمور


وهذة صورة ايضا تظهر لنا ناتج تحويل هذا الرقم 00000111 وناتج تحويله هوا. 7.

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

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

اعلانات

الصورة الرمزية مسلم11
مسلم11
:: عضو ذهبي ::
تاريخ التسجيل: Jun 2009
الدولة: بلاد الشام
المشاركات: 3,679
نشاط [ مسلم11 ]
قوة السمعة:
قديم 19-12-2019, 12:22 AM المشاركة 42   
افتراضي


حياك الله وبارك بك .
اخي الكريم اشكر جهودك وعوضك ربي عني انه خير من يجزي عباده .
لقد طلبت تجاوز هذا الامر خوفا من ان تملوا .
لانه كما هو واضح انكم تشتركون جميعكم بمحور واحد بردودكم و صدقني لا اعرف كيف اشرح لك الامر لانه اساسا مبهم لدي .
لقد علمت ان مكان وضع الواحد منطقي هو رقم المنفذ وان القيمة واحد منطقي تعني ان يخرج المعالج جهدا عنده .
لتبسيط الامر اكثر .
0B001011001. افرض هذه تعليمة .... تمام .
سيكون الخرج على المعالج .
المنفذ الاول = ٥ فولت . الثاني = ٠ فولت . الثالث = ٠ فولت . الرابع = ٥ فولت . الخامس = ٥ فولت . السادس = ٠ فولت ..... وهكذا هل هذا صحيح ان كان كذلك ارجو منك المتابعة وحتى ان لم يكن صحيح فلتتجاوز عنه الان ولنترك للزمن نصيبا منا .
حياك الله وبارك بك .
اخوتي الاكارم الامر يحتاج لبعض الوقت جاري تحضير شيئا عساه ان يرضيكم .
حياكم الله وبارك بكم

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

الصورة الرمزية عريبى محمود
عريبى محمود
:: ( رحمه الله عليه ) ::
تاريخ التسجيل: Feb 2009
الدولة: لا تسأل الطغاه لماذا طغو بل اسأل العبيد لماذا انحنو
المشاركات: 3,126
نشاط [ عريبى محمود ]
قوة السمعة:
قديم 19-12-2019, 02:40 AM المشاركة 43   
x4


حياك الله وبارك بك .
اخي الكريم اشكر جهودك وعوضك ربي عني انه خير من يجزي عباده .
لقد طلبت تجاوز هذا الامر خوفا من ان تملوا .
لانه كما هو واضح انكم تشتركون جميعكم بمحور واحد بردودكم و صدقني لا اعرف كيف اشرح لك الامر لانه اساسا مبهم لدي .
لقد علمت ان مكان وضع الواحد منطقي هو رقم المنفذ وان القيمة واحد منطقي تعني ان يخرج المعالج جهدا عنده .
لتبسيط الامر اكثر .
0B001011001. افرض هذه تعليمة .... تمام .
سيكون الخرج على المعالج .
المنفذ الاول = ٥ فولت . الثاني = ٠ فولت . الثالث = ٠ فولت . الرابع = ٥ فولت . الخامس = ٥ فولت . السادس = ٠ فولت ..... وهكذا هل هذا صحيح ان كان كذلك ارجو منك المتابعة وحتى ان لم يكن صحيح فلتتجاوز عنه الان ولنترك للزمن نصيبا منا .
حياك الله وبارك بك .
اخوتي الاكارم الامر يحتاج لبعض الوقت جاري تحضير شيئا عساه ان يرضيكم .
حياكم الله وبارك بكم
السلام عليكم ورحمة الله وبركاته
اخى مسلم






100%


الصورة الرمزية عبدالله حجازى
عبدالله حجازى
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2011
الدولة: مصر .. محافظة دمياط
المشاركات: 1,682
نشاط [ عبدالله حجازى ]
قوة السمعة:
قديم 19-12-2019, 02:48 AM المشاركة 44   
افتراضي السلام عليكم ورحمه الله


حياك الله وبارك بك .

0B001011001. افرض هذه تعليمة .... تمام .
سيكون الخرج على المعالج .
المنفذ الاول = ٥ فولت . الثاني = ٠ فولت . الثالث = ٠ فولت . الرابع = ٥ فولت . الخامس = ٥ فولت . السادس = ٠ فولت ..... وهكذا هل هذا صحيح ان كان كذلك ارجو منك المتابعة وحتى ان لم يكن صحيح فلتتجاوز عنه الان ولنترك للزمن نصيبا منا .
أحسنت باالفعل تحليلك صحيح
وهنا وبكل سهوله تذهب لنافذه التحويل وتحول الرقم من ثنائي الي عشري
وتحصل علي رقم عشري تستخدمه في الكود .... ناتج التحول هوا ك الأتي 001011001 = 89 هنا حصلنا علي الرقم العشري بكل سهوله ... وأي رقم مهما كان تستطيع تحويله من ثنائي الي عشري



الصورة الرمزية عبدالله حجازى
عبدالله حجازى
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2011
الدولة: مصر .. محافظة دمياط
المشاركات: 1,682
نشاط [ عبدالله حجازى ]
قوة السمعة:
قديم 19-12-2019, 05:53 AM المشاركة 45   
افتراضي السلام عليكم ورحمه الله


الأن نتحدث عن الأوامر الشرطية

الحالة الشرطيه الأولي ..

أحمد هوا تلميذ في المرحلة الثانويه ومدير المدرسة يضع شروط للتلاميذ عند حضورهم للدراسه

الشروط هيا

1 _ الذيي المدرسي
2_ حذاء اسود اللون
3_ مظهر الشعر يكون قصير
4_الحضور باكراا للمدرسة

خلينا نقسم هذة الشروط الي قسمين الأول ( شروط ضروريه ) والقسم الثاني ( شروط غير ضروريه )

الشروط الضروريه هي .. الذي المدرسي .... الحضور باكراا للمدرسة
الشروط الغير الضروريه هي .. مظهر الشعر يكون قصير ... حذاء اسود اللون
__________________________________________________ _______________________

الأن نتعرف علي العلمات الرياضية المنطقية





كما هوا معروف للجميع الرموز الرياضيه يمكننا استخدامها في عمليات حسابية و عمليات مقارنة في البرامج

+ الجمع
_ الطرح
* الضرب
/ القسمة
الجذر النوني (جذر تربيعي)
> اصغر من
< أكبر من
= يساوي
== هل يساوي
& و
|| أو
<= أكبر من أو يساوي
>= أصغر من أو يساوي
% أخذ باقي القسمة
~ تغير الحالة لو واحد يتغير الي صفر لو صفر يتغير الي واحد
-__________________________________________________ ________________________

هنا نتحدث عن المنطق



كما هوا واضح لا يتحقق الشرط الا عند ما تساوي قيمة الحالتين 1

ولكي نكتب كود يختبر تحقق حالتين منطق AND

هكذا if ( PORTD.F0 == 1 & PORTD.F1 == 1 ) { PORTB.F0=1; }; ok
نشرح الكود طبعاا عرفنا كيف نتحكم في اخراج جهد علي منافذ المتحكم من خلال هذة التعليمه
. PORTB =1; ok عند كتابة التعليمة بهذا الشكل في هذة الحالة نتحكم في ال 8 منافذ للبورط دفعه واحدة مثال لو البورت ; PORTB =255 هنا سيكون موجود خرج 5 فولت علي كل لل 8 منافذ .. طيب لو كتبنا هذة التعليما PORTB =1; ok سيكون خرج البورت 5 فولت للبن الأول فقط وباقي البنات سوف تصبح = صفر فولت طيب لو احنا عايزين نتحكم في بن واحد فقط سوف نكتب هذة التعليمه PORTB.F0=1; ok
مثال عندنا البورت PORTB =255 ; ok يعني كل البنات الثمانيه تخرج 5 فولت ونريد أن نجعل البن رقم واحد فقط = صفر فولت هنا لا يمكن استخدام هذة التعليمه PORTB =0; ok لأنها تتحكم في منافذ البورت دفعة واحدة ونحن نريد اطفاء البن الأول فقط وهنا نستخدم تعليمة التحكم المنفردة لأنها تتحكم في بن واحد هكذا PORTB.F0=0; ok هنا تم اطفاء البن رقم واحد للبورت B
الأن تعرفنا أن لو كتبنا هذة التعليمه بهذا الشكل PORTB =255 ; ok فأننا نتحكم في ال 8 بنات بالكامل دفعه واحدة
ولو كتبناها بهذا الشكل PORTB.F0=0; ok فأننا نتحكم في بن واحد فقط
معروف أن هذة التعليمه نخبر بها الميكرو اننا نريد التحكم في بورت محدد PORTB وهذا البورت هوا B
لو نلاحظ PORTB.F0=0; ok اللون الأزرق هوا لتحديد رقم البن اللذي نريد التعامل معه ويرمز له ب F0.. النقطة وحرف F يخبر الميكرو اننا سوف نتحكم في بن واحد الصفر بعد حرف F هوا رقم البن وللتحكم في البن رقم واحد للبورت B نكتب التعليمه هكذا PORTB.F0=0; ok
ولو نريد مثلا التحكم في البن رقم 3 في البورت تكون التعليمه هكذا PORTB.F2=0; ok
انت تعرف في البرنامج أن البورت يبدأ بترتيب البن الأول بصفر والبن الأخير ب 7. ولاحظ في التعليمات السابقة لتحديد البن الأول كتبنا صفر ولتحديد البن الثالث كتبنا 2 ..

___


التعديل الأخير تم بواسطة : عبدالله حجازى بتاريخ 19-12-2019 الساعة 07:18 AM

الصورة الرمزية عبدالله حجازى
عبدالله حجازى
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2011
الدولة: مصر .. محافظة دمياط
المشاركات: 1,682
نشاط [ عبدالله حجازى ]
قوة السمعة:
قديم 19-12-2019, 06:41 AM المشاركة 46   
افتراضي


تعرفنا انة توجد شروط ضرورية وشروط غير ضرورية
الشروط الضرورية هي .. الذي المدرسي .... الحضور باكراا للمدرسة

وهنا سوف نستخدم المنطق AND وكما يسمي باعربي ( و ) ونكت الأن كود للتحقق من حالة الشرطين
سيكون الكود هكذا if ( PORTD.f0 ==1 && PORTD.f1 ==1 ) { PORTB.F0=1; } OK

نشرح الكود بالتفصيل

حين نكت جملة if نخبر الميكرو أنه أمر شرط أو كما نسميها حلقة شرطيه ثم تأتي الأقواس وبداخله هذة التعليمات ( PORTD.f0 ==1 && PORTD.f1 ==1 ) ببساطة التعليمات الموجودة داخل هذة الأقواس هم الشرطان ./ الشرط الأول PORTD.f0 ==1 يقول هل البن رقم واحد في البورت D هل تساوي واحد .! اي مطبق عليها 5 فولت ..
والشرط الثاني PORTD.f1 ==1 يقول هل البن رقم اثنان في البورت D هل تساوي واحد .! اي مطبق عليها 5 فولت ..
وتوجد علامة المنطق && بين الشرطين هذا المنطق && يقول ( و ) بحيث تفسير الكود كامل في هذة الصورة



نحلل الشرح الموجود علي الصورة نبدأ من أول الشرطين if( PORTD.f0 ==1 && PORTD.f1 ==1 ) OK دوما الميكرو ينظر ويختبر الأوامر الموجودة داخل هذة الأقواس ولا يذهب ولا ينظر ولا ينفذ الأوامر الموجودة داخل هذة الأقواس { ;(PORTB.f0 = ~ PORTB.f0; delay_ms(250 } الا عند تحقق الشرطان الموجودان داخل الأقواس بعد جملة if وهنا لازم انت يتحقق الشرطان ولو تحقق شرط واحد فقط من الإثنان لا ينفذ الأوامر في هذة الأقواس { } لأننا استخدمنا منطق.( AND ) يعني ( و ) وهنا يقول الكود يجب تحقق الشرط الأول والثاني لكي يعبر بوابة المنطق ( AND )

ونذهب الأن للشرطان الغير ضرورية هي .. مظهر الشعر يكون قصير ... حذاء اسود اللون

ونكتب كود بمنطق بوابة ( أو ) ( OR )

لاحظ الفرق في هذ الكود .. الكود الأول استخدمنا منطق ( و ) ( AND ) ويكتب في البرنامج هكذا ( && )
وسوف نستخدم في الشرطان الغير ضروري المنطق ( أو ) ( OR ) ويكتب في البرنامج هكذا ( || )

لاحظ الكودif( PORTD.f2==1 || PORTD.f3 ==1 ){ PORTB.f1 = ~ PORTB.f1; delay_ms(250); } OK. لاحظ الفرق بين الكود الأول والثاني هوا حالة المنطق ( و ) و ( أو )

وهنا لو تحقق شرط واحد من الإثنان أو تحقق الشرطان سوف ينفذ الكود

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



كود:





              void main() 
     {
             TRISB=0;   //  TRISB=0B00000000;
             PORTB=0;   //  PORTB=0B00000000;
             TRISD=15;  //  TRISD=0B00001111;
             PORTD=0;   //  PORTD=0B00000000;
             
               while(1)
         {

            if( PORTD.f0 ==1 && PORTD.f1 ==1 )
         
             {
          
                PORTB.f0  = ~  PORTB.f0;
               
                delay_ms(250);
         
             }

                  if( PORTD.f2==1 || PORTD.f3==1 )
               {
           
                  PORTB.f1 = ~ PORTB.f1;
                
                  delay_ms(250);
            
               }
             
         }
    }



انتظر الإستفسارات حول هذا الدرس

بالتوفيق

__________________________________________________ ___







التعديل الأخير تم بواسطة : عبدالله حجازى بتاريخ 19-12-2019 الساعة 07:17 AM

الصورة الرمزية مسلم11
مسلم11
:: عضو ذهبي ::
تاريخ التسجيل: Jun 2009
الدولة: بلاد الشام
المشاركات: 3,679
نشاط [ مسلم11 ]
قوة السمعة:
قديم 22-12-2019, 11:23 PM المشاركة 47   
افتراضي


السلام عليكم ورحمة الله وبركاته
كيف حالكم جميعا
الحمد لله ان ظني بمكانه .
اخوتي الاكارم هناك مثل يقول رب ضارة نافعة .
اعلنت شركة مصفاة حمص عن تطوير لوحات التحكم الخاصة باقسامها وكان لي نصيب من المشاركة بفضل الله تعالى .
اريد ان استخدم المعالج في تنفيذ هذا العمل فرئيس قسم الصيانة اوضح ان من ياتي بعمل جيد سيكون له حصة كبيرة من التطوير .
لذلك اوجه لكم دعوة بمساعدتي ومن يريد ذلك فليكن على الخاص وهناك نتكلم عن التفاصيل .
قد اطيل غيابي على غير العادة بسبب العمل فبعد التفجيرات التي حصلت بالمصفاة توجه مسؤليها الى الترميم الكامل لها .
شكرا لك اخي عريبي واخي عبد الله واخي عصام
الاخ عبد الله بارك الله بك لا حظت انك تستخدم المنافذ بالمجموعة B لتوضيح حالة المداخل بالمجموعة D من المعالج فهل يجوز هذا الامر .
كنت اعتقد ان كل مجموعة لها استقلالية بالتنفيذ والاوامر عن الاخرى .
تحياتي باقي ما اسلفت واضح تماما .
تلك العلامات
&& _ || _ واشارات الحساب من اين حصلت عليها وعلى معناها ان هذه الاشارة تمثل كذا وهذه تمثل كذا هل لها ملف خاص حملته من النت او ماشابه اقصد كيف علمت معناها
طبعا الاشارات الخاصة بالجمع والضرب والطرح والقسمة معلومة ولكن هل معناها بالبرمجة نفسه بالواقع .
انتظر تمرين لاحله على الواقع هذه مسألة المحاكاة خلاص نسيناها ودخلنا عالم الواقع ....😂😁😁😁😗😗
لقد اشتريت مبرمجة atx وانتظر صاحبها ليحضر قرص التعريف وبرامجها
حياكم الله

تحياتي للجميع


التعديل الأخير تم بواسطة : مسلم11 بتاريخ 22-12-2019 الساعة 11:56 PM

Hussain800
:: مهندس متميز ::
تاريخ التسجيل: Apr 2012
المشاركات: 635
نشاط [ Hussain800 ]
قوة السمعة:
قديم 25-12-2019, 02:56 AM المشاركة 48   
افتراضي


السلام عليكم ورحمة الله وبركاته بارك الله فيك اخى عبدالله حجازى على المجهودات ومشاركاتك وتفاعلك الدائم .
وبارك الله فيك على هده الدورة للمتحكمات الدقيقة بالميكرو سى والتى اكيد فيه ناس كثير تنتظرها ..
وفقك الله واعانك فى شرحك وانشاء الله فى ميزان حسناتك
والله الموفق



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