السلام عليكم
مرحبا بكم من جديد ومع الشرح للبرنامج الخاص بالإرسال
بداية البرنامج نجد هذه التعليمات
كود:
sbit MANTXPIN at Ra1_bit;
sbit MANTXPIN_Direction at TRISa1_bit;
قمنا بتحديد الطرف
RA1
كطرف خرج للمانشيستر كود
ونفس الصيغة عند تعيين طرف كمستقبل ولكن نلاحظ أن الرمز التالى
TX
هى اختصار للإرسال
-------------------------------
اجعل
s1
كمتغير من النوع بايت وقم بمسحه وذلك بإعطاءه قيمة صفر
----------------------------------
بداية البرنامج الرئيسى
---------------------------------
سنستخدم المانشيستر الآن فى عملية الإرسال
--------------------------------
كود:
while (1) {
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);
Delay_ms(200);
}
}
هذه المجموعة خاصة بمراقبة المنفذ
portb
لمعرفة أى مفتاح تم ضغطه وفى المقابل يتم وضع قيمة رقم يساوى الرقم المكتوب على المفتاح والذى نريد إرساله فى حالة الضغط وسيتم تخزينه فى المتغير
S1
والمهم الآن هى التعليمة
وهى تعنى إرسال القيمة الموجودة بداخل المتغير
s1
وبذلك نكون قد أرسلنا القيمة بالبايت
وتتم عملية الإرسال والإستقبال عن طريق نبضة صاعدة للرقم واحد ونبضة هابطة للرقم صفر وتتم قراءة البايت الذى يحتوى على ثمانية بتات
فإذا أردنا إرسال القيمة 35 فهى تكافئ هذا الرقم فى النظام الثنائى
100011
فإن المانشيستر كود يقوم بإرسال 3 بتات خاصة بعملية البدأ ليبدأ المتحكم المستقبل بتوقيت عملية بدأ الإستقبال فيتم احتساب الزمن بمجرد هذه الثلاث بتات قبل إرسال باقى البايت المطلوب والذى يحتوى على القيمة المراد إرسالها
كما فى الشكل التالى
حيث أن كل بت يستغرق زمن 2 ميللى ثانية أى 2000 مايكرو ثانية
أى أن الرقم الواحد الذى لايزيد عن 255 يتم إرساله فى زمن 22 ميللى
ثانية فقط
نستطيع وضع عنوان قبل القيمة المطلوبة ببساطة وبرمجة المتحكم الآخر أن لايستجيب إلا بعد وصول هذه القيمة الخاصة بالعنوان
نلاحظ أننا جعلنا البرنامج بعد عملية الإرسال أن يعود لبداية مراقبة المفاتيح من جديد وعند كل ضغطة مفتاح يأتى للسطر
wleed
وبعدها تتم عملية الإرسال ثم يتأخر لفترة زمنية بالتعليمة التالية
وفائدتها الإنتظار قليلا حتى يتم رفع اليد وتحرير المفتاح الضاغط
وإلى اللقاء مع برنامج المتحكم المستقبل إن شاء الله
والسلام عليكم ورحمة الله وبركاته