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

   

الصورة الرمزية عمرو عبد الرحمن
عمرو عبد الرحمن
:: مهندس متواجد ::
تاريخ التسجيل: Aug 2010
الدولة: مصر
المشاركات: 80
نشاط [ عمرو عبد الرحمن ]
قوة السمعة:
قديم 16-08-2010, 07:10 PM المشاركة 65   
افتراضي



جزاك الله كل خير يا احمد
ردك مشجع جدا

-==-==-==-==-==-==-==-==-==-==-

البرنامج عبارة عن كتابة كلمة ramy على led matrix 8*8
بيظهر الاول حرف R وبعدين A وهكذا بحركة من اسفل لاعلى

الكود
كود:
 void main(){

      char x;
      char t[33];
      char y;


            cmcon=0x07;
             TRISB=0; PORTB=0; TRISA=0; PORTA=0;


       up:

                 t[0]= 0B00000000;
                 t[1]= 0B00000000;
                 t[2]= 0B00000000;
                 t[3]= 0B00000000;
                 t[4]= 0B00000000;
                 t[5]= 0B00000000;
                 t[6]= 0B00000000;
                 t[7]= 0B00111000;
                 t[8]= 0B00100100;
                 t[9]= 0B00111000;
                 t[10]=0B00101000;
                 t[11]=0B00100100;
                 t[12]=0B00000000;
                 t[13]=0B00000000;
                 t[14]=0B00010000;
                 t[15]=0B00101000;
                 t[16]=0B00111000;
                 t[17]=0B01000100;
                 t[18]=0B01000100;
                 t[19]=0B00000000;
                 t[20]=0B00000000;
                 t[21]=0B00101000;
                 t[22]=0B01010100;
                 t[23]=0B01000100;
                 t[24]=0B01000100;
                 t[25]=0B00000000;
                 t[26]=0B00000000;
                 t[27]=0B00101000;
                 t[28]=0B00111000;
                 t[29]=0B00001000;
                 t[30]=0B00001000;
                 t[31]=0B00111000;
                 t[32]=0B00000000;


             for (x=1; x<32;x++){
                    while (y<100){
                    PORTA=0B11111110; PORTB=t[0];delay_us(300);
                    PORTA=0B11111101; PORTB=t[1];delay_us(300);
                    PORTA=0B11111011; PORTB=t[2];delay_us(300);
                    PORTA=0B11110111; PORTB=t[3];delay_us(300);
                    PORTA=0B11101111; PORTB=t[4];delay_us(300);
                    PORTA=0B10111111; PORTB=t[5];delay_us(300);
                    PORTA=0B01111111; PORTB=t[6];delay_us(300);
                    y=y+1 ;
                    }
                    y=1;
                     t[0]=t[1];
                     t[1]=t[2];
                     t[2]=t[3];
                     t[3]=t[4];
                     t[4]=t[5];
                     t[5]=t[6];
                     t[6]=t[7];
                     t[7]=t[8];
                     t[8]=t[9];
                     t[9]=t[10];
                     t[10]=t[11];
                     t[11]=t[12];
                     t[12]=t[13];
                     t[13]=t[14];
                     t[14]=t[15];
                     t[15]=t[16];
                     t[16]=t[17];
                     t[17]=t[18];
                     t[18]=t[19];
                     t[19]=t[20];
                     t[20]=t[21];
                     t[21]=t[22];
                     t[22]=t[23];
                     t[23]=t[24];
                     t[24]=t[25];
                     t[25]=t[26];
                     t[26]=t[27];
                     t[27]=t[28];
                     t[28]=t[29];
                     t[29]=t[30];
                     t[30]=t[31];
                   t[31]=t[32];

                 }

                    
                    goto up;
                    
                    
   }
شرح بسيط للكود للاخوانى
فى البداية عملت مصفوفة وضعت فيها البيانات اللى حبيت انها تظهر على الماتركس
فى البداية اصفار لكى لا يظهر شى على اللوحه ومن ثم يبدء الليدات تضى بالتتابع كما فى المصفوفة من اسفل لاعلى باستخدام التسلسل كما فى اخر الكود فاقوم بتغير القيم الموجودة فى المصفوفة بان اجعل الموجود فى الحد رقم 1 موجود فى صفر والموجود فى 2 ينتقل ل 1 وهكذا

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

ملف ال proteus

http://www.mediafire.com/?p7sngavpo7d40h5


-==-==-==-==-==-==-==-==-==-==-

جزاك الله كل خير اخى الحبيب ومهندسنا العزيز احمد سمير

اعلانات

وليد K
:: مهندس ::
تاريخ التسجيل: Nov 2009
المشاركات: 49
نشاط [ وليد K ]
قوة السمعة:
قديم 16-08-2010, 07:19 PM المشاركة 66   
افتراضي


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

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

الصورة الرمزية ahmad_s_f
ahmad_s_f
:: المهندس/ أحمد سمير فايد ::
تاريخ التسجيل: Jun 2006
الدولة: سائح في ارض الله
المشاركات: 632
نشاط [ ahmad_s_f ]
قوة السمعة:
قديم 16-08-2010, 08:04 PM المشاركة 67   
افتراضي


اخى الحبيب احمد الرابط لا يعمل وانا متلهف لمشاهدة الحلقة الثانية وخصوصا انها فيديو
يبدو أخي أن موقع 4shared لا يعمل عندك .. لذلك سأرفع الفيديو إن شاء الله على موقع آخر إضافي ..


