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

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

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:333
قديم 13-02-2011, 08:48 PM المشاركة 1   
افتراضي وحدات العرض 7 segment والإنتخاب من متعدد multiplexing والبرمجة بلغة منطق السلم Twitter FaceBook Google+



وحدات العرض 7 segment والإنتخاب من متعدد multiplexing والبرمجة بلغة منطق السلم

1- الدايودات المشعة للضوء LED DIODES
ربما كنت تعرف كل ما تحتاج لمعرفته حول الدايودات المشعة للضوء LEDsولكن يجب علينا أيضا أن نذكر بها .
هل تعرف كيف يتم تدمير الدايود المشع للضوء ؟
حسنا... هذا أمر بسيط جدا.




الحرق السريع Quick burning
الدايود المشع للضوء مثل أي دايود أخر له طرفين الأنود والكاثود . إذا تم توصيله بشكل صحيح إلى مصدر القدرة سوف ينبعث منه الضوء .وإذا تم توصيله على نفس مصدر الجهد بعد عكس أطرافه (ولو للحظة) فلن ينبعث منه ضوء (وربما للأبد) !

الحرق البطىء Slow burning
لكل دايود مشع للضوء قيمة اسمية nominal للتيار أى الحد الأقصى للتيار المصمم عليه والذى لا ينبغى تجاوزه . إذا حدث ذلك، فإن مزيدا من الضوء سوف ينبعث من الدايود ، ولكن ليس لوقت طويل!

تذكر:
على غرار المثال السابق، كل ما عليك القيام به هو تجاهل المقاومة R (عدم وضعها ) التى تحدد التيار والمبينة بالشكل التالى . إعتمادا على جهد مصدر القدرة قد يكون التأثير دراماتيكى !






2- وحدات العرض المكونة من الدايودات المشعة للضوء(ليد) LED DISPLAY
في الأساس وحدات العرض المكونة من الدايودات المشعة للضوء ليست أكثر من عدة ليدات فى غلاف من البلاستيك المصبوب . يوجد أنواع عديدة من وحدات العرض والتى قد تتألف من عشرات الليدات والتي يمكن أن تعرض الرموز المختلفة . النوع الأكثر شيوعا هو ما يسمى 7-segment display "وحدة العرض ذات القطع أو الشرائح السبعة " . وهى تتألف من 8 ليدات , 7 شرائح مرتبة على شكل مستطيل لعرض الرمز ويوجد شريحة إضافية لعرض الفاصلة (العلامة) العشرية. ولتبسيط التوصيلات يتم توصيل جميع الأنودات أو جميع الكاثودات معا لتشكل طرف مشترك بحيث يكون لدينا وحدة عرض ذات أنود مشترك
common anode أو وحدة عرض ذات كاثود مشترك common cathode. يتم تمييز الشرائح بالحروف من a إلى gبالإضافة إلى الفاصلة العشرية dpكما هو مبين في الشكل أدناه. عند التوصيل يتم التعامل مع كل ليد على حدة ، وهذا يعني أنه يجب أن يكون لكل ليد المقاومة الخاصة به .




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

هناك قيد للحد الأقصى للتيار الذى يمكن أن يأخذه أو يعطيه كل طرف من أطراف الميكروكونترولر. ولهذا السبب إذا تم توصيل عدد من وحدات العرض إلى الميكروكونترولر فينصح باستخدام الليدات التى تعمل بالتيار المنخفض والتى تستخدم 2ma فقط للعمل .

عادة تميز شرائح وحدة العرض بالحروف من a إلى gولكن لا توجد قاعدة سريعة تشير إلى طرف الميكروكونترولر الذى يجب أن توصل به .لهذا السبب من المهم جدا التأكد من التوصيل قبل بدء كتابة البرنامج أو تصميم الجهاز.

اعلانات

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:333
قديم 13-02-2011, 08:50 PM المشاركة 2   
افتراضي


3- عملية النتخاب من متعدد MULTIPLEXING

