الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

آلية التفاهم بين المرسل و المستقبل

مغلقرائج
بدأه رامي العيساوي في 5 ديسمبر 2005 · 81 رد · 23,622 مشاهدة · في أرشيف المواضيع المهمة
مشاركة: واتساب X فيسبوك تيليجرام
#51

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

و على فكرة كلمة سيناو هي ايم الشركة الاشهر في انتاج الاجهزة هذه و لذا درج اسم سيناو على كافة الاجهزة المشابهة و حتى لو كانت من انتاج نوكيا مثلا!!

انا اللي رح اشتريه واحد صيني عايف حاله و تقول لي اسم بالانجليزي... على كلا رح ادبر لك اسمه و شي واحد من انتاج نوكيا...

================ بشأن موضوعنا الاساسي ============

المشكلة كلها تكمن في تحديد العوامل التي تؤثر على t و هل هذه العوامل هي متغيرة ام ثابتة!!

اذا كانت ثابتة فلا مشكلة و لكن اعتقد بانها متغيرة... لان الحاسوب ربما لا يقوم بالعملية بالسرعة المعتادة ربما اذا نصبت برنامج جديد على الحاسوب سوف يستهلك مورد ما و سوف يؤثر على الاداء العام للحاسوب!! و بالتالي زيادة قيمة t و خرب الشغل كله علينا!!

و يوجد مشكلة اخرى و هي ان الجافا كما اعتقد اصغر وحدة قياس لقياس الزمن هي ملي ثانية و لكن على ما يبدو نحن بحاجة الى نانو ثانية!

هل تستطيع تعداد العوامل المؤثرة على t و من منها و من منها متغير؟؟

====================================

Theory is when you know something, but it doesn't work. Practice is when something works, but you don't know why. Programmers combine theory and practice: Nothing works and they don't know why

#52
رامي العيساوي كتب:
================ بشأن موضوعنا الاساسي ============

المشكلة كلها تكمن في تحديد العوامل التي تؤثر على t و هل هذه العوامل هي متغيرة ام ثابتة!!

اذا كانت ثابتة فلا مشكلة و لكن اعتقد بانها متغيرة... لان الحاسوب ربما لا يقوم بالعملية بالسرعة المعتادة ربما اذا نصبت برنامج جديد على الحاسوب سوف يستهلك مورد ما و سوف يؤثر على الاداء العام للحاسوب!! و بالتالي زيادة قيمة t و خرب الشغل كله علينا!!

و يوجد مشكلة اخرى و هي ان الجافا كما اعتقد اصغر وحدة قياس لقياس الزمن هي ملي ثانية و لكن على ما يبدو نحن بحاجة الى نانو ثانية!

هل تستطيع تعداد العوامل المؤثرة على t و من منها و من منها متغير؟؟

====================================

يااااااااااااااه , أخيرا... عشان كده كنت باقولك ان فكرة حساب المسافة بمعرفة الزمن عملية غير مجدية

ده لسه لما تقولي ان نظام التشغيل احيانا يعلق , وأحيانا يفوت وكلام من ده , لهذا اقترحت عليك الاقتراح الثاني في المشاركة 32

#53

الجافا طلع فيها نانو ثانية يعني ما في مشكلة!!!

و بالنسبة لثبات النظام هذه اللي يجب ان نجد لها حل و من ثم التعليق و الجماد احتمال حصوله قليل... و يفضل بالبرنامج ان نضع فيه ميزة تعديل الـ t اي عند كل بداية عملية نضع الجهازين بجوار بعضهم و القيمة التي تظهر نقول له هذه هي " يعني مثل عملية تصفير " و بكذا نضمن الـ t في الوضع الراهن و احتمال تغيره قليل جدا...

و اريد تفسير هذه الجملة "والرادار يعمل عن طريق قياس الاختلاف في الطور والقيمة"؟؟؟

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

و اريد ان اعرف الم يطبق احد ما هذه الفكرة من قبل؟؟ لا احب ان اكون اول المجربين!!

Theory is when you know something, but it doesn't work. Practice is when something works, but you don't know why. Programmers combine theory and practice: Nothing works and they don't know why

#54
اقتباس
الجافا طلع فيها نانو ثانية يعني ما في مشكلة!!!
B) , عجيبة !!!
اقتباس
و بالنسبة لثبات النظام هذه اللي يجب ان نجد لها حل و من ثم التعليق و الجماد احتمال حصوله قليل... و يفضل بالبرنامج ان نضع فيه ميزة تعديل الـ t اي عند كل بداية عملية نضع الجهازين بجوار بعضهم و القيمة التي تظهر نقول له هذه هي " يعني مثل عملية تصفير " و بكذا نضمن الـ t في الوضع الراهن و احتمال تغيره قليل جدا...
انسى , انا لقيت الحل خلاص :D

يا رب حتى الكمبيوتر يهنج بعد ما يبعت الاشارة " اين أنت " , الوقت سيتم حسابة بدقة الميكروكنترولر وليس على دقة الكمبيوتر

يعني انت بتبعت الاشارة من الكمبيوتر , ولا يهمني انت باعتها من امتى , لحظة ارسالها الى دائرة الـ DTMF يقوم بتصفير عداد يعد الوقت المستغرق , الى ان تحث مقاطعة تفيد باستلام الرد و فيرسل قيمة العداد الى الكمبيوتر , وبكده يبقى تجاهلنا كون الكمبيوتر بيتأخر ولا بيستهبل , ولا لينا دعوه لا الجافا بتعرف تتعامل مع النانو ثانية ولا هي بتشتغل بالمللي ثانية فقط :D

وبالنسبة بموضوع الرادار , فهذا تلميح بسيط كيف يعمل الرادار

وبلاش تتعمق اكثر تحسبا للتعقيدات الرياضية و دوال جيبية وفورير بقى و.... الموضوع كبير , مش كمبيوتر خالص :unsure:

وبالنسبة للتطبيق , تم بأكثر من شكل , ليست أول مره , ولكن كل مره بيتم اختيار الطريق السليم , يعني اما ان يكون رادار , او الاسلوب الثاني أن السيارة تحدد موقعا وتخبر القاعده به , وأكيد بتشوف ده في برامج الفضاء

يتم ارسال الروبوت كامل متكامل , وفقط يتم تبادل المعلومات بينه وبين القاعده كما لو كان كمبيوتر شخصي في نفس الغرفة

#55

يعني لن يوجد لدينا t و لكن سيكون لدينا T التي نحتاجها فعلا .. اليس كذلك!!

اذا على بركة الله.. باقي مشلكة السيناو!!

Theory is when you know something, but it doesn't work. Practice is when something works, but you don't know why. Programmers combine theory and practice: Nothing works and they don't know why

#56

هو هيكون في t بس صغيرة جدا , ثابته كمان , يعني نحسبها مره واحده وخلاص

لكن خلينا في السيناو ده , شوفلي حل وياه

#57

السلام عليكم

