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

   

يعقوب_86
:: مهندس ::
تاريخ التسجيل: Dec 2009
المشاركات: 11
نشاط [ يعقوب_86 ]
قوة السمعة:
قديم 26-12-2009, 07:13 PM المشاركة 41   
افتراضي عن قريب سآتيكم بشرح البرنامج



كود جميل ورائع وبسيط ونرجوا منك تحليله وشرحة تسلم ايدك يا باشا ويا رب اعمل كدا زيك
و هذه هدية
البرنامج نفسه لكن بشكل اقصر
http://www.4shared.com/file/18164772...osoft_Wor.html

اعلانات

الصورة الرمزية king5star
king5star
:: مهندس جيد ::
تاريخ التسجيل: Jun 2008
الدولة: Alexandria, Egypt
المشاركات: 238
نشاط [ king5star ]
قوة السمعة:
قديم 26-12-2009, 08:30 PM المشاركة 42   
افتراضي



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

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

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


(((الدرس السابع)))




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


بسم الله الرحمن الرحيم







اليكم اليوم باذن الله الدرس السابع

واتمنى ان يكون الجميع قد استوعب الدروس السابقة

لاننا هنا نعمل بطريقة البناء خطوة خطوة

ولا نستطيع الوصول الى الدور الثالث بدون المرور على الدور الاول والثانى؟؟؟





وصلنا بحمد الله الى التعامل مع الماتركس

حتى عدد 8x32



ومعنى هذا انه يستطيع كل منكم ان يزيد فى عدد الاعمدة كمايريد


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



وحان الوقت


لكى نرتقى الى الاعلى ههههههههههههههههههه



وسوف نقوم بتخفيض العدد الافقى

وهذا فقط لكى تكون الشروحات واضحة


سوف نقوم اليوم ان شاء الله

بانشاء ماتركس

16x16



وهذا معناه عدد الاسطر هى 16 سطر

وعدد الاعمدة 16 عمود

((للتوضيح والتذكير))

الاعمدة هى ماتتحرك افقى ويكون مسؤل عنها مسجلات الازاحة

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




اليكم الصورة الاولى للتوضيح

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

اما التوصيلات الاخرى اعتقد انها مفهومة




فى الصورة السابقة لا يوجد اى اتصال بين الماتركسات ومسجلات الازاحة
او الماتركس والميكرو


واردت ان اعرض لكم صورة اخرى للتوصيلات بدون خطوط

اعتقد ان الكثيرين يعرفونها

ولكن هذة الصورة لمن لا يعرفونها






وهكذا تكون الشروحات اوضح

والتوصيلات مفهومة اكثر




وسوف نقوم باستخدام نفس الكود السابق لهذا الدرس
كما تعودنا

اليكم ملفات الدرس السابع
http://www.***********/download/20952...son_7.rar.html


((((((عفوا باسورد فك الضغط عن طريق الرسائل الخاصة))))))))


واليكم فيديو للمحاكاة للدرس



http://www.youtube.com/watch?v=7sGMXRSTVzU
ملاحظة الفيديو بطىء بسبب برنامج تصوير الشاشة



لكى نتسوعب هذا الدرس

علينا فهم الاساس

كما لاحظتم فى الدروس السابقة

كنت داما اقول :

ان الكود مبنى من
3اجزاء



الداتا ( ماتشاهدة العين ويتم عرضة ع الشاشة )


والجزء الاوسط

وهذا هو المتحكم فى الكود

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

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


؟؟؟؟؟؟؟؟؟؟؟؟؟


مممممممممممم

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




فعلا


اليوم قمنا باستخدام الاتجاهين معا

من اليمين لليسار ومن اليسار الى اليمين


وقمنا باستخدام جملة واحدة لكى نسهل الامور وتكون اوضح


+++++++++++++++++++++++



بالمناسبة كان من الممكن ان اجعل الداتا نفسها ونستخدمها فى بورت B

وهى نفسها نستخدمها فى بورت D



ولكن ذ لك لا يعطينا فرصة للتغيير


ولذلك:


قمنا بانشاء داتا جديدة باسم M

واستخدمناها مع البورت D


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


اهم نقطة فى درسنا اليوم هو ملاحظة

الخروج للنص


فى اوسط الكود
كود:
porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; portd=m1; portb=d44; delay_us(250); porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0;
سوف تلاحظ