عادة ما تحتل وحدات العرض المتصلة بالميكروكونترولر عدد كبير من أطراف المداخل / المخارج I/O pins المتاحة وهو ما يمكن أن يكون مشكلة كبيرة خصوصا عندما يكون هناك حاجة لعرض أعداد ذات أرقام متعددة. والمشكلة تكون أكثر وضوحا إذا كان (على سبيل المثال) هناك حاجة لعرض عددين يتمةن كل منهما من 6 أرقام (عملية حسابية بسيطة تبين أن هناك حاجة لعدد 96 طرف مخرج في هذه الحالة)! هذه مشكلة لها حل يسمى عملية "الانتخاب من متعدد " MULTIPLEXING .

تعتمد هذه الطريقة فى عملها على مبدأ الخداع البصري مثل ما يحدث عند عمل فيلم مصور بالكاميرا .
رقم digit واحد فقطهو الذى يكون فعال (نشط) فى لحظة ما , ويتم تغيرحالة الأرقام بسرعةبحيث تترك إنطباع عند المشاهد بأنجميعأرقامالعددنشطة (فعالة) في وقت واحد.




وفيما يلي شرحا للشكل الموضح أعلاه.
أولا يتم توصيل البايت byte الذى يمثل رقم خانة الآحاد إلى منفذ الميكروكونترولر وفى نفس الوقت يكون الترانزستور T1 فى حالة التوصيل ON (فعال – نشط ) . بعد برهة يتحول الترانزستور T1 إلى حالة الفصل OFF , عندئذ يتم توصيل البايت الذى يمثل رقم خانة العشرات إلى منفذ الميكروكونترولر وفى نفس الوقت يتحول الترانزستور T2 إلى حالة التوصيل ON . هذه العملية تتكرر دوريا بسرعة عالية لجميع الأرقام والترانزستورات المقابلة.

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

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

بادئ ذي بدء يتم تقسيم العدد المتعدد الأرقام إلى آحاد و عشرات و مئات و... وذلك فى برنامج فرعى subroutine خاص . بعد ذلك يجب تخزين كل بيانات خانة فى بايت خاص بها . يتم جعل الأرقام فى شكل قابل للحصول والتعرف عليها بإجراء عملية تسمى "إخفاء" "عمل قناع" "masking". أوبعبارة أخرى، يتم استبدال الشكل الثنائي لكل رقم بمجموعة مختلفة من الخانات باستخدام برنامج فرعى بسيط. على سبيل المثال الرقم8 (0000 1000) يتم استبداله بالرقم الثنائي 0111 1111 من أجل تفعيل جميع ليدات عرض الرقم 8الليد الوحيد الذى يكون غير فعال فى هذه الحالة محجوز للفاصلة العشرية .
إذا كان منفذ الميكروكونترولر متصل بوحدة العرض بطريقة بحيث أن الخانة bit0 تنشط الشريحة a والخانة bit1 تنشط الشريحة b والخانة bit2 تنشط الشريحة c وهكذا , عندئذ فإن الجدول التالى يبين قناع mask كل رقم :












بالإضافة إلى الأرقام من 0 إلى 9 يوجد الحروف A, C, E, J, F, U, H, L, b, c, d, o, r, t والتى يمكن أيضا عرضها عن طريق عمل القناع المناسب .
فى حالة استخدام وحدة عرض نوع الآنود المشترك فإن جميع 1 فى الجدول السابق يجب استبدالها بأصفار 0 والعكس بالعكس . بالإضافة إلى تغير نوع الترانزستور إلى PNP .

البرمجة بلغة منطق السلم :
إضاءة أحد شرائح وحدة العرض :

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

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:333
قديم 13-02-2011, 09:01 PM المشاركة 3   
افتراضي


البرمجة بلغة منطق السلم :
إضاءة أحد شرائح وحدة العرض :
مثال إضاءة الشريحة a :




1- هذه الشريحة تضاء عند اختيار عرض الرقم : 0 OR 2 OR 3 OR 5 OR 6 OR 7 OR 8 OR 9
2- ولا تضاء عند اختيار عرض الرقم : 1 AND 4
نتيجة لذلك يمكن التعبير عن أضاءة هذه الشريحة بالعمليات المنطقية بطريقتين :
الطريقة الأولى هى استخدام العملية المنطقية OR كما فى البند 1 والشكل التالى يبين مخطط السلم لهذه الطريقة :





