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

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

zee
:: مهندس ::
تاريخ التسجيل: Sep 2009
المشاركات: 7
نشاط [ zee ]
قوة السمعة:0
قديم 07-06-2010, 03:51 AM المشاركة 1   
x1 الاتصال التسلسلي بين الكمبيوتر والميكروكنترولر RS232باستخدام lcd Twitter FaceBook Google+



السلام عليكم اخوانى الاعزاء لدى مشكله فى حاله ارسال حروف وارقام عن طريق منفز السريال بورت الى شاشه ال سى دى باستخدام المايكروكنتروله وهى ان الشاشه
تعرض رموز غير مفهومه بدلا عن الحروف والارقام المرسله فما هو الحل .....

علما بانى قد عرفت انه لابد من تحوي الحروف والارقام الى الاسكى كود حتى يتم عرضها على الشاشه لكن كيف يمكن عمل ذلك
....و.شكرا....

اعلانات

eabueida
:: مهندس متواجد ::
تاريخ التسجيل: Apr 2007
المشاركات: 171
نشاط [ eabueida ]
قوة السمعة:0
قديم 07-06-2010, 03:57 AM المشاركة 2   
افتراضي


السلام عليكم
اخي
لتحويل اي رقم عادي الى اسكي كود تحتاج الى اضافة (30H )أو 48 علية حتى يتحول الى اسكي كود

مثال
الرقم المقابل بالاسكي
1 ==> 49
2==> 50

هذا بصورة عامة بعض اللغات عندها القدرة علىالتحويل المباشر

مثال بلغة البروتون والبيك بيسك تضيف علامة # قبل الرقم فيتحول الى اسكي


على العموم يمكن حل المشكلة اذا لم يتوفر في اللغه المستخدمة عن طريق الفكرة التالية الفرضية هنا اربع ارقام فقط


D1000 as byte
D100 as byte
D10 as byte
D as byte

D1000= number/1000
D100 = (number mod 1000) /100
D10= ((number mod 1000) mod 100) / 10
D = (((number mod 1000) mod 100) mod 10)

ومن ثم تجمع كل خانة مع 49 وبالتالي تتحول الى اسكي
وشكرا

والسلام عليكم


التعديل الأخير تم بواسطة : eabueida بتاريخ 07-06-2010 الساعة 04:07 AM
اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )
  

الصورة الرمزية sheimy
sheimy
:: عضو ذهبي ::
تاريخ التسجيل: Jul 2009
الدولة: Egypt
المشاركات: 789
نشاط [ sheimy ]
قوة السمعة:99
قديم 07-06-2010, 11:33 AM المشاركة 3   
افتراضي


هذا ما تريد
لاحظ لابد من ارسال 40 حرف حتى تعرض الشاشة
او انك تغير الشروط
كود:
unsigned short i, pos;
char text[41];
char out[]="Ok Ahmed I have Received Data";
char *tu;
// LCD module connections
sbit LCD_RS at RB2_bit;
sbit LCD_EN at RB3_bit;
sbit LCD_D4 at RB4_bit;
sbit LCD_D5 at RB5_bit;
sbit LCD_D6 at RB6_bit;
sbit LCD_D7 at RB7_bit;

sbit LCD_RS_Direction at TRISB2_bit;
sbit LCD_EN_Direction at TRISB3_bit;
sbit LCD_D4_Direction at TRISB4_bit;
sbit LCD_D5_Direction at TRISB5_bit;
sbit LCD_D6_Direction at TRISB6_bit;
sbit LCD_D7_Direction at TRISB7_bit;
// End LCD module connections
void main() {
Lcd_Init();
Lcd_Cmd(_LCD_CURSOR_OFF);
UART1_Init(9600);
i=0;
while(1){
      if(UART1_Data_Ready()){
           text[i]=UART1_Read();
           tu += text[i];
          i++;
          if(i==40){
           i=0;
        Lcd_Cmd(_LCD_CLEAR);
          Lcd_Cmd(_LCD_RETURN_HOME);
            for(pos=0;pos<40;pos++){
               Lcd_Chr_Cp(text[pos]);
               DELAY_MS(50);
         if(pos==19)Lcd_Cmd(_LCD_SECOND_ROW);
  }
  UART1_Write_Text(out);
  }
  }

}
}
مهندس
احمد الشيمى
مصر


الصورة الرمزية Eng-Rayan
Eng-Rayan
:: عضو فضي ::
تاريخ التسجيل: Feb 2010
الدولة: تونس (بدرس بالأردن)
المشاركات: 455
نشاط [ Eng-Rayan ]
قوة السمعة:79
قديم 07-06-2010, 12:30 PM المشاركة 4   
افتراضي


