 |
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
|
|
نشاط [ F.Abdelaziz ]
قوة السمعة:
|
|
05-09-2011, 06:53 AM
المشاركة 10
|
|
مثال بسيط للبرمجة :A simple programming example
أى برنامج سوف يتكون من جزئين :- الجزء الأول الخاص بالكومبيوتر وهو برنامج VB .
- والجزء الثانى وهو الخاص بلوحة الربط وسوف نستخدم فيه البرمجة بلغة السى والمترجم MIKROC-PRO (يمكن استخدام أى لغة ترغب فيها ) .
الجزء الأول :
جهة الكومبيوتر وبرنامج VB :- بعد إعداد بيئة التطوير يمكننا البدء فى بناء برنامج للاتصال بين لوحة الربط أو الجهاز.
- أول شىء هو بناء " واجهة المستخدم " user interface :
# إنقر نقرامزدوجا على الرموز (الأيقونات) المطلوب استخدامها وهنا وهى : رمز الأداة MScomm و سوف نستخدم "زر أمر" تحكم للقيام بتوصيل أى تشغيل جهاز ممثلا بإضاءة ليد بلوحة الربط متصلا بالطرف RB0 ونغير خاصية الاسم له لتكون LED ON و"زر أمر" آخر لفصل هذا الجهاز ممثلا بإطفاء الليد نفسه ونغير خاصية الاسم له لتكون LED OFF .
يصبح النموذج form كما فى الشكل التالى :
- بعد ذلك يتم ضبط إعدادات الاتصال التسلسلى RS232 ومنفذ الاتصال CommPort بالقيم الصحيحة .
- هنا سوف نقوم بذلك فى البرنامج نفسه .
- . إنقر نقرا مزدوجا على النموذج form فيؤدى ذلك إلى جلب "لوحة البرمجة" programming panel لكتابة الكود .
- الشكل التالى يبين لوحة البرمجة وبها البرنامج البسيط .
- هذا البرنامج ينقسم إلى ثلاثة أجزاء (كل جزء يسمى sub أى برنامج فرعى ) .
- كل sub يخبر ما يتم عمله فى ظل (نتيجة) حدث ما .
- أول sub يخبر عما يجب عمله عند البداية عندما يتم عرض Form_Load ( تذكر ما ذكرناه قبل ذلك : يجب حدوث شىء ما لكائن لبدء الأفعال ) .
- يقوم هذا البرنامج الفرعى sub بفعل شيئين :
# الشىء الأول : هو اختيار رقم المنفذ المستخدم فى الاتصال وهنا نستخد المنفذ الأول COM1 وصيغة هذا الأمر هى : MSComm1.CommPort = 1 .
# الشىء الثانى : هو ضبط إعدادات المنفذ بالصيغة التالية :
MSComm1.Settings = "19200,n,8,1""
# الشىء الثالث : هو فتح المنفذ حتى نتمكن من إرسال البيانات بالصيغة التالية : MSComm1.PortOpen = True
فنح open المنفذ التسلسلى RS232 الذى تم اختياره . حيث أنه يحتاج لفتحه قبل أن نتمكن من إرسال الأوامر .
MSComm1.PortOpen = True - البرنامج الفرعى الثانى خاص بتشغيل الجهاز : عند النقر على زر LED ON يتم أرسال القيمة واحد "1" إلى لوحة الربط حيث تستقبلها وتضهعا فى المنفد PORTB ومن ثم يضىء الليد المتصل بالطرف RB0 لأن= 0b00000001 "1" .
- البرنامج الفرعى الثالث خاص بتبطيل الجهاز : عند النقر على زر LED OFF يتم أرسال القيمة واحد "0" إلى لوحة الربط حيث تستقبلها وتضهعا فى المنفد PORTB ومن ثم ينطفأالليد المتصل بالطرف RB0 .
- إنقر نقرا مزدوجا على النموذج تظهر لك نافذة كود البرنامج معدة لكتابة البرنامج الفرعى للنموذج .
- انقر نقرا مزدوجا على أى أداة ظهر لك المكان المعد لكتابة البرنامج الفرعى الخاص به .
الشكل التالى يبين الشكل النهائى :
جهة الميكروكونترولر :
كود:
unsigned short value ;
void main() {
TRISB=0X00;
PORTB=0;
UART1_Init(19200); // Initialize USART module
// (8 bit, 19200 baud rate, no parity bit…)
while (1) {
if (UART1_Data_Ready()) { // If data has been received
value = UART1_Read(); // read it
PORTB=value;
}// end if
}//end while
}//end main
لتجربة هذا البرنامج :
يتم تحميل برنامج "جهة الميكروكونترولر " على الميكروكونترولر المستهدف ثم نقوم بالأتى :- أولا يتم توصيل لوحة الربط بالمنفذ RS232 وتوصيل القدرة للوحة .
- بعد ذلك إذهب إلى شريط القوائم واختار القائمة "Run" واختار
"Start with full compile" فيتم ترجمة البرنامج ويكون جاهز للتشغيل .- عندما تنقر على الزر "LED ON" فإن الدايود المشع للضوء (الليد) LED المتصل بالطرف RB0 يضىء ليمثل حالة التشغيل .
- عندما تنقر على الزر "LED OFF" فإن الدايود المشع للضوء (الليد) LED المتصل بالطرف RB0 ينطفأ ليمثل حالة التبطيل .
- إذا شاهدت ذلك عندئذ تكون نجحت فى بناء تطبيق لبرنامج يقوم بإخبار الجهاز عما يفعلة ويمكن مراقبة حالته .
|