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

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

hamadalla31
:: مهندس متميز ::
تاريخ التسجيل: Mar 2009
المشاركات: 587
نشاط [ hamadalla31 ]
قوة السمعة:0
قديم 06-03-2014, 02:37 PM المشاركة 1   
x6 زيادة عدد مخارج الميكروكنتروللر بالميكروسي Twitter FaceBook Google+



الأخوة اعضاء المنتدي الكرام
السلام عليكم ورحمة لله وبركاته
من تجارب الأخوة الكرام زيادة عدد مخارج الكونتروللر وقد استفدت من هذا الكود الا اني اطمع في شرح وافي لكل اجزاءه وأطمع ان ازيد عدد المخارج الي 32 مخرج بزياده المتكاملة 4514 هذا شكل الدائرة علي بروتوس


وهذا رابط للكود بالبروتوس كامل

اخي الكريم حسن هادي محمود
اود فهم هذه الجزئية في الكود ومععرفة القيمة 60 كيف تم حسابها
كود:
 while(1)
  {
   for(x=0;x<60;x++) display_BCD();
   // clear "//" formthe next line to show the counter > each 7seg count from 0 to 9
  // for(x=0;x<16;x++){num[x]++;  if(num[x]==10)num[x]=0;}

  }


وهذا الكود كاملا وادعو لأخيكم كاتب الكود

كود:
const char segment[] = {63, 6, 91,79,102, 109, 125, 7,127, 111};
char num[16];
int count;
char x,mm;

void display_BCD()
{
for(mm=0;mm<16;mm++)
                    {
                    porta=mm;              // to control the commons of 7segments.
                    portb=~segment[num[mm]];
                    delay_ms(1);
                    }
}
void display ()
{
num[0]=0;
num[1]=1;
num[2]=2;
num[3]=3;
num[4]=4;
num[5]=5;
num[6]=6;
num[7]=7;
num[8]=8;
num[9]=9;
num[10]=1;
num[11]=2;
num[12]=3;
num[13]=4;
num[14]=5;
num[15]=6;
num[16]=7;
}

void main ()
{
portb=0xff;
trisb=0;
trisa=0;
display();

  while(1)
  {
   for(x=0;x<60;x++) display_BCD();
   // clear "//" formthe next line to show the counter > each 7seg count from 0 to 9
  // for(x=0;x<16;x++){num[x]++;  if(num[x]==10)num[x]=0;}

  }
}

اشكر كل من مد يد العون لنا وجزاكم الله بكل خير

اعلانات

الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,688
نشاط [ حسن هادي محمود ]
قوة السمعة:136
قديم 07-03-2014, 01:57 AM المشاركة 2   
افتراضي


الأخوة اعضاء المنتدي الكرام
السلام عليكم ورحمة لله وبركاته
من تجارب الأخوة الكرام زيادة عدد مخارج الكونتروللر وقد استفدت من هذا الكود الا اني اطمع في شرح وافي لكل اجزاءه وأطمع ان ازيد عدد المخارج الي 32 مخرج بزياده المتكاملة 4514 هذا شكل الدائرة علي بروتوس


وهذا رابط للكود بالبروتوس كامل

اخي الكريم حسن هادي محمود
اود فهم هذه الجزئية في الكود ومععرفة القيمة 60 كيف تم حسابها
كود:
 while(1)
  {
   for(x=0;x<60;x++) display_BCD();
   // clear "//" formthe next line to show the counter > each 7seg count from 0 to 9
  // for(x=0;x<16;x++){num[x]++;  if(num[x]==10)num[x]=0;}

  }


وهذا الكود كاملا وادعو لأخيكم كاتب الكود

كود:
const char segment[] = {63, 6, 91,79,102, 109, 125, 7,127, 111};
char num[16];
int count;
char x,mm;

void display_BCD()
{
for(mm=0;mm<16;mm++)
                    {
                    porta=mm;              // to control the commons of 7segments.
                    portb=~segment[num[mm]];
                    delay_ms(1);
                    }
}
void display ()
{
num[0]=0;
num[1]=1;
num[2]=2;
num[3]=3;
num[4]=4;
num[5]=5;
num[6]=6;
num[7]=7;
num[8]=8;
num[9]=9;
num[10]=1;
num[11]=2;
num[12]=3;
num[13]=4;
num[14]=5;
num[15]=6;
num[16]=7;
}

