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

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

abdo1992
:: مهندس جيد ::
تاريخ التسجيل: Aug 2010
الدولة: مصر
المشاركات: 225
نشاط [ abdo1992 ]
قوة السمعة:0
قديم 28-02-2012, 11:07 PM المشاركة 1   
ha مساعدة في mikroc Twitter FaceBook Google+



السلام عليكم ورحمت الله وبركاتة .
انا عامل عداد بسيط بسفن سيجمنت وكنت عاوز اتحكم في العداد عبر اشارة من دائرة 555 واشارت تزايد وتناقص من من دخل لوحدة (0,1)

اعلانات

abdo1992
:: مهندس جيد ::
تاريخ التسجيل: Aug 2010
الدولة: مصر
المشاركات: 225
نشاط [ abdo1992 ]
قوة السمعة:0
قديم 29-02-2012, 07:26 AM المشاركة 2   
ha




يا شباب المشكلة عندي ازاي اتعامل مع دخل الدائرة 555 مع العلم ان تردد ال555 ممكن التحكم في سرعتة يعني ممكن اخلي لارقام تتغير بسرعة او براحة وكدا
كود:
void main()
{trisa=0xff;trisb=0;portb=0;
loop:
if (porta.f0=1)
               {
               a1:
               if (porta.f0=0)
                              {portb=portb+1;
                              if (portb=9) {portb=0;}
                              }
                goto a1;
                }
goto loop;
}

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

الصورة الرمزية حيدر علاج حسن
حيدر علاج حسن
:: مشرف منتدى الهندسة الكهربائية ::
تاريخ التسجيل: Mar 2005
الدولة: IRAQ
المشاركات: 10,061
نشاط [ حيدر علاج حسن ]
قوة السمعة:394
قديم 29-02-2012, 06:24 PM المشاركة 3   
افتراضي


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

الخطأ الاملائي في عبارات IF الشرطية حيث علامة المساوات تكتب مرتين (==) .

طريقة توصيل المفتاح غير صحيحة ..
هكذا يوصل



abdo1992
:: مهندس جيد ::
تاريخ التسجيل: Aug 2010
الدولة: مصر
المشاركات: 225
نشاط [ abdo1992 ]
قوة السمعة:0
قديم 29-02-2012, 07:39 PM المشاركة 4   
افتراضي


انا معاك استاذ حيدر فعلا انا عندي اخطاء في البرنامج بس انا برضوا مش عارف ازاي اعمل برنامج يتحكم الpic حيث ان العداد يزداد كل نبضة من ال 555 اذا كان porta.f1=1 ويقل العداد مع كل نبضة من ال555 اذا كان porta.f1=0 يعني انا عاوز اتحكم في العداد وسرعتة من خلال اشارة clock واشارة direction


abdo1992
:: مهندس جيد ::
تاريخ التسجيل: Aug 2010
الدولة: مصر
المشاركات: 225
نشاط [ abdo1992 ]
قوة السمعة:0
قديم 29-02-2012, 07:46 PM المشاركة 5   
افتراضي


استاذ حيدر انا بحاول افكر الاول في اشارة ال clock واعدت كتابة الكود بس فشل
كود:
void main()
{trisa=0xff;trisb=0;portb=0;
loop:
if (porta.f0==1)
               {
               a1:
               if (porta.f0==0)
                              {portb=portb+1;
                              if (portb=9) {portb=0;}
                              goto loop;
                              }
                goto a1;
                }
goto loop;
}


abdo1992
:: مهندس جيد ::
تاريخ التسجيل: Aug 2010
الدولة: مصر
المشاركات: 225
نشاط [ abdo1992 ]
قوة السمعة:0
قديم 29-02-2012, 08:39 PM المشاركة 6   
افتراضي


الحمد لله انا وصلت لحل المشكلة وعملت البرنامج بالكامل والف شكر علي اهتمامك
كود:
void main()
{trisa=0xff;trisb=0;portb=0;
loop:
if (porta.f0==1)
               {
               a1:
               if (porta.f0==0)
                              {if (porta.f1==0)
                                   {portb=portb+1;}
                               else {portb=portb-1;}
                               if (portb==10){portb=0;}
                               if( portb==255){portb=9;}
                              goto loop;
                              }
                goto a1;
                }
goto loop;
}



abdo1992
:: مهندس جيد ::
تاريخ التسجيل: Aug 2010
الدولة: مصر
المشاركات: 225
نشاط [ abdo1992 ]
قوة السمعة:0
قديم 29-02-2012, 08:47 PM المشاركة 7   
افتراضي


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


الصورة الرمزية حيدر علاج حسن
حيدر علاج حسن
:: مشرف منتدى الهندسة الكهربائية ::
تاريخ التسجيل: Mar 2005
الدولة: IRAQ
المشاركات: 10,061
نشاط [ حيدر علاج حسن ]
قوة السمعة:394
قديم 29-02-2012, 08:50 PM المشاركة 8   
افتراضي


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

كود:
void main(){ trisa=0xFF;trisb=0;portb=0; loop: while(porta.f0==0){} if(porta.f1==1){portb++;if(portb>9)portb=0;} else if(portb==0)portb=9; else portb--; while(porta.f0==1){} goto loop; }
انسخ الكود و الصقه مباشرة في البرنامج و تنسى ان تحذف الجملة الاخيرة الخاصة بموقع القرية لان البرنامج لن يفهمها و يعترض عليها ..

إضافة رد

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

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

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


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

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