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

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

الصورة الرمزية المخترع01
المخترع01
:: مهندس متميز ::
تاريخ التسجيل: Dec 2009
المشاركات: 397
نشاط [ المخترع01 ]
قوة السمعة:0
قديم 12-09-2014, 02:27 PM المشاركة 1   
افتراضي مشروع متريكس 8*8 محتاج نعديل بسيط Twitter FaceBook Google+



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

لاكن انا اريد ان اضيف سوتش عند الضغط عليه يشتعل ليد

لاكن لم لنجخ مع ان استخدمة جملة IF

ارجو منكم تعديل الكود

المشروع في المرفقات

التعديل عند الضغط sw1 يشتعل الليد الاول و عند الضغط على sw2
يشتعل الليد الثاني


http://www.4shared.com/rar/CY2UIUsDba/matrix88.html

اعلانات

الصورة الرمزية ناصراحمد2
ناصراحمد2
:: عضو ذهبي ::
تاريخ التسجيل: Jul 2009
الدولة: EGYPT
المشاركات: 1,334
نشاط [ ناصراحمد2 ]
قوة السمعة:98
قديم 13-09-2014, 12:52 AM المشاركة 2   
angry


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

لاكن انا اريد ان اضيف سوتش عند الضغط عليه يشتعل ليد

لاكن لم لنجخ مع ان استخدمة جملة IF

ارجو منكم تعديل الكود

المشروع في المرفقات

التعديل عند الضغط sw1 يشتعل الليد الاول و عند الضغط على sw2
يشتعل الليد الثاني


http://www.4shared.com/rar/CY2UIUsDba/matrix88.html
وعليكم السلام ورحمة الله وبركاتة
المشكلة ليست لديك انما فى البورت A فهو بة بعض الرجول لا تعمل الا بتفعيل الكود
ماعليك من ذلك الان لانى انا نفسى لا اتذكرها الان هل هى ادكون او كمكون .
المهم :
يكفيك ان تتعرف كيف تجرى الامور وتابع الشروحات
لانك مازلت فى البدايات الاولى وسوف تجد ان القادم افضل من ناحية استخدام مسجلات ازاحة وحجم ماتركس اكبر وكود مرتب ومختصر قليلا
بالرغم من انى لم اختصر الاكواد لكى نفهم سويا الامور خطوة بخطوة
قم بوضع سويتش على البن رقم 1من البورت A لتشغيل الماتركس واضائة البن 0 من البورت سى كما اردت فى الكود
وايضا قم بوضع سويتش اخر على البن 5 من البورت A

ولاحظ الفرق بين الكود هذا وكودك

كود:
char x41= 0b00000000; char x40= 0b10110100; char x39= 0b10110100; char x38= 0b11111100; char x37= 0b11111100; char x36= 0b00000000; char x35= 0b00100000; char x34= 0b00110000; char x33= 0b00111100; char x32= 0b00000000; char x31= 0b00111100; char x30= 0b00100100; char x29= 0b11111100; char x28= 0b00000000; char x27= 0b10111100; char x26= 0b10111100; char x25= 0b00000000; char x24= 0b00001100; char x23= 0b00001100; char x22= 0b11111100; char x21= 0b11111100; //////// libre char x20= 0b00000000; char x19= 0b10111100; char x18= 0b10111100; char x17= 0b00000000; char x16= 0b00000000; char x15= 0b11001100; char x14= 0b01111000; char x13= 0b00110000; char x12= 0b01111000; char x11= 0b11001100; char x10= 0b00000000; char x9= 0b11111100; char x8= 0b10100000; char x7= 0b11111100; char x6= 0b00000000; char x5= 0b11000000; char x4= 0b11111100; char x3= 0b11111100; char x2= 0b11000000; char x1= 0b00000000; //////// TAXi char n; void main() { ADCON1=0x0F; // Configure AN pins as digital CMCON= 7; trisA.f0=1 ; TRISB=0; PORTB=0; TRISc=0; PORTc=0; TRISd=0; PORTd=0; while (1) { if ( portA.f1==1){ portc.f0=1; delay_ms(50); } if ( portA.f5==3){ portc.f0=0; portb=0; portd=0; delay_ms(50); } if(portc.f0==1){ for(n=0;n<100;n++){ ///////////// PORTd=0B11111011; PORTB=x6; delay_us(300); //////////// PORTd=0B11110111; PORTB=x5; delay_us(300); /////////// PORTd=0B11101111; PORTB=x4; delay_us(300); /////////////////// PORTd=0B11011111; PORTB=x3; delay_us(300); //////////// PORTd=0B10111111; // &#210;&#237;&#207; &#199;&#225;&#199;&#218;&#227;&#207;&#201; PORTB=x2; delay_us(300); /////////// PORTd=0B01111111; PORTB=x1; delay_us(300); // set switch is pressed } // x1=x2; x2=x3; x3=x4; x4=x5; x5=x6; x6=x7; x7=x8; x8=x9; x9=x10; x10=x11; x11=x12; x12=x13; x13=x14; x14=x15; x12=x13; x13=x14; x14=x15; x15=x16; x16=x17; x17=x18; ////////////////// &#199;&#225;&#199;&#211;&#216;&#209; x18=x19; x19=x20; x20=x21; x21=x22; x22=x23; x23=x24; x24=x25; x25=x26; x26=x27; x27=x28; x28=x29; x29=x30; x30=x31; x31=x32; x32=x33; x33=x34; x34=x35; x35=x36; x36=x37; x37=x38; x38=x39; x39=x40; x40=x41; x41=x1; } } }


