كود وتعليمات المانشيستر لإرسال وإستقبال البيانات لاسلكيا
أولا كود الإرسال
=========
نقوم أولا بتحديد أطراف الإرسال والإستقبال ، وبما أننا نريد أن نجعل المتحكم الأول يرسل فإننا هنا بحاجة لتحديد طرف الإرسال ولسنا بحاجة فى تحديد طرف الإستقبال فى هذا المتحكم بل سنحتاج ذلك فى المتحكم الثانى
فكرة البرنامج
نقوم بتعيين طرف الإرسال ثم ثقوم بإرسال قيمة بالبايت
إنتهى
لكن إذا أردنا إرسال مجموعة خانات لرقم كبير مثل
123456
فإننا بحاجة لإرسالها على عدة مراحل بتجزئتها وبرمجة المستقبل على إعادة تجميعها ثانيا وأذكر أنى قد ذكرت طريقة التجميع والتجزئة فى موضوعى ( هنا طريقة ربط المتحكمات ) ولكننا هنا نريد إرسال قيمة مفتاح تم ضغطه إلى المتحكم التالى سواء عن طريق الكيباد أو عدة ضواغط وقد اخترت لكم أبسط الطرق كى يكون البرنامج مقتصرا على جزئية الإرسال والإستقبال وخالى من التفرعات والإضافات
الكود الكامل للمتحكم المرسل
-- -- -- -- -- -- -- -- -- --
كود:
// Manchester module connections
sbit MANTXPIN at Ra1_bit;
sbit MANTXPIN_Direction at TRISa1_bit;
// End Manchester module connections
char s1= 0;
void main() {
Man_Send_Init(); // Initialize transmitter
while (1) { // start loop
wleed1:
switch(portb){
case 1:{ s1=1;goto wleed; } break;
case 2:{ s1=2;goto wleed; } break;
case 4:{ s1=3;goto wleed; } break;
case 8:{ s1=4;goto wleed; } break;
case 16:{ s1=5;goto wleed; } break;
case 32:{ s1=6;goto wleed; } break;
case 128:{s1=128;Delay_ms(200); goto wleed;} break;
}
goto wleed1;
wleed:
Man_Send(s1); // Send byte
Delay_ms(200);
}
}
هذا هو برنامج المتحكم الراسل ، وقبل أن نتناول البرنامج الخاص بالمتحكم المستقبل نأتى لشرح هذه التعليمات
يتبع ،