void main ()
{
portb=0xff;
trisb=0;
trisa=0;
display();

  while(1)
  {
   for(x=0;x<60;x++) display_BCD();
   // clear "//" formthe next line to show the counter > each 7seg count from 0 to 9
  // for(x=0;x<16;x++){num[x]++;  if(num[x]==10)num[x]=0;}

  }
}

اشكر كل من مد يد العون لنا وجزاكم الله بكل خير
سلام عليكم
اخي كريم بالنسبه للكود سأشرحه لك
كود:
const char segment[] = {63, 6, 91,79,102, 109, 125, 7,127, 111};
هذه ثوابت لسفن سكمنت نوع انود مشترك وهي تمثل الارقام 0,1,2,3,4,5,6,7,8,9


كود:
void display_BCD()
{
 for(mm=0;mm<16;mm++)
                    {
                     porta=mm;              // to control the commons of 7segments.
                     portb=~segment[num[mm]];
                     delay_ms(1);
                    }
}
اولا لماذا تم العد الى mm=16 الجواب لانك اسي ديكودر عدد الاطراف ( output) هي 16
ملاحظه دائما ديكودر output =2^input
مثلا عدد الادخالات هي 3 يعني عدد اخراجات ايسي =2^3=8
ديكودر الموجود في مشروع هو 4 ادخلات يعني 16 خرج وبتالي يعمل كتالي
0000 q0=1
0001 q1=1
0010 q2=1



1111 q15=1
اي انه دائما احد اطرافه يكون بساوي 1 وهذا يعني نستطيع استخدام هذه متكامله لتشغيل سفن سكنمنت
ولكن كم سفن سكمنت سوف نستطيع تشغيلها الجواب عاى حسب الاطراف وهنا بالمشروع نستطيع تشغيل 16 خانه من سفن سكمنت
ولكن كيف ازيد ذلك
الجواب ببساطه ان لكل ديكودر له طرف يسمى INH هذا طرف اذا تم تفعيله بتشتغل هذه متكامله وعدم تفعيله بيتوقف عمل متكامله وبتالي تستطيع انت ربط 32 مخرج بنفس الربط الا انك سوف تربط طرف INH الى مايكرو كنترولر
يعني باختصار تربط نفس الادخلات لكل متكاملين
اما خرج فيوصل الى 32 خانه لسفن سكمنت او حسب الذي تريده
اما طرف INH من كل متكامله بيوصل للمايكروكنترولر (( طبعا انت تفعل طرف للمتكامله الي انت بتستخدمها ))


بالنسبه لهذا الكود
كود:
for(x=0;x<60;x++) display_BCD();
لماذا اختار 60
انا لاارى اي شيئ يمكنك اختيار اكثر من ذلك

اخي كريم حسب هذا مشروع كما رايته هو بيحتاج منك استخدام DS1307 لغرض ضبط الوقت والتاريخ

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

hamadalla31
:: مهندس متميز ::
تاريخ التسجيل: Mar 2009
المشاركات: 587
نشاط [ hamadalla31 ]
قوة السمعة:0
قديم 07-03-2014, 06:51 AM المشاركة 3   
x6 اشكرك وبارك الله لك و زادك من علمه و فضله


سلام عليكم
بالنسبه لهذا الكود
كود:
for(x=0;x<60;x++) display_BCD();
لماذا اختار 60
انا لاارى اي شيئ يمكنك اختيار اكثر من ذلك

اخي كريم حسب هذا مشروع كما رايته هو بيحتاج منك استخدام DS1307 لغرض ضبط الوقت والتاريخ
وعليكم السلام ورحمة الله وبركاته
جزاكم الله عني وعن كل من تعلم منك كل خير
اخي انا لست معترض علي الرقم 60 فالكود عمل معي بصورة جيده ولكنى معجب بالمثل لاتعطني سمكه ولكن علمني كيف اصيدها
السؤل كيف تمت الحسابات وعلي اي اساس اصبح لدينا القيمة 60 وهي صحيحة بدليل ان الكود يعمل جيدا
سنحتاج الي استخدام DS1307 هذا صحيح اخي الكريم ولكني ان شاء الله سأنفذ المشروع خطوة بخطوة والمرحلة الأولي ضبط شاشة العرض اسئل الله العون
اشكرك وبارك الله لك و زادك من علمه و فضله


الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,688
نشاط [ حسن هادي محمود ]
قوة السمعة:136
قديم 07-03-2014, 07:37 AM المشاركة 4   
افتراضي


