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

   

ماجد عباس محمد
:: نائب المشرف العام
::
تاريخ التسجيل: Jun 2009
الدولة: القاهرة - مصر
المشاركات: 11,652
نشاط [ ماجد عباس محمد ]
قوة السمعة:
قديم 06-01-2013, 08:44 AM المشاركة 9   
افتراضي



في فكرة عاوز انفزها برمجيا على ميكرو سي
انا مبتدء شوية في البرمجة فبرمجة بقاعدة if ما مشيتش معايا
-----
الفكرة
2 سفن سيجمنت و 2 مفتاح
لو دوست على مفتاح رقم 1 سفن سيجمنت رقم 1 ها تزيد 1
لو دوست علي مفتاح رقم 2 سفن سيجمنت رقم 2 ها تزيد 1 على اخر رقم موجود
في البرنامج ككل
البرنامج دا شبة نظام البنك
لما عميل يخلص الموظف يدوس علي زرار الى قدامو يقوم يظهر على الشاشة الخاصة بة رقم جديد
مع مراعاة اخر رقم كان موجود على الشاشات الاخري وهكذا مع باقي الموظفين
طبعا الى انا عاملو دا فكرة بسيطة
-----------
انا كنت ممكن اعملها من غير ما اطرح المساعدة فى المنتدي
بس مشكلتي انو البرنامج عندي ما اتعرفش غير على البورت B لغاية B3
يعني في كود زي مثلا



الكود دا بيزود رقم بس من b0 الى b3 فقط
وزي ما الصورة موضحة انا موصل على بقية البورت 7 سيجمنت التانية
فا عاوز اقسم البورت الى جزين واسمي كل جزء اسم موحد
بجيث من b0 الى b3 اسميها pp1
و من b5 الى b7 اسميها PP2
-
برمجيا انا مش عارفها
-------
عاوز مساعدة
-------
الصورة على البروتس
-----------
المسالة بسيطة جدا
يمكنك تسمية متغير بأى اسم وليكن مثلا Result
لو ضغط الزر 1 اضف له $1 ولو ضغط الزر 2 أضف له 10$ ثم انقل هذه النتيجة من المتغير للبورت

اعلانات

mtm4anas
:: مهندس متواجد ::
تاريخ التسجيل: Sep 2008
المشاركات: 177
نشاط [ mtm4anas ]
قوة السمعة:
قديم 07-01-2013, 12:27 AM المشاركة 10   
افتراضي


المسالة بسيطة جدا
يمكنك تسمية متغير بأى اسم وليكن مثلا Result
لو ضغط الزر 1 اضف له $1 ولو ضغط الزر 2 أضف له 10$ ثم انقل هذه النتيجة من المتغير للبورت
ماشي انا شبة فاهمها
عاوز الكود
؟
عاوز حد يحربها لاني غلبت فبها

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

banna1980
:: مهندس متميز ::
تاريخ التسجيل: Apr 2010
الدولة: مصر - السويس
المشاركات: 403
نشاط [ banna1980 ]
قوة السمعة:
قديم 07-01-2013, 06:34 AM المشاركة 11   
افتراضي


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


ماجد عباس محمد
:: نائب المشرف العام
::
تاريخ التسجيل: Jun 2009
الدولة: القاهرة - مصر
المشاركات: 11,652
نشاط [ ماجد عباس محمد ]
قوة السمعة:
قديم 07-01-2013, 09:24 AM المشاركة 12   
افتراضي


المسالة بسيطة جدا
يمكنك تسمية متغير بأى اسم وليكن مثلا Result
لو ضغط الزر 1 اضف له $1 ولو ضغط الزر 2 أضف له 10$ ثم انقل هذه النتيجة من المتغير للبورت
معذرة حدث خطأ فى هذا الكود
الصواب أن تنشئ 2 متغير واحد هو السابق و الثانى تسميه مثلا Display
تضيف دوما 1 على المتغير Result و إن وصل 10 يعود للصفر
بعد ذلك
لو كان الزر الأول ضع النتيجة على 4 بت اليمين للمتغير Display
لو كان الزر الثانى اضف النتيجة على 4 بت اليسار للمتغير Display
ضع المتغير Display على البورت