ان بورت d44=B
وان بورت D=m1


????????????????


هل فهمنا ام لا ؟؟؟؟؟؟؟؟؟؟؟؟؟



===========



ولم ننسى اضافة الجزء الاسفل من الكود


وهو كما نعرف جميعا للتبديل ((( اوالتحريك للكود)))






واليكم الكود النهائى



كود:
char d0=0b00000000; char d1=0b00000000; char d2=0b11111110; char d3=0b11111110; char d4=0b00000000; //// char d5=0b11111110; char d6=0b11111110; char d7=0b00000110; char d8=0b00000110; char d9=0b11111110; char d10=0b11111110; char d11=0b00000110; char d12=0b00000110; char d13=0b00111110; char d14=0b00101110; char d15=0b00101000; char d16=0b00011000; char d17=0b00000000; //// char d18=0b00000000; char d19=0b00000000; char d20=0b00000000; ////// char d21=0b11111111; char d22=0b11111111; char d23=0b00000110; char d24=0b00111000; char d25=0b01100000; char d26=0b11111111; char d27=0b11111111; ///// char d28=0b00000000; char d29=0b00000000; char d30=0b00010000; char d31=0b00111000; char d32=0b01111100; char d33=0b11111110; char d34=0b00111000; char d35=0b00111000; //// char d36=0b00111000; char d37=0b00111000; char d38=0b00111000; char d39=0b11111110; char d40=0b11101110; char d41=0b11000110; char d42=0b10000010; char d43=0b10000010; char d44=0b00000000; char d45=0b00000000; //////////////////////////////////////////////////////// char m0=0b00000000; char m1=0b00000000; char m2=0b11111110; char m3=0b11111110; char m4=0b00000000; //// char m5=0b11111110; char m6=0b11111110; char m7=0b00000110; char m8=0b00000110; char m9=0b11111110; char m10=0b11111110; char m11=0b00000110; char m12=0b00000110; char m13=0b00111110; char m14=0b00101110; char m15=0b00101000; char m16=0b00011000; char m17=0b00000000; //// char m18=0b00000000; char m19=0b00000000; char m20=0b00000000; char m21=0b11111111; char m22=0b11111111; char m23=0b00000110; char m24=0b00111000; char m25=0b01100000; char m26=0b11111111; char m27=0b11111111; char m28=0b00000000; char m29=0b00000000; char m30=0b00010000; char m31=0b00111000; char m32=0b01111100; char m33=0b11111110; char m34=0b00111000; char m35=0b00111000; //// char m36=0b00111000; char m37=0b00111000; char m38=0b00111000; char m39=0b11111110; char m40=0b11101110; char m41=0b11000110; char m42=0b10000010; char m43=0b10000010; char m44=0b00000000; char m45=0b00000000; ///////////////////////////////// char x; void main() { TRISA=0; TRISB=0; portb=0; porta=0; TRISd=0; portd=0; loop: for (x=0;x<32;x++) { porta.f2=1; //////////////////////////////////////// porta.f1=1; porta.f1=0; portd=m0; portb=d45; delay_us(250); //// porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; portd=m1; portb=d44; delay_us(250); porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; portd=m2; portb=d43; delay_us(250); porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; portd=m3; portb=d42; delay_us(250); porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; portd=m4; portb=d41; delay_us(250); porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; portd=m5; portb=d40; delay_us(250); porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; portd=m6; portb=d39; delay_us(250); porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; portd=m7; portb=d38; delay_us(250); porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; portd=m8; portb=d37; delay_us(250); porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; portd=m9; portb=d36; delay_us(250); porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; portd=m10; portb=d35; delay_us(250); porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; portd=m11; portb=d34; delay_us(250); porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; portd=m12; portb=d33; delay_us(250); porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; portd=m13; portb=d32; delay_us(250); porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; portd=m14; portb=d31; delay_us(250); porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; portd=m15; portb=d30; delay_us(250); porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; portd=m16; portb=d29; delay_us(250); porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; portd=m17; portb=d28; delay_us(250); //// porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; portd=m18; portb=d27; delay_us(250); porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; portd=m19; portb=d26; delay_us(250); porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; portd=m20; portb=d25; delay_us(250); porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; portd=m21; portb=d24; delay_us(250); porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; portd=m22; portb=d23; delay_us(250); porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; portd=m23; portb=d22; delay_us(250); porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; portd=m24; portb=d21; delay_us(250); porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; portd=m25; portb=d20; delay_us(250); porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; portd=m26; portb=d19; delay_us(250); porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; portd=m27; portb=d18; delay_us(250); porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; portd=m28; portb=d17; delay_us(250); porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; portd=m29; portb=d16; delay_us(250); porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; portd=m30; portb=d15; delay_us(250); porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; portd=m31; portb=d14; delay_us(250); porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; portd=m32; portb=d13; delay_us(250); porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; portd=m33; portb=d12; delay_us(250); porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; } m0=m1; m1=m2; m2=m3; m3=m4; m4=m5; m5=m6; m6=m7; m7=m8; m8=m9; m9=m10; m10=m11; m11=m12; m12=m13; m13=m14; m14=m15; m15=m16; m16=m17; m17=m18; m18=m19; m19=m20; m20=m21; m21=m22; m22=m23; m23=m24; m24=m25; m25=m26; m26=m27; m27=m28; m28=m29; m29=m30; m30=m31; m31=m32; m32=m33; m33=m34; m34=m35; m35=m36; m36=m37; m37=m38; m38=m39; m39=m40; m40=m41; m41=m42; m42=m43; m43=m44; m44=m45; m45=m0; ///////////////////////////////////// d0=d1; d1=d2; d2=d3; d3=d4; d4=d5; d5=d6; d6=d7; d7=d8; d8=d9; d9=d10; d10=d11; d11=d12; d12=d13; d13=d14; d14=d15; d15=d16; d16=d17; d17=d18; d18=d19; d19=d20; d20=d21; d21=d22; d22=d23; d23=d24; d24=d25; d25=d26; d26=d27; d27=d28; d28=d29; d29=d30; d30=d31; d31=d32; d32=d33; d33=d34; d34=d35; d35=d36; d36=d37; d37=d38; d38=d39; d39=d40; d40=d41; d41=d42; d42=d43; d43=d44; d44=d45; d45=d0; /////////////////////////////////////////////// goto loop; }
















