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

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

adil214
:: مهندس ::
تاريخ التسجيل: May 2010
المشاركات: 13
نشاط [ adil214 ]
قوة السمعة:0
قديم 29-03-2011, 08:02 PM المشاركة 1   
Angry مساعدة RS232 Twitter FaceBook Google+



باسم الله الرحمن الرحيم :

قمت مأخرا في اطار مشروع بانجاز دارة ميكروكونترولر PIC18F4520 حيث من المفترض ان استعمل اتصال RS232 لكن المشكلة على مستوى ISIS هي عند ربط جهاز MAX232 في HYPERTERMINAL يعطي معلومة خاطئة لكن عند استشارة احد الاصدقاء نصحني بوضع بورت NONE بين البك و MAX232 و اشتغل كما يجب

السؤال الان هو على مستوى الحقيقة بعيدا عن الايزيزس لن استطيع الوصول الى MAX232 وقد جربت قلب المعطيات داخليا في البرنامج و لم تنجح فهل من حل على مستوى البرنامج علما اني استخدم MIKROC... ؟؟

اعلانات

metalljack
:: عضو ذهبي ::
تاريخ التسجيل: Mar 2008
الدولة: syria
المشاركات: 900
نشاط [ metalljack ]
قوة السمعة:103
قديم 29-03-2011, 10:04 PM المشاركة 2   
افتراضي


اذا كنت تتحدث عن الفرق بين الواقع والسميوليتر فصراحة أنا لم أؤمن بالمحاكاة حتى الآن لأن القطع ستصيبك بالجنون طبعا وغالبا لأن المحاكاة لا تظهر التشويش ولا تكون التوصيلات معطوبة (أحيانا ) والقطع لا ترتفع حرارتها ولا تعمل فقط عند لمسها و و و و
كما أن max 232 سريعة العطب فإذا أردت تنفيذ مشروع عليها بنصحك تشتر كم قطعة (كمشة )
وإذا أردت مساعدة بالتصاميم عمليا أنا جاهز وآسف عالإطالة

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

amrahmed
:: مهندس ::
تاريخ التسجيل: Jun 2009
المشاركات: 14
نشاط [ amrahmed ]
قوة السمعة:0
قديم 01-04-2011, 12:18 AM المشاركة 3   
افتراضي


اذا كنت تتحدث عن الفرق بين الواقع والسميوليتر فصراحة أنا لم أؤمن بالمحاكاة حتى الآن لأن القطع ستصيبك بالجنون طبعا وغالبا لأن المحاكاة لا تظهر التشويش ولا تكون التوصيلات معطوبة (أحيانا ) والقطع لا ترتفع حرارتها ولا تعمل فقط عند لمسها و و و و
كما أن max 232 سريعة العطب فإذا أردت تنفيذ مشروع عليها بنصحك تشتر كم قطعة (كمشة )
وإذا أردت مساعدة بالتصاميم عمليا أنا جاهز وآسف عالإطالة
سلام عليكم اخى
ارجو المساعده انا كمان لقد قمت بتوصيل ال pic16f877a بال max232 و الحمد لله اشتغلت بنجاح و قدرت انى اتحكم وارسال بيانات من ال computer و استقبلها على lcd متصله بال pic
لكن مشكلتى فى عمل نفس المهمه و لكن بالعكس
لقد قمت بوضع heat sensor lm35 و وصلت معه lcd و الحمد لله اشتغل لكنى اريد ان استقبل القراءه و اعرضها على ال computer من خلال serial port
لقد فعلت كل الطرق و لكن دون جدوه برجاء الافاده فى اسرع وقت و اسف على الاطاله
جزاكم الله كل خير
سلام عليكم


metalljack
:: عضو ذهبي ::
تاريخ التسجيل: Mar 2008
الدولة: syria
المشاركات: 900
نشاط [ metalljack ]
قوة السمعة:103
قديم 01-04-2011, 03:35 AM المشاركة 4   
افتراضي


