قسم الميكروكنترولر والروبوت ودوائر الاتصال بالحاسب الاليقسم المتحكمات الـ microcontroller و المعالجات microprocessor و التحكم الرقمي بالكمبيوتر CNC والانظمة الآلية والروبوت Robots
فى هذا الدائرة عند الضغط على المفتاح الاول يزيد المتغير 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;}
}
}
قمت بصنع الدائرة وربط السويشات بسلك الى الدائرة ولاحضت فى بعض الاحيان عند تحريك احد اسلاك المفتاحين او كلها يعطى نبضة الى دخل المايكرو فيغير الخرج دون الضغط على المفتاح هناك حالة نويز كيف يمكننى التخلص من هذا الحالة هل لدى احدكم فكرة ؟؟
أخي للتغلب على بعض أسباب التشويش :
1- نركب مكثف 100 نانو (صغير) بين موجب المتحكم وسالبه .
ويمكن تركيب المكثف مباشرة من جهة اللحام على الطرفين 5 و 14 :
2- RA5 ممكن يبرمج mclr وممكن يبرمج I/O يعني طرف عادي
هو مبرمج في الكود طرف عادي
احتمال يكون مبرمج دخل لذلك الأفضل عدم تركه شاغرا يتأثر بما حوله .
مقاومة 10 كيلو منRA5 الى الارضي تحل المشكل.
أخي للتغلب على بعض أسباب التشويش :
1- نركب مكثف 100 نانو (صغير) بين موجب المتحكم وسالبه .
ويمكن تركيب المكثف مباشرة من جهة اللحام على الطرفين 5 و 14 :
2- RA5 ممكن يبرمج mclr وممكن يبرمج I/O يعني طرف عادي
هو مبرمج في الكود طرف عادي
احتمال يكون مبرمج دخل لذلك الأفضل عدم تركه شاغرا يتأثر بما حوله .
مقاومة 10 كيلو منRA5 الى الارضي تحل المشكل.
السلام عليكم
أيضا أخي لاتنسى اذا تم أستخدام كرستاله خارجيه فأنه يتم وضعها بالقرب من مايكروكنترولر وبالخص مكان الربط خصوصا الكرستاله تعتبر قلب مايكروكنترولر
تحياتي
الساعة معتمدة بتوقيت جرينتش +3 الساعة الآن: 05:48 PM
موقع القرية الالكترونية غير مسؤول عن أي اتفاق تجاري أو تعاوني بين الأعضاء
فعلى كل شخص تحمل مسئولية نفسه إتجاه مايقوم به من بيع وشراء وإتفاق وأعطاء معلومات موقعه
التعليقات المنشورة لا تعبر عن رأي موقع القرية الالكترونية ولايتحمل الموقع أي مسؤولية قانونية حيال ذلك (ويتحمل كاتبها مسؤولية النشر)