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

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

nader_bhs
:: مهندس متواجد ::
تاريخ التسجيل: Feb 2010
الدولة: تونس
المشاركات: 79
نشاط [ nader_bhs ]
قوة السمعة:0
قديم 28-03-2010, 02:38 PM المشاركة 1   
Question أود إرسال الداتا من مكروكنترولر إلى الكمبيوتر عبر RS232 ؟ Twitter FaceBook Google+



السلام عليكم
كنت بصدد صنع كارت الكتروني تحتوي على PIC16F877 + LCD + MAX232 + COM PORT ، استعملت برنامج بروتوس وميكرو سي
ارسلت الداتا بالميكرو سي (usart_write)
و قمت كذلك بصنع إنترفاس على الفيجوال بازيك لإستقبال الداتا من المكروكنترولر
واستعملت برنامج Virtual_Serial_Port_Driver_6.0.1.115 للربط بين الكارت والكمبيوتر
لكن العملية لم تنجح معي حيث لم استطع استقبال الداتا على الإنترفاس

تفضلوا هذه الملفات المستعملة
ملف بروتوس وميكرو سي
ملف الفيجوال بازيك

أرجو منكم المساعدة وجزاكم الله خيراً

اعلانات

robota
:: عضو ذهبي ::
تاريخ التسجيل: Jul 2009
الدولة: الخرطوم_السودان
المشاركات: 926
نشاط [ robota ]
قوة السمعة:103
قديم 28-03-2010, 03:15 PM المشاركة 2   
افتراضي


السلام عليكم .
اخى نادر الكود جيد ويعمل بصورة جيدة لكن هناك بعض الاخطاء واهمها:
1-
كود:
temp=0.245*t1*2;
انت فى البداية عرفت temp على انه char ثم طلبت منه ان يقوم بعمل ال float .
2-
كود:
Usart_Write(temp);
كما هو معروف فان السيريال يقوم بالارسال بالاسكى كود وفى الاسكى لا يوجد ترميز للارقام المركبة مثلا لايوجد رمز للرقم 73 وعليك ارساله رقما بعد الاخر .
فمثلا اذا كانت درجة الحرارة 37 فان البيك سيرسل الرمز المقابل لل 37 وهو % وهو تماما ما يحدث فى برنامجك قم بالتعديل ونحن متابعين معك.
بالتوفيق
.

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

nader_bhs
:: مهندس متواجد ::
تاريخ التسجيل: Feb 2010
الدولة: تونس
المشاركات: 79
نشاط [ nader_bhs ]
قوة السمعة:0
قديم 28-03-2010, 03:51 PM المشاركة 3   
افتراضي


شكرا على الإجابة السريعة أخي الكريم
لكني لا أعرف كيفية إرسال الرقم 37 رقماً بعد أخر


robota
:: عضو ذهبي ::
تاريخ التسجيل: Jul 2009
الدولة: الخرطوم_السودان
المشاركات: 926
نشاط [ robota ]
قوة السمعة:103
قديم 28-03-2010, 03:59 PM المشاركة 4   
افتراضي


بسيطة اخى نادر
باعتبار ان مدى درجة الحرارة سيكون من 0 - 99 ها الجزء سيفى بالغرض
كود:
t1=adc_read(0);
      temp=0.245*t1*2;
      inttostr(temp,text);
      lcd_cmd(lcd_cursor_off);
      lcd_out(1,6,text);
      a=temp/10;
      b=temp%10;
      Usart_Write(a+48);
      Usart_Write(b+48);
انا عدلته فى برنامجك وهو يعمل 100%
ايضا فى الجزء الثانى من الكود لايمكن ارسال جملة مباشرة . ساكتب الجزء الخاص بارسال جمل فيما بعد
بالتوفيق


nader_bhs
:: مهندس متواجد ::
تاريخ التسجيل: Feb 2010
الدولة: تونس
المشاركات: 79
نشاط [ nader_bhs ]
قوة السمعة:0
قديم 28-03-2010, 04:22 PM المشاركة 5   
افتراضي


شكراً على التوضيح أخي robota
في إنتظار الجزء الخاص بإرسال جمل
قمت بربط ال-COMPIM بال-USART terminal
لكن لم اتحصل على النتيجة المطلوبة


robota
:: عضو ذهبي ::
تاريخ التسجيل: Jul 2009
الدولة: الخرطوم_السودان
المشاركات: 926
نشاط [ robota ]
قوة السمعة:103
قديم 28-03-2010, 05:05 PM المشاركة 6   
افتراضي


هذا هو كود ارسال جملة او عبارة
كود:
 unsigned char m[] = "  Temp1";
unsigned char i;
    
    i = 0;
    while(m[i] != 0)
    {                                         // Send TEXT to USART
       Usart_Write(m[i]);
       i++;
    }
بالنسبة للتطبيق استخدم الدائرة التالية
http://www.mediafire.com/?3mmnmtwtxmt
بالتوفيق


الصورة الرمزية MYM
MYM
:: مهندس متميز ::
تاريخ التسجيل: Mar 2009
الدولة: مصر
المشاركات: 337
نشاط [ MYM ]
قوة السمعة:0
قديم 28-03-2010, 05:44 PM المشاركة 7   
افتراضي


الأخ الفاضل روبوتا .... جزاكم الله خيرا على ما تبذلوه من جهد لهذا المنتدى الكريم ...
فقد ساعدتني كثيرا بهذا الأمر و ها أنت مرة أخرى تمد يد العون لكل أخ في المنتدى فجزاكم الله خيرا عنا و عن الجميع.


robota
:: عضو ذهبي ::
تاريخ التسجيل: Jul 2009
الدولة: الخرطوم_السودان
المشاركات: 926
نشاط [ robota ]
قوة السمعة:103
قديم 29-03-2010, 10:01 AM المشاركة 8   
افتراضي


الأخ الفاضل روبوتا .... جزاكم الله خيرا على ما تبذلوه من جهد لهذا المنتدى الكريم ...
فقد ساعدتني كثيرا بهذا الأمر و ها أنت مرة أخرى تمد يد العون لكل أخ في المنتدى فجزاكم الله خيرا عنا و عن الجميع.
جزاك الله خيرا على كلماتك الطيبة اخى الغالى .

إضافة رد

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

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

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


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

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