هل يمكنك وضع الكود لنعرف ما الخطأ الحاصل
حسب ظني الخطأ هو التالي
ان قيمة acd هي عبارة عن 10 بت والسيريال لا يتسع أكثر من 8 بت في هذه الحالة يمكنك ارسال رقم وليس القيمة كاملة يعني : ترسل 35 في بايت وعند استلامها بالكمبيوتر اعرضها كما هي أو حولها لفهرنهايت أي لا تقم بإرسال المتحول كامل 920 مثلا لأن هذه الرقم لا يمكن ارساله في بايت واحد


amrahmed
:: مهندس ::
تاريخ التسجيل: Jun 2009
المشاركات: 14
نشاط [ amrahmed ]
قوة السمعة:0
قديم 01-04-2011, 06:12 PM المشاركة 5   
افتراضي


هل يمكنك وضع الكود لنعرف ما الخطأ الحاصل
حسب ظني الخطأ هو التالي
ان قيمة acd هي عبارة عن 10 بت والسيريال لا يتسع أكثر من 8 بت في هذه الحالة يمكنك ارسال رقم وليس القيمة كاملة يعني : ترسل 35 في بايت وعند استلامها بالكمبيوتر اعرضها كما هي أو حولها لفهرنهايت أي لا تقم بإرسال المتحول كامل 920 مثلا لأن هذه الرقم لا يمكن ارساله في بايت واحد
جزاك الله كل خير يا اخى برجاء الافاده اكثر هذا هو الكود المستخدم


// LCD Pinout settings
sbit Lcd_RS at RB0_bit;
sbit lcd_En at RB1_bit;
sbit lcd_D4 at RB2_bit;
sbit lcd_D5 at RB3_bit;
sbit lcd_D6 at RB4_bit;
sbit lcd_D7 at RB5_bit;
// Pin direction
sbit lcd_RS_Direction at trisb0_bit;
sbit lcd_En_Direction at trisb1_bit;
sbit lcd_D4_Direction at trisb2_bit;
sbit lcd_D5_Direction at trisb3_bit;
sbit lcd_D6_Direction at trisb4_bit;
sbit lcd_D7_Direction at trisb5_bit;
int temp1;
char temp[10];
void adc(){
temp1=ADC_READ(0);
temp1=temp1*0.245*2;
INTToStr(temp1,temp);}
void main() {
TRISA = 0xFF;
TRISD=0;PORTD=0;
TRISB=0;PORTB=0;
TRISc=1;PORTc=0;
Uart1_init(9600);
Lcd_Init();
lcd_cmd(_LCD_CURSOR_OFF);
while (1) {
lcd_out(1,10,temp);
UART1_Write_Text("temperature");
UART1_Write_Text(temp);UART1_Write(13);UART1_Write (10);;Delay_ms(1000);;
adc();
} }


metalljack
:: عضو ذهبي ::
تاريخ التسجيل: Mar 2008
الدولة: syria
المشاركات: 900
نشاط [ metalljack ]
قوة السمعة:103
قديم 01-04-2011, 09:43 PM المشاركة 6   
افتراضي


هناك مشكلة صغيرة بيني وبينك أني ما بكتب سي
بس حسب ما فهمت من كودك أنك حولت القيمة الى سترينغ وقمت بإرسال العديد من القيم الى السيريال
اقتراحي هو أن تحول القيمة الى بايت 0-255 وتضع الحرارة ضمنه 30 50 0 100 أي كان وأرسلها الى الحاسب وحلل القيمة بالحاسب ليس بالميكرو ولا داعي لإرسال كلمة temperature
لأنني مرة وضعت كود للسيريال وكنت حين ارسل تكست وبايت لا يعمل
فأجبرت أن أرسل أحدهما وليس كلاهما

المغزى أن تجرب أن تقوم بإرسال قيمة واحدة بايت واحد وبعدها اذا أردت التوسع قم بذلك

إضافة رد

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

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

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


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

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