قسم الميكروكنترولر والروبوت ودوائر الاتصال بالحاسب الاليقسم المتحكمات الـ microcontroller و المعالجات microprocessor و التحكم الرقمي بالكمبيوتر CNC والانظمة الآلية والروبوت Robots
السلام عليكم
بدل أن تسند قيمة معينة للبورت كله ، برمج كل مخرج على حدا ، إما تعطيه 1 أو 0..
مثال
;Portc.b0=1 هنا أسندنا القيمة 1 منطقي للطرف RC0 (البت 0) من البورت C
أو ;Portc.b0=0 و هنا أسندنا لنفس الطرف القيمة 0 منطقي
يعني الطرف الذي تريد أن يخرج لك 5 فولت تعطيه القيمة 1 والطرف الذي تريده 0 تعطيه القيمة 0 طبعا.
السلام عليكم
بدل أن تسند قيمة معينة للبورت كله ، برمج كل مخرج على حدا ، إما تعطيه 1 أو 0..
مثال
;Portc.b0=1 هنا أسندنا القيمة 1 منطقي للطرف RC0 (البت 0) من البورت C
أو ;Portc.b0=0 و هنا أسندنا لنفس الطرف القيمة 0 منطقي
يعني الطرف الذي تريد أن يخرج لك 5 فولت تعطيه القيمة 1 والطرف الذي تريده 0 تعطيه القيمة 0 طبعا.
طبعا لكن هناك أسطر فيها عدة شروط
مثال
كود:
if (portb.f0==1 && portb.f1==0 وتجاهل المخارج الأخرى )
if (portb.f0==1 && portb.f1==1 && portb.f2==0 portb.f3==0 وتجاهل المخارج الأخرى )
if (portb.f0==1 && portb.f1==1 && portb.f2==1 portb.f3==0 وتجاهل المخارج الأخرى )
ولكن هكذا طويلة جدا ويجب علي تحديد وضعية كل البورتات
لهذا أردت إستعمال خاصية تجاهل بعض المخارج
التعديل الأخير تم بواسطة : abban270 بتاريخ 04-09-2014 الساعة 04:23 PM
أخي استعمل التعليمة AND فهي ما سيساعدك
مثال
NUM=PORTB AND %00001111
لا اعرف صياغتها في لغة البرمجة التي لديك
لكن النتيجة في قيمة المتغير ستكون قيمة البتات الاربعة الاولى متجاهلة البتات الاربعة الثانية
السلام عليكم
أرجو المساعدة في تجاهل بعض المخارج
أريد أن أعمل بالمخارج من rb0---->rb3
وتجاهل المخارج من rb4------>rb7 لأنها ستستعمل لغرض آخر
والمخارج الأربعة الأولى سأستعمل عليه العديد من الشروط
مثال
i
كود:
f (portb==0) أمر
if (portb==1) أمر آخر
if (portb==2) أمر آخر
if (portb==3) أمر آخر
if (portb==7) أمر آخر
ولكن هذه الأوامر لن تقوم بتجاهل المخارج rb4------>rb7
أرجو طرية لتفادي هذا المشكل بارك الله فيكم
السلام عليكم
أخي الكريم لما تقول if (portb==1) لايعني انك جعلت portb=1 وبتالي ماراح يؤثر على مخارج rb4------>rb7
ولكن اذا قلت أجعل portb=7 هنا راح تتأثر مخارج rb4------>rb7 ولكي لاتتأثر أكتب الكود التالي
مثلا اريد أجعل rb0=1,rb1=1,rb2=1,rb3=0 وبدون ان نؤثر على rb4------>rb7
كود:
portb=portb|0x07;
او تكتب بالباينري
كود:
portb=portb|0b00000111;
والرمز | يعني او
لنحلل الكود //
مثلا portb=0b11111000
ولجعل بتات الثلاثه=1 دون ان نؤثر على مخارج الاربعه اخيره
portb=portb|0b00000111
أخي استعمل التعليمة AND فهي ما سيساعدك
مثال
NUM=PORTB AND %00001111
لا اعرف صياغتها في لغة البرمجة التي لديك
لكن النتيجة في قيمة المتغير ستكون قيمة البتات الاربعة الاولى متجاهلة البتات الاربعة الثانية
السلام عليكم
أخي الكريم لما تقول if (portb==1) لايعني انك جعلت portb=1 وبتالي ماراح يؤثر على مخارج rb4------>rb7
ولكن اذا قلت أجعل portb=7 هنا راح تتأثر مخارج rb4------>rb7 ولكي لاتتأثر أكتب الكود التالي
مثلا اريد أجعل rb0=1,rb1=1,rb2=1,rb3=0 وبدون ان نؤثر على rb4------>rb7
كود:
portb=portb|0x07;
او تكتب بالباينري
كود:
portb=portb|0b00000111;
والرمز | يعني او
لنحلل الكود //
مثلا portb=0b11111000
ولجعل بتات الثلاثه=1 دون ان نؤثر على مخارج الاربعه اخيره
portb=portb|0b00000111
الساعة معتمدة بتوقيت جرينتش +3 الساعة الآن: 07:11 AM
موقع القرية الالكترونية غير مسؤول عن أي اتفاق تجاري أو تعاوني بين الأعضاء
فعلى كل شخص تحمل مسئولية نفسه إتجاه مايقوم به من بيع وشراء وإتفاق وأعطاء معلومات موقعه
التعليقات المنشورة لا تعبر عن رأي موقع القرية الالكترونية ولايتحمل الموقع أي مسؤولية قانونية حيال ذلك (ويتحمل كاتبها مسؤولية النشر)