السلام عليكم
الهاردوير
في بورده الرئيسي CPU تجد
1- سوكت O/P EX لربط سلسله 74hc595 ملاحظه وضعت مقاومه في الاطراف الثلاثه للمتكامله 74hc595 مقدارها 10k لغرض حمايه البيك من ربط الخاطئ او توصيل الاطراف الى الارضي سواء اثناء الربط او عند تلف 74hc595
2- سوكت I/P EX لربط سلسله 74hc165 طبعا
هنا انا نسيت ربط مقاومات لغرض حمايه البيك
3- سوكت SPI هنا أستخدمته للشاشه مع الاضاءه مستمره للشاشه

==========================================
بالنسبه للبرمجه
يجب اضافه هذه مكتبات الى البرنامج كي يعمل
1- 74hc165.mcl
2- 74hc595.mcl
3- p18_w3Lcd-4.mcl
عن طريق project ==> add file to project
========================================
بالنسبه للشاشه مشروحه في احد مواضيع
اما
هذا كود يعني تعريف مكتبه مخارج ومداخل
كود:
init_74hc165(max_input);
كود:
ic_74hc595_init(max_output)
ملاحظه max_output و max_input هو عدد ايسيات موجوده في دائره
مثلا انا أستخدمت 74hc595 عدد 2 اذن max_output=2
====================================
اما هذا الكود للمكتبه 74hc165
كود:
check_switch_74hc165(switch_input);
طبعا طالما اريد التاكد من سويجات بأستمرار وضعتها في داله الانتربت كل 25ms
طبعا داله check_switch_74hc165 محتاجه مني مصفوفه عدد عناصرها هي عدد ايسيات او max_output مثلا عدد مداخل 16 يعني عدد ايسيات 74hc165 هو 2 معناها مصفوفه تحتاج الى عنصرين فقط لان كل بت يمثل دخل
وبالطبع ينطبق الحال عل مخارج
وهنا نستخدم هذه داله لتحكم بمخارج
كود:
ic_74hc595( char pin_,char states_ , char *data_ic_74hc595 , char *data_ic_74hc595_display )
واضحه داله تحتاج منك طرف الي تريد تحكم به ومن ثم حالته هل هو فعال ام لا
ومن ثم مصفوفه لخزن قيمه مخارج واخرى لغرض عرض قيمتها على الشاشه
طبعا لانستطيع أستخدام مصفوفه data_ic_74hc595 في عرضها على شاشه لكون البيانات تم تشفيتها للتلائم مع هاردوير
طبعا هنا نتعامل مع 0 كأعطاء اشاره ON للمخرج اما 1 هو يعني OFF
====================================
تعاريف الارجل المخصصه لل 74hc595 , 74hc165 هي ثابته لكون نتعامل مع بورد مطبوع وجاهز
كود:
//******************************************************//
sbit clk_pin at LATC1_bit;// for 74hc165
sbit SH_pin at LATC0_bit;
sbit so_pin at RA4_bit;
sbit clk_pin_dir at TRISC1_bit; // for 74hc165
sbit SH_pin_dir at TRISC0_bit;
sbit so_pin_dir at TRISA4_bit;
//**************init 74hc595**********//
sbit ds at LATE2_bit;
sbit sh_cp at LATE0_bit;
sbit st_cp at LATE1_bit;
sbit ds_dir at TRISE2_bit;
sbit sh_cp_dir at TRISE0_bit;
sbit st_cp_dir at TRISE1_bit;
سؤال هل يمكنني تغير الاطراف ؟ نعم لان بورد فيه عده الاطراف يمكن أستعمالها
مثلا يمكن ربط شاشه في سوكت CH