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

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

الصورة الرمزية عطية حسن محمود
عطية حسن محمود
:: عضو ذهبي و مشرف سابق لورشة صيانة التلفزيون ::
تاريخ التسجيل: Aug 2005
المشاركات: 1,073
نشاط [ عطية حسن محمود ]
قوة السمعة:123
قديم 16-06-2009, 10:01 AM المشاركة 1   
افتراضي سؤال ارجو الاجابة عليه Twitter FaceBook Google+



اجد اكواد عند العرض على الشاشة يكتب
lcd_chr(1,1,48+x)
و x هو متغير unsigned char
ومرة اخرى اجده ضايف 54 و مرات ارقام اخرى
اعرف انها الاسكى كود
فمن لديه معلومات عنها ارجو الرد السريع
وشكرا

اعلانات

geniusse01
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2008
الدولة: Jordan - Amman
المشاركات: 1,139
نشاط [ geniusse01 ]
قوة السمعة:105
قديم 16-06-2009, 06:09 PM المشاركة 2   
افتراضي


اجد اكواد عند العرض على الشاشة يكتب
lcd_chr(1,1,48+x)
و x هو متغير unsigned char
ومرة اخرى اجده ضايف 54 و مرات ارقام اخرى
اعرف انها الاسكى كود
فمن لديه معلومات عنها ارجو الرد السريع
وشكرا
السلام عليكم

كيف الحال اخونا الغالي؟ ان شاء الله تكون امورك بخير وعافية ؟...

يمكنني ان اعطي تقريب للفكرة مع اني لم اشاهد البرنامج بكامله لاحكم على الموضوع..يمكن ان تلاحظ الصورة التالية التي وضعها الاخ احمد فايد في موضوع التحكم ب48 ريليه بواسطة الكيباد مع الاظهار على شاشة LCD :



ان اظهار الارقام والاحرف على شاشة الاظهار LCD يستلزم ارسال الرقم او الحرف بالترميز الاسكي ASCII وكما تلاحظ من الرسم فان لكل رقم او حرف رقم مكافيء بالاسكي ..وبالتالي لاظهار الرقم صفر مثلا نرسل الرقم 48 الى خطوط الداتا للشاشة..ولاظهار الرقم واحد نرسل 49 ...ويظهر ان البرنامج الذي اخذت منه التعليمة كان الاظهار فيه جزء من حلقة قد تكون لاظهار الارقام على الشاشة مثلا وذلك باستخدام متغير X وخلال الحلقة يزداد بمقدار واحد..ففي اول حلقة يظهر الرقم صفر وبعدها واحد وهكذا...هذا والله اعلم..

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

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

أشرف الخطيب
:: مهندس متواجد ::
تاريخ التسجيل: Mar 2009
الدولة: مصــــــــــــــــــــــــــــــر
المشاركات: 195
نشاط [ أشرف الخطيب ]
قوة السمعة:0
قديم 16-06-2009, 06:20 PM المشاركة 3   
افتراضي


السلام عليكم ورحمة الله وبركاته

فى الحقيقة أخى فادى لقد سبقتنى فى الرد ....

أنا كنت سأضع نفس الرد تقريبا .... القلوب عند بعضها

أستاذ عطية .... أعتقد أنه من الأفضل وضع الكود كاملا حتى يتسنى لنا تحليله وفهمه سويا .....

فمثل ذلك الأمر ( مثل ماأشار الأخ فادى ) يمكن أن يدخل ضمن حلقة for مثلا لإظهار عداد أرقام على الشاشة lcd أو مثلا إظهار الحروف الهجائية الإنجليزية وغيرها من التطبيقات ...


التعديل الأخير تم بواسطة : أشرف الخطيب بتاريخ 16-06-2009 الساعة 06:24 PM

الصورة الرمزية عطية حسن محمود
عطية حسن محمود
:: عضو ذهبي و مشرف سابق لورشة صيانة التلفزيون ::
تاريخ التسجيل: Aug 2005
المشاركات: 1,073
نشاط [ عطية حسن محمود ]
قوة السمعة:123
قديم 16-06-2009, 09:29 PM المشاركة 4   
افتراضي


اشكرك اخى فادى واخى اشرف على الاهتمام الكود موجود مع برنامج الميكروسى
وهو لقياس الفولت
كود:
unsigned char ch;
unsigned int adc_rd;
char *text;
long tlong;
 
void main() {
  INTCON = 0;                              // disable all interrupts
  Lcd_Config(&PORTB, 4, 5, 6, 3, 2, 1, 0); // Lcd_Init_EP5, see Autocomplete
  LCD_Cmd(LCD_CURSOR_OFF);                 // send command to LCD (cursor off)
  LCD_Cmd(LCD_CLEAR);                      // send command  to LCD (clear LCD)
 
  text = "mikroElektronika";               // assign text to string
  LCD_Out(1,1,text);                       // print string a on LCD, 1st row, 1st column
  text = "LCD example";                    // assign text to string
  LCD_Out(2,1,text);                       // print string a on LCD, 2nd row, 1st column
 
  ADCON1     = 0x82;                       // configure VDD as Vref, and analog channels
  TRISA      = 0xFF;                       // designate PORTA as input
  Delay_ms(2000);
  text  = "voltage:";                      // assign text to string
  while (1) {
    adc_rd  = ADC_read(2);                 // get ADC value from 2nd channel
    LCD_Out(2,1,text);                     // print string a on LCD, 2nd row, 1st column
 
    tlong = (long)adc_rd * 5000;           // covert adc reading to milivolts
    tlong = tlong / 1023;                  // 0..1023 -> 0-5000mV
 
    ch     = tlong / 1000;                 // extract volts digit
    LCD_Chr(2,9,48+ch);                    // write ASCII digit at 2nd row, 9th column
    LCD_Chr_CP('.');
 
    ch    = (tlong / 100) % 10;            // extract 0.1 volts digit
    LCD_Chr_CP(48+ch);                     // write ASCII digit at cursor point
 
    ch    = (tlong / 10) % 10;             // extract 0.01 volts digit
    LCD_Chr_CP(48+ch);                     // write ASCII digit at cursor point
 
    ch    = tlong % 10;                    // extract 0.001 volts digit
    LCD_Chr_CP(48+ch);                     // write ASCII digit at cursor point
    LCD_Chr_CP('V');
 
    Delay_ms(1);
  }
}//~!
واردت ان اعدله ليقيس المقاومات مستغلا مقاومة ثابتة مثلا 800 اوم ومقاومة اخرى مجهولة سيحددها البرنامج
من العلاقة:
R+800/R=5\VALUE OF VOLT
لو اعتبرنا ان X=5/VALUE OF VOLT
R=800/X-1
منه احدد قيمة المقاومة المجهولة ويمكن قياس قيم مقاومات اعلى بزيادة قيمة المقاومة الثابتة عن طريق ازرار تنقل اتجاه دخول الفولت كما نشاء حسب قيمة المقاومة ونجحت لكن المشكلة ان الشاشة تعرض حروف غريبة فارجو الافادة
وشكرا


التعديل الأخير تم بواسطة : عطية حسن محمود بتاريخ 16-06-2009 الساعة 09:33 PM
إضافة رد

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

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

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


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

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