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

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

noor1144
:: مهندس متميز ::
تاريخ التسجيل: Mar 2010
المشاركات: 557
نشاط [ noor1144 ]
قوة السمعة:0
قديم 22-10-2010, 11:37 AM المشاركة 1   
افتراضي كيف اختصر TRISB Twitter FaceBook Google+



السؤال الاول
كيف اختصر TRISB=0B00000001
او
TRISB=0B00010000;
او
TRISB=0B01000000;

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

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

وشكرا لكم

اعلانات

kiai87
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2008
الدولة: جنوب المغرب
المشاركات: 1,115
نشاط [ kiai87 ]
قوة السمعة:117
قديم 22-10-2010, 02:47 PM المشاركة 2   
افتراضي


السلام عليكم

تفضلي اختي هدا مقتطف من شرح استاد احمد سمير جزاه الله كل خير

يوضح كيفية اختصار الارقام

تحويل الارقام من البايناري الى ارقام سادس عشر

http://img19.mediafire.com/2697920bb...06ca0aa34g.jpg

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

noor1144
:: مهندس متميز ::
تاريخ التسجيل: Mar 2010
المشاركات: 557
نشاط [ noor1144 ]
قوة السمعة:0
قديم 22-10-2010, 03:23 PM المشاركة 3   
افتراضي


عارفها المعلومة هذه ولكن انا اسأل عن شيء آخر
هو استخدم النظام السداسي عشري بالاختصار
وموجود في برنامج المايكرو سي التحويلات هذه

و
TRISB=0B00000000;
اختصارها هكذا
TRISB=0;
ولكن انا اسأل اذا كانت الرجل الثامنة او مثلا الرجل الثانية كدخل كيف اكتب TRSIB
هل اكتبها هكذا TRISB=000000010


وهذا هو الكود الذي كتبته

void main()
{ TRISB=0;
loop:
TRISB=0B00000100;
PORTB=0B00000001; delay_ms(100);
PORTB=0B00000000; delay_ms(100);
TRISB=0B00000001;
PORTB=0B00000010; delay_ms(100);
PORTB=0B00000000; delay_ms(100);
TRISB=0B00000001;
PORTB=0B00000100; delay_ms(100);
PORTB=0B00000000; delay_ms(100);
TRISB=0B00000100;
PORTB=0B00000010; delay_ms(100);
PORTB=0B00000000; delay_ms(100);
goto loop;

وسؤال
كيف عرفت انني اخت وليس اخ ؟!؟!


التعديل الأخير تم بواسطة : noor1144 بتاريخ 22-10-2010 الساعة 05:05 PM

eng.jawad
:: مهندس ::
تاريخ التسجيل: Jul 2010
الدولة: amman-jordan
المشاركات: 27
نشاط [ eng.jawad ]
قوة السمعة:0
قديم 22-10-2010, 04:42 PM المشاركة 4   
افتراضي


;
ولكن انا اسأل اذا كانت الرجل الثامنة او مثلا الرجل الثانية كدخل كيف اكتب TRSIB
هل اكتبها هكذا TRISB=000000010


لو فرضنا انه :
B0 INPUT
B1 OUTPUT
B2 OUTPUT
B3 INPUT
B4 INPUT
B5 OUTPUT
B6 INPUT
B7 OUTPUT

النتيجه :

كود:
TRISB=0B01011001; // TRISB=0X59;

بالنسبه للسؤال الثاني ما فهمت قصدك ولا حتى الرسمه , يا ريت اتوضحها اكثر


الصورة الرمزية حيدر علاج حسن
حيدر علاج حسن
:: مشرف منتدى الهندسة الكهربائية ::
تاريخ التسجيل: Mar 2005
الدولة: IRAQ
المشاركات: 10,061
نشاط [ حيدر علاج حسن ]
قوة السمعة:395
قديم 22-10-2010, 05:07 PM المشاركة 5   
افتراضي


تفضل اخي . اجعل الكود على هذه الشاكلة .

كود:
  char i=0;
char x[]={1,2,4};
void main(){
loop:
for(i=1;i<5;i+=2){
trisb=i;
portb=x[i];}
goto loop;
}
رتب البيانات في المتغير المتجه x بحيث تكون رجل واحدة تأخذ القيمة 1 و هي المتصله بالطرف الموجب لليد المراد تشغيله و البقية اصفار . ثم نضع قيمة العداد في عبارة tris لجعل باقي الارجل كمداخل و مقاومتها ما لانهاية .
بهذه الطريقة يمكنك ان تختصر الكود .

حيدر علاج حسن

noor1144
:: مهندس متميز ::
تاريخ التسجيل: Mar 2010
المشاركات: 557
نشاط [ noor1144 ]
قوة السمعة:0
قديم 22-10-2010, 05:22 PM المشاركة 6   
افتراضي


;
ولكن انا اسأل اذا كانت الرجل الثامنة او مثلا الرجل الثانية كدخل كيف اكتب TRSIB
هل اكتبها هكذا TRISB=000000010


لو فرضنا انه :
B0 INPUT
B1 OUTPUT
B2 OUTPUT
B3 INPUT
B4 INPUT
B5 OUTPUT
B6 INPUT
B7 OUTPUT

النتيجه :

كود:
TRISB=0B01011001; // TRISB=0X59;

بالنسبه للسؤال الثاني ما فهمت قصدك ولا حتى الرسمه , يا ريت اتوضحها اكثر
لا يا اخي انتا مافهمت علي
يمكن انتا ماشفت تسجيل الاخ احمد ( فيديو )

على فكرة الموضوع بسيط جدا
شاهد هذا الرابط للاخ احمد
لاني لا اريد ان اشرح اكثر من ذلك
http://www.4shared.com/video/gLvSW6XM/__-___.html


kiai87
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2008
الدولة: جنوب المغرب
المشاركات: 1,115
نشاط [ kiai87 ]
قوة السمعة:117
قديم 22-10-2010, 05:36 PM المشاركة 7   
افتراضي


السلام عليكم

هل تقصدين كيفية كتابة الكود إداكنت تريدين جعل رجل 8 كمدخل أليس كدالك


التعديل الأخير تم بواسطة : kiai87 بتاريخ 22-10-2010 الساعة 07:03 PM

الصورة الرمزية حيدر علاج حسن
حيدر علاج حسن
:: مشرف منتدى الهندسة الكهربائية ::
تاريخ التسجيل: Mar 2005
الدولة: IRAQ
المشاركات: 10,061
نشاط [ حيدر علاج حسن ]
قوة السمعة:395
قديم 22-10-2010, 07:35 PM المشاركة 8   
افتراضي


هذا الكود جاهز للتشغيل .

كود:
    char a[]={4,2,4,1,2,1};
char x[]={1,1,2,2,4,4};
char i=0;
void main(){
loop:
for(i=0;i<6;i++){
trisb=a[i];
portb=x[i];
delay_ms(500);}
goto loop;
}
لزيادة عدد الليدات نزيد عدد البيانات في المتغيرين x و a و كذلك قيمة العداد i

حيدر علاج حسن
إضافة رد

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

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

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


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

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