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

   

الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,673
نشاط [ حسن هادي محمود ]
قوة السمعة:
قديم 27-10-2013, 04:26 PM المشاركة 33   
افتراضي



بارك الله فيك اخي الكريم حسن...
انا لم افهم موضوع البايت الخامس الذي شرحته سابقا وكيف اكتبه بطريقه صحيحه في المحاكاه؟؟؟
"" ملاحظة مهمة البايت الخامس الموجود في البيانات الحساس سابقا قلت أني لااعرف عنه اي لااعرف مهمته من خلال قراءة وتحليل بيانات المثال تبين أنه يمثل check للبايتات الاربعة كيف ذلك أنظر الى الشرح من منول
Check: the XOR of STX, parameter, and data. Check=SBUF0 XOR SBUF1 XOR SBUTF2 XOR SBUF3.
اي انه يقوم بعمل XOR للبايتات الاربعة والنتيجة هي نفسها البايت خامس
لذا بسوفت وير علينا أن نعمل check لهذا البايت كيف ذلك بعد أن أحصل على الداتا أعمل XOR مع كل بايت مع بايت الاخر وأقوم بمقارنه النتيجه مع البايت الخامس فأذا كان متساوي فأن البيانات الاربعة التي أستلمتها من حساس هي صحيحة واذا كانت غير متساويه فبيانات غير صحيحة
اي ان بايت الخامس هو التاكيد على ان البيانات هي فعلا من حساس