كالمعتاد دائما ننسى رش الماء خخخخخخخخخخخخخخ









انتهى بحمد الله

الدرس السابع


الدروس القادمة ان شاء الله سوف نعود للخلف قليلا

لكى نحاول ان نتعلم سويا اختصارات الاكواد

((لانى اجد الحاح كبير فى ذلك من ناحية المشاركين ))


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








التعديل الأخير تم بواسطة : ناصراحمد2 بتاريخ 14-01-2010 الساعة 03:36 AM

الصورة الرمزية king5star
king5star
:: مهندس جيد ::
تاريخ التسجيل: Jun 2008
الدولة: Alexandria, Egypt
المشاركات: 238
نشاط [ king5star ]
قوة السمعة:
قديم 28-12-2009, 10:55 AM المشاركة 44   
افتراضي


(الدرس الخامس)


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


بسم الله الرحمن الرحيم

الاخوة الزملاء والزوار والاعضاء

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


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


لحظة شباب نسيت رش الماء ممممممممم


والان بعد رش الماء كالمعتاد نتابع


777777777777777777777777777777777777777777777


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

اعتقد انك مثلى ايضا تتسال

كيف يتم الاستغناء عن 8منافذ تقوم بتبديل الاعمدة واحد تلو الاخر او كما نريد

نستبدل كل هذا العدد ب2 مخرج فقط ؟؟؟؟؟؟؟؟


55555555555555555555555555555555

والرد:

نعم هذا هو مايحدث باستخدام مسجلات الازاحة

وسوف ندرس منها نوعين ان شاء الله
74hc164
74hc595

وسوف نستخدم الاول

لانة اخف من الثانى بالنسبة للمبتدىء مثلى






هذا هو مسجل الازاحة كما نشاهدة جميعا

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

vcc اعتقد معروفة فهى ل 5V طرف التغذية الموجب للاى سى

Gnd الطرف السالب للاى سى 0v


يوجد 8 ارجل باسم Q

وهذة هى مخارج الاى سى


يوجد طرفين باسم A&B


وهذين اسمهم دخول الداتا (data )


