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

   

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



مثال على المكتبة :












كود:
 
char uart_rd;
 
void main() {
ANSEL  = 0;                     // Configure AN pins as digital
ANSELH = 0;
 
UART1_Init(9600);               // Initialize UART module at 9600 bps
Delay_ms(100);                  // Wait for UART module to stabilize
 
UART1_Write_Text("Start");
UART1_Write(10);
UART1_Write(13);
 
while (1) {                     // Endless loop
 if (UART1_Data_Ready()) {     // If data is received,
   uart_rd = UART1_Read();     // read the received data,
   UART1_Write(uart_rd);       // and send data via UART
 }
}
}


يبين المثال تبادل البيانات من خلال UART .

عندما يستقبل الميكروكونترولر بيانات سوف يرسلها فورا لتعود مرة أخرى . إذا تم توصيل الميكروكونترولر إلى الكومبيوتر الشخصى كما فى الشكل يمكنك اختبار المثال من المترجم mikroC PRO عن طريق الوحدة الطرفية للاتصال التسلسلى الموجودة بالقائمة Tools › Terminal .



التعليق على البرنامج :

· إعلان أو تعريف المتغير الذى سوف يتم فيه حفظ البايت المستقبل بنوع char وباسم uart_rd قبل بدء الدالة الرئيسية :



char uart_rd;

  • بداية الدالة الرئيسية :
void main() {




  • فى البداية يجب تهيئة المنافذ وهنا لن نحتاج للمداخل التناظرية لذلك يتم تهيئة جميع المنافذ لتكون مداخل / مخارج رقمية
ANSEL = 0; // Configure AN pins as digital



ANSELH = 0;

  • أيضا فى البداية يجب تهيئة موديول UART وتحديد معدل البود قبل استخدام أى دالة أخرى فى مكتبة UART
UART1_Init(9600); // Initialize UART module at 9600 bps



  • والانتظار لفترة 100 ملى ثانية حتى تستقر التهيئة
Delay_ms(100); // Wait for UART module to stabilize




  • عندئذ يمكن إرسال نص "Start" من خلال UART1 وكتابة اكواد أو مفاتيح تنسيق النص لإنهاء السطر والبدء من سطر جديد .
UART1_Write_Text("Start");







UART1_Write(10); // Line Feed UART1_Write(13); // Carriage Return
  • بعد ذلك يتم الدخول فى حلقة غير منتهية
while (1) { // Endless loop



  • تحتوى على :
# اختبار تجهيز البيانات للاستقبال من خلال UART1 .

# وقراءة (استقبال) البيانات ونسخها إلى سجل المتغير uart_rd .
# وإعادة أرسالها من سجل المتغير uart_rd خلال UART1
if (UART1_Data_Ready()) { // If data is received,
uart_rd = UART1_Read(); // read the received data,



UART1_Write(uart_rd); // and send data via UART
  • نهاية if .
}
  • نهاية الحلقة الغير منتهية :
}
  • نهاية الدالة الرئيسية .
}












اعلانات

goldfinger2
:: عضوية غير مفعلة ::
تاريخ التسجيل: Oct 2006
الدولة: egypt
المشاركات: 186
نشاط [ goldfinger2 ]
قوة السمعة:
قديم 08-04-2011, 03:07 AM المشاركة 10   
افتراضي


جزاك الله خيرا وزادك علما

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

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



اخى الكريم

شكرا جزيلا لك

بارك الله فيك

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


geniusse01
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2008
الدولة: Jordan - Amman
المشاركات: 1,134
نشاط [ geniusse01 ]
قوة السمعة:
قديم 08-04-2011, 05:29 PM المشاركة 12   
افتراضي


السلام عليكم

مواضيع مميزة كعادتك مشرفنا الغالي .. جزاك الله الف خير وجعله في ميزان حسناتك يوم القيامة..


واخر دعوانا ان الحمدلله رب العالمين .. وصلى الله على سيدنا محمد وعلى اله وصحبه وسلم.


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


السلام عليكم

مواضيع مميزة كعادتك مشرفنا الغالي .. جزاك الله الف خير وجعله في ميزان حسناتك يوم القيامة..


واخر دعوانا ان الحمدلله رب العالمين .. وصلى الله على سيدنا محمد وعلى اله وصحبه وسلم.

اللهم آمين لى ولك إن شاء الله

اخى الكريم

شكرا جزيلا لك


تقدير اعتز به


بارك الله فيك

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


sofien.j
:: مهندس متواجد ::
تاريخ التسجيل: Oct 2009
الدولة: tunisia
المشاركات: 83
نشاط [ sofien.j ]
قوة السمعة:
قديم 08-04-2011, 10:00 PM المشاركة 14   
افتراضي


بوركت اخي في هذا الشرح
لو تكرمت انا اريد ان اتعامل مع ميموري مثل 24c512 لخزن البينات وقراءتها عن طريق البيك
فهل هذا ممكن؟


e-obsessed
:: عضو .. ::
تاريخ التسجيل: Feb 2010
الدولة: alger
المشاركات: 119
نشاط [ e-obsessed ]
قوة السمعة:
قديم 09-04-2011, 12:26 AM المشاركة 15   
افتراضي


مشكووووووور اخي


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


بوركت اخي في هذا الشرح
لو تكرمت انا اريد ان اتعامل مع ميموري مثل 24c512 لخزن البينات وقراءتها عن طريق البيك
فهل هذا ممكن؟

اخى الكريم

شكرا جزيلا لك


بارك الله فيك

ربما بعد بعد تغطية I2C يمكن مناقشة ذلك

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



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