وعموما يمكنك التعديل واستخدام البورت سى لعمل السوتشات
او تابع الشروحات واى استفسار سوف تجد الردود باذن الله

بالتوفيق ان شاء الله

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

الصورة الرمزية المخترع01
المخترع01
:: مهندس متميز ::
تاريخ التسجيل: Dec 2009
المشاركات: 397
نشاط [ المخترع01 ]
قوة السمعة:0
قديم 13-09-2014, 09:35 AM المشاركة 3   
افتراضي


السلام

بعد التعديل عمل الليد جيد

لاكن اخ ناصر عن الضغط المتواصل يصبح اليد يرتعش يشتعل و ينطفئ بسرعة

هذا في حالة عكس البورة

لم افهم هل هو من الدولي

if ( portA.f5==1){ portc.f2=~portc.f2; delay_ms(50); }
if ( portA.f6==1){ portc.f3=~portc.f3; delay_ms(50); }


الصورة الرمزية ناصراحمد2
ناصراحمد2
:: عضو ذهبي ::
تاريخ التسجيل: Jul 2009
الدولة: EGYPT
المشاركات: 1,334
نشاط [ ناصراحمد2 ]
قوة السمعة:98
قديم 14-09-2014, 09:47 PM المشاركة 4   
angry


السلام

بعد التعديل عمل الليد جيد

لاكن اخ ناصر عن الضغط المتواصل يصبح اليد يرتعش يشتعل و ينطفئ بسرعة

هذا في حالة عكس البورة

لم افهم هل هو من الدولي
فقط زود فترة الانتظار delay_ms(100);
لان عند الضغط فترة ال 50 لا تكفى
ولكى تتاكد اجعلها 500 للتاكد وبعدها خفض قيمة الانتظار حتى تناسب دائرتك
======================
ولا تنسى متابعة باقى الشروحات للاستفادة
بالتوفيق ان شاء الله

احصائية الشكر والاعجاب - 0 شكراً, 0 عدم اعجاب, 1 اعجاب
اعجاب المخترع01 ( أعجبته المشاركة )

الصورة الرمزية المخترع01
المخترع01
:: مهندس متميز ::
تاريخ التسجيل: Dec 2009
المشاركات: 397
نشاط [ المخترع01 ]
قوة السمعة:0
قديم 15-09-2014, 08:58 AM المشاركة 5   
افتراضي


السلام عليكم اخ ناصر

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

وهو

كود:
  if ( portA.f5==1){ portc.f2=1; delay_ms(5);  }   ////// led libre
  if ( portA.f5==0){ portc.f2=0; delay_ms(5);  }
طيب اخي هل من حل لطلبي هذا

بعد عرض الرسالة الالى اريد من الميكرو عرض لعب باليد

لاكن لم استطع المرور الى المرحلة الثانية لان ليسة كلمات متحركة بل فقط لعب باليد 6*6 ثم 4*4 ثم 2*2 يعني

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


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

كود:
   void toot ()  ;
 void ss()  ;
