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

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

mastafaa
:: مهندس ::
تاريخ التسجيل: May 2013
المشاركات: 22
نشاط [ mastafaa ]
قوة السمعة:0
قديم 21-08-2013, 01:50 PM المشاركة 1   
افتراضي مساعده فى عمل برنامج باستخدام بيك 16f84a Twitter FaceBook Google+



السلام عليكم ورحمه الله وبركاته
كنت محتاج مساعده فى عمل برنامج باستخدام بيك 16f84a
البرنامج كالاتى
التحكم ب 3 ليد عن طريق زر بمجرد الضغط على الزر الاول يتم تشغيل الليد الاول لثانيه ثم يغلق وعند الضغط على الزر الثانى يتم تشغيل الليد الثانى لمده ثانيه ثم يغلق ونفس النظام فى الليد والزر الثالث
اذا فانا هستخدم
3 led
3 button
حسنا حتى هنا الامر سهل ولكن المشكله التى واجهتنى
هى اننى اريد التحكم فى فتره الزمن اى اقصد التحكم فى الثانيه عن طريق مقاومه متغيره مثلا
بمعنى عند تغير قيمه المقاومه المتغيره يتم زياده الثانيه ل 2 و 3 حسب الحاجه
واريد التحكم فى كل ليد اى كل ليد له مقاومه متغيره يتم تغير فتره الزمن من خلالها
ارجو ان اجد المساعده

اعلانات

zamalkawi
:: مهندس جيد ::
تاريخ التسجيل: May 2013
المشاركات: 270
نشاط [ zamalkawi ]
قوة السمعة:0
قديم 21-08-2013, 02:09 PM المشاركة 2   
افتراضي


حسنا حتى هنا الامر سهل ولكن المشكله التى واجهتنى
هى اننى اريد التحكم فى فتره الزمن اى اقصد التحكم فى الثانيه عن طريق مقاومه متغيره مثلا
بمعنى عند تغير قيمه المقاومه المتغيره يتم زياده الثانيه ل 2 و 3 حسب الحاجه
واريد التحكم فى كل ليد اى كل ليد له مقاومه متغيره يتم تغير فتره الزمن من خلالها
ارجو ان اجد المساعده
السلام عليكم
ولكنك لم تقل المشكلة التي واجهتك!!
أنت فقط قلت ما تريد عمله، ولم تشرح المشكلة

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

mastafaa
:: مهندس ::
تاريخ التسجيل: May 2013
المشاركات: 22
نشاط [ mastafaa ]
قوة السمعة:0
قديم 21-08-2013, 02:55 PM المشاركة 3   
افتراضي


المشكله فى نقطه التحكم فى الزمن عن طريق المقاومه المتغيره فانا لا اعرف كيف اقوم بهذا
ما قيمه المقاومه المتغيره التى يجب وضعها واين اضعها تحديدا
كيف يكون البرمجه بتاعتها


zamalkawi
:: مهندس جيد ::
تاريخ التسجيل: May 2013
المشاركات: 270
نشاط [ zamalkawi ]
قوة السمعة:0
قديم 21-08-2013, 03:09 PM المشاركة 4   
افتراضي


المشكلة التي أراها ليست في قيمة المقاومة وليست في البرمجة
المشكلة هي أني أرى أن أفضل طريقة لتحقيق ما تريد هو عن طريق التحويل من تناظري إلى رقمي، بينما المايكروكنترولر الذي تستعمله ليس به مداخل تناظرية (أنالوج)
فهل يمكنك استعمال مايكروكنترولر آخر؟


mastafaa
:: مهندس ::
تاريخ التسجيل: May 2013
المشاركات: 22
نشاط [ mastafaa ]
قوة السمعة:0
قديم 21-08-2013, 03:10 PM المشاركة 5   
افتراضي


نعم يمكن استبداله ل 16f877a


