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

مشاهدة نتائج الإستفتاء: هل ترى أنه من الأفضل عمل قسم جديد في المنتدى للغات الحديثة مثل لغة MikroC ؟؟
نعم 53 92.98%
لا 4 7.02%
المصوتون: 57. أنت لم تصوت في هذا الإستفتاء

   

الصورة الرمزية #MAAM#
#MAAM#
:: عضو ذهبي ::
تاريخ التسجيل: Jun 2008
الدولة: EGYPT
المشاركات: 529
نشاط [ #MAAM# ]
قوة السمعة:
قديم 08-12-2009, 02:05 PM المشاركة 161   
x4



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

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

الحمد لله قرأت الدرس الثامن وإستفدت منه كثيرا بفضل الله وكان هناك كود الخاص بالدوال Void left_right و Void right_left والتي ذكرت فيها انه يمكن إختصارها والحمد لله وفقني الله في إختصارها وجربتها وإشتغلت بالفعل

الكود الخاص بالدرس

كود:
void right_left(){     portb=0b00000001;delay_ms(200);                   
                    portb=0b00000001;delay_ms(200);                   
                    portb=0b00000011;delay_ms(200);                   
                    portb=0b00000111;delay_ms(200);                   
                   portb=0b00001111;delay_ms(200);                   
                    portb=0b00011111;delay_ms(200);                   
                    portb=0b00111111;delay_ms(200);                   
                    portb=0b01111111;delay_ms(200);                   
                    portb=0b11111111;delay_ms(200);}                 
                    
void left_right(){   portb=0b10000000;delay_ms(200);                   
                    portb=0b11000000;delay_ms(200);                   
                    portb=0b11100000;delay_ms(200);                   
                    portb=0b11110000;delay_ms(200);                   
                    portb=0b11111000;delay_ms(200);                   
               portb=0b11111100;delay_ms(200);                   
                   portb=0b11111110;delay_ms(200);                   
                   portb=0b11111111;delay_ms(200);}                 
                    
 void main(){ char x; trisb=0;portb=0; trisa.f0=1;trisa.f1=1;            
              for(x=0;x<2;x++)right_left();            
              for(x=0;x<3;x++)left_right();            
                while(1){ if(porta.f0==0) right_left();            
                 if(porta.f1==0) left_right();          }            }
الكود المعدل

كود:
char count;
void right_left(){     portb=0b00000001;delay_ms(200);
                       for(count=1;count<8;count++)
                       {portb=portb*2 + 1;
                        delay_ms(200); }                       }
                  
                    
void left_right(){     char incr=128;
                       portb=0b10000000;delay_ms(200);
                       for(count=1;count<8;count++)
                       {incr=incr/2;
                        portb=portb + incr;
                        delay_ms(200); }                       }
                    
                    
 void main(){ char x; trisb=0;portb=0; trisa.f0=1;trisa.f1=1;
              for(x=0;x<2;x++)right_left();
              for(x=0;x<3;x++)left_right();
              while(1){ if(porta.f0==0) right_left();
              if(porta.f1==0) left_right();         }           }
وقد قمت بتصميم الدائرة على برنامج البروتس وهذه صورة منها


وقد قمت بتحميل (الدائرة+الكود الخاص بالدرس+الكود المعدل)
التحميل من هنا

أتمنى أن يستفيد منه الجميع وجزاكم الله كل خير

أخوكم في الله / محمد

اعلانات

16mofed84
:: مهندس متميز ::
تاريخ التسجيل: Jul 2009
الدولة: فلسطين
المشاركات: 318
نشاط [ 16mofed84 ]
قوة السمعة:
قديم 08-12-2009, 03:37 PM المشاركة 162   
x4


مشكوورررر جدا على الدرس الجديد انا لدي سؤال مهم و ارجو ان يجيب عليه استاذنا
كود:
lcd_init(&portb)
كيف يمكنني ان اضيف اسم بورت اذا اردت اني اعمل داله جديد(امر) مثل الي فوق؟؟؟

انا قرات كتاب عن الغه و عرفت اشياء كثيره وتوصلت اللى اليو اس بي ....
لا كني لم اعرف كيف يمكنني ان ادخل اسم بورت

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

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


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

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

الحمد لله قرأت الدرس الثامن وإستفدت منه كثيرا بفضل الله وكان هناك كود الخاص بالدوال Void left_right و Void right_left والتي ذكرت فيها انه يمكن إختصارها والحمد لله وفقني الله في إختصارها وجربتها وإشتغلت بالفعل

الكود الخاص بالدرس

كود:
void right_left(){     portb=0b00000001;delay_ms(200);                   
                    portb=0b00000001;delay_ms(200);                   
                    portb=0b00000011;delay_ms(200);                   
                    portb=0b00000111;delay_ms(200);                   
                   portb=0b00001111;delay_ms(200);                   
                    portb=0b00011111;delay_ms(200);                   
                    portb=0b00111111;delay_ms(200);                   
                    portb=0b01111111;delay_ms(200);                   
                    portb=0b11111111;delay_ms(200);}                 
                    
void left_right(){   portb=0b10000000;delay_ms(200);                   
                    portb=0b11000000;delay_ms(200);                   
                    portb=0b11100000;delay_ms(200);                   
                    portb=0b11110000;delay_ms(200);                   
                    portb=0b11111000;delay_ms(200);                   
               portb=0b11111100;delay_ms(200);                   
                   portb=0b11111110;delay_ms(200);                   
                   portb=0b11111111;delay_ms(200);}                 
                    
 void main(){ char x; trisb=0;portb=0; trisa.f0=1;trisa.f1=1;            
              for(x=0;x<2;x++)right_left();            
              for(x=0;x<3;x++)left_right();            
                while(1){ if(porta.f0==0) right_left();            
                 if(porta.f1==0) left_right();          }            }
الكود المعدل

كود:
char count;
void right_left(){     portb=0b00000001;delay_ms(200);
                       for(count=1;count<8;count++)
                       {portb=portb*2 + 1;
                        delay_ms(200); }                       }
                  
                    
void left_right(){     char incr=128;
                       portb=0b10000000;delay_ms(200);
                       for(count=1;count<8;count++)
                       {incr=incr/2;
                        portb=portb + incr;
                        delay_ms(200); }                       }
                    
                    
 void main(){ char x; trisb=0;portb=0; trisa.f0=1;trisa.f1=1;
              for(x=0;x<2;x++)right_left();
              for(x=0;x<3;x++)left_right();
              while(1){ if(porta.f0==0) right_left();
              if(porta.f1==0) left_right();         }           }
وقد قمت بتصميم الدائرة على برنامج البروتس وهذه صورة منها

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

الأخ محمد ماشاء الله .. حل موفق واختصار رائع ... ننتظر منك مزيد من العطاء


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


مشكوورررر جدا على الدرس الجديد انا لدي سؤال مهم و ارجو ان يجيب عليه استاذنا
كود:
lcd_init(&portb)
كيف يمكنني ان اضيف اسم بورت اذا اردت اني اعمل داله جديد(امر) مثل الي فوق؟؟؟

انا قرات كتاب عن الغه و عرفت اشياء كثيره وتوصلت اللى اليو اس بي ....
لا كني لم اعرف كيف يمكنني ان ادخل اسم بورت
علامة & التي تسبق البورت تعني اننا نستخدم المؤشرات pointer وهي نقطة لم أتطرق إليها بعد لكنها موجودة في الدروس القادمة بإذن الله ... يمكنك في الوقت الحالي قراءتها في كتاب
advanced pic microcontroller projects
للمؤلف
dogan ibrahim
أو اقرأ في شرح لغة السي الخاصة بالكمبيوتر من أي مصدر ..

تمنياتي بالتوفيق


abuhajer06
:: مهندس ::
تاريخ التسجيل: Jul 2007
المشاركات: 42
نشاط [ abuhajer06 ]
قوة السمعة:
قديم 09-12-2009, 10:34 AM المشاركة 165   
attension المؤمن كالنحلة لا يَطعم إلا طيباً ولا يُطعم إلا طيباً


الحمد لله رب العالمين أن أعاد لنا الأستاذ/ أحمد

ربنا يحفظك ويوفقك أستاذي الكريم

***
وطبعاً لعل الكثير من المستفيدين لم يعلموا بعودتك أستاذي

إذاً لكثرت التحايا

فألف .. ألف حمدلله على سلامتك ورجوعك

لتكمل هذا المشروع العظيم


الصورة الرمزية ahmad_s_f
ahmad_s_f
:: المهندس/ أحمد سمير فايد ::
تاريخ التسجيل: Jun 2006
الدولة: سائح في ارض الله
المشاركات: 632
نشاط [ ahmad_s_f ]
قوة السمعة:
قديم 10-12-2009, 01:28 AM المشاركة 166   
افتراضي أخطاء مطبعية في الدرس الأخير .. أرجو الانتباه


الله المستعان ...


يوجد خطأ مطبعي واضح جدا لكل من يركز في قراءة الكود الخاص بالصفحة رقم 10 من هذا الدرس .

فسنلاحظ بعد كلمة mm2 لا يوجد نقطتين .

أيضا سقط سهوا mm3 فيجب كتابتها بعد
كود:
if(portb.f2==0){mm3:portb.f7=1
بعدها بسطرين كتبت goto mm1 ويجب كتابة goto mm3 .

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


الصورة الرمزية ahmad_s_f
ahmad_s_f
:: المهندس/ أحمد سمير فايد ::
تاريخ التسجيل: Jun 2006
الدولة: سائح في ارض الله
المشاركات: 632
نشاط [ ahmad_s_f ]
قوة السمعة:
قديم 10-12-2009, 01:42 AM المشاركة 167   
افتراضي الدرس بعد تعديل الأخطاء


لمن لم يفهم الملحوظة السابقة جيدا

هذا هو الملف مرة أخرى لكن بعد التصحيح .

وقد أضفت إمكانية طباعة الملف استجابة للأخ الكريم الذي طلبها .

http://www.4shared.com/file/16920597...on8______.html

وفقكم الله


الصورة الرمزية ahmad_s_f
ahmad_s_f
:: المهندس/ أحمد سمير فايد ::
تاريخ التسجيل: Jun 2006
الدولة: سائح في ارض الله
المشاركات: 632
نشاط [ ahmad_s_f ]
قوة السمعة:
قديم 10-12-2009, 12:38 PM المشاركة 168   
افتراضي فيديو يوضح عمل التجربة


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

الخطأ عندك أخي الكريم , فلم تنقل الكود بالشكل السليم .. أنا لاحظت انك تكتب porta بدلا من portb بالإضافة لوجود أخطاء أخرى
لذا قمت بعمل ملف مشروع يحتوي على الكود مكتوب بالشكل السليم بالإضافة لملف المحاكاة بالإضافة لملف فيديو يوضح كيفية المحاكاة للتأكد ان الكود يعمل بشكل سليم .

لتحميل هذه الملفات اضغط هنا

تمنياتي بكل التوفيق ,,,

==========================
الأخ / pablo1
الحيقيقةانا لديا سوال حيرني وهو
عندما ننشئ متغير مثلا char aaa داخل دالة void main اودالة اخرى
-ما هي القيمة التي يحملها متغير aaa عند انشائه مباشرة هل يكو ن مثلا 00000000
-وعندما نقوم بتحميل قيمة مثلا 21 لمتغير aaa عن طريق سويتش وفصلنا الكهرباء
عن البيك وبعد مدة قمنا بتوصيله هل يبق aaa محافض قيمته 21 ام لا
ارجرجو يا استاد احمد ان تجيبنى بجواب مفصل لانه مهم جدا

القيمة الافتراضية للمتغير الذي ننشئه تكون بصفر ..

والمتغيرات عموما يتم تخزينها في الرام RAM والذاكرة العشوائة تظل محتفظة بآخر بيانات تم تسجيلها إلى أن نفصل التيار الكهربي عن الميكروكنترولر فإذا تم فصل التيار لن يحتفظ الميكروكنترولر بآخر قيمة وسيعود المتغير للصفر إلى أن يأتي كود معين يغير هذه القيمة ..

أما إذا أردنا أن نحتفظ بقيمة معينة في الذاكرة بحيث لو فصل التيار تظل كما هي فإنه لابد من استخدام ما يعرف بـ EEPROM أو ROM وهذا ما سنتعرف عليه بالتفصيل بإذن الله من خلال الدروس القادمة ..

وفقك الله ,, وإلى مزيد من النجاح دائما .



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