char x22= 0b11111111;
char x21= 0b00000000;
char x20= 0b00000000;
char x19= 0b10111100;
char x18= 0b10111100;
char x17= 0b00000001;
char x16= 0b00000001;
char x15= 0b11001100;
char x14= 0b01111000;
char x13= 0b00110000;
char x12= 0b01111000;
char x11= 0b11001100;
char x10= 0b00000001;
char x9=  0b11111100;
char x8=  0b10100000;
char x7=  0b11111100;
char x6=  0b00000001;
char x5=  0b11000000;
char x4=  0b11111100;
char x3=  0b11111100;
char x2=  0b11000000;
char x1=  0b00000000;


char n;

   /////////////////////////
   void main ()
{
    ADCON1=0x0F; // Configure AN pins as digital
    CMCON= 7;
    trisA.f5=0 ;
    trisA.f4=0 ;
    TRISB=0;

    PORTA=0;
    TRISc=0;
    PORTc=0;
    TRISd=0;
    PORTd=0;

{

while (1)  {

  if ( portA.f5==1){ portc.f2=1; delay_ms(5);  }   ////// led libre
  if ( portA.f5==0){ portc.f2=0; delay_ms(5);  }

  if ( portA.f4==1){ portc.f3=1; delay_ms(5);  }   ///// led occupe
  if ( portA.f4==0){ portc.f3=0; delay_ms(5);  }




 for(n=0;n<100;n++){


PORTd=0B11111011;
PORTB=x6; delay_us(300);
////////////
PORTd=0B11110111;
PORTB=x5; delay_us(300);
///////////
PORTd=0B11101111;
PORTB=x4; delay_us(300);

///////////////////

PORTd=0B11011111;
PORTB=x3; delay_us(300);
////////////
PORTd=0B10111111;                   // &#210;&#237;&#207; &#199;&#225;&#199;&#218;&#227;&#207;&#201;
PORTB=x2; delay_us(300);
///////////
PORTd=0B01111111;
PORTB=x1; delay_us(300);



}

x1=x2;
x2=x3;
x3=x4;
x4=x5;
x5=x6;
x6=x7;
x7=x8;
x8=x9;
x9=x10;
x10=x11;
x11=x12;
x12=x13;
x13=x14;
x14=x15;
x15=x16;
x16=x17;
x17=x18;
x18=x19;
x19=x20;
x20=x1;



if(x20=x1==0b11111111)   { portd=0b00000011; portb=0b11111100 ; delay_ms(500);
                           portd=0b10000111; portb=0b01111000 ; delay_ms(500);
                           portd=0b11001111; portb=0b00110000 ; delay_ms(500);
                           portd=0b11111111; portb=0b00000000 ; delay_ms(500);
                           /////////////////////////////////////////////////// jeux de les caroooo
                           portd=0b11001111; portb=0b00110000 ; delay_ms(500);
                           portd=0b10000111; portb=0b01111000 ; delay_ms(500);
                           portd=0b00000011; portb=0b11111100 ; delay_ms(500);
                          }






      }   }  }


الصورة الرمزية ناصراحمد2
ناصراحمد2
:: عضو ذهبي ::
تاريخ التسجيل: Jul 2009
الدولة: EGYPT
المشاركات: 1,334
نشاط [ ناصراحمد2 ]
قوة السمعة:98
قديم 16-09-2014, 10:48 PM المشاركة 6   
angry


السلام عليكم ورحمة الله وبركاتة
بعد قرائة موضوعك الاخر فهمت ماتقصدة
عموما اليك الكود باكثر من طريقة واكثر من مهمة
اولا هذا الكود يقوم باستخدام 2 سويتش اولهم على البن رقم 1 بورت A
فيقوم بعرض كلمة الماتركس
وسويتش اخر على البن 5 ايضا للبورت A
فيقوم بعرض تشكيل المربعات ولا اعلم سبب تسميتة (العاب اليد ؟؟)
اليك الكود الاول
وسوف ارسل لك كود اخر يعرض الحركتين بالتتابع بدون شروط
الكود الاول :