حيث Ya0 هو المخرج المتصل بالشريحة a و digit0 هو السجل الذى يتم تخزين بيانات خانة الآحاد به على سبيل المثال .


الطريقة الثانية هى استخدام العملية المنطقية AND كما فى البند 2 والشكل التالى يبين مخطط السلم لهذه الطريقة :




حيث Yseg_a هو المخرج المتصل بالشريحة a و digit هو السجل الذى يتم تخزين بيانات خانة الآحاد به على سبيل المثال .
النتيجة واحدة وأى الطريقتين نستخدم يعتمد على عدد التعليمات والتى سوف تتضح بعد عرض باقى الشرائح

بالمثل الشريحة b :


والشريحة c :







والشريحة d :


والشريحة e :


لاحظ هنا أن عدد التعليمات المستخدمة متساوى
الشريحة f :


الشريحة g :



فإذا استخدمنا طريقة AND يكون جزء البرنامج الخاص ببرمجة وحدة عرض 7-Segment (الآحاد على سبيل المثال وتتكرر لوحدة العشرات والمئات و ...) كما يلى :



تطبيق رقم 1 :
إظهار الارقام من 0 إلى 9 والتكرار دوريا :


الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:333
قديم 13-02-2011, 11:07 PM المشاركة 4   
افتراضي


تطبيق رقم 1 :
إظهار الارقام من 0 إلى 9 والتكرار دوريا :
الدائرة الكهربية :




شرح البرنامج :
1- نظرا لوجود تتابع للأحداث (عرض الأرقام فى تتابع معين) فسوف نحتاج إلى عداد من النوع الدائرى ليحقق تكرار الأحداث . العداد يحتاج إلى نبضات دخل ليقوم بالعد , لذلك نحتاج إلى مولد نبضات أى مذبذب .
  • فى السطر الأول : يتم إنشاء مولد نبضات باستخدام ريلاى داخلى Rosc ومؤقت تأخير التوصيل TON (يسمى Tosc1) ومؤقت تأخير الفصل TOF (يسمى Tosc2) وكل منهما بزمن 250 ملى ثانية فينتج نبضات بفترة توصيل وفترة فصل 250 ملى ثانية وهى كافية لتمييز الرقم عند عرضه .
  • فى السطر الثانى : عداد دائرى CTC (يسمى Ccount ) يقوم بالعد من 0 إلى 9 عند عندما تكون حالة التعليمات التى قبله true ( أى الحافة الصاعدة لنبضة الدخل من المذبذب عن طريق تلامسات المذبذب Rosc ) .

2- البرنامج الفرعى الذى يحدد إضاءة الشرائح السبعة أى الذى يقوم بتحويل الرقم العشرى إلى كود الشرائح السبعة والذى تم توضيحه بالتفصيل سابقا .


3- البرنامج الفعلى : وينص على :
  • عندما يساوى محتوى العداد الدائرى العدد 0 (يتحول خرجه إلى الحالة true) Ccount ==0 يتم وضع أو نقل MOV الرقم 0 بالسجل digit والذى يمثل حالة الشرائح السبعة كما فى البند 2 .
  • تكرار الخطوة السابقة لباقى حالات العداد


النتيجة :

التطبيق رقم 2 : بيان رقم عند الضغط على مفتاح أو تشغيل حساس مثل بيان غرفة مريض لطلب مساعدة – بيان دور فى مصعد و....
الدائرة الكهربية :


الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:333
قديم 13-02-2011, 11:13 PM المشاركة 5   
افتراضي


التطبيق رقم 2 : بيان رقم عند الضغط على مفتاح أو تشغيل حساس مثل بيان غرفة مريض لطلب مساعدة – بيان دور فى مصعد و....
الدائرة الكهربية :





شرح البرنامج :
1- البرنامج الفرعى لتحويل الرقم العشرى إلى كود إضاءة الشرائح السبعة (سبق شرحه)


