برمجة الميكروكنترولر بكل سهولة ويسر
 
الرئيسيةاليوميةس .و .جبحـثالتسجيلدخولرز الدخول
إدارة المنتدى .. ترحب بجميع الأعضاء وتتمنى لهم قضاء وقت ممتع ومفيد ملئ بتبادل الآراء والمعرفة بهدف نشر العلم
تعلن إدارة المنتدى .. أن الترقية فى رتب الأعضاء تعتمد على نشاطهم فى المنتدى حيث أنها تزداد بزيادة عدد المشاركات فى مواضيع المنتدى

شاطر | 
 

 من يساعدنا في تحسين هذا البرنامج بارك الله فيكم

استعرض الموضوع السابق استعرض الموضوع التالي اذهب الى الأسفل 
كاتب الموضوعرسالة
messaoud.d
عضو جديد
عضو جديد


عدد المساهمات : 5
نقاط : 7
تاريخ التسجيل : 14/03/2013

مُساهمةموضوع: من يساعدنا في تحسين هذا البرنامج بارك الله فيكم   الخميس 14 مارس 2013, 5:56 am

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

البرنامج هو لحساب وقت عمل مجموعة من المحركات

وكل محرك يكون حساب وقت عمله منفصل عن المحرك الآخر

والبرنامج كتبته بالبروتون وهو












Device=16F877A

تعريف
نوع المايكرو الذي نستعمله




XTAL=4



تعريف نوع
المذبذب أو الكريستال







Declare LCD_DTPIN PORTD.4

تصريح
بنوع شاشة العرض والبورت الذي نوصلها بالمايكرو




Declare LCD_ENPIN PORTD.3

تصريح
بنوع شاشة العرض والبورت الذي نوصلها بالمايكرو




Declare LCD_INTERFACE 4

تصريح
بنوع شاشة العرض والبورت الذي نوصلها بالمايكرو




Declare LCD_RSPIN PORTD.2

تصريح
بنوع شاشة العرض والبورت الذي نوصلها بالمايكرو







Input PORTD

البورت دي كل أقطابه تستعمل كمداخل






Input PORTC




البورت سي كل أقطابه تستعمل كمداخل









Input PORTB

البورت بي كل أقطابه تستعمل كمداخل













Dim a As Float

تصريح
بنوع المتغيرات




Dim b As Float


Dim c As Float


Dim i As Word











Dim ir1 As Float


Dim ir2 As Float


Dim ir3 As Float














For i=0 To 60000




حلقة تبقى تعمل من 0 حتى 6000












DelayMS 1000




تأخير ب1000 ميلي ثانية أي ثانية
واحدة أي الحلقة كل ما تعمل دورة واحدة يعني هناك 1ثانية











If
PORTD.1=1 Then

إذا كان
المدخل دي1=1 إعمل



a=a+1




حفظ
القيمة المتحصل عليها في العملية السابقة وقسمها على 60

ir1 =a/60




Else
If
PORTD.1=0 Then


a=a+0


EndIf











If PORTD.0=1 Then


b=b+1



ir2 =b/60



ElseIf
PORTD.0=0 Then


b=b+0


EndIf





If PORTC.7=1 Then


c=c+1



ir3 =c/60



ElseIf
PORTC.7=0 Then


c=c+0


EndIf


Print At 1,1,
Dec ir1


عرض القيمة المحفوظة في
الشاشة




Print At 2,1,
Dec ir2



Print At 3,1,
Dec ir3






Next i


هذا هو البرنامج أتمنى أن لا تبخلو علينا بنصائحكم
والمشكلة التي صادفتني هو أن زمن التأخير الموضوع لا يساوي الزمن الحقيقي بسبب عمل المايكرو كونترولور
من لي بفكرة كي أحسن البرنامج وأجعله مساوي للحقيقة..
إن شاء الله لا تبخلو علي

الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو
messaoud.d
عضو جديد
عضو جديد


عدد المساهمات : 5
نقاط : 7
تاريخ التسجيل : 14/03/2013

مُساهمةموضوع: رد: من يساعدنا في تحسين هذا البرنامج بارك الله فيكم   الخميس 14 مارس 2013, 5:57 am

Device=16F877A


XTAL=4





Declare LCD_DTPIN PORTD.4


Declare LCD_ENPIN PORTD.3


Declare LCD_INTERFACE 4


Declare LCD_RSPIN PORTD.2





Input PORTD





Input PORTC





Input PORTB











Dim a As Float


Dim b As Float


Dim c As Float


Dim i As Word











Dim ir1 As Float


Dim ir2 As Float


Dim ir3 As Float














For i=0 To 60000





DelayMS 1000





If
PORTD.1=1 Then


a=a+1



ir1 =a/60



Else
If
PORTD.1=0 Then


a=a+0


EndIf











If PORTD.0=1 Then


b=b+1



ir2 =b/60



ElseIf
PORTD.0=0 Then


b=b+0


EndIf





If PORTC.7=1 Then


c=c+1



ir3 =c/60



ElseIf
PORTC.7=0 Then