لقد اعجبني موضوعكم وانا اريد الوصول للحل مثلكم ولكن لا اعرف في إلاكترونيات :( (واتنمنى ان اتعلم)

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

وهذا الموضوع طبعاً منقول ومتوفر في اكثر من منتدى ولكن لا اعرف المنتدى الذي نقلته منه لاني لا اذكره

------------------------------------------

دارة لأرسال المعلومات لاسلكيا"

للأجابة على سؤال لأحد الأخوة ،أبين فيما يلي أبسط دارة خارجية لوصل أي جهاز هاتف لاسلكي مهما

كان مداه بجهازين كمبيوتر حيث يمكن تبادل المعلومات بواسطتها عن طريق أي برنامج يعمل

كالبرنامج PC Anyware وذلك كمايلي:

نأتي بأي جهاز لاسلكي وليكن مداه 5 كيلو متر ،طبعا" للجهاز سماعة محمولة(القبضة) والقاعدة

الثابتة.

(أنظر الملف المرفق)نجد من الرسم 1 أنه يتم وصل الجهاز اللاسلكي المحمول(القبضة) بدارة

بسيطة مع مدخل كرت المودم في الكومبيوتر الأول ،حيث يلزم لذلك تغذية خارجية 12فولت مستمر

ومنعم(أو يمكن أن تؤخذ من داخل القبضة إذا كان الفولت مناسبا")وكما نلاحظ أن مدخل

الكمبيوتر موصول على التسلسل مع التغذية ثم مع الدارة ،وتوجد في الدارة مدخل الأشارة

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

مع مراعاة وصل السالب مع السالب(الشاسيه).

ويوجد أيضا" في الرسم 1 مخرج الأشارة الصوتية وتؤخذ إلى مكرفون اللاسلكي(لاقط الصوت) من

الجاك الخارجي للقبضة أو من داخل القبضة من لاقط الصوت الموجود في أسفل الجهاز ليتم أرسال

الأشارة من الكمبيوتر إلى الاقط إلى دارة الأرسال لتبث إلى القاعدة ،أيضا" مع مراعاة وصل

السالب بالسالب بشكل صحيح ،مع ألغاء المكوفون(نزعه) لعدم تشويش الأصوات على المعلومات

المرسلة.

نستنتج مما سبق أنه يتم أرسال وأستقبال المعلومات من الكمبيوتر الأول للقبضة ثم للقاعدة

الثابتة ثم للكمبيوتر الثاني.

أنظر الرسم 2 ،نجد أنه تم وصل كرت المودم للكمبيوتر الثاني على التسلسل مع القاعدة

الثابتة بدون الحاجة للدارة الخارجية وذلك لأن الدارة موجودة في تصميم القاعدة(أي جاك

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

المكرفون)،ويمكن أيضا" أخذ التغذية المستمر من ضمن القاعدة.

القاطع اللحظي الموجود في الرسم 2 هو لأعطاء جرس يدويا" (ويمكن آليا" بتصميم دارة لذلك)

لليفتح الكمبيوتر الثاني وذلك بحسب عدد الرنّات المعيرة في برنامج الكمبيوتر.

ونرى من الرسم أننا وضعنا منبع تغذية متناوب لأحداث الجرس(لفتح الكمبيوتر)ويكون 20 هرتز

و50 فولط متناوب وبما أن التيار الكهربائي العام في البلاد العربية 50 أو 60 هرتز فيمكن

بواسطة محولة صغيرة أن يلف الملف الثانوي لها بقيمة 50 فولت فيصبح لدينا 50 فولط و50 هرتز

وهو الفولت اللازم لأعطاء الجرس .(يمكن أعطاء الجرس داخليا" في كرت المودم وذلك لوجود

مجموعة صغيرة تسمى فوتوكبلر أو عازل ضوئي على كرت المودم ،فعند تلامس القطب 3 و4 يتم

أعطاء أمر لفتح الخط دون أستعمال القاطع اللحظي ودون تولد الفولت المتناوب.

يوجد في الرسم 1 و2 مكثفات كيماوية على التغذية وذلك لتنعيم التغذية إذا كانت محولة من

ترنس خارجي مستمر.

فلأرسال المعلومات نقوم بتشغيل الكمبيوترين ثم نضع البرنامج المطلوب (مثل PC Anyware)

في حالة أرسال مكالمة ونضع رقم هاتف وهمي لذلك ثم نقوم بفتح القبضة اللاسلكية ثم نضغط

على البرنامج للأرسال ، طبعا" يكون الكمبيوتر الثاني محضر لأستقبال مكالمة ،وعند ذلك وبعد

فتح القاعدة(من قبل القبضة) نقوم بالضغط على المفتاح اللحظي لفتح الكمبيوتر لأرسال

وأستقبال المعلومات .

-----------------------

___________________.zip

#58

اعتقد ان كلام الاخ هنا بعيد قليلا عما نناقشه هنا!! نحن نتكلم عن تحديد مسافة و بعض الاوامر البسيطة... اما هذا يتحدث عن نقل بيانات و هذا بعيد قليلا عن كلامنا هنا

و انصحك بمتابعة الموضوع حتى نبدأ بالقسم التنفيذي بعد استقرار كافة الامور النظرية!!

Theory is when you know something, but it doesn't work. Practice is when something works, but you don't know why. Programmers combine theory and practice: Nothing works and they don't know why

#59
رامي العيساوي كتب:
اعتقد ان كلام الاخ هنا بعيد قليلا عما نناقشه هنا!! نحن نتكلم عن تحديد مسافة و بعض الاوامر البسيطة... اما هذا يتحدث عن نقل بيانات و هذا بعيد قليلا عن كلامنا هنا

و انصحك بمتابعة الموضوع حتى نبدأ بالقسم التنفيذي بعد استقرار كافة الامور النظرية!!

مشكور اخوي

وأنا اقول كذلك :)

#60

السيناو صار عندي ...

و العطلة بلشت خلينا نبلش الشغل!!!

لازم ننهي المشروع خلال 10 - 15 يوم...

Theory is when you know something, but it doesn't work. Practice is when something works, but you don't know why. Programmers combine theory and practice: Nothing works and they don't know why

#61

السلام عليكم ورحمة الله وبركاته...

بفرض أن عملية الارسال والاستقبال تتم على خطين منفصلين , أو ترددين منفصلين و بهدف عدم وجود صدى echo للصوت المرسل

هذا هو الشرط الوحيد لنجاح هذه الفكرة

بسم الله نبدأ ...

بعد مراجعة الداتاشيت الخاصة بالدائرة 8880 , وجدت أنها تحتوي على سجلات عمل خاص , Cotrol Register CR و Status Register SR

ولهذا يجب مراعاة هذه السجلات في البرنامج على الميكروكنترولر

وأول مراعاة ستكون في التوصيل , بعدها في الأوامر

أولا التوصيل:

يتم توصيل الدائرة بهذا الشكل

D0,D1,D2,D3 أربعة أطراف I/O للبيانات تستخدم 4 استخدامات

ااـ 4 استخدامات هي :

1 - القرائة من سجل البيانات المستقبلة

2 - الكتابة في سجل البيانات المرسلة

3 - القرائة من السجل SR

4 - الكتابة في السجل CR

الآن كيف نختار بين هذه الاستخدامات الأربعة ؟

من خلال القدمين R/W , RS0 كما بالشكل

01_02_06_12_24_14_1138825454_.GIF

طريقة التوصيل ستكون بهذا الشكل

01_02_06_12_23_33_11388254131.GIF

مع اعادة الترتيب بحيث:

نوصل قدم المقاطعة في الدائرة بقدم المقاطعة في الميكروكنترولر

نوصل D0,D1,D2,D3 بأحد منافذ الميكرو بالترتيب الصحيح بحيث لا نحتاج الى تعليمات كثيرة لقرائة البيانات أو لإرسالها

باقي الأطراف توصل بالأطراف الفارغة في المنافذ

نقوم بضبط إعداد الدائرة عن طريق السجلات الداخلية , بتمرير البيانات اليها عن طريق منفذ البيانات D0,D1,D2,D3 , واختيار السجلات كما أوضحنا سلفا في الصورة

السجل CR ينقسم الى قسمين : CRA, CRB

07_02_06_10_03_29_11393354093.GIF

بداية وعند الكتابة على السجل CR تكون الكتابة في السجل CRA , ولكن للكتابة في السجل CRB نحتاج وضع 1 في البيت الرابع في CRA نتيجة هذا تكون عملية الكتابة التالية على السجل CR موجهة الى CRB بعدها تتم العودة تلقائيا الى CRA مرة اخرى

الآن عملية الكتابة:

CRA :

في الخانة الاولى نضع 1 لاتاحة توليد النغمات

في الخانة الثانية نضع صفر للعمل على نظام DTMF

في الخانة الثالثة نضع 1 لاتاحة المقاطعة , سنستفيد منها عند قدوم اشارة من الطرف الآخر

في الخانة الرابعة نضع 1 لاتاحة الكتابة في CRB المرة القادمة

CRB :

في الخانة الاولى نضع صفر , لمنع ارسال النغمة المستقبلة مره ثانية

في الخانة الثانية نضع صفر أيضاً , لا وقت للتجريب

في الخانة الثالثة نضع صفر للسماح باستخدام ترددين متداخلين وهو نظام الـ DTMF

ألخانة الرابعة لا تهم , ضع فيها القيمة التي تحب , 1 أو صفر

طبعا لعملية الكتابة في السجل CR نتبع الجدول السابق فنضع 1 على RS0 ونضع صفر على R/'W , كما نضع 1 على CS لاتاحة القرائة والكتابة مع الدائرة , ولا تنسى بعد كل عملية قرائة أو كتابة وضع صفر على CS مره اخرى

الآن عملية الارسال :

لعملية الارسال نقوم باختيار سجل الارسال عن طريق وضع 0 على RS0 و صفر على R/'W , ووضع 1 على CS ( لا تنسى هذه الخطوة كل مرة)

ونقوم بارسال القيمة التي نريد ارسالها مثلا الرقم 1 يرسل على شكل 0001 الى الدائرة فتقوم الدائرة بتوليد النغمة المناسبة لها وارسالها على دائرة الارسال

لاحظ : لو كانت المقاطعة مفعلة في هذا الوقت , سوف تستلم مقاطعه تخبرك بنجاح الارسال , طبعا لا نريد استلام مثل هذه المقاطعه لأننا سوف نستخدم المقاطعات في الاستقبال

لهذا علينا الغاء تفعيل المقاطعه أولاً ثم الارسال ثم اعادة تفعيل المقاطعة انتظارا لقدوم اشارة من الخارج

لا تنسى الخانة الثالثة في CRA وظيفتها تفعيل وعدم تفعيل المقاطعة

عملية الاستقبال: طبعا نستفيد من خدمة المقاطعة التي تقدمها الدائرة لنا , عند قدوم مقاطعهة من الدائرة معناه انه هناك بيانات جديدة يجب ان نتسلمها

ونتأكد من هذا عن طريق قرائة سجل الحالة SR والذي نحدده عن طريق وضع 1 على RS0 و 1 على R/'W

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

07_02_06_10_04_49_11393354894.GIF

بعد التاكد من أن سبب المقاطعة هو قدوم اشارة جديدة نقوم في هذه الحالة بالقرائة من سجل الاسقبال والذي يتم تحديده بوضع صفر على RS0 ووضع 1 على R/'W

فكرة استخدام الميكروكنترولر في حساب الفرق في الزمن بين الارسال والاستقبال:

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

وتصبح على خير يا رامي , والمنتدى غير مسؤوووول عن أي استخدام غير قانوني للدائرة , وانا عن نفسي غير مسؤووووووووووووول عن اي مشاكل تقابلك في التنفيذ لأني مش انا اللي عامل الدائرة :P

أي مساعدة انا في الخدمة يا رامي , بس اصبر عليا :angry:

#62

الدائرة من ناحية الكمبيوتر

23_02_06_04_43_41_1140698621Base.JPG

سيتم استخدام الميكروكنترولر AT89C2051 لأنه يحتوي على منفذ تسلسلي وعلى مؤقت 16 بيت و منفذ 8 اطراف آخر للتوصيل مع الدائرة 8880 كما يحتوي على مقاطعه خارجية INT0

يتصل الكمبيوتر عن طريق المنفذ التسلسلي بالميكروكنترولر من خلال MAX232 لتحويل قيم الفولت من RS232 الى قيم الـ UART في الميكرو

يتم ارسال واستقبال الأوامر من الكمبيوتر الى الميكرو من خلال المنفذ التسلسلي

يتصل الميكرو من الناحية الأخرى بالدائرة 8880

في الناحية الاخرى توصل الدائرة الارسال والاستقبال بدائرة الـ 8880

طريقة العمل:

1 - عند تشغيل دائرة الميكروكنترولر يقوم بعمل ضبط إعدادات منها ضبط سجل التحكم في الـ 8880 وضبط المؤقت الداخلي والمقاطعات و معدل نقل البيانات على المنفذ التسلسلي - يتم ضبطه على 9600 مثل الكمبيوتر , بعدها يظل الميكرو في حالة سكون

2 - يرسل الكمبيوتر الرقم 1 الى الميكروكنترولر عن طريق المنفذ التسلسلي

3 - عند قدوم رسالة من الكمبيوتر عن طريق المنفذ التسلسلي , تحدث مقاطعه تخبر الميكرو بقدوم رساله له , فينتقل الى برنامج المقاطعه , والذي يقوم بدوره بتحديد قيمة الرسالة , واذا كانت 1 يقوم بعملية تحديد المسافة بين الكمبيوتر والسيارة , والا فانه يتجاهل الرسالة , يمكن عدم تجاهل الرساله والتعامل معها كما نريد ولكن المثال هنا لشرح الوظيفه فقط

4 - كيف يحدد المسافة ؟؟

نستخدم في هذه الوظيفة العداد الداخلي للميكرو وهو بطول 16 بيت أي انه يستطيع عد 2^16 نبضه أي 65536 نبضه من نبضات الميكرو

ما يحدث هو بعد اختبار الرسالة القادمه من الكمبيوتر و التأكد انها 1 أي معرفة المسافة , يقوم الميكرو بارسال الرقم 1 الى الدائرة 8880 لتقوم بتحويله الى DTMF , ويقوم بتصفير العداد , والبدأ في العد, ويعود من المقاطعه ونتظر في حالة الثبات , بقى لها حالة من اثنين , اما أن ترد عليه دائرة السيارة بسرعه و أو تتأخر قليلا بحيث يمتلئ العداد وتحدث مقاطعة العداد أي ان العداد قام بعد 65536 نبضه

في حالة مقاطعة العداد , نستخدم 16 بيت اخرى كعداد لعدد مرات امتلاء العداد , معنى هذا ان العداد صار 32 بيت , اذاً لا توجد مشكله من تأخير الرد

في حالة قدوم الرد من اسيارة؟؟

تقوم الدائرة 8880 بتحويل الـ DTMF الى صورة رقمية , وهنا ترسل الدائرة بمقاطعة الى الميكرو تخبره بقدوم رسالة من السيارة

ننتقل الى برنامج المقاطعة:

عند قدوم مقاطعة من الـ 8880 يجب ان نتأكد انها بسبب قدوم رسالة من الخارج , بعدها نتأكد من قيمة الرسالة فاذا كانت تساوي 2 معناها انها الرد على الرسالة 1 التي ارسلناها ( بروتوكول من عندي يمكن تغيره براحتك)

في هذه اللحظة نوقف عمل العداد

ونرسل القيمة التي توصلنا اليها الى الكمبيوتر

وهي قيمة 32 بيت

اي 4 بايت

في الكمبيوتر تأخذ الرقم وتقسمه على تردد الميكرو , والناتج يكون الزمن المستغرق

الزمن * السرعه = المسافه

برنامج دائرة الكمبيوتر:

D0	EQU	P1.0
D1	EQU	P1.1
D2	EQU	P1.2
D3	EQU	P1.3
RW	EQU	P1.4
RS0	EQU	P1.5
f2	EQU	P1.6
IRQ	EQU	P3.2

	ORG	00H
	JMP	@Cnfg
	ORG	03H ; EXTERNAL INTRRUPT 0
	JMP	@INT0
	ORG	0BH; TIMER 0 ITRRUPT
	JMP	@T0INT
	ORG	23H ; SERIAL PORT INTRRUPT
	JMP	@UARTINT

@Cnfg:
; configer the 8880 control register A , B
	MOV	P1, #00101001B
	SETB	f2
	CLR	f2
	MOV	P1, #00100000B
	SETB	f2
	CLR	f2
;-----------------------------
; configer the MicroControler registers
	MOV	TH1, #0FDH            ; اعداد البود رات للاتصال على 9600
	MOV  TL1, #0FDH
	MOV  SCON, #01010000B; Mode = 8 bit UART
	MOV  TMOD, #00100001B; ضبط المؤقت رقم 1 على 8 بت وتحميل زاتي , و المؤقت رقم 0 عداد 16 بيت
	MOV  TCON, #01010001B; تفعيل IT0, TR0. TR1 
	MOV	IE, #10010011B	; تفعيل المقاطعات
;-----------------------------
	JMP	$
@INT0:
	MOV	P1, #00111111B
	SETB	f2
	MOV	A, P1
	CLR	f2
	CJNE	A, #01110101B, @INTIgnore
	MOV	P1, #00011111B
	SETB	f2
	MOV	A, P1
	CLR	f2
	CJNE	A, #02H, @INTIgnore
	CLR	TR0
	MOV	A, R1
	CALL	SendTime
	MOV	A, R0
	CALL	SendTime
	MOV	A, TH1
	CALL	SendTime
	MOV	A, TH0
	CALL	SendTime
@INTIgnore:
	RETI

@T0INT:
	INC	R2
	CJNE	R2, #00H, #Done
	INC	R3
	MOV	R2, #00H
@Done:
	RETI

@UARTINT:
	JNB	RI, UARTINT
	MOV	A, SBUF
	CJNE	A, #01H @UIgnore
	MOV	R2, #00H
	MOV	R3, #00H
	MOV	TH0, #00H
	MOV	TL0, #00H
	MOV	P1, #01H
	SETB	f2
	SETB	TR0
	CLR	f2
	MOV	P1, #00100101B
	SETB	f2
	CLR	f2
	MOV	P1, #0FH
@UIgnore:
	CLR	RI
	RETI
SendTime:
	CLR	TI  ;مسح علم المؤقت 
	MOV	SBUF, A  ; ارسال البايت
WAIT:
	JNB	TI, WAIT  ; ننتظر انتهاء الارسال.
	RET

كود دائرة السيارة :

D0	EQU	P1.0
D1	EQU	P1.1
D2	EQU	P1.2
D3	EQU	P1.3
RW	EQU	P1.4
RS0	EQU	P1.5
f2	EQU	P1.6
IRQ	EQU	P3.2

	ORG	00H
	JMP	@Cnfg
	ORG	03H ; EXTERNAL INTRRUPT 0
	JMP	@INT0

@Cnfg:
; configer the 8880 control register A , B
	MOV	P1, #00101001B
	SETB	f2
	CLR	f2
	MOV	P1, #00100000B
	SETB	f2
	CLR	f2
;-----------------------------
; configer the MicroControler registers
	MOV  TCON, #00000001B; تفعيل IT0, TR0. TR1 
	MOV	IE, #10000001B	; تفعيل المقاطعات
;-----------------------------
	JMP	$
@INT0:
	MOV	P1, #00111111B
	SETB	f2
	MOV	A, P1
	CLR	f2
	CJNE	A, #01110101B, @INTIgnore
	MOV	P1, #00011111B
	SETB	f2
	MOV	A, P1
	CLR	f2
	CJNE	A, #01H, @INTIgnore
	MOV	P1, #00010010B
	SETB	f2
	CLR	f2
@INTIgnore:
	RETI

صحيح , كانت في المشاركه اللي فاتت , قلت اننا نستخدم الـ CS لتفعيل والغاء تفعيل الدائرة .... غيرت رأيي ... انا حر :P .. لا بس في قدم اسمها f2 تعمل هذه الوظيفة افضل , لأني أعتقد ان الدائرة ستوقف وظيفتها بم فيها المقاطعات حينما تكون غير مفعله من CS لهذا يجب ان تكون مفعله باستمرار ولكن نقوم بعملية القرائة والكتابة بتفعيل f2

انظر في أول أسطر في الكود لتوضح أي القدام يتم توصيلها مع الميكرو

#63

شكرا جزيلا لك....

و لكن باقي لي رسمة الدارة و اسماء القطع المستخدمة لانني اخاف ان لا تكون متوافرة!!

بانتظار الرد :)

Theory is when you know something, but it doesn't work. Practice is when something works, but you don't know why. Programmers combine theory and practice: Nothing works and they don't know why

#64

رامي شوفلك حل يا عم المراقب انت , انا كتبت الرد وطار هو كمان , على فكره تاني مره تحصلي اليوم و حصلت من شويه في قسم السي :angry:

المهم

القطع هي :

عدد 2 دائرة CM8880 , واحده عند الكمبيوتر والاخرى عند السيارة

عدد 2 كريستال (مذبذب) 3.5795 ميجاهيرتز للدائرتين 8880

عدد 2 ميكروكنترولر AT89C2051

عدد 2 كريستال 11.0592 ميجا هيرتز للميكرو

الى هنا الدائرة متشابهة عند الكمبيوتر والسيارة

أضف عند الكمبيوتر دائرة لتوصيل السيريال في الكمبيوتر بالسيريال في الميكرو , تحول من TTL الى RS232 والعكس , وهي الدائرة MAX232

تفاصيل توصيل كل دائرة ليست سرا, فهي متوفرة في الداتا شيت

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

الرسم التوضيحي بالمشاركة السابقة يوضح الفكرة , والكود يوضح الأقدام المستخدمة في الميكرو

بالنسبة ليك يا رامي ان شاء الله اعملك الرسمة , بس المشكلة في البرنامج حاليا , كما اني مشغول جدا للأسف الأيام دي

#65

ياعم.. مش باقي غير الرسمة... كمل معروفك و خلصني عشان انفذها...

اذا بدك لا تشارك بالمنتدى لبين ما تخلص الرسمة و انا رح اعمل عدد مشاركاتك 9999 الف مشاركة ولا يهمك :)

Theory is when you know something, but it doesn't work. Practice is when something works, but you don't know why. Programmers combine theory and practice: Nothing works and they don't know why

#66
رامي العيساوي كتب:
ياعم.. مش باقي غير الرسمة... كمل معروفك و خلصني عشان انفذها...

اذا بدك لا تشارك بالمنتدى لبين ما تخلص الرسمة و انا رح اعمل عدد مشاركاتك 9999 الف مشاركة ولا يهمك :)

لو وقعت تحت ايدي يا رامي هاجيب اجلك , هاخليك تتمنى انك تكون في العراق في ضرب نار 3 ساعات وانت عارف انت سويت ايه مع ساعه ونص بس :P , أو حتى ممسوك في غوانتنامو , أفضل من اني اشوف وشك الساعه دي :angry:

باقولك البرنامج مش موجود يا خفيف , شكلي هاعملهالك قص ولزق و اخلاص من وجع الراس :blink:

#67

اتفضل يا رامي

الدائرة من ناحية السيارة

