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

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

الصورة الرمزية issam-ahmed
issam-ahmed
:: مهندس ::
تاريخ التسجيل: Mar 2009
الدولة: فلسطين
المشاركات: 8
نشاط [ issam-ahmed ]
قوة السمعة:0
قديم 02-04-2010, 04:19 AM المشاركة 1   
افتراضي الله يخليكم تجوبوني , سؤال في الميكرو سي Twitter FaceBook Google+



السلام عليكم

يا شباب أنا عندي مشكلة في الميكرو سي بعمل متغير و بعطيه قيمة إفتراضية مثلاً 0 و بعدين بعمل لووب وكل مرة يزود واحد على المتغير و يعرض الرقم الجديد على LCD بس المشكلة إنه ما بظهر أرقام , بظهر رموز و أرقام و أحرف , كيف بدي أخليه يظهر أرقام فقط ؟؟؟
وثاني حاجة كيف بدي أقارن بالقيمة التي يحتويها المتغير مثلاً عندي متغيرين متغير = 9 و الاخر = 10 كيف بدي أحكيه هل قيمة المتغير كذا تساوي أو أكبر أوغيره للمتغير التاني .

مثال على السؤال الأول :

int x =0 ;
loop:
x++;
lcd_chr(1,2,x)
goto loop;