c=c+0


EndIf


Print At 1,1,
Dec ir1



Print At 2,1,
Dec ir2



Print At 3,1,
Dec ir3






Next i
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو
Admin
المراقب العام
المراقب العام


عدد المساهمات : 968
نقاط : 1679
تاريخ التسجيل : 12/04/2012

مُساهمةموضوع: رد: من يساعدنا في تحسين هذا البرنامج بارك الله فيكم   الخميس 14 مارس 2013, 8:07 pm

وعليكم السلام
معذرة أخى الكريم بالنسبة للبروتون فأنا لا اعمل عليها ولكنى اعمل على الفلوكود ...
إان كان يناسبك (الفلوكود) اشرح لى بالتفصسل ما تريد من البرنامج ان يفعله بالضبط وانا اتابع معك بمشيئة الله..
أو عليك الانتظار وان شاء الله تجد من الزملاء من يجيد العمل عليها ويقوم بمساعدتك .. تمنياتى لكم بالتوفيق
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو http://microworld.forumarabia.com
messaoud.d
عضو جديد
عضو جديد


عدد المساهمات : 5
نقاط : 7
تاريخ التسجيل : 14/03/2013

مُساهمةموضوع: رد: من يساعدنا في تحسين هذا البرنامج بارك الله فيكم   الجمعة 15 مارس 2013, 12:50 am

بارك الله فيك وجزاك الله خيرا

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

مثلا حين تنطلق المحركات في العمل يبدأ العد بالدقائق أو الثواني ويكون

حساب وقت كل محرك منفصل عن أخيه يعني إذا توقف محرك في

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


عدد المساهمات : 968
نقاط : 1679
تاريخ التسجيل : 12/04/2012

مُساهمةموضوع: رد: من يساعدنا في تحسين هذا البرنامج بارك الله فيكم   الجمعة 15 مارس 2013, 5:04 am

شكرا لك اخى الكريم .. أفهم من ردك هذا انك سوف تعمل على الفلوكود ...
ان كان كذلك ... فأخبرنى عن مدى معلوماتك عن البرمجة بالفلوكود ؟؟
وهل قرأت الدروس المشروحة بالمنتدى ؟؟؟؟
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو http://microworld.forumarabia.com
messaoud.d
عضو جديد
عضو جديد


عدد المساهمات : 5
نقاط : 7
تاريخ التسجيل : 14/03/2013

مُساهمةموضوع: رد: من يساعدنا في تحسين هذا البرنامج بارك الله فيكم   الجمعة 15 مارس 2013, 6:11 am

أخي البرمجة الفلوكود لا أعرفها..
لكن ممكن تعطيني فكرة أطبقها في البروتون



الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو
Admin
المراقب العام
المراقب العام


عدد المساهمات : 968
نقاط : 1679
تاريخ التسجيل : 12/04/2012

مُساهمةموضوع: رد: من يساعدنا في تحسين هذا البرنامج بارك الله فيكم   الجمعة 15 مارس 2013, 5:08 pm

الفكرة عبارة عن تصميم 3 عدادات .. عند تشغيل المحرك يبدء العداد الأول فى العد من 1 الى 60 عند بدء تشخيل المحرك ويسمى عداد الثوانى
عند وصل العداد الأول الى 60 يتم تصفيره وفى نفس الوقت يبدأ العداد الثانى بالرقم 1 ويسمى عداد الدقائقثم يبدأ العداد الاول بالعد مرة أخرى من 1 الى 60 وعند الوصول الى 60 يزداد العداد الثانى بقيمة واحد ليصبح 2 وهكذا الى ان يصل العداد الثانى الى 60 يتم تصفيره ويبدأ العداد الثالث بالرقم 1 وهو عداد الساعات وفى كل مرة يصل العداد الثانى الى 60 يزداد العداد الثالث بمقدار 1 ليصبح 2 وهكذا
يتم إظهار هذه المعلومات على شاشة LCD ... وعند إيقاف المحرك تثبت القيم على الشاشة وعند تشغيل المحرك مرة أخرى يتم تصفير جميع العدادات لتبدأ العمل مرة اخى كما سبق

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

الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو http://microworld.forumarabia.com
messaoud.d
عضو جديد
عضو جديد


عدد المساهمات : 5
نقاط : 7
تاريخ التسجيل : 14/03/2013

مُساهمةموضوع: رد: من يساعدنا في تحسين هذا البرنامج بارك الله فيكم   الجمعة 29 مارس 2013, 6:59 pm

بارك الله فيك أخي

لكن الفكرة لا أظن أنها تصلح مع عدة محركات

مثلا 15 محرك وكل محرك له عداداته الخاصة

يعني كل محرك يكون حساب وقت عمله منفصل عن الآخر مع العلم ان تلك المحركات يمكن أن تعمل مجتمعة كلها ويمكن بعضها يعمل وبعضها لا يعمل..

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

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
عالم الميكروكنترولر والتحكم :: قسم الميكروكنترولر :: منتدى برمجة الميكروكنترولر-
انتقل الى: