مساء الخير . . .
أولا أحب أعرفكم بنفسي
أنا مهندس / فادي عاطف
طالب بكلية هندسة جامعة المنصوره قسم حاسبات و نظم الفرقة الاولي
أما بعد ،
أقدم خالص تقديري و أحترامي و شكري للباشمهندس / أحمد
بصراحة أنا كنت سمعت و قرأت كثير عن برمجه البك و لكن باستخدام الاسمبلي و طبعا كانت صعبة جدا مقارنه بلغة MikroC
و أنا عملت تطبيق صغير كده علي اللي فهمته من الدوره
و هو اني أتحكم في عدد 2 سيفين سيجمانت بأستخدام 6 رجول فقط من البك
و بصراحة الموضوع ده تقريبا أخد مني اليوم كله النهارده تفكير لأن كان بيقابلني مشكلات كتير و كنت بغير أسلوب التفكير في الحل أكتر من مره
و لكن الحمد لله لقد وصلت الي الحل أخيرا
و ببساطه البرنامج وظيفته أنه يعمل كعداد من 00 الي 99
و الحل الذي توصلت ليه كان كما يلي :
void main(){int x;int y;int z;
TRISB=0;TRISA=0;
loop:
x=0;z=0;
for(z=0;z<=9;z++){
for(x=0;x<=9;x++){
for(y=0;y<=50;y++){
PORTB=x;PORTA.F2=0;PORTA.F3=1;delay_ms(5);
PORTB=z;PORTA.F2=1;PORTA.F3=0;delay_ms(5);
}}}
goto loop
}
و طبعا خرج الرجول مش هادخلهم ع السيفين سيجمانت علي طول و لكن :
B0,B1,B2,B3
هادخلهم علي دخل أيسي 74LS47
و الخروج بتاعت الايسي هاخلها علي السبع أطراف بتاعت السيفين سيجمانت الاولي و المناظر ليها في التانيه يعني عامل شورت مابين كل سيجمانت و المناظر ليها
يتبقي الطرفين بتوع الـ VCC بتاع الاتنين سيفين سيجمانت
طبعا هاحط مقاومه علي كل واحده الاول واحد كيلو أوم علشان السفن سيجمانت ماتتحرقش و بعدين هاخد واحده الي رجل البك A2 و التانيه الي الرجل A3
بس كده . . .
ياريت أكون أفدت و لو بشيء ضئيل بعرضي لتجربتي
و لو عاوزين أصور الدايره اللي أنا عملتها و أرفعها أوك . . . !
أخيرا . . . لو حد عنده حل لعمل عداد من 00 الي 99 بطريقه أبسط و بكود أصغر لا يتردد في وضع الحل . . .
ســــــــــــــــلام
أخوكم الصغير ؛
مهــــــ فادي ــــــنـــــــ عاطف ـــــــدس