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

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

الصورة الرمزية سعيد قادر
سعيد قادر
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2009
الدولة: العراق/ كوردستان
المشاركات: 2,916
نشاط [ سعيد قادر ]
قوة السمعة:152
قديم 30-08-2014, 06:44 PM المشاركة 1   
Exclamation سؤال فى هذا الكود Twitter FaceBook Google+



السلام عليكم

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




وهذا هو الكود


كود:
#define        is        ==
#define        sw1      porta.B3
#define        sw2      porta.B4
#define        preseed  0
 char x=0;
void init()
{
 cmcon=7;
 trisa=0b00011000;
 porta=0;
 trisb=0;
 portb=0;
}

void main()
{
 init();
 portb=0;
 porta=0;
 while(1)
 {
   if(sw1 is preseed ){
                       delay_ms(10);
                       while(sw1 is preseed);
                       delay_ms(10);
                       x++;
                       if(x is 13 ) x=1;
                      }
 
  if(sw2 is preseed){
                    delay_ms(10);
                    while(sw2 is preseed);
                    delay_ms(10);
                    x--;
                    if(x is 0)x=12;
                   }
 if(x is 1){porta=0;portb=1;}
 if(x is 2){porta=0;portb=2;}
 if(x is 3){porta=0;portb=4;}
 if(x is 4){porta=0;portb=8;}
 if(x is 5){porta=0;portb=16;}
 if(x is 6){porta=0;portb=32;}
 if(x is 7){porta=0;portb=64;}
 if(x is 8){porta=0;portb=128;}
 if(x is 9){porta=1;portb=0;}
 if(x is 10){porta=2;portb=0;}
 if(x is 11){porta=4;portb=0;}
 if(x is 12){porta=64;portb=0;}



}


}

ملف الدائرة


http://www.gulfup.com/?UeDs8A

اعلانات

Logic
:: عضو فضي ::
تاريخ التسجيل: Mar 2014
المشاركات: 682
نشاط [ Logic ]
قوة السمعة:80
قديم 30-08-2014, 07:47 PM المشاركة 2   
افتراضي


السلام عليكم
اخي سعيد.. اذا كنت قد فهمت المطلوب تغير قيمتي x كالتالي :

احصائية الشكر والاعجاب - 1 شكراً, 0 عدم اعجاب, 1 اعجاب
شكراً سعيد قادر ( شكر العضو على هذه المشاركة )
اعجاب سعيد قادر ( أعجبته المشاركة )
اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )
  

الصورة الرمزية سعيد قادر
سعيد قادر
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2009
الدولة: العراق/ كوردستان
المشاركات: 2,916
نشاط [ سعيد قادر ]
قوة السمعة:152
قديم 30-08-2014, 08:31 PM المشاركة 3   
افتراضي


وعليكم السلام بارك الله فيك هو كذالك فعلا تم حل المشكلة جزاك الله كل الخير

احصائية الشكر والاعجاب - 1 شكراً, 0 عدم اعجاب, 0 اعجاب
شكراً Logic ( شكر العضو على هذه المشاركة )

Logic
:: عضو فضي ::
تاريخ التسجيل: Mar 2014
المشاركات: 682
نشاط [ Logic ]
قوة السمعة:80
قديم 31-08-2014, 08:51 AM المشاركة 4   
افتراضي


الحمد لله أخي سعيد
بارك الله فيك.


الصورة الرمزية سعيد قادر
سعيد قادر
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2009
الدولة: العراق/ كوردستان
المشاركات: 2,916
نشاط [ سعيد قادر ]
قوة السمعة:152
قديم 31-08-2014, 04:47 PM المشاركة 5   
افتراضي


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


Logic
:: عضو فضي ::
تاريخ التسجيل: Mar 2014
المشاركات: 682
نشاط [ Logic ]
قوة السمعة:80
قديم 01-09-2014, 08:35 AM المشاركة 6   
افتراضي


أخي للتغلب على بعض أسباب التشويش :
1- نركب مكثف 100 نانو (صغير) بين موجب المتحكم وسالبه .
ويمكن تركيب المكثف مباشرة من جهة اللحام على الطرفين 5 و 14 :

2- RA5 ممكن يبرمج mclr وممكن يبرمج I/O يعني طرف عادي
هو مبرمج في الكود طرف عادي
احتمال يكون مبرمج دخل لذلك الأفضل عدم تركه شاغرا يتأثر بما حوله .
مقاومة 10 كيلو منRA5 الى الارضي تحل المشكل.


احصائية الشكر والاعجاب - 2 شكراً, 0 عدم اعجاب, 2 اعجاب
شكراً سعيد قادر, حسن هادي محمود ( شكر العضو على هذه المشاركة )
اعجاب سعيد قادر, حسن هادي محمود ( أعجبته المشاركة )

الصورة الرمزية سعيد قادر
سعيد قادر
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2009
الدولة: العراق/ كوردستان
المشاركات: 2,916
نشاط [ سعيد قادر ]
قوة السمعة:152
قديم 01-09-2014, 05:23 PM المشاركة 7   
افتراضي


بارك الله فيك شكرا لك ساجربها ان شاء الله


الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,688
نشاط [ حسن هادي محمود ]
قوة السمعة:136
قديم 01-09-2014, 05:48 PM المشاركة 8   
افتراضي


أخي للتغلب على بعض أسباب التشويش :
1- نركب مكثف 100 نانو (صغير) بين موجب المتحكم وسالبه .
ويمكن تركيب المكثف مباشرة من جهة اللحام على الطرفين 5 و 14 :

2- RA5 ممكن يبرمج mclr وممكن يبرمج I/O يعني طرف عادي
هو مبرمج في الكود طرف عادي
احتمال يكون مبرمج دخل لذلك الأفضل عدم تركه شاغرا يتأثر بما حوله .
مقاومة 10 كيلو منRA5 الى الارضي تحل المشكل.

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

إضافة رد

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

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

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


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

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