الصورة الرمزية #MAAM#
#MAAM#
:: عضو ذهبي ::
تاريخ التسجيل: Jun 2008
الدولة: EGYPT
المشاركات: 567
نشاط [ #MAAM# ]
قوة السمعة:92
قديم 21-08-2013, 06:22 PM المشاركة 6   
افتراضي


لقد قمت بإعداد البرنامج لك واي سؤال انا تحت امرك



وهذا الكود
كود:
sbit led1_RES at RA0_BIT; //led1 resistor
sbit led2_RES at RA1_BIT; //led2 resistor
sbit led3_RES at RA3_BIT; //led3 resistor

sbit led1 at RD0_BIT; //led1
sbit led2 at RD1_BIT; //led2
sbit led3 at RD2_BIT; //led3

unsigned int led1_delay,led2_delay,led3_delay;


void main() {
ADCON1  = 0x04;              // Configure AN0,AN1,AN3 pin as analog
                             // refer to datasheet page 114
TRISA = 0xFF; //make port A as input
TRISD = 0x00; //make port B as output

ADC_Init();

while(1){
led1_delay = ADC_Read(0);     //read analog value from channel 0
                              //it's 10 bit ADC so maximum value 1023
                              //so we multiply by 10(or any value) to increase
                              //the required delay up to 10 sec(approximately)
led1_delay = led1_delay * 10; //to increade delay value
led2_delay = ADC_Read(1); //read analog value from channel 1
led2_delay = led2_delay * 10;
led3_delay = ADC_Read(3); //read analog value from channel 3
led3_delay = led3_delay * 10;

led1 = 0;
Vdelay_ms(led1_delay);
led1 = 1;

led2 = 0;
Vdelay_ms(led2_delay);
led2 = 1;

led3 = 0;
Vdelay_ms(led3_delay);
led3 = 1;
}
}


مصطفى جمعه
:: مهندس جيد ::
تاريخ التسجيل: Jun 2012
المشاركات: 266
نشاط [ مصطفى جمعه ]
قوة السمعة:0
قديم 21-08-2013, 06:58 PM المشاركة 7   
افتراضي


اولا اشكرك جزيلا استاذ #MAAM# على المساعده
فيه بعض الاخطاء فى البرنامج اللى حضرتك صممته
اولا لا بد ان يعمل الليد عند الضغط على زر الخاص ب الليد وبمجرد الضغط عليه يتم تشغيل الليد لمده ثانيه ثم يغلق ويتم التحكم فى فتره التشغيل ( اللى هى الثانيه ) عن طريق مقاومه متغيره
كان هذا هو طلبى
وفى برنامج حضرتك وجدت ان الليد يعمل بمجرد تشغيل البرنامج مباشره


الصورة الرمزية #MAAM#
#MAAM#
:: عضو ذهبي ::
تاريخ التسجيل: Jun 2008
الدولة: EGYPT
المشاركات: 567
نشاط [ #MAAM# ]
قوة السمعة:92
قديم 21-08-2013, 09:00 PM المشاركة 8   
افتراضي


اولا اشكرك جزيلا استاذ #MAAM# على المساعده
فيه بعض الاخطاء فى البرنامج اللى حضرتك صممته
اولا لا بد ان يعمل الليد عند الضغط على زر الخاص ب الليد وبمجرد الضغط عليه يتم تشغيل الليد لمده ثانيه ثم يغلق ويتم التحكم فى فتره التشغيل ( اللى هى الثانيه ) عن طريق مقاومه متغيره
كان هذا هو طلبى
وفى برنامج حضرتك وجدت ان الليد يعمل بمجرد تشغيل البرنامج مباشره
حاول يامصطفى تضيف الفكرة ده وانا هساعدك لو فيه حاجة وقفت قدامك وانا رفعت الرسمة والكود

http://www.eyesfile.ca/bjm9chiumo1s/...istor.rar.html

إضافة رد

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

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

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


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

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