وعليكم السلام ورحمة الله وبركاته
جزاكم الله عني وعن كل من تعلم منك كل خير
اخي انا لست معترض علي الرقم 60 فالكود عمل معي بصورة جيده ولكنى معجب بالمثل لاتعطني سمكه ولكن علمني كيف اصيدها
السؤل كيف تمت الحسابات وعلي اي اساس اصبح لدينا القيمة 60 وهي صحيحة بدليل ان الكود يعمل جيدا
سنحتاج الي استخدام DS1307 هذا صحيح اخي الكريم ولكني ان شاء الله سأنفذ المشروع خطوة بخطوة والمرحلة الأولي ضبط شاشة العرض اسئل الله العون
اشكرك وبارك الله لك و زادك من علمه و فضله
السلام عليكم
اخي كريم السفن سكمنت تعمل بطريقه multiplexing بالنسبه الكود هو كود فقط لعرض الارقام ويعني اجعله مثلا بدل من 60 اجعلها 2 سترى الكود ايضا يعمل
سحاول وضع 32 سفن سكمنت وبنفس الكود وسعطيك نتيجه بذلك
تحياتي


الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,688
نشاط [ حسن هادي محمود ]
قوة السمعة:136
قديم 07-03-2014, 08:32 AM المشاركة 5   
افتراضي


سلام عليكم
اخي كريم تفضل قمت بزياده عدد سفن سكمنت
http://arabsh.com/files/0c34434d65f1/prog_1-rar.html
تحياتي


الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,688
نشاط [ حسن هادي محمود ]
قوة السمعة:136
قديم 07-03-2014, 09:31 AM المشاركة 6   
افتراضي


السلام عليكم
اخي اذا أفتهمت كيفيه زياده حسب مشاركه السابقه
فنأتي الى هذا الكود
كود:
num[0]=0;
num[1]=1;
num[2]=2;
num[3]=3;
num[4]=4;
num[5]=5;
num[6]=6;
num[7]=7;
num[8]=8;
num[9]=9;
num[10]=1;
num[11]=2;
num[12]=3;
num[13]=4;
num[14]=5;
num[15]=8;
num[16]=7;
ماذا يعني هذا كود
هذه القيم هي التي تراها على سفن سكمنت
مثلا خانه الاولى تظهر عليها قيمه num[0]=0 وخانه الثانيه num[1]=1 وهكذا حتى نصل الى خانه رقم 16 num[15]=8
اما خانه 17 هي نفس خانه الاولى وكذلك خانه 18 هي نفس خانه الثانيه وسبب في ذلك لاني استخدمت نفس مصفوفه
تحياتي


الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,688
نشاط [ حسن هادي محمود ]
قوة السمعة:136
قديم 07-03-2014, 09:50 AM المشاركة 7   
افتراضي


السلام عليكم
بالنسبه كما تعرف أستخدمنا ديكودر لزياده عدد سفن سكمنت بس مشكله بأخذ منا أرجل كثيره
اذا لم يكن عدد الارجل مايكرو مهم فيمكن أستخدام ايسي اسمه 7446 لسفن سكمنت كمن انود و 7448 لسفن سكمنت كمن انود وهذه راح توفر 4 ارجل

اما ايسي 4017 فهذه تحتاج الى رجل واحده من مايكرو لتنتج لك 8 اخراجات وعليه لتوليد 32 سفن سكمنت ستحتاج الى 4 قطع من 4017

هذه مجرد معلومات وأنصحك باستمرار بمشروع على ديكودر الى ان يكتمل مشروع وبعدها اجري عليه التعديلات بما يناسب المشروع او لغرض زياده الفكر لبرمجه مختلف ايسيات


hamadalla31
:: مهندس متميز ::
تاريخ التسجيل: Mar 2009
المشاركات: 587
نشاط [ hamadalla31 ]
قوة السمعة:0
قديم 07-03-2014, 11:08 AM المشاركة 8   
x6 بارك الله لك واثابك بكل ماتحب من خيري الدنيا والأخرة


وعليكم السلام ورحمة الله وبركاته
كلمات الشكر لن توفيك حقك عندي ولكني اقول لك جزاكم الله بكل خير

ان شاء الله ادرس الملفات واتابع معك لنستكمل مع DS1307 ,وغيره بارك الله لك واثابك بكل ماتحب من خيري الدنيا والأخرة

إضافة رد

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

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

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


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

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