|
تحميل كتب مجانية, مراجع للتحميل كتب مجانية, كتب عربية للتحميل, كتب ألكترونية, كتب اجنبية, كتب تعليمية, مراجع عربية,كتب للتحميل, كتب للقراءة. |
| LinkBack | أدوات الموضوع | انواع عرض الموضوع |
#36
| ||
| ||
http://www.4shared.com/file/RdUhVmEd/Timer-Counter-files.html http://www.4shared.com/file/swdmrf-l/EX8-Timer0_as_Timer_and_Counte.html
__________________ angel4angel4angel4angel4angel4 |
#37
| ||
| ||
التدريب التاسع : وحدات العرض ذات شرائح الدايودات المشعة للضوء ( الليدات ) السبعة Seven segment LED display توجد هذه الوحدات غالبا فى ساعات الراديو وفى أجهزة تسجيل الفديو وفى أفران الميكروويف وفى الألعاب وفى كثير من الأجهزة . هذه الوحدات تستخدم أساسا فى عرض الأعداد العشرية ولكنها يمكن أن تعرض أيضا بعض الحروف الأبجدية والحروف الأخرى . هذا التدريب يتناول الربط بين هذه الوحدات والميكروكونترولر PIC16F628 .سوف نقوم بعمل عداد سداسى عشر والذى يقوم بالعد من 0 (00h) إلى 15 (0Fh) وعرض القيمة على وحدة العرض ذات شرائح الليد السبعة . المعلومات الأساسية : وحدة العرض ذات شرائح الليدات السبعة هى تشكيل خاص من سبعة عناصر ليدات بغرض تشكيل شكل مستطيل يستخدم شريحتين رأسيين فى كل جانب مع شريحة أفقية فى القمة وأخرى فى الوسط وثالثة فى القاع .بتوصيل ON أو فصل OFF الشرائج كل على حدة (منفردة) يمكن عرض الأرقان من 0 إلى 9 وبعض الحروف . فى بعض الأحيات تمتلك وحدة العرض شريحة ثامنة لعرض النقطة ( العلامة ) العشرية . لذلك فإن وحدة العرض ذات شرائح الليدات السبعة تتطلب سبعة مخارج من الميكروكونترولر لعرض عدد ومخرج إضافى إذا رغبنا فى عرض العلامة العشرية أيضا . تعلم ( تسمى – ترمز ) الشرائح بالحروف الصغيرة a, b, c, d, e, f, g , dp حيث dp هى رمز العلامة العشرية .يمكن تنظيم (ترتيب) الثمانى ليدات الموجودة بداخل وحدة العرض فى هيئة " بمهبط (كاثود) مشترك" أو " بمصعد (أنود) مشترك". فى المهبط المشترك يتم ربط (توصيل) جميع مهابط ليدات الشرائح مع بعضها ويجب توصيل هذه النقطة المشتركة بالأرضى . عندما نريد توصيل (إضاءة) ليد شريحة نقوم بتوصيل جهد المنطق المرتفع 1 إلى مصعده . فى وحدات العرض ذات المصعد المشترك يتم ربط (توصيل) جميع المصاعد مع بعضها وتوصيل النقطة المشتركة إلى الجهد الموجب Vcc . عندما نريد توصيل (إضاءة) ليد شريحة معينة نقوم بتوصيل جهد المنطق المنخفض 0 إلى مهبطه . فى حالة الرغبة فى استخدام أكثر من وحدة عرض نستخدم تقنية "الانتخاب" multiplexing لتقليل عدد أطراف الميكروكونترولر المطلوبة . سوف نتناول هذه التقنية فى تدريب لاحق . الشكل التالى يبين وحدة عرض ذات مهبط مشترك . وهى ذات 10 أطراف . الدائرة الكهربية :
__________________ angel4angel4angel4angel4angel4 |
#38
| ||
| ||
الدائرة الكهربية : أطراف الميكروكونترولر تعمل كمصدر source للتيار المطلوب لليدات الشرائح . مقاومة تحديد التيار تتصل على التوالى بين أطراف الميكروكونترولر وأطراف شرائح الليدات وكل منها يساوى 330 . يتم تشغيل ليدات الشرائح من المنفذ Port B والعلامة العشرية غير مستخدمة .
__________________ angel4angel4angel4angel4angel4 |
#39
| ||
| ||
البرنامج : يتم تشغيل ليدات الشرائح من خلال المنفذ Port B لذلك يجب إعدادها كمخارج . يقوم البرنامج بالعد من 0 إلى 15 بفاصل زمنة قدره واحد ثانية ويعاد (يلف) العد مرة أخرى . قيم العداد تعرض على وحدة العرض فى شكل : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F . تذكر : التحكم فى البرنامج : العبارة switch….case : عبارة if جيدة للاختيار بين زوج من المتغيرات ولكنها تكون مرهقة وبطيئة جدا عند تواجد بدائل كثيرة . لهذا الغرض توفر لك لغة السى عبارة switch . أى أن : عبارة switch مكافئة للعديد من عبارات if-else . الشكل العام لعبارة switch : يتم اختبار (مقارنة) المتغير بقائمة من الثوابت constants من نوع الأعداد الصحيحة أو الحروف . عند تواجد توافق (تطابق) يتم تنفيذ مجموعة العبارات statements المصاحبة لهذا الثابت حتى نصل إلى عبارة break . إذا لم يوجد هناك تطابق يتم تنفيذ العبارة المصاحبة لعبارة "الوضع الافتراضى" default . عبارة default اختيارية . مثال : المثال التالى يبين تحويل رقم واحد سداسى عشر من بين "A" و "F" إلى رقم عشرى . افترض أن الرقم فى المتغير ch وأن النتيجة تحفظ فى المتغير res . لاحظ أن العبارة الافتراضية تنفذ إذا لم توجد نتيجة متوافقة (أى أن ch لا تساوى أى من "A" إلى "F" ) . التعليق على البرنامج :
__________________ angel4angel4angel4angel4angel4 |
#40
| ||
| ||
كود: /* : Seven segment display */ // Define seven segment connections sbit seg_a at RB0_bit; sbit seg_b at RB1_bit; sbit seg_c at RB2_bit; sbit seg_d at RB3_bit; sbit seg_e at RB4_bit; sbit seg_f at RB5_bit; sbit seg_g at RB6_bit; unsigned short count=0; void main() { TRISB = 0b00000000; // PORTC All Outputs TRISA = 0b00100000; // PORTA All Outputs, Except RA5 = MCLR do { switch (count) { case 0 : seg_a=1; seg_b=1; seg_c=1; seg_d=1; seg_e=1; seg_f=1; seg_g=0; break; case 1 : seg_a=0; seg_b=1; seg_c=1; seg_d=0; seg_e=0; seg_f=0; seg_g=0; break; case 2 : seg_a=1; seg_b=1; seg_c=0; seg_d=1; seg_e=1; seg_f=0; seg_g=1; break; case 3 : seg_a=1; seg_b=1; seg_c=1; seg_d=1; seg_e=0; seg_f=0; seg_g=1; break; case 4 : seg_a=0; seg_b=1; seg_c=1; seg_d=0; seg_e=0; seg_f=1; seg_g=1; break; case 5 : seg_a=1; seg_b=0; seg_c=1; seg_d=1; seg_e=0; seg_f=1; seg_g=1; break; case 6 : seg_a=1; seg_b=0; seg_c=1; seg_d=1; seg_e=1; seg_f=1; seg_g=1; break; case 7 : seg_a=1; seg_b=1; seg_c=1; seg_d=0; seg_e=0; seg_f=0; seg_g=0; break; case 8 : seg_a=1; seg_b=1; seg_c=1; seg_d=1; seg_e=1; seg_f=1; seg_g=1; break; case 9 : seg_a=1; seg_b=1; seg_c=1; seg_d=0; seg_e=0; seg_f=1; seg_g=1; break; case 10 : seg_a=1; seg_b=1; seg_c=1; seg_d=0; seg_e=1; seg_f=1; seg_g=1; break; case 11 : seg_a=0; seg_b=0; seg_c=1; seg_d=1; seg_e=1; seg_f=1; seg_g=1; break; case 12 : seg_a=1; seg_b=0; seg_c=0; seg_d=1; seg_e=1; seg_f=1; seg_g=0; break; case 13 : seg_a=0; seg_b=1; seg_c=1; seg_d=1; seg_e=1; seg_f=0; seg_g=1; break; case 14 : seg_a=1; seg_b=0; seg_c=0; seg_d=1; seg_e=1; seg_f=1; seg_g=1; break; case 15 : seg_a=1; seg_b=0; seg_c=0; seg_d=0; seg_e=1; seg_f=1; seg_g=1; break; } //case end count ++; if(count ==16) count =0; Delay_ms(1000); // Wait for 1 sec before updating the display } while(1); // Infinite Loop }
__________________ angel4angel4angel4angel4angel4 |
مواقع النشر (المفضلة) |
| |