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

   

الصورة الرمزية ناصراحمد2
ناصراحمد2
:: عضو ذهبي ::
تاريخ التسجيل: Jul 2009
الدولة: EGYPT
المشاركات: 1,315
نشاط [ ناصراحمد2 ]
قوة السمعة:
قديم 04-11-2011, 06:49 AM المشاركة 17   
افتراضي



(((((تابع ماقبلة)))(((الجزء الثالث والاخير من شرح الدرس الاول )))

بعد الفاصل الاعلانى نعود لكى نكمل درسنا الدسم

طبعا نعلم ان الدرس هو عبارة عن ((تحريك الشكل فى اربع اتجاهات )
نتحكم بها عن طريق السويتش بوتن او (الازرار الضاغطة )
ولكى نستخدم الازرار الضاغطة لابد ان نستخدم الشرط (IF)
واذا نظرنا للكود الان سوف نجد انة يشمل عدد (4) للشرط (IF)


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


نعم الكود مقسم الى 4 مراحل يمثلها الشرط (IF)

الجزء الاول خاص للحركة ناحية اليمين اذا ضغطنا على زر
قمنا باستخدام البورت C للسويتشات وهذا باستخدام عدد 4بنات منها بن 1 وبن 2 وبن3 وبن4
البن 1 للحركة ناحية اليسار
والبن رقم 2 للحركة ناحية الاعلى
والبن رقم 3 للحركة للاسفل
والبن رقم 4 للحركة لليمين
لا يهم الترتيب فى اى شىء لان الدالة لن تعمل الا فى حالة الضغط على البن المخصص
ماعلينا من السويتشات اعتقد انة يوجد مواضيع كتير تستخدم شرط الاف والسوتشات




نلاحظ فى الكود انة لتحريك النص ناحية اليسار استخدمنا الطريقة التى تعلمناها سابقا

وهى اننا نقوم بالتبديل بين الداتا
واذا اخترنا الاقل=الاعلى منها
ثم الاعلى منها =الاعلى منها
او هذا الشكل

كود:
 ///////////////lllllllllllllllllllllllllllllllllllllllllllllllllllllll
كود:
 
  char data2[16]={
   0b00000000,
   0b00000000,
    0b00000000,
     0b00000000,
      0b00001111,
       0b00001111,
        0b00001111,
         0b00001100,   ////////////////
          0b00001100,
           0b00001111,
            0b00001111,
             0b00001111,
              0b00000000,
               0b00000000,
                0b00000000,
                 0b00000000,
                                };
   char data1[16]={
   0b00000000,
   0b00000000,
    0b00000000,
     0b00000000,
      0b11110000,
       0b11110000,
        0b11110000,
         0b00110000, /////
          0b00110000,
           0b11110000,
            0b11110000,
             0b11110000,
              0b00000000,
               0b00000000,
                0b00000000,
                 0b00000000,
                                };
                                
                                
    ///////////////////   ///////////////lllllllllllllllllllllllll
    
    
    
   char n,d0,d1,d2,d3,d4;  k;
/////////////////////////////////
 char x;
 char y;
  char m;
 
 void main() {
 TRISA=0;
 TRISB=0;
portb=0;
porta=0;
TRISd=0;
portd=0;
TRISc=0;
portc=0;
loop:
portc=0b11111111;
for (x=0;x<100;x++)   {

porta.f2=1; 
  ////////////////////////////////////////
porta.f1=1;   porta.f1=0;
   ////////////////// //////////////////
   portb=data2[0];
    portd=data1[0];
    delay_us(250);
   ////
   porta.f0=1;porta.f1=1; porta.f1=0;  porta.f0=0;
///////////////////////////////
  
   portb=data2[1];
    portd=data1[1];
    delay_us(250);
   ////
   porta.f0=1;porta.f1=1; porta.f1=0;  porta.f0=0;
///////////////////
    portb=data2[2];
    portd=data1[2];
    delay_us(250);
   porta.f0=1;porta.f1=1; porta.f1=0;  porta.f0=0;
  ////////////////
    portb=data2[3];
    portd=data1[3];
    delay_us(250);
   porta.f0=1;porta.f1=1; porta.f1=0;  porta.f0=0;
     ////////////////

     portb=data2[4];
    portd=data1[4];
    delay_us(250);
   ////
   porta.f0=1;porta.f1=1; porta.f1=0;  porta.f0=0;
///////////////////////////////
   portb=data2[5];
    portd=data1[5];
    delay_us(250);
   ////
   porta.f0=1;porta.f1=1; porta.f1=0;  porta.f0=0;
///////////////////
    portb=data2[6];
    portd=data1[6];
    delay_us(250);
   porta.f0=1;porta.f1=1; porta.f1=0;  porta.f0=0;
  ////////////////
    portb=data2[7];
    portd=data1[7];
    delay_us(250);
   porta.f0=1;porta.f1=1; porta.f1=0;  porta.f0=0;
     ////////////////
   portb=data2[8];
    portd=data1[8];
    delay_us(250);
   ////
   porta.f0=1;porta.f1=1; porta.f1=0;  porta.f0=0;
///////////////////////////////
   portb=data2[9];
    portd=data1[9];
    delay_us(250);
   ////
   porta.f0=1;porta.f1=1; porta.f1=0;  porta.f0=0;
///////////////////
    portb=data2[10];
    portd=data1[10];
    delay_us(250);
   porta.f0=1;porta.f1=1; porta.f1=0;  porta.f0=0;
  ////////////////
    portb=data2[11];
    portd=data1[11];
    delay_us(250);
   porta.f0=1;porta.f1=1; porta.f1=0;  porta.f0=0;
     ////////////////
    
   portb=data2[12];
    portd=data1[12];
    delay_us(250);
   ////
   porta.f0=1;porta.f1=1; porta.f1=0;  porta.f0=0;
///////////////////////////////
   portb=data2[13];
    portd=data1[13];
    delay_us(250);
   ////
   porta.f0=1;porta.f1=1; porta.f1=0;  porta.f0=0;
///////////////////
    portb=data2[14];
    portd=data1[14];
    delay_us(250);
   porta.f0=1;porta.f1=1; porta.f1=0;  porta.f0=0;
  ////////////////
    portb=data2[15];
    portd=data1[15];
    delay_us(250);
   porta.f0=1;porta.f1=1; porta.f1=0;  porta.f0=0;
     ////////////////
    
    
    //


فان كل جزء من الداتا سوف يتحرك لياخذ القيمة الاخرى
وهكذا سوف تلاحظ العين ان النص يتحرك لليسار
ملاحظة هامة :
التغيير من الاقل الى الاعلى ليس بشرط ولكن هذا حسب ماقمنا بتحديد الداتا داخل العرض
((هذا ايضا تم شرحة سابقا فى الدروس السابقة ))

نلاحظ ايضا انة يوجد فى الكود جزئين جزء يمين وجزء يسار وتقريبا هم نفسهم ؟؟؟؟؟؟؟

طبعا لا ننسى اننا نستخدم عدد 2 داتا DATA2&DATA1
وكل واحدة منهم نستخدمها فى بورت B&D
ولكى يتم ازاحة الشكل بالكامل لابد ان تتم ازاحة ال2داتا فى نفس الوقت حتى لا تلاحظ العين ان احداهما تسبق الاخرى
وهذة النقطة سوف نستخدمها فى جميع حركاتنا

ونفس الطريقة السابقة يتم استخدامها للتحريك ناحية اليمين

ولكن مع فرق بسيط ؟؟؟
ياترى ماهو ؟؟؟

اوك

فعلا الفرق هو
بدلا من ان يحتل الاصغر يساوى الاكبر منة ثم الاكبر منة يحتل ماهو اكبر منة
نفعل العكس
الاكبر =الاصغر منة
الاصغر منة =الاصغر منة
وهكذا


ولا ننسى ان ياخذ اخر رقم مكان اول رقم والا لن يتم الالتفاف والحركة تستمر لدورة واحدة فقط ه

================
الحركة رقم 3
البن رقم 3 من البورت C

استخدمناها للتحريك الى الاسفل


مممممممم

يوجد تساؤل لشخص شديد الملاحظة لماذا هذا الجزء صغير جدا بالنسبة للبقية؟؟؟؟؟؟

::::::::::وارد عليكم بكل بساطة انة هذا الكود شبية الكود الذى يسبقة ولكنة مختصر ::::::::

وهذا قمت بتنفيذة فى الكود لكى نتاكد ان بالامكان تنفيذ ماسبق من اكواد طويلة ولكن بشكل اقصر بكثيثثثثثثثثثثر


سؤال اخر ممكن ان يخطر ببالكم ؟؟؟

لماذا لم يتم اختصار جميع الخطوات السابقة ؟؟؟؟
والاجابة ببساطة:
لانة من الممكن ان لا يفهمها المستجدون فى عالم البرمجة امثالى
وايضا لكى نشاهد كل حركة بتفاصيلها

=========

==================
حتى هذة اللحظة اعتقد انة تم شرح الجميع والدرس بالكامل
ولكن لى اضافة بسيطة
لاحظو هذا الجزء من الكود
d4= data1[y].f0;
d3= data2[y].f0;
data1[y].f7=d3; data2[y].f7=d4;

نلاحظ وجود d4&d3

وهم ليس موجودتين فى الكود الاساسى فماهما وما وظيفتهما ؟؟؟؟؟؟؟؟؟

الاجابة:

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


؟؟؟؟؟؟

؟؟؟؟؟
اعتقد انها مفهومة ؟؟؟؟؟؟؟؟
مممممممم
اوك لمن لا يستوعب هذا الامر نعطى مثال بسيط

1=x

2=a
3=b
4=c
كمثال هذة الارقام تساوى كل واحدة منهم القيمة مابعد = انتبهو جيدا للرقم 1 وهو يساوى x
نقوم الان بالتبديل
1=2
2=3
3=4
4=1
سوف نكتشف بعد التنفيذ شىء غريب ان القيمة x
غير موجودة لانها بكل بساطة تحولت الى a
بعد تنفيذ اول خطوة للبرنامج
فيحدث انة فى الخطوة الاخيرة تحتل رقم 4 قيمة الرقم1 الذى تحول بعد اول خطوة الى a
والحل لهذة المشكلة اننا قمنا بحجز مخزن اضافى نقوم بتخزين اول قيمة بة ثم نستدعيها فى اخر خطوة هههههه




اعتقد ان درسنا اليوم ((((دسم جدا جدا )))))))



لا تكتفى بالقراءة مرة واحدة قم باعادة القراءة مرة ومرتان او ثلاث




انتهى شرح الدرس الاول من الجزء الثانى من دورة شرح الماتركس من الالف الى الياء

8****************8
(((((((((((((((((((نهايــــــــــية الدرس الاول ))))))))))))))))))))))

