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

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

الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,688
نشاط [ حسن هادي محمود ]
قوة السمعة:135
قديم 27-08-2013, 01:48 AM المشاركة 1   
افتراضي كيفيه زياده عدد اخراج مايكروكنترولر Twitter FaceBook Google+



سلام عليكم
اليكم طريقة زيادة عدد الاخراج وكيفية تحكم باي بت بسهولة
في مثال المرفق برنامج مكتوب بلغة مايكروسي استخدمت اسي رقمها 74hc595
وهذه اسي تعمل كتالي
تمثل ds البيانات وهية اما صفر او واحد
SH_CP: البيانات يتم خزنها داخل اسي بعد عمل تزحيف لها ولكن لاتظهر على الاخراج
ST_CP اظهار البيانات على الاطراف اسي
يتم ارسال البيانات من اخير الى الاول لتظهر بشكل صحيح اي ان الاخير يصبح اولا وهكذا وسبب في ذلك هو ان اسي تعمل تشفيت للبيانات
Q7'=Q7
نعطي نبضة اي
SH_ CP=0; SH_CP=1;
ولاظهار البيانات نعطي نبضة
ST-CP=0; ST-CP=1;
والان نرجع للمثال
تمثل نضغط على الارقام من 0 الى 7 لتشغيل اي حمل وحمل هنا هو led بعدها اذا ضغطنا على رمز = يعني انتر يتم تشغيل جزء مراد تشغيلة واذا ضغطنا على رمز on/c اطفاء جزء مراد اطفاءة
وبنفس طريقة ممكن اضافة اسي اخر ليزيد عدد الاخراج الى 16 او مضاعفات 8 وبالطبع
يتم ربط اسي جديد بشكل التالي
Ds مع Q7'
SH_CP لاسي الاول مع SH_CP مع اسي الثاني وكذلك
ST_CP لاسي الاول مع ST_CP مع اسي الثاني
اما reset لاسي جديد فيتم ربطه مع البطارية
ملاحظة لاطفاء اسي نعطي نبضة التالية
Reset=0; reset=1;
Store=0; store=1;
طبعا بعد تعريف Reset و Store كما موضح بالمثال لاحظ تعريفات المتغيرات في بداية البرنامج
نستنتج من هذه الاسي التالي
عدد الادخال =3 وعدد الاخراج هو nx8 وn هو عدد الاسيات
ملاحظة
هناك اسي مشابة الاسي 74hc595 وهو 74hc165 وهو مخصص لزيادة عدد الإدخالات
اي هنا عدد الإدخالات = nx8 وعدد الاخراج =3 فقط
كود:
#define shift                   porta.f0
#define dir_shift               trisa.f0
#define ds                      porta.f1
#define dir_ds                  trisa.f1
#define store                   porta.f2
#define dir_store              trisa.f2
#define reset                   porta.f3
#define dir_reset               trisa.f3
#define is                      ==
#define input                   1
#define output                  0

//=============================================================
char my_data[8], x=0 , kp=0 , num=0;
char keypadPort at PORTb;
void keypad1();
void ic_74hc595();

//==============================================================================
void pic_init()
{
Keypad_Init();
dir_shift = dir_ds=dir_reset=dir_store=output;
store=shift=reset=1;
ds=0;
}

void main()
{
pic_init();
while(1){
         keypad1();
         ic_74hc595();
        }
}
void keypad1()
{
 kp=0;num=22;
while(1){
         while( kp is 0) kp= Keypad_Key_Click();
         if ( kp is 1) num=7;
         else if(kp is 2) num=4;
         else if(kp is 3) num=1;
         else if(kp is 4) kp=20;
         else if(kp is 5) num=8;
         else if(kp is 6) num=5;
         else if(kp is 7) num=2;
         else if(kp is 8) num=0;
         else if(kp is 9) num=9;
         else if(kp is 10) num=6;
         else if(kp is 11) num=3;
         else if(kp is 12) kp=12;
         else if(kp is 16) kp=16;
         else  kp=255;
         if( kp !=255){
                        if( kp is 12) {my_data[num]=1;return;}
                        if( kp is 20) {my_data[num]=0;return;}
                        if( kp is 16) { for(x=0;x<8;x++)my_data[x]=0;
                                        return;
                                        }
                      }
          kp=0;
         }

 }
 void ic_74hc595()
 {
 for(x=7;x>=0 && x!=255;x--)
 
             {
             if(my_data[x] is 1)    ds=1;
             else                   ds=0;
             shift=0;               shift=1;
             }
 store=0;                           store=1;
 return;
 }
ولتحميل مثال
http://arabsh.com/files/0d3e474e64f6...اخراج-rar.html


التعديل الأخير تم بواسطة : حسن هادي محمود بتاريخ 27-08-2013 الساعة 01:55 AM
اعلانات

najee22
:: مهندس متواجد ::
تاريخ التسجيل: Jul 2013
المشاركات: 127
نشاط [ najee22 ]
قوة السمعة:0
قديم 27-08-2013, 08:46 AM المشاركة 2   
افتراضي


مشكورررر اخي على المعلومه الروعه

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

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

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

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


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

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