السلام عليكم اخواتى الاعزاء اعضاء المنتدى ارجو منكم مساعدتى اذا امكن
موضوعى هو على برنامج على الميكرو سى وسأضع الكود هنا ولدى فيه نقص اتمنى ان يستطيع احدكم ان يساعدنى فى اصلاحه وله جزيل الشكر
البرنامج اللى عايز اعملو ان هو عندى جهاز حيقرأ بطاقه ليها
معين ويبعث هذه الهوية id
الى الميكروكننترولر pic16f877A
تفاصيل برنامجى هى :
اولا هل ضرورى اعمل Initialize
ولو هعمل لمين بالضبط وازاى ؟؟
1 عندى swith حالتين on , off
2 فى حاله ال ONسيتنظر ثانيه ثم يقرأ البطاقه اللى حمرره على جهاز هو يبعت كود البطاقة للميكرو
3 الميكرو يخزن رقم البطاقه فى ذاكرتو ك متغير يعنى
ودى خطوة مش عرفت اعملها يعنى ازاى اخزن فى ذاكرة الميكرو؟؟؟
4 يولع لمبه خضراء على احدى ارجل الميكرو
5 ينتظر ثانيه
6 يطفى اللمبه اللى ولعتها فى خطوة اربعه
7 يعود الى البدايه يعنى حاله ال swich off
8 ينتظر لقرأه بطاقه
9 يقارن البطاقه اللى قرأها الان بالبطاقه اللى خزنتها فى الخطوة الثالثه
10 يشوف هل البطاقه مخزنة فى ذاكرة الميكرو اما لا لو مخزنة يولع لمبه خضراء
11 ينتظر ثانيه
12 يطفى اللمبه الخضراء
13 يعود الى البدايه
14 من المقارنة فى الخطوة التاسعه لو البطاقه غير مخزنة فى ذاكرة الميكرو يولع لمبه حمراء
15 ينتظر ثانيه
16 يطفى اللمبه الحمراء
16 يعود الى البدايه
وهذا هو الكود
void main() {
loop: // Endless loop
char ,unsigned short int x,
char ,unsigned short int y,
TRISA=0x00; // porta as an output
loop1 // Endless loop
switch (i) {
case 0: Hi(); break;
Delay_ms(100); // Wait for the reader to receive the tag id code,
Delay_ms(100);
porta.fo=1; // Green light on
go to loop
case 1: Lo(); break;
Delay_ms(100);
if (y==x) {
porta.f0=1; // Green light on
Delay_ms(100);
porta.f0=0; // Green light off
goto loop;
}
else porta.f0=1; // Red light on
Delay_ms(100);
porta.f1=0; // Red light off
goto loop;
}
}
}
وهذا ملف الكود
http://www.4shared.com/zip/K2zlJ6ef/LED.html?