اعلانات

الصورة الرمزية ناصراحمد2
ناصراحمد2
:: عضو ذهبي ::
تاريخ التسجيل: Jul 2009
الدولة: EGYPT
المشاركات: 1,315
نشاط [ ناصراحمد2 ]
قوة السمعة:
قديم 07-11-2011, 02:29 AM المشاركة 18   
افتراضي


واضح جدا ان الدرس دسم جدا جدا لدرجة انة حتى لا يوجد اى استفسارات ؟؟

=====================
عموما ممكن ضغط الدرس باستخدام برنامج ابسط من المستخدم فى الدرس
كمثال ماتركس 8x8 فقط .
هذا اذا كان هذا طلبكم ..................
=========================

وكل عام وانتم بخير وصحة وسعادة
وعيد سعيد عليكم جميعا

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

ياسر الجبوري
:: مهندس متواجد ::
تاريخ التسجيل: Jan 2007
الدولة: العراق
المشاركات: 85
نشاط [ ياسر الجبوري ]
قوة السمعة:
قديم 15-11-2011, 05:47 PM المشاركة 19   
افتراضي


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


الصورة الرمزية ناصراحمد2
ناصراحمد2
:: عضو ذهبي ::
تاريخ التسجيل: Jul 2009
الدولة: EGYPT
المشاركات: 1,315
نشاط [ ناصراحمد2 ]
قوة السمعة:
قديم 16-11-2011, 01:48 AM المشاركة 20   
افتراضي


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