==========================
أخي الكريم عمرو عبد الرحمن ... شكرا جزيلا لك على هذا المشروع وعلى وضع الكود والمحاكاة .

لي ملحوظتين فقط ربما تستفيد منهم .

الملحوظة الأولى بدلا من أن تكتب سطور كثيرة تخيف المبتدأين كهذه . ..
كود:
t[0]= 0B00000000 ; t[1]= 0B00000000; t[2]= 0B00000000; t[3]= 0B00000000; t[4]= 0B00000000; t[5]= 0B00000000; t[6]= 0B00000000; t[7]= 0B00111000; t[8]= 0B00100100; t[9]= 0B00111000; t[10]=0B00101000; t[11]=0B00100100; t[12]=0B00000000; ........... ........ etc
كان من الممكن أن تكتب في سطرين أوثلاثة بهذا الشكل

كود:
 
char t[]={
0B00000000, 0B00000000, 0B00000000, 0B00000000, 0B00000000, 0B00000000, 0B00000000, 0B00111000, 0B00100100, 0B00111000,0B00101000,0B00100100,0B00000000,
..........
.....
etc
هذا من أجل اختصار الشكل , ( ومنعا لبث الرعب في قلوب الذي يخافون من الأسطر الكثيرة . )

=======================

الملحوظة الثانية وهي الأهم .
أنك كتبت الأوامر التالية ويفضل تعديلها وهي :
كود:
 
t[0]=t[1];
 t[1]=t[2];
 t[2]=t[3];
 t[3]=t[4];
 t[4]=t[5]; 
t[5]=t[6]; 
t[6]=t[7];
 t[7]=t[8];
 t[8]=t[9];
 t[9]=t[10];
 t[10]=t[11];
 t[11]=t[12];
 t[12]=t[13];
 t[13]=t[14];
 t[14]=t[15];
 t[15]=t[16];
 t[16]=t[17];
 
 t[17]=t[18];
 t[18]=t[19];
 t[19]=t[20];
 t[20]=t[21];
 t[21]=t[22];
 t[22]=t[23];
 t[23]=t[24];
 t[24]=t[25];
 t[25]=t[26];
 t[26]=t[27];
 t[27]=t[28];
 t[28]=t[29];
 t[29]=t[30];
 t[30]=t[31];
 t[31]=t[32]; }
هذا الكود الطويل يمكن اختصاره في سطر واحد فقط كما يلي :

كود:
for (zz=0;zz<=31;zz++) t[zz]=t[zz+1];
لكن ماشاء الله الفكر ممتاز والمشروع يدل على مستوى راقي في البرمجة

وهذه الملحوظة لا تقلل أبدا من شأن ابداعك .

وفقك الله وإلى المزيد من التقدم .


الصورة الرمزية ahmad_s_f
ahmad_s_f
:: المهندس/ أحمد سمير فايد ::
تاريخ التسجيل: Jun 2006
الدولة: سائح في ارض الله
المشاركات: 632
نشاط [ ahmad_s_f ]
قوة السمعة:
قديم 16-08-2010, 08:11 PM المشاركة 68   
افتراضي


قمت برفع الفيديو الخاص بالحلقة الثانية على موقع آخر لمن لم يعمل معه الرابط الأول .

http://rapidshare.com/files/41331060...__________.wmv

بالتوفيق ,,


الصورة الرمزية عمرو عبد الرحمن
عمرو عبد الرحمن
:: مهندس متواجد ::
تاريخ التسجيل: Aug 2010
الدولة: مصر
المشاركات: 80
نشاط [ عمرو عبد الرحمن ]
قوة السمعة:
قديم 16-08-2010, 08:41 PM المشاركة 69   
افتراضي


ماشاء الله لا حول ولا قوة الا بالله

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

جزاك الله كل خير


king ridha
:: مهندس متواجد ::
تاريخ التسجيل: Mar 2010
المشاركات: 95
نشاط [ king ridha ]
قوة السمعة:
قديم 16-08-2010, 09:36 PM المشاركة 70   
افتراضي


ماشاء الله


TDK
:: مهندس ::
تاريخ التسجيل: May 2010
المشاركات: 21
نشاط [ TDK ]
قوة السمعة:
قديم 16-08-2010, 11:58 PM المشاركة 71   
افتراضي


كود:
           for (x=1; x<32;x++){
        	   y=0;
                  while (y<100){
                  PORTA=0B11111110;
                  for(zz=0; zz<7; zz++) {
                	  PORTB=t[zz];delay_us(300);
                	  porta = ~porta;
                	  porta <<=1;
                	  porta= ~porta;
                  }

                  y++;
                  }
                  for(zz =0; zz<33; zz++){
                	  t[zz]=t[zz+1];
                  }
           }
و ممكن يبقى كدة برضو
بدل
porta = 0b11111110; portb = t[0]; delay_us(300);
porta = 0b11111101; portb = t[1]; delay_us(300);
porta = 0b11111011; portb = t[2]; delay_us(300);
...... etc
عشان احيانا بتبقى سطور كتيرة اوى


الصورة الرمزية عمرو عبد الرحمن
عمرو عبد الرحمن
:: مهندس متواجد ::
تاريخ التسجيل: Aug 2010
الدولة: مصر
المشاركات: 80
نشاط [ عمرو عبد الرحمن ]
قوة السمعة:
قديم 17-08-2010, 12:20 AM المشاركة 72   
افتراضي


ماشاء الله
جزاك الله كل خير اخى الحبيب TDK

ممكن حضرتك توضحلى السطر دة وظفتة اية
porta <<=1;
؟؟؟



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