أخي العزيز من غير ما تقرأ الشرح
انظر الصورة راح تشرح لك
راح اعطيك شرح مبسط
الطرفين يكونان في مستوى عالي في بادئ الأمر قبل ارسال اي بيانات
سينخفض الطرفين
لكن المهم عندك الآن هو clock راقبه
راح ينخفض معلن البدء بعملية الارسال
انتظر حتى يرتفع مرة اخرى
الآن كلما انخفض اقرأ طرف الداتا ان كان عالي يعني واحد وان كان منخفض يعني صفر وهكذا حتى تنتهي البتات وهي تسعة ثم تأتي نبضة أخيرة معلنة انتهاء العملية
يكون فيها طرف الداتا مرتفع
|
انا متشكر جدا لمساعدتك لى
الحمد للة انا لقيت موضوع على موقع القرية موجود
بيتكلم عن كيفية ربط الكيبورد بالميكروكنترولر
وانا فهمت شوية منة ولكن انا عاوز اتاكد اذا كان فهمى صحيح ام خطا
انا قمت بكتابة كود بسيط وعاوز حضرتك تشوف هل الكود دة صح ولا لا
هذا الكود فائدتة هى تنفيذ امر معين ( اى امر ) عند الضغط على حرف z فى الكيبورد (وطبعا لو نفع انشاء اللة هعمل كدة فى جميع ازرار الكيبورد
هذا هو الكود ياريت حضرتك تشوفة وتقولى هل فكرتة صحيحة ولا لا
كود:
sbit PS2_Data at RD0_bit;
sbit PS2_Clock at RD1_bit;
sbit PS2_Data_Direction at TRISD0_bit;
sbit PS2_Clock_Direction at TRISD1_bit;
unsigned short keydata = 0, special = 0, down = 0;
void main() {
Ps2_Config();
while(1){
Ps2_Key_Read(&keydata, &special, &down);
if(down==1){down=0;
if(special==1){special=0;
if(keydata==90){اى امر ; );}
}
}
طبعا 90 دة كود حرف ال z بال Decimal