كود:
char x41= 0b00000000; char x40= 0b10110100; char x39= 0b10110100; char x38= 0b11111100; char x37= 0b11111100; char x36= 0b00000000; char x35= 0b00100000; char x34= 0b00110000; char x33= 0b00111100; char x32= 0b00000000; char x31= 0b00111100; char x30= 0b00100100; char x29= 0b11111100; char x28= 0b00000000; char x27= 0b10111100; char x26= 0b10111100; char x25= 0b00000000; char x24= 0b00001100; char x23= 0b00001100; char x22= 0b11111100; char x21= 0b11111100; //////// libre char x20= 0b00000000; char x19= 0b10111100; char x18= 0b10111100; char x17= 0b00000000; char x16= 0b00000000; char x15= 0b11001100; char x14= 0b01111000; char x13= 0b00110000; char x12= 0b01111000; char x11= 0b11001100; char x10= 0b00000000; char x9= 0b11111100; char x8= 0b10100000; char x7= 0b11111100; char x6= 0b00000000; char x5= 0b11000000; char x4= 0b11111100; char x3= 0b11111100; char x2= 0b11000000; char x1= 0b00000000; //////// TAXi char n; void main() { ADCON1=0x0F; // Configure AN pins as digital CMCON= 7; trisA.f0=1 ; TRISB=0; PORTB=0; TRISc=0; PORTc=0; TRISd=0; PORTd=0; while (1) { if ( portA.f1==1){ portc.f0=~portc.f0; portc.f3=0; delay_ms(100); } if ( portA.f5==3){ portc.f3=~portc.f3; portc.f0=0; portb=0; portd=0; delay_ms(100); } if(portc.f0==1){ for(n=0;n<100;n++){ ///////////// PORTd=0B11111011; PORTB=x6; delay_us(300); //////////// PORTd=0B11110111; PORTB=x5; delay_us(300); /////////// PORTd=0B11101111; PORTB=x4; delay_us(300); /////////////////// PORTd=0B11011111; PORTB=x3; delay_us(300); //////////// PORTd=0B10111111; // &#210;&#237;&#207; &#199;&#225;&#199;&#218;&#227;&#207;&#201; PORTB=x2; delay_us(300); /////////// PORTd=0B01111111; PORTB=x1; delay_us(300); // set switch is pressed } // x1=x2; x2=x3; x3=x4; x4=x5; x5=x6; x6=x7; x7=x8; x8=x9; x9=x10; x10=x11; x11=x12; x12=x13; x13=x14; x14=x15; x12=x13; x13=x14; x14=x15; x15=x16; x16=x17; x17=x18; ////////////////// &#199;&#225;&#199;&#211;&#216;&#209; x18=x19; x19=x20; x20=x21; x21=x22; x22=x23; x23=x24; x24=x25; x25=x26; x26=x27; x27=x28; x28=x29; x29=x30; x30=x31; x31=x32; x32=x33; x33=x34; x34=x35; x35=x36; x36=x37; x37=x38; x38=x39; x39=x40; x40=x41; x41=x1; } //} if(portc.f3==1) { portd=0b00000011; portb=0b11111100 ; delay_ms(500); portd=0b10000111; portb=0b01111000 ; delay_ms(500); portd=0b11001111; portb=0b00110000 ; delay_ms(500); portd=0b11111111; portb=0b00000000 ; delay_ms(500); /////////////////////////////////////////////////// jeux de les caroooo portd=0b11001111; portb=0b00110000 ; delay_ms(500); portd=0b10000111; portb=0b01111000 ; delay_ms(500); portd=0b00000011; portb=0b11111100 ; delay_ms(500); } } }

احصائية الشكر والاعجاب - 0 شكراً, 0 عدم اعجاب, 1 اعجاب
اعجاب المخترع01 ( أعجبته المشاركة )

الصورة الرمزية ناصراحمد2
ناصراحمد2
:: عضو ذهبي ::
تاريخ التسجيل: Jul 2009
الدولة: EGYPT
المشاركات: 1,334
نشاط [ ناصراحمد2 ]
قوة السمعة:98
قديم 16-09-2014, 10:54 PM المشاركة 7   
angry


اليك الكود الاخر
وهو يعرض بدون شروط
اولا كلمات متحركة ثم حركة المربعات وايضا اضفت لك حركة نقطة متحركة

اى ثلاث برامج متتابعين :