وطرف CLK وهذة تسمى النبضات او الساعة


ويوجد طرف اسمة CLR وهذا يعمل نفس عمل الريست او الكلير




مممممممممممممممممممم

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

سوف نذهب الان ونتعرف علية اكثر وعملى ان شاء الله


نترك طبعا مداخل التغذية

ويتم توصيل بورتات الخرج الى اطراف الماتركس
بديل مداخل A فيما درسناه سابقا



555555555555555555555555555555555555555555555


بخصوص الطرف CLR

فهذا اذا اخذ سالب فولت فسوف يقوم باعادة تشغيل الاى سى من جديد

ولذلك سوف نعطية طرف
5V مباشرة


ونخلص منة ههههههههههههه

66666666666666666666666666666666666666666666666666 66
يبقى لدينا الان 3 مخارج ان شاء الله

A&B&clk


سوف نستريح ايضا من الطرفين A&B

سوف نصلهم معا بطرف خروج الداتا فى الميكروكونترول

وفى الاغلب الشروحات دائما تكون بورت 1 ....... F1

33333333333333333333333333333333333333333

نذهب الان الى الطرف الاخير CLK

وهو كما ذكرنا هذا للنبضات او الساعة

وسوف نقوم بوصلة الى بورت(0) فى الميكرو


7777777777777777777777777777777777


اعتقد ان ماسبق شرحة لا يحتاج الى صور .....................



_________________________________
__________________________________


سوف نقوم الان وكما تعودنا ان نستخدم الكود السابق

فى نفس التجربة واليكم الكود السابق

كود:
     char x1=0b00000000;
char x2=0b00000000;
char x3=0b11111110;
char x4=0b11111110;
char x5=0b00000000; ////
char x6=0b11111110;
char x7=0b11111110;
char x8=0b00000110;
char x9=0b00000110;
char x10=0b11111110;
char x11=0b11111110;
char x12=0b00000110;
char x13=0b00000110;
char x14=0b00111110;
char x15=0b00101110;
char x16=0b00101000;
char x17=0b00111000;
char x18=0b00000000; ////
char x19=0b00000000;
char x20=0b00000000;
char x21=0b00000000;
  
  
  
  
  
 char n;

 void main()
{
TRISB=0;
 PORTB=0;

 TRISd=0;
 PORTd=0;

loop:

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


PORTd=0B11111110;
PORTB=x1; delay_us(300);
 ///////////

PORTd=0B11111101;
PORTB=x2; delay_us(300);
/////////////
PORTd=0B11111011;
PORTB=x3; delay_us(300);
////////////
PORTd=0B11110111;
PORTB=x4; delay_us(300);
///////////
PORTd=0B11101111;
PORTB=x5; delay_us(300);

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

  PORTd=0B11011111;
PORTB=x6; delay_us(300);
////////////
PORTd=0B10111111;
PORTB=x7; delay_us(300);
///////////
PORTd=0B01111111;
PORTB=x8; 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=x21;
x21=x1;


goto loop;
}









قبل وضع الكود الجديد

سوف نشرح نقطتين مهمين جدا

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

لو بحثنا عن كيفية التعامل مع مسجلات الازاحة


فسوف تجد ان كل الردود فقط هذة الكلمات

( اعط الداتا 1 منطقى و0منطقى )

؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟


او هكذا

اعط الداتا 1/0
؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

ولن نجد اى توضيحات

فمتى نعطيها منطقى او حتى غير منطقى هههههههههههههههههههه


ماعلينا :









ولتبسي الامور

اقول لكم ببساطة شديدة



مدخلى الداتا وهم A&B والتى اوصلناهم ببورت1 هم الداتا

وماتعنية كلمة داتا هنا
اننا نسمح للمزيح بالعمل او لا نسمح

ولكى نسمح لة بالعمل فسوف نعطى البورت المتصل بهم هذا الامر




porta.f1=1; porta.f1=0;


على ان تكون الداتا متصلة بالبورت رقم 1 >F1

هكذا نكون خلصنا من الخطوة الاولى


ونقوم باعداء هذا الامر

كود:
porta.f0=1;porta.f1=1; porta.f1=0;  porta.f0=0;


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

نحتاج هنا الى تركيز اكثر

قمنا بفتح الداتا مع النبضة فى وقت واحد

