قسم الميكروكنترولر والروبوت ودوائر الاتصال بالحاسب الالي قسم المتحكمات الـ microcontroller و المعالجات microprocessor و التحكم الرقمي بالكمبيوتر CNC والانظمة الآلية والروبوت Robots

أدوات الموضوع

مشتاق الله
:: مهندس متميز ::
تاريخ التسجيل: Oct 2015
المشاركات: 620
نشاط [ مشتاق الله ]
قوة السمعة:0
قديم 10-03-2016, 05:28 PM المشاركة 1   
x4 مكتبات ميكرو سي - (port Expander)- فريق القرية Twitter FaceBook Google+



بسم الله الرحمن الرحيم

السلام عليكم و رحمة الله و بركاته

اخوتى فى القرية من معرفتنا للميكرو نجد ان برمجته اصعب من برمجة
الحاسب و ذلك لما يتصف بـ Limited Resources
وهى انه محدود فى :
1- عدد ارجله
2-حجم ذاكراته
3-سرعته
4-تغذيته الكهربية (اعتماده على بطاريات محدودة)

و هذه هى الصعوبات التى يجتهد المصممين على التعامل معها و حلها .


فلو نظرنا لمشكلة الارجل عندما تحتاج عدد اكبر من ارجل الميكرو , فاننا
نلجأ اما تغيير الميكرو او استخدام اسلوب Port Expander و هو يعنى
استخدام بعض ارجل الميكرو مع IC اخر لزيادة عدد الارجل و يستخدم
IC=
MCP23S17 و لانه لا يتوفر بسهولة فى بلادنا .

لذلك بفضل الله و توفيقه اعاننى الله على تصميم برنامج لتحويل
عدد 5 ارجل
من الميكرو الى ==> 24 رجل اى 3 بورت , باستخدام IC=74595 و هو رخيص و متوفر .
و بفضل الله يتم التحكم فى اى رجل
على حده .
و بفضل الله اصبح شكل البرنامج مثل المكتبات الجاهزة للميكروسي.

ولكن البرنامج للخرج فقط , فارجو من الله ان يعيننى او اى اخ لتصميم اخر للادخال
للميكرو .

اسال الله الذى هدانى له ان ينفعكم به و ينفعنى
ولو لديكم سؤال ان شاء الله سارد عليه

الميكرو : AVR ATMEGA8 or else

البرنامج project عبارة عن ملفين احدهما Expander.c و الاخر ملف expand_header.h
و يتم جمعهما فى مشروع واحد واستخدام امر
كود:
#include <expand_header.h>


الملف الاول :
Expander.c

كود:
  /* Project Name :
                  Expander ports by 74595
    *License :
               free for all purposes
    *Developer :
                Qaria_ARAB_Team
    *Date :
          2016
    *Version :
             ver 1.0
  */
 sbit EXP_data_pin   at portb0_bit   ;
 sbit EXP_clk_pin    at portb1_bit   ;
 sbit IC1_Latch      at portb2_bit   ;
 sbit IC2_Latch      at portb3_bit   ;
 sbit IC3_Latch      at portb4_bit   ;
 
 sbit EXP_data_DIR   at DDB0_BIT     ;
 sbit EXP_clk_DIR    at DDB1_BIT     ;
 sbit IC1_Latch_DIR  at DDB2_BIT     ;
 sbit IC2_Latch_DIR  at DDB3_BIT     ;
 sbit IC3_Latch_DIR  at DDB4_BIT     ;
 
#include <Expand_header.h>

void main() {
  EXP_INIT();
  while(1){
  Exp_send_byte(1,0x12);// Exp_send_byte(IC_id , byte_sent)

           }
}
الملف الثانى : Expand_header.h

كود:
#ifndef expand_h
#define expand_h

void EXP_INIT(){
 EXP_data_DIR    = 1 ;  EXP_data_pin =0;
 EXP_clk_DIR     = 1 ;  EXP_clk_pin  =0;
 IC1_Latch_DIR   = 1 ;  IC1_Latch    =0;
 IC2_Latch_DIR   = 1 ;  IC1_Latch    =0;
 IC3_Latch_DIR   = 1 ;  IC1_Latch    =0;
}

void EXP_CLK() {
      EXP_clk_pin = 1 ;
      delay_ms(1);
      EXP_clk_pin = 0 ;
      delay_ms(1);
           }