"""
اخي كريم
البايت الخامس هو نتيجة العمل XOR للبايتات الاربعة وXOR هي أحدى عمليات المنطقية شاهد هذه الصوره
http://img03.arabsh.com/uploads/imag...4c4f65f200.png
لنضرب لك مثال
02H,10H,01H,F4H,XXH حيث X قيمه مجهوله
سوف أعطيك طريقه الاسهل
اخذ الاول الرقم من كل بايت وعمل لو XOR مع بعضهما ونتيجه ستمثل رقم الاول من بايت الخامس وبنفس طريقه للرقم الثاني وتذكر هذه معلومه بالنسبه لــXOR اذا بتات متشابهة نتيجه 0 واذا مختلفه نتيجه 1

الان نأخذ الرقم الاول 02H,10H,01H,F4H,
2=0010 طبعا أقد 2 بنظام سادس عشر حولتها الى الباينري
0=0000
1=0001
4=0100
=0111 هذه هي نتيجه وتساوي 7 بنظام سادس عشر
http://img03.arabsh.com/uploads/imag...4c4f65f702.png
رقم الثاني
02H,10H,01H,F4H
0=0000
1=0001
0=0000
F=1111
نتيجه =1110 وهي تساوي E
ايضا البايت الخامس=E7
DATA =02H,10H,01H,F4H,E7H

اعلانات

عبدالله نعمان
:: مهندس متواجد ::
تاريخ التسجيل: May 2006
المشاركات: 173
نشاط [ عبدالله نعمان ]
قوة السمعة:
قديم 27-10-2013, 06:24 PM المشاركة 34   
افتراضي


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

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

الصورة الرمزية عريبى محمود
عريبى محمود
:: ( رحمه الله عليه ) ::
تاريخ التسجيل: Feb 2009
الدولة: لا تسأل الطغاه لماذا طغو بل اسأل العبيد لماذا انحنو
المشاركات: 3,126
نشاط [ عريبى محمود ]
قوة السمعة:
قديم 27-10-2013, 10:56 PM المشاركة 35   
x4


سلام عليكم
قصدي أخي كريم انه الكود اكتبه على 16f877a بس محتاج عمل له محاكاه وسنسر غير موجود في بروتيس فكانت فكرتي أختار البك مثلا 16f84a وأكتب له كود معين بشكل بسيط وأعتبر 16f84a هو حساس وربط 16f84a مع 16f877a وبتالي عمل محاكاه
كود في 16f84a هو من يستلم أشاره من البك 16f877a يرسل له اشاره بعد فتره زمنيه معينه ومنها أحسب مسافه واذا ارسلت اشاره الى البك 16f84a يرجع اشاره بعد فتره زمنية مختلفه عن الاولى وهكذا وكأنني عندي حساس وهذا حساس يكون عند هدف ثم يبتعد عنه وبتاكيد راح مسافات تختلف وحساس يتعامل مع حساب زمن لذا مهمته 16f84a يقوم بعمل حساس ويرسل اشاره الى 16f877a
السلام عليكم ورحمة الله وبركاته
----------------------------------
اخى الاستاذ /حس هادى
فكرة رائعة جدا ان تستخدم بيك 16F84A بدلا من ىسنسور المسافة
مبدع فعلا ورائــــــــــــــــــــــــع
توكل على الله واشكر حسن تعاونك الدائم


عبدالله نعمان
:: مهندس متواجد ::
تاريخ التسجيل: May 2006
المشاركات: 173
نشاط [ عبدالله نعمان ]
قوة السمعة:
قديم 28-10-2013, 08:38 PM المشاركة 36   
افتراضي


اخي حسن
ما هي قيمة الكريستاله ؟؟


الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,673
نشاط [ حسن هادي محمود ]
قوة السمعة:
قديم 28-10-2013, 08:40 PM المشاركة 37   
افتراضي




السلام عليكم ورحمة الله وبركاته
----------------------------------
اخى الاستاذ /حس هادى
فكرة رائعة جدا ان تستخدم بيك 16F84A بدلا من ىسنسور المسافة
مبدع فعلا ورائــــــــــــــــــــــــع
توكل على الله واشكر حسن تعاونك الدائم
سلام عليكم
أخي كريم كتب كود لكن اريد أضيف اليه بعض الاكواد لغرض حصول على دقة بالقياس ومشكله ان نبضة زمنها قليل حتى لو أستخدمت تايمر0 فانه ستحصل على عدم لذا سحاول ترتيب كود لان تنفيذ البرنامج سريع وهذا يزيد من زمن تايمر0 عموما احمل هذا ملف
http://arabsh.com/files/0c36464262f1...older-rar.html

عمل المحاكاه
----------------
أضغط على سويج سوف يرسل مايكرو نبضه الى سنسر(( هنا يمثل سنسر 16F84a)) عندما يستلم أشاره سوف يعطي نبضه الى مايكرو 16f877a
هذا هو كود البك 16f84a
كود:
sbit Trigger               at RA1_bit;
sbit Trigger_dir           at TRISA1_bit;
sbit Echo                  at RA0_bit;
sbit Echo_dir              at TRISA0_bit;

char y=0 ;
unsigned int cont=0 ,  x=10;
char txt[7];
char txt1[4];
void Interrupt()
{
  if (TMR0IF_bit)
  {
    TMR0IF_bit         = 0;
    TMR0 = 205;
    cont++;
  }

}
void main()
{
  OPTION_REG         = 0x88 ;
  TMR0                 = 205;
  INTCON = 0xA0;

 Trigger_dir=1;
 Echo_dir=0;
 Echo=0;
 while(1)
  {
   while(trigger==1)
      {
        tmr0=205;
        cont=0;
        y=1;
       }
   while(y==1)
     {
      Echo=1;
      if(cont==x)
       {

        Echo=0;
        x=x+10;
        y=0;
       }
     }

  }
}
في كل مره تضغط على سويج سوف تزداد زمن نبضه يمكنك رؤيتها على أوسلوسكوب قيس زمن هذه النبضه مفروض البرنامح في 16f877a يقيس هذا الزمن وبقسمه على 58 سوف تحصل على مسافه
اي انك تقيس زمن نبضه مرسله من 16f84a وتقسمها على 58 وتقارن النتيجه التي ظهرت على الشاشه انا جربت ذلك وكانت نتائج جيده ولكنني اريد حاول في زياده دقة القياس
الكود موجود في ملف هو كود أولي وان شالله أحاول زياده دقه
ولكن عندي سؤال انا اريد استخدم float اي متغير يقبل الارقام العشريه ولكن مشكله كيف أحدد عدد رقام بعد فارزه عشريه لان مع استخدام float تظهر ارقام كثيرة بعد فارزه عشرية اريد أحددها بمرتبتين فقط يعني مثل 25.66 حاليا تظهر 25.659999 هل لديك فكره في تحديد عدد مراتب وشكرا


الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,673
نشاط [ حسن هادي محمود ]
قوة السمعة:
قديم 28-10-2013, 08:48 PM المشاركة 38   
افتراضي


تردد كرستاله 4 ميكاهيرتز وتحتاج الى متسعتين 22pf كما في صوره
http://www.google.iq/imgres?imgurl=h...ed=0CDEQ9QEwAQ


الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,673
نشاط [ حسن هادي محمود ]
قوة السمعة:
قديم 28-10-2013, 08:53 PM المشاركة 39   
افتراضي


تمام اخي المبدع حسن
تمت عملية المحاكاة بنجاح تام
===========
هل يوج طريقة بسيطه لبرمجة الكود علي الميكرو لاني ذهبت للسوق ولم اجد المبرمجه وستاتي بعد حوالي اسبوعين...
صراحه لاأعرف أخي لاني أستخدم ممبرمجه موجوده على هذا موقع
http://www.mikroe.com/easypic/


الصورة الرمزية عريبى محمود
عريبى محمود
:: ( رحمه الله عليه ) ::
تاريخ التسجيل: Feb 2009
الدولة: لا تسأل الطغاه لماذا طغو بل اسأل العبيد لماذا انحنو
المشاركات: 3,126
نشاط [ عريبى محمود ]
قوة السمعة:
قديم 28-10-2013, 09:38 PM المشاركة 40   
x4


سلام عليكم
أخي كريم كتب كود لكن اريد أضيف اليه بعض الاكواد لغرض حصول على دقة بالقياس ومشكله ان نبضة زمنها قليل حتى لو أستخدمت تايمر0 فانه ستحصل على عدم لذا سحاول ترتيب كود لان تنفيذ البرنامج سريع وهذا يزيد من زمن تايمر0 عموما احمل هذا ملف
http://arabsh.com/files/0c36464262f1...older-rar.html


في كل مره تضغط على سويج سوف تزداد زمن نبضه يمكنك رؤيتها على أوسلوسكوب قيس زمن هذه النبضه مفروض البرنامح في 16f877a يقيس هذا الزمن وبقسمه على 58 سوف تحصل على مسافه
اي انك تقيس زمن نبضه مرسله من 16f84a وتقسمها على 58 وتقارن النتيجه التي ظهرت على الشاشه انا جربت ذلك وكانت نتائج جيده ولكنني اريد حاول في زياده دقة القياس
الكود موجود في ملف هو كود أولي وان شالله أحاول زياده دقه
ولكن عندي سؤال انا اريد استخدم float اي متغير يقبل الارقام العشريه ولكن مشكله كيف أحدد عدد رقام بعد فارزه عشريه لان مع استخدام float تظهر ارقام كثيرة بعد فارزه عشرية اريد أحددها بمرتبتين فقط يعني مثل 25.66 حاليا تظهر 25.659999 هل لديك فكره في تحديد عدد مراتب وشكرا
السلام عليكم ورحمة الله وبركاته
----------------------------------
اخى الغالى حسن هادى
كلمات الشكر قليلة بالنسبة لك اشكرك كثيرا على الجهد الذى بذلته فى الرد على
اريد ان اسألك سؤال هل لو تم استبعاد البيك 16F84A وقمت بتوصيل الحساس
على البيك 16F877A وقمت بتشغيل البيك بالضغط على سويج
هل سوف تظهر المسافة على الشاشة بالضبط ام هناك مشاكل فيها
ارجو الرد وفى النهاية لك منى الف تحية



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