24_02_06_08_30_38_1140798638Ahmed_.JPG

والدائرة من ناحية الكمبيوتر

24_02_06_08_31_18_1140798678Ahmed.JPG

الوصلة DB9 هي وصلة السيريال في الكمبيوتر

المكثفات الموصلة مع الدائرة MAX232 قيمتها 1 ميكروفاراد كيميائي

Vcc = 5 فولت

المكثفان الموصلان على طرفي الكريستال 33 بيكوفاراد سيراميكي

المكثف الموصل على القدم رقم 1 في الميكرو 10 ميركرو فاراد كيميائي

Vdd هي هي Vcc يعني نفس الـ 5 فولت , نفس المصدر

قيم المقاومات والمثفات تظهر في الرسم بأعلى الصفحه

انتهى ....

#68

صبرني يا رب

الصورة مش واضحه !!! صح الصوره مش واضحه , قال وبيقولوا ان نظري ضعيف ولابس نظاره B)

R1 = R2 = 100 k ohm
R3 = 374 k ohm
R4 = 3 k ohm
RL = 10 k ohm - to - 50 k ohm
C1 = C2 = C3 = 100 nano farad
X1 = 3.579645 MHz

معليش عشان الصورة مش واضحه , وعشان خاطر رامي بيقرا بطريقة برايل (h)

