اخى العزيز حسن
شكرا على الاهتمام
اريد ان اوضح لك بعض النقاط
1- انا استخدم مايكرو كنتروللر من نوع 16f877a واريد ان استخدمه فى الارسال وان استخدم واحد اخر مثله فى الاستقبال
2- انا استخدم كارتة مشاريع مايكروكنتروللر جاهزة
اسمها هو mcd2
http://ram-e-shop.com/mobiletest/cat...oducts_id=1919
وهذه الدائرة بها مجموعة من الليدات على بورت c
كما ان بها عدد من المفاتيح على بورت b
فهل يمكنك يا اخى العزيز ان تقوم بعمل تعديل على برنامجك لكى يتوافق مع طلبى
اى ان تقوم بتغيير نوع المتحكم وارقام البورتات
وشكرا
|
السلام عليكم
اخي العزيز يمكنك التعديل على البرنامج ولكي تضبط مفاتيح يمكنك التعديل على ملف الارسال transmitter
كود:
sbit sw1 at RC0_bit;
sbit sw2 at RC1_bit;
sbit sw3 at RC2_bit;
sbit sw4 at RC3_bit;
sbit sw5 at RC4_bit;
sbit sw6 at RC5_bit;
sbit sw7 at RC6_bit;
sbit sw8 at RC7_bit;
sbit sw9 at RD0_bit;
sbit sw10 at RD1_bit;
تلاحظ هذه التعريفات على سويتج يمكنك التعديل مثلا على البورت b فما عليك سوى تغير حرف C الى B طبعا الحروف تعني البورت
بالنسبه لاتجاه direction انا لم اشير الى الاتجاه طالما انا استخدمت كل بورت عباره عن سويتجات ولهذه تجدني كتب لك
كود:
trisc=0xFF;
trisd=0xFF;
tris هو ريجيستر بيتحكم بادخلات واخراجات يعني البورت كل بن فيه ممكن جعله دخل او خرج عن طريق وضع قيمه لهذا البن فأذا وضعت 1 يعني هذا بن دخل واذا وضعت 0 يعني خرج
trisb.f3=1 يعني اجعل طرف رقم 3 من بورت B دخل
trisb.f1=0 يعني اجعل طرف رقم 1 من بورت B خرج
trisb=255 يعني اجعل كل الاطراف بورت B دخل
trisb=0 يعني اجعل كل الاطراف بورت B خرج
اما اذا كتبت مثلا
trisb=51 or trisb=0x33 or trisb=0b00110011
طبعا انا كتبتلك ثلاث طرق لكتابه الرقم
51 بالنظام عشري
0x33 بالنظام سادس عشر او hex ودائما بيبدا بــ 0x
0b00110011 بالنظام الباينري يعني اما 0 او 1 ودائما يبدأ بــ 0b
معناها
اجعل طرف رقم 0 من بورت b دخل
اجعل طرف رقم 1 من بورت b دخل
اجعل طرف رقم 2 من بورت b خرج
اجعل طرف رقم 3 من بورت b خرج
اجعل طرف رقم 4 من بورت b دخل
اجعل طرف رقم 5 من بورت b دخل
اجعل طرف رقم 6 من بورت b خرج
اجعل طرف رقم 7 من بورت b خرج
=============================================
اما كود الاستقبال
كود:
sbit led1 at RC0_bit;
sbit led2 at RC1_bit;
sbit led3 at RC2_bit;
sbit led4 at RC3_bit;
sbit led5 at RC4_bit;
sbit led6 at RC5_bit;
sbit led7 at RC6_bit;
sbit led8 at RC7_bit;
sbit led9 at Ra0_bit;
sbit led10 at RA1_bit;
انا وضعت ليدات على بورت c يمكنك التعديل بنفس طريقه
على فكره
sbit word1
at RC1_bit
ماذا يعني ذلك
بالنسبه للون احمر هذه ثوابت لغه مايكروسي وهي بتخبر مايكروسي بان word1 هي نفسها على بن والموجود في بورت فلاني يعني مثلا بن طرف 1 على portc
اما word1 هي اي تعبير انت تكتبه بلغه الي تفهمها لكي يصبح برنامج سهل التعامل معه فتلاحظ انا كتبت led or sw
ملاحظه يمكنك تحديد الاتجاه اي بن من اي بورت كتالي
كود:
sbit RS_Direction at TRISB4_bit;
وهذه يعني جعل RS_Direction هي نفسها TRISB4_bit
4 رقم بن من بورت B
وفي قائمه الرئيسيه عليك بتحديد اتجاه هذا البن هل هو دخل ام خرج
يعني بتكتب
RS_Direction=1; يعني جعلته دخل ومايكروسي اوتوماتيكيا بيفهم ان TRISB4_bit صار دخل (( يعني كلمن يفهم لغته ))
واذا وضعت
RS_Direction=0; يعني جعلته خرج ومايكروسي اوتوماتيكيا بيفهم ان TRISB4_bit صار خرج
================================================