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

أدوات الموضوع

الصورة الرمزية #MAAM#
#MAAM#
:: عضو ذهبي ::
تاريخ التسجيل: Jun 2008
الدولة: EGYPT
المشاركات: 567
نشاط [ #MAAM# ]
قوة السمعة:92
قديم 23-04-2011, 01:42 PM المشاركة 1   
Smile $$$$$تحكم في 4 لمبات عن طريق الكمبيوتر [مشروع كامل] (الكود بالسي+البروتس+كود#c)$$$$$$ Twitter FaceBook Google+



بسم الله الرحمن الرحيم
مشروع التحكم في 4 لمبات عن طريق الكمبيوتر من خلال المنفذ التسلسلي
الجزء الاول: الجزء الالكتروني



(1الدائرة الوسيطة بين المكيروكنترولر والمنفذ التسلسلي:



اعلانات

الصورة الرمزية #MAAM#
#MAAM#
:: عضو ذهبي ::
تاريخ التسجيل: Jun 2008
الدولة: EGYPT
المشاركات: 567
نشاط [ #MAAM# ]
قوة السمعة:92
قديم 23-04-2011, 01:46 PM المشاركة 2   
Smile


الدائرة بسيطة جدا بتوصيل max232 كما في الصورة طبقا للداتا شيت وأضفت هنا inverter لغرض المحاكاة فقط )أي إنه في التطبيق العملي المفروض ما نوصلش هذا (inverter

(2الدائرة الوسيطة بين المكيروكنترولر واللمبات بإستخدام الريلاي


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

الصورة الرمزية #MAAM#
#MAAM#
:: عضو ذهبي ::
تاريخ التسجيل: Jun 2008
الدولة: EGYPT
المشاركات: 567
نشاط [ #MAAM# ]
قوة السمعة:92
قديم 23-04-2011, 01:51 PM المشاركة 3   
Smile


الجزء الثاني: البرنامج الخاص بالمتحكم
1) دالة التهيئة للمنفذ التسلسي
void serial_init(void)
كود:
  void serial_init(void){
                           TMOD = 0x20;   // timer 1 8-bit auto-reload
  
جعل الريجيستر الخاص بالتايمر يستخدم تايمر واحد في مود واحد 8 بت ويتم إعادة تحميلة عندما يمتلئ
SCON = 0x50; // Tx and Rx enable
وهو الريجيستر الخاص بالسيريال بورت وتحديد كيفية الاتصال
TL1 = 0xFD; // Baud Rate 9600 8-n-1
وهو لتحديد سرعة الاتصال مع السيريال بورت
TH1 = 0xFD; // Reload count TR1 = 1; // Start timer }
2) دالة الاستقبال من المنفذ التسلسي
unsigned char uart_receive(void)
كود:
unsigned char uart_receive(void)
  {
                           while(!RI);
  
الفكرة هنا أنه في حالة استقبال داتا من خلال المنفذ التسلسي فإن RI يكون بواحد وبالتالي فأنا أضعه هنا في الشرط بحيث إنه عندما أستقبل داتا تكون RI بواحد وبالتالي يكون نفيها ! بصفر وبالتالي أخرج من الشرط while
RI = 0;
أجعلها بصفر هنا حتى أستطيع معرفة إستقبال داتا جديدة
return(SBUF);
حيث إن الداتا المستقبلة توضع في الريجيستر SBUF وبالتالي أرجعها من خلاله
}
3) الدالة الرئيسية
void main(void)
كود:
{unsigned char x;
  int i;
  serial_init();
  while(1)
  {
  x=uart_receive();
  
أضع الداتا التي استقبلها من المنفذ التسلسلي في هذا المتغير
switch(x) { case 'a':
في حالة إستقبال حرف a فإني أقوم بتشغيل اللمبة
{led1=1; for(i=0;i<10000;i++) _nop_(); break;} case 'b':
في حالة إستقبال حرف b فإني أقوم بإطفاء اللمبة .................. وهكذا في بقية المشروع
{led1=0; for(i=0;i<1000;i++) _nop_(); break;} case 'c': {led2=1; for(i=0;i<1000;i++) _nop_(); break;} case 'd': {led2=0; for(i=0;i<1000;i++) _nop_(); break;} case 'e': {led3=1; for(i=0;i<1000;i++) _nop_(); break;} case 'f': {led3=0; for(i=0;i<1000;i++) _nop_(); break;} case 'g': {led4=1; for(i=0;i<1000;i++) _nop_(); break;} case 'h': {led4=0; for(i=0;i<1000;i++) _nop_(); break;} } } }


الصورة الرمزية #MAAM#
#MAAM#
:: عضو ذهبي ::
تاريخ التسجيل: Jun 2008
الدولة: EGYPT
المشاركات: 567
نشاط [ #MAAM# ]
قوة السمعة:92
قديم 23-04-2011, 01:53 PM المشاركة 4   
افتراضي


الجزء الثالث: الجزء الخاص بالكمبيوتر




الصورة الرمزية #MAAM#
#MAAM#
:: عضو ذهبي ::
تاريخ التسجيل: Jun 2008
الدولة: EGYPT
المشاركات: 567
نشاط [ #MAAM# ]
قوة السمعة:92
قديم 23-04-2011, 01:55 PM المشاركة 5   
Smile


كتبت البرنامج بالسي شارب وهذه هيه الواجهه تتكون من 8 أزرار للتحكم في اللمبات وزرار للاتصال و combo box لتحديد com الذي سأتصل من خلاله
1) زرار connect
كود:
serialPort1.PortName = comboBox1.Text;
وهذا الامر للتحكم بإسم البورت الذي يتم الاتصال من خلاله
كود:
serialPort1.Open();
وهذا لفتح السيريال بورت
2) combobox
وهو يحتوي على أسماء البورت
كود:
COM1
  COM2
  COM3
  COM4
  COM5
  COM6
3) أزرار التحكم في اللمبات
وكل لمبة لها زرار تشغيل وإطفاء




الصورة الرمزية #MAAM#
#MAAM#
:: عضو ذهبي ::
تاريخ التسجيل: Jun 2008
الدولة: EGYPT
المشاركات: 567
نشاط [ #MAAM# ]
قوة السمعة:92
قديم 23-04-2011, 01:57 PM المشاركة 6   
Smile




كيفية التشغيل

1) تشغيل البرنامج الخاص بالسيريال بورت
2) اضغط على add pair وجعل COM2 و COM4 مع بعض
3) تشغيل البرنامج الخاص بالكمبيوتر
4) إختار COM4 منcombobox اللي على الشمال
5) إضغط على connect
6) افتح الدائرة ببرنامج البروتس وإبدأ المحاكاة
7) تحكم في 4 لمبات كما تشاء

تم بفضل الله.


الصورة الرمزية #MAAM#
#MAAM#
:: عضو ذهبي ::
تاريخ التسجيل: Jun 2008
الدولة: EGYPT
المشاركات: 567
نشاط [ #MAAM# ]
قوة السمعة:92
قديم 23-04-2011, 02:00 PM المشاركة 7   
Thumbs up


التحميل

المشروع كامل بالشرح من

هنا
أو
هنا

أو
هنا



التعديل الأخير تم بواسطة : #MAAM# بتاريخ 23-04-2011 الساعة 02:11 PM

الصورة الرمزية اشرف كمال2
اشرف كمال2
:: مهندس متواجد ::
تاريخ التسجيل: Nov 2010
الدولة: القاهرة_مهندس كهرباء
المشاركات: 101
نشاط [ اشرف كمال2 ]
قوة السمعة:0
قديم 23-04-2011, 03:26 PM المشاركة 8   
افتراضي


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

إضافة رد

العلامات المرجعية

«     الموضوع السابق       الموضوع التالي    »
أدوات الموضوع

الانتقال السريع إلى


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

Powered by vBulletin® Version 3.8.6, Copyright ©2000 - 2025