#69

نداء عاجل و ضروري..

ارجو من اي شخص يعرف كيف يرسم هذه الدارة ان يرسمها لي على ايغل او اوركاد..

القطع اصبحت عندي و لكن احتاج الى من يرسمها لي ..

و شكرا

Theory is when you know something, but it doesn't work. Practice is when something works, but you don't know why. Programmers combine theory and practice: Nothing works and they don't know why

#70
رامي العيساوي كتب:
نداء عاجل و ضروري..
:lol: :lol: :lol: :lol:

ولماذا ترسمها وهى مرسوووووومه؟؟ اطبع الورقة بالطابعة الليزر وسخنها بمكواة الملابس على اللوح النحاسى ثم استخدم الحمض لازالة الورقة (h)

#71
anwarica كتب:
:lol: :lol: :lol: :lol:

ولماذا ترسمها وهى مرسوووووومه؟؟ اطبع الورقة بالطابعة الليزر وسخنها بمكواة الملابس على اللوح النحاسى ثم استخدم الحمض لازالة الورقة (h)

يكون هذا هو الحل الأخير يا ريكا :lol:

:lol: هو قصد رامي على الرسمة Layout المفروض تطبع على لوحة PCB وليس على الرسمة الكهربائية.

والله يا رامي سأحاول لكن لن أعدك بشيء فحاسوبي المحمول في ورطة, أو بالأحرى كل ما جمعته من ملفات وبرامج من download , حوالي 30GB أصبحت على حرف.

