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

   

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



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


بعد عناء طويل جدا جدا


صممت هذا الكود باستخدام 74hc164 مع الميكرو pic16f84a


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

الكود عبارة عن كلمة ((لفظ الجلالة)) فى وضع ثابت

بالاضافة الى (( نقطة متحركة من اقصى اليمين اقصى اليسار ))
واتمنى ان يستفيد منة الاخرين



تفضلو حملوا




((((((الكود مع ملف البيريتوس مع صورة __ اذكر اسم الله واضغط__)))



واجدد شكرى لاستاذى ومعلمى ((م/احمد سمير ))

وكل من شارك فى هذا الموضوع



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



ولا يزال : البحث جارى

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

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





واليكم الكود




كود:
char x; void main() { portb=0; porta=0; TRISA=0; TRISB=0; loop: for (x=0;x<100;x++) { /////////////////////////===بداية كود لفظ الجلالة====///////////////////// porta.f1=1; porta.f1=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; portb=0b00111110; delay_ms(1); ////////////////////////////////////////////// porta.f1=1; porta.f1=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; portb=0b00000000; delay_ms(1); porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; ////////////////////////////////////////////// porta.f1=1; porta.f1=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; portb=0b00111110; delay_ms(1); porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; ////////////////////////////////////////////// porta.f1=1; porta.f1=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; portb=0b00100000; delay_ms(1); porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; ////////////////////////////////////////////// porta.f1=1; porta.f1=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; portb=0b00111110; delay_ms(1); porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; ////////////////////////////////////////////// porta.f1=1; porta.f1=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; portb=0b00100000; delay_ms(1); porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; ////////////////////////////////////////////// porta.f1=1; porta.f1=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; portb=0b00111100; delay_ms(1); porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; ////////////////////////////////////////////// porta.f1=1; porta.f1=0; portb=0b00001100; delay_ms(1); porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; } //////////////////////=======نهااية كود لفظ الجلالة=====///////////// //++++++++++++++بداية كود النقطة المتحركة++++++ /////////for (x=0;x<20;x++) { ////////////////////////////////////////////// porta.f1=1; porta.f1=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; portb=0b10000000; delay_ms(100); ////////////////////////////////////////////// porta.f1=1; porta.f1=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; portb=0b01000000; delay_ms(100); porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; ////////////////////////////////////////////// porta.f1=1; porta.f1=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; portb=0b00100000; delay_ms(100); porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; ////////////////////////////////////////////// porta.f1=1; porta.f1=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; portb=0b00010000; delay_ms(100); porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; ////////////////////////////////////////////// porta.f1=1; porta.f1=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; portb=0b00001000; delay_ms(100); porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; ////////////////////////////////////////////// porta.f1=1; porta.f1=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; portb=0b00000100; delay_ms(100); porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; ////////////////////////////////////////////// porta.f1=1; porta.f1=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; portb=0b00000010; delay_ms(100); porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; ////////////////////////////////////////////// porta.f1=1; porta.f1=0; portb=0b00000001; delay_ms(100); porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; porta.f0=1;porta.f1=1; porta.f1=0; porta.f0=0; ///////////////نهاية كود النقطة المتحركة/////// } ////////++++++++++++++++ goto loop; ///// }

ملحوظة قمت بوضع فواصل بين كل امر والاخر

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

واتمنى من الله

ان يفيد هذا الموضوع كل من يحتاج الية



التعديل الأخير تم بواسطة : ناصراحمد2 بتاريخ 09-10-2009 الساعة 06:00 AM
اعلانات

الصورة الرمزية ناصراحمد2
ناصراحمد2
:: عضو ذهبي ::
تاريخ التسجيل: Jul 2009
الدولة: EGYPT
المشاركات: 1,315
نشاط [ ناصراحمد2 ]
قوة السمعة:
قديم 10-11-2009, 11:33 PM المشاركة 18   
ha


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


حتى الان لم يتم رد على موضوعى

وهو كيفية التعامل مع ((الملعون)) مسجل الازاحة


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

هى دخول الية انما من باب خلفى ممممممممممممممم



طبعا من باب خلفى

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


فهل يوجد فدائى يشرح لنا طريقة التعامل مع ((الملعون )) هذا

وكيفية استخدامة مع الماتركس



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















؟



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

الصورة الرمزية حيدر علاج حسن
حيدر علاج حسن
:: مشرف منتدى الهندسة الكهربائية ::
تاريخ التسجيل: Mar 2005
الدولة: IRAQ
المشاركات: 9,848
نشاط [ حيدر علاج حسن ]
قوة السمعة:
قديم 10-11-2009, 11:52 PM المشاركة 19   
افتراضي


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


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


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



مشكلتى هى نفس مشكلتك طبعا

وهى استهلاك مساحة الميكرو فى اوامر المسجل


_________________

اما بخصوص موضوع

اخينا احمد

فلا اعتقد ان بة حل لهذة المشكلة

وانا كان يوجد بة حل ............... فينقصة شرح كثير وتوضيح اكثر .


______________


وانا فى نهاية موضوع احمد لمسجل الازاحة

وضعت مشاركة هناك

لاستخدام تجاربة بشكل اخر


انما اتضح انها محدودة جدا جدا

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

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

لو حاولت كتابة ماتركس تتحرك من الاسفل الى الاعلى

جملة مثلا

فسوف تستهلك قيمة الميكرو بالكامل

((سبحان الله وبحمدة))



_______________________


وننتظر


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


هذا الرابط

لملف يشرح برنامج كامل لعمل ماتركس مكون من 8X32


ويوجد بة شرح مفصل انما للاسمبلى


اتمنى ان تستطيع تفسيرة لنا بلغة السى ان امكن

http://www.hdrmut.net/up/download.ph...154d8334f2.rar








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

الصورة الرمزية حيدر علاج حسن
حيدر علاج حسن
:: مشرف منتدى الهندسة الكهربائية ::
تاريخ التسجيل: Mar 2005
الدولة: IRAQ
المشاركات: 9,848
نشاط [ حيدر علاج حسن ]
قوة السمعة:
قديم 11-11-2009, 12:25 AM المشاركة 22   
افتراضي


اذن مشكلتك هي نفسها مشكلتي . و ربما مشكلة الجميع .
اما الاسمبلي فلا اتعامل معها ولا احبها و لا اريد ان اتقرب منها . لطالما عانيت معها ايام الدراسة . فقد حولت درس الحاسبات الى جحيم حينذاك .
لكنني اعتقد انه لا يوجد حل غير هذا . فلو تلاحظ ملف الهيكس الذي رفعته في موضوع LED CUBE ستجد انه بحدود 10 KB وهذا انما يدل على طول الكود . وطبعا الماتركس و المكعب اللدي هما نفس العمل من ناحية السوفت وير و الهارد وير .


الصورة الرمزية أبو زكووور
أبو زكووور
:: عضو فضي ::
تاريخ التسجيل: Mar 2009
الدولة: سوريا العروبة
المشاركات: 428
نشاط [ أبو زكووور ]
قوة السمعة:
قديم 17-11-2009, 03:59 AM المشاركة 23   
attension السلام عليكم


لقد تبين لي أن أمر الماتركس بسيط جداً جداً
لكن يجب بداية فهم الماتركس و طريقة عملها
- يجب التمييز بين زمن المسح الضوئي لأعمدة الشاشة وعددها وبين زمن إزاحة الأعمدة ,
- و يجب التمييز بين عدد الأعمدة الموجودة في ذاكرة المعالج و بين عدد الأعمدة التي تظهرعلى الشاشة
- بحيث أن عدد الأعمدة الظاهرة على الشاشة يجب أن يكون مساوياً لعدد أعمدة الشاشة
و بعد ذلك يتم إذاحة الأعمدة المأخوذة من الذاكرة
- أي أنه :
إذا كان لدينا شاشة تحتوي على 80 عمود
ولدينا كود يحتوي على 1000 عمود مثلاً
يتم أولاً إظهار الأعمدة من ذاكرة المتحكم من 0 حتى 79
وبعد فترة زمنية ( هذه الفترة هي سرعة الحركة )
يتم إزاحة البداية و النهاية أي يصبح من 1 حتى 80
وهكذا

هذا مثال بسيط لأول تجربة عملتها لشاشة صغيرة 8 *8
( هذا ملف فديو ) لأن الماتركس لا تعمل عندي على البروتوس أبداً ولا أعرف لماذا .


http://www.4shared.com/file/153584775/6f2d9942/__online.html


السلام عليكم .


التعديل الأخير تم بواسطة : أبو زكووور بتاريخ 17-11-2009 الساعة 04:14 AM

Eagle69
:: مهندس متواجد ::
تاريخ التسجيل: May 2009
المشاركات: 114
نشاط [ Eagle69 ]
قوة السمعة:
قديم 17-11-2009, 08:33 PM المشاركة 24   
افتراضي


هذا مثال بسيط لأول تجربة عملتها لشاشة صغيرة 8 *8
( هذا ملف فديو ) لأن الماتركس لا تعمل عندي على البروتوس أبداً ولا أعرف لماذا .


http://www.4shared.com/file/153584775/6f2d9942/__online.html


السلام عليكم .
السلام عليكم اخي ابو زكوم
الماتركس اللي عندك مثل اللي عندي Common Cathode والماتركس الموجودة في البروتوس Common Anode فلزلك عمرها ما راح تشتغل معك على البروتوس
الا ازا عكست الامور
ومشكور
وبالنسبة للاتمل ..........حاول غير للبيك .........حتى يكون بيننا تعاون



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