مثال على السؤال الثاني :
int x = 9 ;
int y= 10;
A:
x++;
(if(x==y
{
هنا أي شرط
}
goto A;

وشكراً مع العلم إني محتاج للأجابة بأقصى سرعة و بارك الله فيكم جميعاً

اعلانات

frank_hugo_1100
:: مهندس متواجد ::
تاريخ التسجيل: Jun 2007
المشاركات: 169
نشاط [ frank_hugo_1100 ]
قوة السمعة:0
قديم 02-04-2010, 10:32 PM المشاركة 2   
افتراضي


يجب ان تحول هذا المتغير الى حرف حتى يتم عرضه ولا يعرض الاسكى كود للرقم
void ShortToStr(short number, char *output);
واستخدم الداله lcd out لعرض هذا المتغير
وهناك حلول افضل لكنى لم اتعمق ومعلوماتى فى هذه اللغه من استاذ احمد سمير وقراءة help اللغه فهو مفيد جدا وفيه امثله لتطبيقات رائعه ان شاء الله يفيدك

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

الصورة الرمزية issam-ahmed
issam-ahmed
:: مهندس ::
تاريخ التسجيل: Mar 2009
الدولة: فلسطين
المشاركات: 8
نشاط [ issam-ahmed ]
قوة السمعة:0
قديم 03-04-2010, 02:24 AM المشاركة 3   
افتراضي


يجب ان تحول هذا المتغير الى حرف حتى يتم عرضه ولا يعرض الاسكى كود للرقم
void ShortToStr(short number, char *output);
واستخدم الداله lcd out لعرض هذا المتغير
وهناك حلول افضل لكنى لم اتعمق ومعلوماتى فى هذه اللغه من استاذ احمد سمير وقراءة help اللغه فهو مفيد جدا وفيه امثله لتطبيقات رائعه ان شاء الله يفيدك
شكراً إلك أخي هجربها إن شاء الله


الصورة الرمزية 007
007
:: مهندس متواجد ::
تاريخ التسجيل: Apr 2005
الدولة: مدينة بورسعيد - مصر
المشاركات: 176
نشاط [ 007 ]
قوة السمعة:0
قديم 03-04-2010, 04:08 PM المشاركة 4   
Thumbs up


صديقي العزيز بخصوص السؤال الأول أو المثال الأول فأن الLCD تعرض قمية X فعلا ولكن بما يقابلها في نظام ASCII Code وللتغلب على ذلك قم بتنفيذ الأتي:

float x=0;
char x_text [22];
viod main(){
for (x==0;x>=10;x++){
floattostr(x,x_text);
LCD(1,5,x_text);
}
}
جلابها وأنشاء الله حتعمل


frank_hugo_1100
:: مهندس متواجد ::
تاريخ التسجيل: Jun 2007
المشاركات: 169
نشاط [ frank_hugo_1100 ]
قوة السمعة:0
قديم 03-04-2010, 04:19 PM المشاركة 5   
افتراضي


تماما مثل الحل الذى اقترحته
وبانتظار مقترحات افضل


الصورة الرمزية issam-ahmed
issam-ahmed
:: مهندس ::
تاريخ التسجيل: Mar 2009
الدولة: فلسطين
المشاركات: 8
نشاط [ issam-ahmed ]
قوة السمعة:0
قديم 04-04-2010, 11:13 AM المشاركة 6   
افتراضي


صديقي العزيز بخصوص السؤال الأول أو المثال الأول فأن الLCD تعرض قمية X فعلا ولكن بما يقابلها في نظام ASCII Code وللتغلب على ذلك قم بتنفيذ الأتي:

float x=0;
char x_text [22];
viod main(){
for (x==0;x>=10;x++){
floattostr(x,x_text);
LCD(1,5,x_text);
}
}
جلابها وأنشاء الله حتعمل
مشكورين إخواني كل الشكر , لكن جربت الطرقتين الأولى لم أستطع التعامل معها
لم أفهمها بالشكل الجيد , أما الثانية لم تظبط معي يا ريت لو تعمل مثال كامل .
و بالمناسبة أنا سأضع هذه الأكواد في برنامج أخر عبارة عن مقياس لدرجة الحرارة
و أريد أن أزود في قيمة المتغير الذي أضعه و أقلل عن طريق مخرجين أعملهم كامفتاح . وعند وصول درجة الحرارة لنفس قيمة المتغير يفتح مخرج معين ، وأنا لا يوجد لدي مشاكل في ماذكرت عن البرنامج إلى كيفية إخراج الرقم كما أريد على LCD و وضع شرط يفحص قيمة المتغير و ليس المتغير نفسه مع المتغير المستخدم في درجة الحرارة لأنه لم يظبط معي .
و أنا عملت كالتالي :
if(x == temp);
{
هنا الشرط
}
حيث x المتغير الذي يحتوي الرقم الذي أضعه , و temp هو الذي يحتوي على درجة الحرارة .

و شكراً لكم جميعاً و سامحوني على التأخير بس مشكلة الكهرباء في غزة .


frank_hugo_1100
:: مهندس متواجد ::
تاريخ التسجيل: Jun 2007
المشاركات: 169
نشاط [ frank_hugo_1100 ]
قوة السمعة:0
قديم 04-04-2010, 01:14 PM المشاركة 7   
افتراضي


هذا البرنامج كمثال شغال على كيفيه استخدام ما سبقت وذكرته
char text[5];
short x=0;
void main()
{
TRISB=0;
Lcd_Init(&PORTB);
while(1)
{
Lcd_Cmd(LCD_CLEAR);
Lcd_Cmd(LCD_CURSOR_OFF);
for (x=0;x<=15;x++)
{
ShortToStr(x,text);
Lcd_Out(1,1,text);
delay_ms(2000);
Lcd_Cmd(LCD_CLEAR);
Lcd_Cmd(LCD_CURSOR_OFF);
}
}
}


الصورة الرمزية issam-ahmed
issam-ahmed
:: مهندس ::
تاريخ التسجيل: Mar 2009
الدولة: فلسطين
المشاركات: 8
نشاط [ issam-ahmed ]
قوة السمعة:0
قديم 04-04-2010, 02:20 PM المشاركة 8   
افتراضي


هذا البرنامج كمثال شغال على كيفيه استخدام ما سبقت وذكرته
char text[5];
short x=0;
void main()
{
TRISB=0;
Lcd_Init(&PORTB);
while(1)
{
Lcd_Cmd(LCD_CLEAR);
Lcd_Cmd(LCD_CURSOR_OFF);
for (x=0;x<=15;x++)
{
ShortToStr(x,text);
Lcd_Out(1,1,text);
delay_ms(2000);
Lcd_Cmd(LCD_CLEAR);
Lcd_Cmd(LCD_CURSOR_OFF);
}
}
}
مشكور أخي , جربته و إشتغل تمام بس بدي أغلبك إذا ممكن كم سؤال عن الكود
علشان أكون مستخدم حاجة فاهمها :

char text[5]; لماذا إستخدمت رقم 5 و ماذ يعني الكود ده .
شو فائدة هذا الكود ShortToStr(x,text);
Lcd_Out(1,1,text); لماذا عرضت المتغير text مش إلي بنزود عليه ال X .

و ألف شكر إلك حبيبي , غلبتك كثير معي .

إضافة رد

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

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

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


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

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