الصورة الرمزية احمدمعاطى
احمدمعاطى
:: مهندس جيد ::
تاريخ التسجيل: Apr 2009
الدولة: مدينة الاسكندريه
المشاركات: 272
نشاط [ احمدمعاطى ]
قوة السمعة:
قديم 07-01-2013, 09:49 AM المشاركة 13   
افتراضي


اخى هل هذا ما تريده



الصورة الرمزية حيدر علاج حسن
حيدر علاج حسن
:: مشرف منتدى الهندسة الكهربائية ::
تاريخ التسجيل: Mar 2005
الدولة: IRAQ
المشاركات: 9,848
نشاط [ حيدر علاج حسن ]
قوة السمعة:
قديم 07-01-2013, 10:47 AM المشاركة 14   
افتراضي


تفضل ....
http://www.mediafire.com/?51w7ns22yj1c2dt


banna1980
:: مهندس متميز ::
تاريخ التسجيل: Apr 2010
الدولة: مصر - السويس
المشاركات: 403
نشاط [ banna1980 ]
قوة السمعة:
قديم 07-01-2013, 01:10 PM المشاركة 15   
افتراضي


استخدم ملفات اخينا حيدر مع الكود التالي

اظن هذا هو المطلوب

char matrix[]={63,6,91,79,102,109,125,7,127,111};
char i=0,j=0;
void main()
{trisa=0b11000000;trisb=0;portb=0;
while(1)
{
if(porta.f6==0){while(porta.f6==0){}
i++;
//if(i>9)i=0;
}
if(porta.f7==0){while(porta.f7==0){}
i++;
if(i>99)i=0;
}
porta.f0=0;porta.f1=1;
portb=matrix[i/10];
delay_ms(5);
portb=0;
porta.f0=1;porta.f1=0;
portb=matrix[i%10];
delay_ms(5);
portb=0;
}

}


mtm4anas
:: مهندس متواجد ::
تاريخ التسجيل: Sep 2008
المشاركات: 177
نشاط [ mtm4anas ]
قوة السمعة:
قديم 09-01-2013, 05:45 AM المشاركة 16   
افتراضي


استخدم ملفات اخينا حيدر مع الكود التالي

اظن هذا هو المطلوب

char matrix[]={63,6,91,79,102,109,125,7,127,111};
char i=0,j=0;
void main()
{trisa=0b11000000;trisb=0;portb=0;
while(1)
{
if(porta.f6==0){while(porta.f6==0){}
i++;
//if(i>9)i=0;
}
if(porta.f7==0){while(porta.f7==0){}
i++;
if(i>99)i=0;
}
porta.f0=0;porta.f1=1;
portb=matrix[i/10];
delay_ms(5);
portb=0;
porta.f0=1;porta.f1=0;
portb=matrix[i%10];
delay_ms(5);
portb=0;
}

}
----------------

لا يا اخي مش هوة دا المطلوب
هوة قريب من هذا الكود
------
الفكرة الى انت عاملها قريبة جدا
انت عامل انو رقم اي شاشة بيذيد 1 على الرقم الى متخزن عليها قبل كدا
لا انا عاوز الرقم الى على اي شاشة يذيد 1 على الرقم الي على اي شاشة
----------
بمعني انو مثلا على الشاشة الاولي 5 والثانية 8
لو دوست على سويتش 7 الشاشة الى عليها 5 تبقا 9
ولو دوست على السويتش 8 الشاشة الى عليها 8 تبقا 1
-------
ولو دوست على السويتش 7 الشاشة كان عليها 9 تبقا عليها 2
-------
الفكرة انو لازم اشوف الشاشتين واخد اعلي قيمة عليهم واذود عليها واحد
واعرض الناتج على الشاشة الى متوصلة على السويتش الى تم الضغط علية
-------



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