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

   

ahmadazez
:: مهندس جيد ::
تاريخ التسجيل: Mar 2009
المشاركات: 251
نشاط [ ahmadazez ]
قوة السمعة:
قديم 07-01-2014, 12:45 AM المشاركة 9   
افتراضي



تفضل اخي هذا البرنامج مع البروتوث هو بالظبط ماتطلب ولكن اعتذر منك فهو ليس بالبك انا استخدم avr ولكن الامر بسيط تستطيع تحويله بسهولة فالاوامر شبيهة ببعضها
البرنامج يستخدم 6 مفاتيح وست ليدات الليد الاول عند الضغط على المفتاح الاول يعمل لمدة خمس ثواني والثاني عشر ثواني المهم الزمن تحدده انت داخل البرنامج كما تشاء وتستطيع الضغط على اي مفتاح حينما تشاء دون التاثير على عمل البقية
وهذا الرابط

http://up.top4top.net/downloadf-top4...b56b1-rar.html

اعلانات

الصورة الرمزية سعيد قادر
سعيد قادر
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2009
الدولة: العراق/ كوردستان
المشاركات: 2,892
نشاط [ سعيد قادر ]
قوة السمعة:
قديم 07-01-2014, 01:00 AM المشاركة 10   
افتراضي


جزاك الله الف خير اخي العزيز لكن ممكن ان يكون ضغط المفتاح مرة واحد وليس مرتين . واسف لاني جديد في مجال برمجة البك

نعم ممكن اكتبهالك فى الغد ان شاء الله

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

ahmed353
:: مهندس ::
تاريخ التسجيل: May 2012
المشاركات: 13
نشاط [ ahmed353 ]
قوة السمعة:
قديم 08-01-2014, 09:36 PM المشاركة 11   
افتراضي


تفضل اخي هذا البرنامج مع البروتوث هو بالظبط ماتطلب ولكن اعتذر منك فهو ليس بالبك انا استخدم avr ولكن الامر بسيط تستطيع تحويله بسهولة فالاوامر شبيهة ببعضها
البرنامج يستخدم 6 مفاتيح وست ليدات الليد الاول عند الضغط على المفتاح الاول يعمل لمدة خمس ثواني والثاني عشر ثواني المهم الزمن تحدده انت داخل البرنامج كما تشاء وتستطيع الضغط على اي مفتاح حينما تشاء دون التاثير على عمل البقية
وهذا الرابط

http://up.top4top.net/downloadf-top4...b56b1-rar.html
الشكر الجزيل لكل الاخوة الذين شاركوا في الموضوع وجزاكم الله الف خير .

اخي العزيز ahmadazez رائع رائع وهو المطلوب لكن لو تكرمتم اريد البرنامج على pic16f877 مثلا ويعمل نفس العمل لكن بـ 14 مفتاح ضاغط و 14 مخرج وجاكم الله الف خير .
وطولوا بالكم عليه شوية لاني مبتدأ


التعديل الأخير تم بواسطة : ahmed353 بتاريخ 09-01-2014 الساعة 12:52 AM

ahmadazez
:: مهندس جيد ::
تاريخ التسجيل: Mar 2009
المشاركات: 251
نشاط [ ahmadazez ]
قوة السمعة:
قديم 09-01-2014, 12:30 AM المشاركة 12   
افتراضي


الله يبارك فيك وبكل من يحاول تقديم المساعدة لاي شخص في هذا المنتدى اخي انا لااكتب على البك ولكن ساشرح لك البرنامج وان كانت عندك خبرة ولو بسيطة ستستطيع تحويل البرنامج الى البك او يقوم احد الاخوة بتحويله لك الفرق فقط على مااعتقد بتهيئة الدخل والخرج والتايمر اما باقي الاوامر فهي نفسها نحن سنقوم بتفعيل التايمر لعمل مقاطعة كل ثانية وقد هيئنا لكل مفتاح بت ومتحول من نوع انتجر وقلنا عند الضغط على اي مفتاح سيقوم المايكرو بتشغيل المخرج الخاص في المفتاح وتحويل البت الخاص بالمفتاح من 0 الى واحد وداخل مقاطعة التايمر قلنا انه عندما تكون قيمة اي بت من هذه البتات =1 سيقوم باضافة واحد للمتحول الخاص بالمفتاح وطالما ان قيمة البت =1 فكل ثانية سيقوم باضافة واحد للمتحول وعند الوصول الى القيمة اللتي حددناها سيقوم المايكرو باطفاء المخرج وتصفير البت وتصفير المتحول الخاص به
كود:
#include <mega8.h>