هذا ما تريد
لاحظ لابد من ارسال 40 حرف حتى تعرض الشاشة
او انك تغير الشروط
كود:
unsigned short i, pos;
char text[41];
char out[]="Ok Ahmed I have Received Data";
char *tu;
// LCD module connections
sbit LCD_RS at RB2_bit;
sbit LCD_EN at RB3_bit;
sbit LCD_D4 at RB4_bit;
sbit LCD_D5 at RB5_bit;
sbit LCD_D6 at RB6_bit;
sbit LCD_D7 at RB7_bit;

sbit LCD_RS_Direction at TRISB2_bit;
sbit LCD_EN_Direction at TRISB3_bit;
sbit LCD_D4_Direction at TRISB4_bit;
sbit LCD_D5_Direction at TRISB5_bit;
sbit LCD_D6_Direction at TRISB6_bit;
sbit LCD_D7_Direction at TRISB7_bit;
// End LCD module connections
void main() {
Lcd_Init();
Lcd_Cmd(_LCD_CURSOR_OFF);
UART1_Init(9600);
i=0;
while(1){
      if(UART1_Data_Ready()){
           text[i]=UART1_Read();
           tu += text[i];
          i++;
          if(i==40){
           i=0;
        Lcd_Cmd(_LCD_CLEAR);
          Lcd_Cmd(_LCD_RETURN_HOME);
            for(pos=0;pos<40;pos++){
               Lcd_Chr_Cp(text[pos]);
               DELAY_MS(50);
         if(pos==19)Lcd_Cmd(_LCD_SECOND_ROW);
  }
  UART1_Write_Text(out);
  }
  }

}
}
مهندس
احمد الشيمى
مصر
تسلم يا معلم


الصورة الرمزية sheimy
sheimy
:: عضو ذهبي ::
تاريخ التسجيل: Jul 2009
الدولة: Egypt
المشاركات: 789
نشاط [ sheimy ]
قوة السمعة:99
قديم 07-06-2010, 03:36 PM المشاركة 5   
افتراضي


ربنا يكرمك يارب


zee
:: مهندس ::
تاريخ التسجيل: Sep 2009
المشاركات: 7
نشاط [ zee ]
قوة السمعة:0
قديم 07-06-2010, 03:59 PM المشاركة 6   
افتراضي


اخوانى الاعزاء
..............................
eabueida
احمد الشيمى
Eng-Rayan

اشكركم بشده للرد على الموضوع (بارك الله فيكم وزادكم علما) لكن لدى مشكله صغيره وهى عند تنفيز البرنامج باستخدام محاكى بروتص لم تعرض الشاشه اى شى مع العلم انى كتبت 40 حرف عند تنفيز برنامج اخى احمد ارجوا منكم تشغيل البرنامج على المحاكى .....مره اخرى اشكركم بشده بارك الله فيكم ونفع الامه بعلمكم....
واسف على طلباتى الكثير


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


هذا ما تريد
لاحظ لابد من ارسال 40 حرف حتى تعرض الشاشة
او انك تغير الشروط
كود:
unsigned short i, pos;
char text[41];
char out[]="Ok Ahmed I have Received Data";
char *tu;
// LCD module connections
sbit LCD_RS at RB2_bit;
sbit LCD_EN at RB3_bit;
sbit LCD_D4 at RB4_bit;
sbit LCD_D5 at RB5_bit;
sbit LCD_D6 at RB6_bit;
sbit LCD_D7 at RB7_bit;

sbit LCD_RS_Direction at TRISB2_bit;
sbit LCD_EN_Direction at TRISB3_bit;
sbit LCD_D4_Direction at TRISB4_bit;
sbit LCD_D5_Direction at TRISB5_bit;
sbit LCD_D6_Direction at TRISB6_bit;
sbit LCD_D7_Direction at TRISB7_bit;
// End LCD module connections
void main() {
Lcd_Init();
Lcd_Cmd(_LCD_CURSOR_OFF);
UART1_Init(9600);
i=0;
while(1){
      if(UART1_Data_Ready()){
           text[i]=UART1_Read();
           tu += text[i];
          i++;
          if(i==40){
           i=0;
        Lcd_Cmd(_LCD_CLEAR);
          Lcd_Cmd(_LCD_RETURN_HOME);
            for(pos=0;pos<40;pos++){
               Lcd_Chr_Cp(text[pos]);
               DELAY_MS(50);
         if(pos==19)Lcd_Cmd(_LCD_SECOND_ROW);
  }
  UART1_Write_Text(out);
  }
  }

}
}
مهندس
احمد الشيمى
مصر
وينك يا ياغالى
مبدع كالعادة


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


اخى البرنامج يعتمد على البيانات المستقبلة فوضح فقط الجزء الخاص بالارسال من الكود ( كود الارسال) حتى يتمكن الاخوان من مساعدتك.
بالتوفيق

إضافة رد

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

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

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


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

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