4أيام ليالي بيضاء وأتمنى أن أسترجع منها القدر الكبير.

تم تعديل هذه المشاركة بواسطة ikossan في 28 يوليو 2006 في 21:04

سأتغيب عن المنتدى وستكون لي زيارات خفيفة بين الحين و الحين

يا صاحب الهم إن الهم منفرج.....................أبشر بخير فإن الفارج الله.

اليأس يقطع أحيانا بصاحبه..........................لا تيأس فإن الكافي الله.

الله يحدث بعد العسر ميسرة.........................لا تفزعن فإن الصانع الله.

إذا بليت فثق بالله وارض به...................فإن الذي يكشف البلوى هو الله.

و الله ما لك غير الله من أحد.......................فحسبك الله في كل لك الله

أخوكم مراد

27_06_06_05_21_41_1151410901logo_adl_wal_ihsan.jpg

#72

و الله انتو قصتكم قصة يعني باب النجار مخلوع..

عاصم ما عنده برنامج اوركاد صارله اشهر و انت ما عندك شئ خالص..

انتو كيف تشتغلو مش عارف.. اتصور نفسي بدون JDK

Theory is when you know something, but it doesn't work. Practice is when something works, but you don't know why. Programmers combine theory and practice: Nothing works and they don't know why

#73

رامي , صدق او لا تصدق

1 - الى الان لم أحصل على نسخة الـ OrCAD

2 - في كمان اثنين زملاء كانوا طالبين مني رسومات على البرنامج المفقود

3 - عدد الساعات اللي باقضيها في البيت بسيطه جدا فما بالك باللي باقضيها على الكمبيوتر

4 - الظرف الي كلمتك عنه مستمر بل وتدهور اكثر , ادعي بضمير يابني

#74

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

الحقيقة انه كل شئ موقف من اجل هذه الرسمة.. لذا اوجه نداء آخر اي احد يا شباب و لو بمقابل مادي يرسم لنا هل الرسمة و مع جزيل الشكر..

و انت وينك يا مراد.. هي اول مرة تلزمونا بشغلة و لا حدى بيرد :(

Theory is when you know something, but it doesn't work. Practice is when something works, but you don't know why. Programmers combine theory and practice: Nothing works and they don't know why

#75

أنا شايف لك حل من حلين يا رامى:

1- تنزل برنامج رسم صغير وخفيف وتضع عليه المكونات بنفسك (وصدقنى سهله هى أيه فيزيا؟ دى تنفيذ بس).

2- تطبع الورقة كده زى ما قلتلك بدون رسمها بالبرنامج.

العيب الوحيد فى الموضوع ده أنك ممكن (وأنا متأكد) أنك هتخسر كام آى سى وكام مقاومة لكن فى داهية المهم الوقت :D

القطع الإلكترونية رخيصة يعنى فى كل الأحوال لازم تشترى 3 نسخ من كل قطعه .. أنا كنت بعمل كده لأن الغلطة ممكن تكلفتها دائره (h)

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…