كود:
char x41= 0b00000000; char x40= 0b10110100; char x39= 0b10110100; char x38= 0b11111100; char x37= 0b11111100; char x36= 0b00000000; char x35= 0b00100000; char x34= 0b00110000; char x33= 0b00111100; char x32= 0b00000000; char x31= 0b00111100; char x30= 0b00100100; char x29= 0b11111100; char x28= 0b00000000; char x27= 0b10111100; char x26= 0b10111100; char x25= 0b00000000; char x24= 0b00001100; char x23= 0b00001100; char x22= 0b11111100; char x21= 0b11111100; //////// libre char x20= 0b00000000; char x19= 0b10111100; char x18= 0b10111100; char x17= 0b00000000; char x16= 0b00000000; char x15= 0b11001100; char x14= 0b01111000; char x13= 0b00110000; char x12= 0b01111000; char x11= 0b11001100; char x10= 0b00000000; char x9= 0b11111100; char x8= 0b10100000; char x7= 0b11111100; char x6= 0b00000000; char x5= 0b11000000; char x4= 0b11111100; char x3= 0b11111100; char x2= 0b11000000; char x1= 0b00000000; //////// TAXi char n,n1; void main() { ADCON1=0x0F; // Configure AN pins as digital CMCON= 7; trisA.f0=1 ; TRISB=0; PORTB=0; TRISc=0; PORTc=0; TRISd=0; PORTd=0; while (1) { for(n1=0;n1<20;n1++){ for(n=0;n<100;n++){ ///////////// PORTd=0B11111011; PORTB=x6; delay_us(300); //////////// PORTd=0B11110111; PORTB=x5; delay_us(300); /////////// PORTd=0B11101111; PORTB=x4; delay_us(300); /////////////////// PORTd=0B11011111; PORTB=x3; delay_us(300); //////////// PORTd=0B10111111; // &#210;&#237;&#207; &#199;&#225;&#199;&#218;&#227;&#207;&#201; PORTB=x2; delay_us(300); /////////// PORTd=0B01111111; PORTB=x1; delay_us(300); // set switch is pressed } // x1=x2; x2=x3; x3=x4; x4=x5; x5=x6; x6=x7; x7=x8; x8=x9; x9=x10; x10=x11; x11=x12; x12=x13; x13=x14; x14=x15; x12=x13; x13=x14; x14=x15; x15=x16; x16=x17; x17=x18; ////////////////// &#199;&#225;&#199;&#211;&#216;&#209; x18=x19; x19=x20; x20=x21; x21=x22; x22=x23; x23=x24; x24=x25; x25=x26; x26=x27; x27=x28; x28=x29; x29=x30; x30=x31; x31=x32; x32=x33; x33=x34; x34=x35; x35=x36; x36=x37; x37=x38; x38=x39; x39=x40; x40=x41; x41=x1; } portb=0; portd=0; delay_ms(1000); // stop 1 for(n=0;n<2;n++){ portd=0b00000011; portb=0b11111100 ; delay_ms(500); portd=0b10000111; portb=0b01111000 ; delay_ms(500); portd=0b11001111; portb=0b00110000 ; delay_ms(500); portd=0b11111111; portb=0b00000000 ; delay_ms(500); /////////////////////////////////////////////////// jeux de les caroooo portd=0b11001111; portb=0b00110000 ; delay_ms(500); portd=0b10000111; portb=0b01111000 ; delay_ms(500); portd=0b00000011; portb=0b11111100 ; delay_ms(500); } portb=0; portd=0; delay_ms(1000); // stop 1 for(n=0;n<2;n++){ portb=0b00000001; portd=0b11111110 ; delay_ms(500); portb=0b00000010; portd=0b11111101 ; delay_ms(500); portb=0b00000100; portd=0b11111011; delay_ms(500); portb=0b00001000; portd=0b11110111; delay_ms(500); /////////////////////////////////////////////////// jeux de les caroooo portb=0b00010000; portd=0b11101111 ; delay_ms(500); portb=0b00100000; portd=0b11011111 ; delay_ms(500); portb=0b01000000; portd=0b10111111; delay_ms(500); portb=0b10000000; portd=0b01111111; delay_ms(500); } portb=0; portd=0; delay_ms(1000); // stop 1 } }

احصائية الشكر والاعجاب - 0 شكراً, 0 عدم اعجاب, 1 اعجاب
اعجاب المخترع01 ( أعجبته المشاركة )

الصورة الرمزية المخترع01
المخترع01
:: مهندس متميز ::
تاريخ التسجيل: Dec 2009
المشاركات: 397
نشاط [ المخترع01 ]
قوة السمعة:0
قديم 17-09-2014, 09:37 AM المشاركة 8   
win


اخ ناصر 1000 شكر لكم

انا افهم جيد المشكل في اعتماد الاقواس

يجب انهاء الاقواس ثم الدخول و انهاء مرة اخرى فيقوم الميكرو بعمل المطلوب بين الاقواس الاول ثم يدخل الى الثاني و الثالث

الفكرة امامي و لو انتبه لكم اجمل تحية

إضافة رد

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

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

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


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

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