2- البرنامج الفعلى :
  • عند تحول المدخل رقم 1 مثلا (يسمى Xinput1) إلى الحالة المرتفعة تتولد نبضة نتيجة وجود تعليمة OSR (نبضة عند الحافة الصاعدة ) هذه النبضة تؤدى إلى تفعيل تعليمة النقل MOV والتى تسبب نقل الرقم 1 والمناظر للمفتاح الأول إلى السجل digit والذى بدوره يعمل على إضاءة وعرض الرقم 1 المناطر كما سبق .








الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:333
قديم 14-02-2011, 01:17 AM المشاركة 6   
افتراضي


التطبيق رقم 3 : قياس درجة الحرارة كمثال لدخل تماثلى وعرضها على 3 وحدات 7-Segment بدون Multiplexing :

1- الدائرة الكهربية :



2- تخصيص الأطراف الخارجية والخانات والسجلات الداخلية بواسطة البرنامج تلقائيا

3- البرنامج :
  • قراءة الدخل التماثلى من الحساس LM45 بطريقة مباشرة باستخدام الأمر READ ADC وحفظ النتيجة فى السجل الخاص به والذى سميناه Ainput .
  • تهيئة مدى القياس ليتناسب مع العرض حيث أن جهد دخل قيمته 0V يناظره 0 قسم ADC وجهد قيمته 5V يناظره 1023 قسم ADC ( نستخدم محول ADC ذو 10 خانات ) أى كل 1 فولت يناظر 1023/5= 205 قسم ADC تقريبا .
  • الحساس LM35 يعطى جهد خرج قيمته 0V عند صفر درجة مئوية ويعطى جهد خرج قيمته 1.5V عند 150 درجة مئوية أى يعطى 1.5 * 205 = 307 قسم ADC ولكى تظهر هذه الاقسام كدرجات مئوية يتم الضرب (يالتعليمة MUL) و / أو القسمة ( التعليمة DIV) فى معاملات بحيث فى النهاية نضمن ظهور قراءة تدل على درجة الحرارة .
  • التقريب السهل فى حالتنا هو القسمة على 2 فنحصل على 153 قسم ADC تناظر 150 درجة مئوية تقريبا ويحفظ الناتج فى سجل سميناه actual

  • نبدأ بالقيمة actual حيث تقسم إلى مئات و عشرات و آحاد :بالقسمة على 100 لنحصل على عدد المئات الصحيحة والذى يحفظ فى السجل HUND, ثم نضرب عدد المئات الصحيحة فى 100 فنحصل على إجمالى المئات والذى يحفظ فى السجل hund بعد ذلك نطرح هذه القيمة من قيمة actual لنحصل على القيمة التى يجب ترحيلها إلى خانة العشرات والتى تخزن فى السجل rest10 وهكذا .
أى : actual / 100 = HUND ثم HUND*100=hund ثم actual-hund=rest10
  • البرنامج الفرعى لوحدة عرض الآحاد :


  • البرنامج الفرعى لوحدة عرض العشرات :


  • البرنامج الفرعى لوحدة عرض المئات :

  • أخيرا يتم تحميل أو نقل محتويات سجل الآحاد ONE إلى سجل وحدة عرض الآحاد digit1 ومحتويات سجل العشرات TEN إلى سجل وحدة عرض العشرات digit2 ومحتويات سجل المئات HUND إلى سجل وحدة عرض المئات digit100

النتيجة :




الصورة الرمزية noornader
noornader
:: عضو ذهبي ::
تاريخ التسجيل: Mar 2007
المشاركات: 608
نشاط [ noornader ]
قوة السمعة:97
قديم 14-02-2011, 05:10 AM المشاركة 7   
افتراضي


ما شاء الله اخى العزيز/ فتح الله
شرح رائع ومجهود متميز
جزاك الله عن الجميع كل خير


الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:333
قديم 14-02-2011, 08:09 PM المشاركة 8   
افتراضي


ما شاء الله اخى العزيز/ فتح الله

شرح رائع ومجهود متميز
جزاك الله عن الجميع كل خير
اخى الكريم

شكرا جزيلا لك

بارك الله فيك

مع تمنياتى بدوام التوفيق

إضافة رد

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

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

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


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

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