unsigned int x=0,x1=0,x2=0,x3=0,x4=0,x5=0;       // المتحولات نوع انتجر 
bit u=0,u1=0,u2=0,u3=0,u4=0,u5=0;                   // البتات الخاصة بكل مفتاح

  interrupt [TIM1_OVF] void timer1_ovf_isr(void)    // مقاطعة التايمر تحدث 
                                                                         //كل ثانية
    {

     TCNT1H=0xE17A >> 8;
     TCNT1L=0xE17A & 0xff;
     
     if(u==1) x++;          // عند الضغط على احد المفاتيح وتحول احد هذه البتات 
     if(u1==1)x1++;       // ال 1 سنقوم باضافة 1 للمتحول كل ثانية
     if(u2==1)x2++;
     if(u3==1)x3++;
     if(u4==1)x4++;
     if(u5==1)x5++;
    }

void main(void)
{

PORTB=0xFF;        // تهيئة المداخل والمخارج
DDRB=0x00;

PORTC=0x00;
DDRC=0x7F;

TCCR1A=0x00;
TCCR1B=0x05;
TCNT1H=0xE1;
TCNT1L=0x7A;

TIMSK=0x04;

#asm("sei")

while (1)
      {
        
        if(PINB.0==0){PORTC.0=1;u=1;}   //عند الضغط على المفتاح سيعمل 
         //المخرج وسيتحول البت من الصفر الى الواحد ليبدأ العد في التايمر
         if(x==5){u=0;x=0;PORTC.0=0;}  //عند وصول المتحول الى عدد الثواني 
         //المطلوبة نصفر البت لوقف العد ونصفر المتحول ونطفئ المخرج
         
        if(PINB.1==0){PORTC.1=1;u1=1;}           
         if(x1==10){u1=0;x1=0;PORTC.1=0;} 
         
        if(PINB.2==0){PORTC.2=1;u2=1;} 
         if(x2==15){u2=0;x2=0;PORTC.2=0;}
        
        if(PINB.3==0){PORTC.3=1;u3=1;} 
         if(x3==20){u3=0;x3=0;PORTC.3=0;}
        
        if(PINB.4==0){PORTC.4=1;u4=1;} 
         if(x4==25){u4=0;x4=0;PORTC.4=0;}
        
        if(PINB.5==0){PORTC.5=1;u5=1;} 
         if(x5==30){u5=0;x5=0;PORTC.5=0;}
             
      } 
      
}


التعديل الأخير تم بواسطة : ahmadazez بتاريخ 09-01-2014 الساعة 12:42 AM

ahmed353
:: مهندس ::
تاريخ التسجيل: May 2012
المشاركات: 13
نشاط [ ahmed353 ]
قوة السمعة:
قديم 09-01-2014, 12:54 AM المشاركة 13   
افتراضي


جزاك الله الف خير اخ ahmadazez وجعله في ميزان حسناتك سأحاول فهم الكود جيدا ومن الله التوفيق .


ahmadazez
:: مهندس جيد ::
تاريخ التسجيل: Mar 2009
المشاركات: 251
نشاط [ ahmadazez ]
قوة السمعة:
قديم 09-01-2014, 01:20 AM المشاركة 14   
افتراضي


جزاك الله الف خير اخ ahmadazez وجعله في ميزان حسناتك سأحاول فهم الكود جيدا ومن الله التوفيق .

اي شيئ لاتفهمه يمكن ان تسأل عنه وساجيبك ونصيحة لك باعتبارك مبتدأ افهم التايمر جيدا وكيفية توظيفه وستقوم بتنفيذ اصعب البرامج لان الديلي يجب عليك الاستغناء عنها في المراحل المتقدمة لانها تقيدك وهي لاتستعمل الا اثناء التدريب وعندما يكون عندك برنامج يقوم بمهمة واحدة اما من اجل برامج اكثر تعقيدا فلا ينفعك غير التايمر
ملاحظة من اجل توفير عدد مداخل الكبسات فيمكنك استعمال طريقة المصفوفة وبذالك تستطيع توفير 16 كبسة ببورت واحد


ahmed353
:: مهندس ::
تاريخ التسجيل: May 2012
المشاركات: 13
نشاط [ ahmed353 ]
قوة السمعة:
قديم 10-01-2014, 01:10 AM المشاركة 15   
افتراضي


اي شيئ لاتفهمه يمكن ان تسأل عنه وساجيبك ونصيحة لك باعتبارك مبتدأ افهم التايمر جيدا وكيفية توظيفه وستقوم بتنفيذ اصعب البرامج لان الديلي يجب عليك الاستغناء عنها في المراحل المتقدمة لانها تقيدك وهي لاتستعمل الا اثناء التدريب وعندما يكون عندك برنامج يقوم بمهمة واحدة اما من اجل برامج اكثر تعقيدا فلا ينفعك غير التايمر
ملاحظة من اجل توفير عدد مداخل الكبسات فيمكنك استعمال طريقة المصفوفة وبذالك تستطيع توفير 16 كبسة ببورت واحد
والله يا اخي تعبتك معي وجزاك الله الف خير وسأعمل بنصيحتك ان شاء الله .



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