void EXP_send_byte(unsigned short IC_id ,unsigned short byte){
short i ;
for (i=7;i>=0;i--){
       if(byte & 0b10000000){
                EXP_data_pin = 1;
                EXP_CLK();
                byte <<= 1 ;
            }
       else {
               EXP_data_pin = 0;
               EXP_CLK();
               byte <<= 1 ;
            }
     }

     switch(IC_id){
            case(1):{IC1_Latch = 1 ;
                     delay_ms(1);
                     IC1_Latch = 0 ;break;}
            case(2):{IC2_Latch = 1 ;
                     delay_ms(1);
                     IC2_Latch = 0 ;break;}
            case(3):{IC3_Latch = 1 ;
                     delay_ms(1);
                     IC3_Latch = 0 ;break;}

                 }
  }

#endif

دائرة التوصيل بروتيوس :



و ما توفيقي الا بالله
الحمد لله الذى بنعمته تتم الصالحات

اللهم اغفر لنا ان جعلنا القران اهون ما نقرا
اللهم ردنا اليه و اجعله ربيع قلوبنا
و دليل لنا



احصائية الشكر والاعجاب - 2 شكراً, 0 عدم اعجاب, 2 اعجاب
شكراً عبدالله حجازى, gheas ( شكر العضو على هذه المشاركة )
اعجاب عبدالله حجازى, gheas ( أعجبته المشاركة )
اعلانات

الصورة الرمزية Semmoor
Semmoor
:: مهندس متميز ::
تاريخ التسجيل: Oct 2011
المشاركات: 300
نشاط [ Semmoor ]
قوة السمعة:0
قديم 10-03-2016, 06:27 PM المشاركة 2   
افتراضي


استمر بارك الله فيك

اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )
  

الصورة الرمزية عبدالله حجازى
عبدالله حجازى
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2011
الدولة: مصر .. محافظة دمياط
المشاركات: 1,688
نشاط [ عبدالله حجازى ]
قوة السمعة:111
قديم 10-03-2016, 11:45 PM المشاركة 3   
افتراضي اللهم انفعنا بما علمتنا وعلمنا ما ينفعنا وزدنا علما


بارك الله فيك استمر اخى متابعين معك ..

جزاك الله خيرا .. ونفع بك العباد ....


الصورة الرمزية gheas
gheas
:: مهندس متواجد ::
تاريخ التسجيل: May 2005
الدولة: https://t.me/pump_upp
المشاركات: 128
نشاط [ gheas ]
قوة السمعة:0
قديم 11-03-2016, 11:23 AM المشاركة 4   
افتراضي


استمر بارك الله فيك


magdy_3
:: مهندس متميز ::
تاريخ التسجيل: Aug 2006
الدولة: Philippines
المشاركات: 343
نشاط [ magdy_3 ]
قوة السمعة:0
قديم 12-03-2016, 08:27 AM المشاركة 5   
افتراضي


السلام عليكم
شكرا اخى على المجهود
وده مثال لزيادة عدد المداخل والمخارج للبيك
حيث بست اطراف فقط تستطيع ان تتحكم فى 56 دخل و خرج قابلة للزياردة
http://www.up-00.com/?r6Xo
لم ارسل كود الميكروسى حبيت من تعجبه الفكرة ان يحاول ان يفكر فى الكود
وبعده سارسله واشرحه


التعديل الأخير تم بواسطة : magdy_3 بتاريخ 12-03-2016 الساعة 08:33 AM
إضافة رد

العلامات المرجعية

«     الموضوع السابق       الموضوع التالي    »
أدوات الموضوع

الانتقال السريع إلى


الساعة معتمدة بتوقيت جرينتش +3 الساعة الآن: 08:30 AM
موقع القرية الالكترونية غير مسؤول عن أي اتفاق تجاري أو تعاوني بين الأعضاء
فعلى كل شخص تحمل مسئولية نفسه إتجاه مايقوم به من بيع وشراء وإتفاق وأعطاء معلومات موقعه
التعليقات المنشورة لا تعبر عن رأي موقع القرية الالكترونية ولايتحمل الموقع أي مسؤولية قانونية حيال ذلك (ويتحمل كاتبها مسؤولية النشر)

Powered by vBulletin® Version 3.8.6, Copyright ©2000 - 2025