ثم اغلقناهم..................................



(لو فتحنا احداهم واغلقناها وفتحنا الاخرى واغلقناها )

لن يحدث اى شىء
بمعنى ان المسجل لن يتحرك


ويجب ان يتم فتح الاثنين فى وقت واحد

ثم غلقهم


V

V

V


لكى يتقدم الاى سى خطوة الى الامام

معنى خطوة للامام

انة فى بداية عمل مسجل الازاحة تكون مخارجة بالكامل تعطى موجب

وعند اعطائة هذا الامر

سوف تجد ان البورت الاول لمسجل الازاحة اصبح سالب (لونة ازرق)فى بريتوس


_____________________


وهكذا نفهم ان الامر الاول هذا لمجموع الاوامر كلها


والامر الاخير معناه خطوة للامام

اوك؟؟؟؟؟؟؟؟؟؟؟؟؟؟

وان قمنا باعطاء الامر الاخير مرتين متتابعتين مثل هذا

كود:
 porta.f0=1;porta.f1=1; porta.f1=0;  porta.f0=0;
  porta.f0=1;porta.f1=1; porta.f1=0;  porta.f0=0;

سوف نجد ان مسجل الازاحة قد تقدم خطوتين للامام


وان اعطينا الامر 3 مرات سوف يتقد3خطوات وهكذا




طبعا نعلم ان المخارج لمسجل الازاحة هى8 مخارج Q


اذا لو اعطينا الامر 8مرات سوف تجد ان البورت الاخير قد اعطى لون ازرق

بمعنى ان المسجل تحرك 8 خطوات للامام

وهكذا الى ماشاء الله

ومن هذة النقطة نفهم اننا اذا استخدمنا 2 مسجل ازاحة

بمعنى 16 خرج

فسوف نحتاج الى
16 حركة للامام



؛؛؛؛؛؛؛؛؛؛؛؛؛؛؛؛؛؛؛؛؛؛؛؛؛؛؛؛؛؛؛؛؛؛؛؛؛؛؛؛؛؛؛؛؛؛؛؛؛؛ ؛؛؛؛؛؛؛؛؛؛؛؛؛؛؛؛؛؛؛؛؛؛؛؛؛؛



نحاول استرجاع ماسبق مع شرب الشاى والذى منة ههههههههههههههه






وهكذا :


قد تعلمنا طريقة من طرق التعامل مع مسجل الازاحة


طبعا يوجد طرق مختصرة كثيرة


انما هذة الطريقة هى للمبتدئين مثلى كما ذكرت من قبل






ار يوووو اوك:



نعود الان الى الماتركسات



كما فهمنا من قبل


انة لاظهار صورة ما او اى شىء ع الماتركس


فاننا نقوم باظهار الداتا


مع طرف سالب

من مخارج بورت A فى الميكروكونترول


وهذا هو مايحدث بالظبط مع الماتركس باستخدام مسجل الازاحة



نظهر الداتا ونذهب بالخطوات الى المكان الذى نريدة


ثم نعطى التوقيت للامرين معا



كمثال



portb=0b10101010

porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0;

porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0;




اعتقد ان الاغلبية قد فهمت


ان هذا الامر


سوف يضىء العمود رقم 2 من الماتركس


لماذا؟؟؟؟؟؟؟؟؟



لاننا تقدمنا خطوتين الى الامام


ولا ننسى طبعا انة فى بداية الكود نقوم بتفعيل الداتا كما سبق


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



الان اليكم الكود الجديد:






كود:
  
char x1=0b00000000; char x2=0b00000000; char x3=0b11111110; char x4=0b11111110; char x5=0b00000000; //// char x6=0b11111110; char x7=0b11111110; char x8=0b00000110; char x9=0b00000110; char x10=0b11111110; char x11=0b11111110; char x12=0b00000110; char x13=0b00000110; char x14=0b00111110; char x15=0b00101110; char x16=0b00101000; char x17=0b00111000; char x18=0b00000000; //// char x19=0b00000000; char x20=0b00000000; char x21=0b00000000; char n; void main() { TRISB=0; PORTB=0; TRISa=0; PORTa=0; loop: for(n=0;n<100;n++){ porta.f1=1; porta.f1=0;/////////*****/////////// ////////////////////////////////////////////// porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; portb=x1; delay_us(300); ////////////////////////////////////////////// porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; portb=x2; delay_us(300); ////////////////////////////////////////////// porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; portb=x3; delay_us(300); ////////////////////////////////////////////// porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; portb=x4; delay_us(300); ////////////////////////////////////////////// porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; portb=x5; delay_us(300); ////////////////////////////////////////////// porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; portb=x6; delay_us(300); ////////////////////////////////////////////// porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; portb=x7; delay_us(300); ////////////////////////////////////////////// porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; portb=x8; 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=x21; x21=x1; goto loop; }
كالمعتاد قم بمقارنة ماتم تغييرة بين الكودين


