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

   

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 09-03-2012, 03:38 PM المشاركة 9   
افتراضي



التدريب رقم 6 :
إضاءة نموذج معين من الليدات :


void main(){
TRISB = 0; // set pins as output.
PORTB = 0b10101010; // sends a logic level 1 to some of the PORTB pins

}

كود:
void main(){ TRISB = 0; // set pins as output. PORTB = 0b10101010; // sends a logic level 1 to some of the PORTB pins }




اعلانات

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 09-03-2012, 03:41 PM المشاركة 10   
افتراضي


التدريب رقم 7 :
الغرض تهيئة سجل التحكم فى المداخل التناظرية ADCON1 لاستخدام المنفذ PORTA كمداخل / مخارج رقمية .
أطراف الميكروكونترولر لها عدة وظائف بما فى ذلك التحويل من تناظرى لرقمى . الوضع الافتراضى لتهيئة أطراف المنفذ PORTA والمنفذ PORTE هو كمداخل تناظرية (فيما عدا الطرف RA4 وهو ليس طرف مدخل تناظرى ) . لتغيير الوضع الافتراضى يجب تغيير قيمة السجل ADCON1 . لجعل جميع أطراف المنفذ PORTA كمداخل / مخارج رقمية يجب كتابة القيمة 6(six) بالسجل ADCON1 .
المطلوب كتابة برنامج لإضاءة جميع الليدات المتصلة بالمنفذ PORTA .
الدائرة الكهربية :







ADCON1 = 6; // set all PORTA pins as I / O General purpose
TRISA = 0b00000000; // set PORTA as output.
PORTA = 0b001
11111; // Turns on the LEDs connected to RA0 to RA5


كود:
ADCON1 = 6; // set all PORTA pins as I / O General purpose
TRISA = 0b00000000; // set PORTA as output.
PORTA = 0b00111111; // Turns on the LEDs connected to RA0 to RA5



ملاحظة :
يجب برمجة السجل ADCON1 وإلا حدث خلل فى البرنامج .
الطرف RC4 بالميكروكونترولر PIC من نوع المصب المفتوح open drain وهذا يستلزم وجوب توصيل مقاومة جذب لأعلى عندما نريد استخدامه كمخرج عام ( مقاومة بقيمة 10 كيلو أوم ,على سبيل المثال , توصل بين الجهد الموجب والطرف RB4 ).
المنفذ PORTE أيضا به أطراف مداخل تناظرية وعن طريق السجل ADCON1 تتحول أطرافه إلى مداخل / مخارج رقمية عامة .

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

الصورة الرمزية أبو معاذ 2010
أبو معاذ 2010
:: مشرف قسم الإنتاج الزراعي والحيواني والطاقة البديلة ::
تاريخ التسجيل: Feb 2010
المشاركات: 2,039
نشاط [ أبو معاذ 2010 ]
قوة السمعة:
قديم 09-03-2012, 08:27 PM المشاركة 11   
افتراضي


ما هذا الإبداع ؟ ما هذه العظمة ؟ و الله لقد كفيت و وفيت ، جزاك الله خير ما يجازي به عباده الصالحين .


الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 09-03-2012, 09:12 PM المشاركة 12   
افتراضي


ما هذا الإبداع ؟ ما هذه العظمة ؟ و الله لقد كفيت و وفيت ، جزاك الله خير ما يجازي به عباده الصالحين .
أخى الكريم

شكرا جزيلا لك

بارك الله فيك

تقدير أعتز به

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


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


التدريب رقم 8 :
إنشأ برنامج لمراقبة الضغط على المفتاح الضاغط المتصل بالطرف RB0 كما فى الشكل التالى :




عندما يكون المفتاح فى حالة توصيل ONيتم عكس حالة جميع الليدات أى إضاءتها والانتظار لمدة 200 ملى ثانية وفى الدورة التالية يتم عكس حالتها أى إطفاء جميع الليدات والانتظار لمدة 200 ملى ثانية وتتكرر العملية وتكون النتيجة وميضON-OFF .
استخدم عبارة if لكشف عمل المفتاح مع عدم الأخذ فى الاعتبار تأثير الارتداد فى المفتاح (لغرض التدريب فقط) .
البرنامج :


الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 09-03-2012, 09:19 PM المشاركة 14   
افتراضي


كود:
/* Reading program key. This program aims to read the state of a button on / off all the LEDs PORTD */ # define KEY1 portb.f0 // assign the name KEY1 to pin RB0 void main () { TRISD = 0; PORTD = 0; OPTION_REG.B7= 0; // RBPU -enable the internal resistors for PORTB pull-up while (1) { if (KEY1 == 0) { // if pressed KEY1 then .... PORTD= ~PORTD; // reverses the states of the LEDs PORTD Delay_ms (200); // delay of 200 milliseconds } } }


ملحوظة :
الوضع الافتراضى للمنفذ PORTB هو مداخل ولهذا لم يتم ذكره فى الإعدادات ومع هذا يمكن تأكيد الإعدادات المطلوبة حتى تكون عادة جيدة .
يمكن استغلال مقاومات الرفع الموجودة ضمن بناء الميكروكونترولر والتى يمكن توصيلها بالمنفذ PORTB وذلك عن طريق تصفير البت السابعة RBPU بسجل الخيارات OPTION_REG.B7= 0 . ( جعل هذه البت بصفر يعنى تمكين الرفع لأعلى .






عند تنفيذ البرنامج قد تلاحظ تأثير الارتداد فى المفتاح على شكل توصيل وفصل عدة مرات فى المرة الواحدة .


الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 09-03-2012, 09:22 PM المشاركة 15   
افتراضي


التدريب رقم 9 :
كرر نفس البرنامج ولكن باستخدام دالة قراءة المفتاح button الموجودة ضمن المترجم الميكروسى مع استخدام تأخير زمنى قدره 25ms لتصحيح (منع ظهور) الارتداد فى المفتاح .
البرنامج :


كود:
/*
Reading program key.
This program aims to read the state of a button on / off all the LEDs PORTD
*/

# define KEY1 portb.f0 / / assign the name KEY1 to pin RB0
void main () {
TRISD = 0;
PORTD = 0;
OPTION_REG.B7= 0;                     // enable the internal resistors for PORTB pull-up
while (1) {
if (button (& portb, 0, 25, 0)) {         // if pressed KEY1 the condition is true.
PORTD = ~PORTD;  // reverses the states of the LEDs PORTD
Delay_ms (200); // delay of 200 milliseconds
}
}
}

ملحوظة :
عند تشغيل دالة المفتاح تقوم تلقائيا بتهيئة المنفذ المذكو بها , وهو هنا PORTB , كمداخل
(TRISB = 255) ولهذا السبب ليس من الإلزام تهيئة طرف المفتاح TRISB.F0 .



الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 09-03-2012, 09:25 PM المشاركة 16   
افتراضي


التدريب رقم 10 :
قم بعمل برنامج مستخدما دالة قراءة المفتاح لقراءة ثلاثة مفاتيح متصلة بالأطراف RB0, RB1, RA5 . مع برمجة كل مفتاح ليعمل بمجرد لمسه أى يجب الضغط عليه مع الحفاظ عليه مضغوطا لكل قيادة كما يلى :
  • المفتاح RB0 لتشغيل الليدات الزوجية فقط .
  • المفتاح RB1 لتشغيل الليدات الفردية فقط .
  • المفتاح RA5 لتشغيل جميع الليدات .
الدائرة الكهربية :





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