والله كلامك صدق يااخى ياسر :
فعلا شعرت باحباط شديد بسبب عدم التجاوب والمشاركات ههههههه
حتى انى احترت هل الدرس بدائى جدا وبسيط والكل على دراية تامة بة وهم لا يشعرون بجديد ..............
ام ان الدرس دسم لدرجة انة لا يسهل هضمة ...........
ام الشرح غير مفهوم ؟؟؟؟؟؟؟؟؟؟؟
الله اعلم
ولكنى سعيد جدا بوجودكم جميعا فى الموضوع
فنحن جميعا نتعلم من بعضنا البعض


zoro238
:: مهندس جيد ::
تاريخ التسجيل: Apr 2006
المشاركات: 290
نشاط [ zoro238 ]
قوة السمعة:
قديم 16-11-2011, 09:12 AM المشاركة 21   
افتراضي


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

فنشكرك من كل قلبنا ونتمنى منك الاستمرار ونحن معك استاذ ناصر


الصورة الرمزية compiler_x
compiler_x
:: مهندس متميز ::
تاريخ التسجيل: Apr 2008
الدولة: IRAQ
المشاركات: 374
نشاط [ compiler_x ]
قوة السمعة:
قديم 16-11-2011, 01:10 PM المشاركة 22   
افتراضي


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

لذا ارجوا ان تواصل عطائك ولا تضعف همتك من هذه الناحية


عبدالرحمن علوم
:: مهندس ::
تاريخ التسجيل: Nov 2010
المشاركات: 27
نشاط [ عبدالرحمن علوم ]
قوة السمعة:
قديم 16-11-2011, 11:44 PM المشاركة 23   
افتراضي


اريد رابط الجزء الاول
جزاكم الله خير


ياسر الجبوري
:: مهندس متواجد ::
تاريخ التسجيل: Jan 2007
الدولة: العراق
المشاركات: 85
نشاط [ ياسر الجبوري ]
قوة السمعة:
قديم 18-11-2011, 10:41 AM المشاركة 24   
افتراضي


اريد رابط الجزء الاول
جزاكم الله خير
للاخ عبد الرحمن ولكل من يرغب بالجزء الاول هذا الرابط
http://www.4shared.com/folder/sInyw7-0/_online.html



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