ننتبة فقط من اننا ابدلنا بورت D ببورت A



واليكم الان صورة كاملة للهاردوير






نلاحظ فى الصورة اننا قمنا بتوصيل


2 مسجل ازاحة

وهذا لكى نتعلم سويا كيفية توصيل الامسجلات بعضها البعض





يتم هذا التوصيل لاى عدد من المسجلات






5555555555555555555555555555555555555555555555







nnnnnnnnnnnnnnnnnnnnnnn

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

رغم انة مابة صور هههههههههه


ولذلك اترككم لتتمعنوا معه براحتكم






ولا تنسوا شرب الشاى والذى منة



قم بالقرائة مرة واتنين وتلاتة

حتى تستوعب






والان اترككم كالمعتاد مع اجهزتكم

:atu:
:atu:







اللهم لا الة الا انت سبحانك انى كنت من الظالمين

سبحان الله وبحمدة سبحان الله العظيم


درس جميل ومفيد جداً يا بشمهندس بس لسا فاضل شوية انشاء الله فى الدروس الى جاية يكمل


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


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


والله ياكنج انت هنا مقياس لنتائج الدروس

فهل يوجد اى جزء او نقطة غير واضحة وتطلب توضيحها ؟؟؟؟؟؟؟؟؟



++++++++++++++++++++++++++

الدرس القادم ان شاء الله نستخدم اكثر من مسجل ازاحة


matrix 8x32


ان شاء الله




التعديل الأخير تم بواسطة : ناصراحمد2 بتاريخ 29-12-2009 الساعة 03:08 AM

geniusse01
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2008
الدولة: Jordan - Amman
المشاركات: 1,134
نشاط [ geniusse01 ]
قوة السمعة:
قديم 29-12-2009, 01:51 AM المشاركة 46   
افتراضي


السلام عليكم

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

واخر دعوانا ان الحمدلله رب العالمين .. وصلى الله على سيدنا محمد وعلى اله وصحبه وسلم..


الصورة الرمزية king5star
king5star
:: مهندس جيد ::
تاريخ التسجيل: Jun 2008
الدولة: Alexandria, Egypt
المشاركات: 238
نشاط [ king5star ]
قوة السمعة:
قديم 29-12-2009, 02:01 AM المشاركة 47   
افتراضي


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


والله ياكنج انت هنا مقياس لنتائج الدروس

فهل يوجد اى جزء او نقطة غير واضحة وتطلب توضيحها ؟؟؟؟؟؟؟؟؟



++++++++++++++++++++++++++

الدرس القادم ان شاء الله نستخدم اكثر من مسجل ازاحة


matrix 8x32


ان شاء الله

شكراً يا بشمهندس على ثقة حضرتك بى والله العظيم الشرح فى منتهى الجمال والبساطة و العملية ماشية تمام من اولها وبقت سهلة ودا كله من اسلوبك السلس والمفيد فى الماتركس واكواد البرمجة وشرح الكود بجد تسلم ايدك وربنا يوفقك


يعقوب_86
:: مهندس ::
تاريخ التسجيل: Dec 2009
المشاركات: 11
نشاط [ يعقوب_86 ]
قوة السمعة:
قديم 29-12-2009, 06:19 PM المشاركة 48   
افتراضي ايك يا اخي هذا ما استطعت في شرح البرنامج


للتذكير كان هذا البرنامج الاول
http://www.4shared.com/file/18021437...8d/matrix.html

وهذا البرنامج المعدل

http://www.4shared.com/file/18164772...osoft_Wor.html

و هذا انشاء الله ماستطع ان اقدمه في الشرح

http://www.4shared.com/file/18394715...___online.html

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



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