السلام عليكم
أخبرنا ابن الجنيد ببست قال : حدثنا قتيبة قال : حدثنا أبو ضمرة عن أبي مودود عن محمد بن كعب عن أبا بن عثمان عن عثمان أن رسول الله صلى الله عليه و سلم قال : ( من قال حين يصبح : بسم الله الذي لا يضر مع اسمه شيء في الأرض ولا في السماء وهو السميع العليم ثلاث مرات لم تفجأه فاجئة بلاء حتى يمسي وإن قالها حين يمسي لم تفجأه فاجئة بلاء حتى يصبح )
صحيح ابن حبان قال شعيب الأرنؤوط : إسناده صحيح
الدرس الخامس
تطبيقات عملية
مقدمة
قبل كتابة اي برنامج يجب ان يتم تحديد المايكروكونترولر المراد العمل معة ويتم ذلك عن طريق الكود التالي
Device = نوع الميكروكونترولر
مثال
Device =16F877
ولتعريف سرعة الكريستال أو المهتز يتم استخدام الأمر التالي
قيمة التردد XTAL
مثال
Xtal 4
كما هو معلوم فإن المايكروكوترولر به منافذ ويمكن برمجتها لتكون إ ما رقمية أو تناظرية
في حالة الرقمية يمكن يكون ذلك عن طريق إبطال الخصائص التناظرية للأضلاع وجعلها فقط رقمية أو حسب المطلوب
وبصورة عامة فالمنفذ التناظرية إما ان تكون للمقارن أو للمحول التناظري الرقمي
ولإبطالهم بالكلية يتم استخدام أمر
All_Digital (true/false)
مثال
All_Digital true
أو بالسجلات
مثل
CMCON=7
لإبطال المقارنات
ADCON1=7
لإبطال المحولات التناظرية الرقمية
و ADCON1=15
للمايكروكونترولر التي تحتوي على اكثر من 8 ADC
مثال 1
يتضمن هذا المثال التعامل مع المنافذ كمداخل ومخارج حيث انه مايتم ادخاله عن طرق المنفذ A سيتم اظهارة في المنفذ B
كود:
Device =16F877
Xtal 4
All_Digital true
TRISA=255 'all porta as input
TRISB=0 ' all portb as output
main:
PORTB=PORTA
GoTo main
End
مثال 2
التعامل مع المحول التناظري الرقمي
يتم ذلك عن طريق الأمر التالي
VAR = ADIN 0
والرقم صفر يشير الى المنفذ التشابهي الرقمي 0 و أما var فهو اشارة الي المتغير
ولالهذا الأمر بعض الإعدادات وهي على النحو التالي
1- الأمر التالي لتعريف دقة المحول هل ثماني بت أو عشر
DECLARE ADIN_RES 10
2- الأمر التالي لتعريف مصدر المهتز لتحديد زمن التحويل
هل RC أو 2_FOSC أو 4_FOSC أو8_FOSC أو 32_FOSC
مثال
DECLARE ADIN_TAD FRC ' RC OSC chosen
3- الأمر التالي لتحدبد زمن اخد العينة (sample)
DECLARE ADIN_STIME 50 ' Allow 50us sample time
الحسابات
كيف يتم حساب القيمة المرجوة أو الفولت المطلوب
يتم ذلك كالتالي
والفرق بين كل درجة وأخرى من درجات المحول يتم حسابها كالتالي
((+Vref ) – (-Vref))/2^number of ADC bits
مثال
عندنا محول تشابهي تناظري له الخصائص التالية
1- ذو 10دقة بت
2- و +Vref هو 5 فولت
3- -Vref هو 0
بالتالي فإن الإنتقال من درجة الى أخرى سيحتاج الى الجهد التالي
(5-0)/2^10 è 5/1024
يساوي
0.0048
بالتالي سنحتاج هذا المقدار من الفولت لالإنتقال من درجة الى اخرى
مثال عملي 1
مقياس الجهد
الدائرة
الكود
كود:
Device = 16F877
Xtal 4
Declare Adin_Res 10 ' 10-bit result required
Declare Adin_Tad FRC ' RC OSC chosen
Declare Adin_Stime 50 ' Allow 50us sample time
Declare LCD_DTPin PORTB.4
Declare LCD_ENPin PORTB.1
Declare LCD_RSPin PORTB.2
TRISA.0=1
TRISB=0
Symbol LED = PORTB.0
LED =0
Dim x As Word
Dim volt As Float
Dim limit As Word
ADCON1 = %10000000 ' Set analogue input on PORTA.0
main:
x=ADIn 0
volt = x * 0.0048828125
Print $FE, 1,#volt," Volt"
DelayMS 400
GoTo main
وهذا المقياس يقيس الجهد بين 0 و 5 فولت فقط
ملاحظة سيتم شرح ال LCD في مشاركة لاحقة ان شاء الله
واللنك التالي للبرنامج و السميوليش
ولطول المشاركة نكمل في المشاركة التالية ان شاء الله