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

   

eabueida
:: مهندس متواجد ::
تاريخ التسجيل: Apr 2007
المشاركات: 171
نشاط [ eabueida ]
قوة السمعة:
قديم 07-03-2010, 04:31 PM المشاركة 9   
افتراضي



السلام عليكم

بسم الله الرحمن الرحيم

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

الدرس الرابع


سنتطرق في هذا الدرس الى ما بقي لنا من مقدمة برمجيه ومن ثم سنتناول مقدمة بيسطة عن واجهة التطوير وثم نقوم بكتابة بعض البرامج البسيطة إن شاء الله

1- lable
الليبل هو عبارة عن عنوان يضاف الى سطر ما كي يسهل الرجوع الية
ويغته كالتالي

Lable :

حيث نقوم بكتابة اسم المراد جعلة كعنوان ومن ثم ثقوم بوضع النتقطين الرأسيتين بعده

وتجدر الإشارة الى انه يتم الإشارة اليها عن طريق امر goto

2- البرامج الفرعية

هي عبارة عن برامج لها عرض محدد غير البرنامج الرئيسي ويسنفاد منها بتجزئة البرنامج الرئسي وجعلة سهل البناء والصيانه

والصيغة

Lable:



Return

ويتم استدعائها هن طريق الأمر goosub
مثال
في هذا البرنامج سنقوم بكتابة برنامج فرعي اسمه pulse والذي هو وظيفته جعل الليد يضيء لثانية واحدة ومن ثم نستدعي البرنامج من خلال البرنامج الرئيسي main

كود:
Main: Gosub pulse
Goto main
Pulse: Porta.0=0 Delayms 1000 Porta.0=1 Delayms 1000 Return
واجهة التطوير


والصورة التاليه توضح الواجه



كتابة البرنامج

في البداية عند كتابة برنامج يجب تحديد ماهو نوع المايكروكنترولر المستخدم وما هو المذبذب المطلوب ومن ثم الإعذاذات والمتغيرات والثوابت ونحو ذلك

مثال 1

برنامج الضوء الوماض أو الفلاشر والصورة التالية توضح الدائرة




والبرنامج هو

كود:
Device = 16F88 ' Defining the device Xtal 4 ' Defining the frequency Dim LED As PORTB.0 ' makes led = portb.0 TRISB=0 ' defining the pins . All portb are outputs
main: ' the lable of main program LED =1 ' portb.0=1 DelayMS 1000 ' wait 1 sec. 1 sec = 1000 msec LED=0 ' portb.0=0 DelayMS 1000 ' wait 1 sec
GoTo main ' goto label main ( infinite loop )
End ' end of the program


والبرنامج والسميوليشن في اللنك التالي



ونكمل ان شاء الله في الدرس القادم

ولا تنسونا من دعائكم الصالح


التعديل الأخير تم بواسطة : eabueida بتاريخ 18-03-2010 الساعة 11:56 PM
اعلانات

robota
:: عضو ذهبي ::
تاريخ التسجيل: Jul 2009
الدولة: الخرطوم_السودان
المشاركات: 895
نشاط [ robota ]
قوة السمعة:
قديم 07-03-2010, 06:06 PM المشاركة 10   
افتراضي


رائع اخى eabueida جزاك الله خيرا .
اخى هل اجد عندك نسخة picbasic pro كاملة.

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

الصورة الرمزية Eng-Rayan
Eng-Rayan
:: عضو فضي ::
تاريخ التسجيل: Feb 2010
الدولة: تونس (بدرس بالأردن)
المشاركات: 454
نشاط [ Eng-Rayan ]
قوة السمعة:
قديم 07-03-2010, 06:48 PM المشاركة 11   
افتراضي


اخ robota انا لدي نسخة picbasic pro


http://www.2shared.com/file/8393644/...nsivricom.html


eabueida
:: مهندس متواجد ::
تاريخ التسجيل: Apr 2007
المشاركات: 171
نشاط [ eabueida ]
قوة السمعة:
قديم 07-03-2010, 07:03 PM المشاركة 12   
افتراضي


السلام عليكم
هذا نفس البرنامج الذي اضافة الأخ ريان ولكن مع برنامج microcode studio
http://www.4shared.com/file/23616092...PIC_basic.html

الذي يجعل الكمبايلر يعمل على بيئة الوندوز

ملاحظة : برمجت بهذا البرنامج حوالي ست سنين ومن ثم انتقلت للغة البروتون بسبب عدم تعامل البرنامج بيك بيسك المتغيرات من نوع float لكن على العموم البرنامج ممتاز


ولا تنسانا من دعائك الصالح

والسلام عليكم


التعديل الأخير تم بواسطة : eabueida بتاريخ 07-03-2010 الساعة 07:08 PM

robota
:: عضو ذهبي ::
تاريخ التسجيل: Jul 2009
الدولة: الخرطوم_السودان
المشاركات: 895
نشاط [ robota ]
قوة السمعة:
قديم 07-03-2010, 11:16 PM المشاركة 13   
افتراضي


الاخ ريان الاخ eabueida جزاكما الله خيرا .


eabueida
:: مهندس متواجد ::
تاريخ التسجيل: Apr 2007
المشاركات: 171
نشاط [ eabueida ]
قوة السمعة:
قديم 18-03-2010, 11:44 PM المشاركة 14   
افتراضي


السلام عليكم

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


الدرس الخامس

تطبيقات عملية

مقدمة
قبل كتابة اي برنامج يجب ان يتم تحديد المايكروكونترولر المراد العمل معة ويتم ذلك عن طريق الكود التالي


Device = نوع الميكروكونترولر


مثال


Device =16F877


ولتعريف سرعة الكريستال أو المهتز يتم استخدام الأمر التالي

قيمة التردد XTAL


مثال
Xtal 4


كما هو معلوم فإن المايكروكوترولر به منافذ ويمكن برمجتها لتكون إ ما رقمية أو تناظرية

في حالة الرقمية يمكن يكون ذلك عن طريق إبطال الخصائص التناظرية للأضلاع وجعلها فقط رقمية أو حسب المطلوب

وبصورة عامة فالمنفذ التناظرية إما ان تكون للمقارن أو للمحول التناظري الرقمي

ولإبطالهم بالكلية يتم استخدام أمر
All_Digital (true/false)

مثال
All_Digital true


أو بالسجلات
مثل
CMCON=7
لإبطال المقارنات

ADCON1=7
لإبطال المحولات التناظرية الرقمية

و ADCON1=15
للمايكروكونترولر التي تحتوي على اكثر من 8 ADC




مثال 1
يتضمن هذا المثال التعامل مع المنافذ كمداخل ومخارج حيث انه مايتم ادخاله عن طرق المنفذ A سيتم اظهارة في المنفذ B
كود:
Device =16F877
Xtal 4
All_Digital true
 
TRISA=255 'all porta as input 
TRISB=0 ' all portb as output 
 
main:
 
PORTB=PORTA
 
GoTo main
 
End


مثال 2

التعامل مع المحول التناظري الرقمي
يتم ذلك عن طريق الأمر التالي


VAR = ADIN 0

والرقم صفر يشير الى المنفذ التشابهي الرقمي 0 و أما var فهو اشارة الي المتغير

ولالهذا الأمر بعض الإعدادات وهي على النحو التالي

1- الأمر التالي لتعريف دقة المحول هل ثماني بت أو عشر

DECLARE ADIN_RES 10

2- الأمر التالي لتعريف مصدر المهتز لتحديد زمن التحويل
هل RC أو 2_FOSC أو 4_FOSC أو8_FOSC أو 32_FOSC
مثال




DECLARE ADIN_TAD FRC ' RC OSC chosen



3- الأمر التالي لتحدبد زمن اخد العينة (sample)


DECLARE ADIN_STIME 50 ' Allow 50us sample time




الحسابات
كيف يتم حساب القيمة المرجوة أو الفولت المطلوب
يتم ذلك كالتالي

والفرق بين كل درجة وأخرى من درجات المحول يتم حسابها كالتالي
((+Vref ) – (-Vref))/2^number of ADC bits

مثال

عندنا محول تشابهي تناظري له الخصائص التالية
1- ذو 10دقة بت
2- و +Vref هو 5 فولت
3- -Vref هو 0

بالتالي فإن الإنتقال من درجة الى أخرى سيحتاج الى الجهد التالي

(5-0)/2^10 è 5/1024
يساوي
0.0048

بالتالي سنحتاج هذا المقدار من الفولت لالإنتقال من درجة الى اخرى


مثال عملي 1

مقياس الجهد
الدائرة



الكود

كود:
Device = 16F877
Xtal 4
 
Declare Adin_Res 10 ' 10-bit result required 
Declare Adin_Tad FRC ' RC OSC chosen 
Declare Adin_Stime 50 ' Allow 50us sample time 
Declare LCD_DTPin PORTB.4
Declare LCD_ENPin PORTB.1
Declare LCD_RSPin PORTB.2
TRISA.0=1
TRISB=0
 
Symbol LED = PORTB.0
LED =0
 
 
 
Dim x As Word
Dim volt As Float
Dim limit As Word
 
ADCON1 = %10000000 ' Set analogue input on PORTA.0 
 
 
main:
 
x=ADIn 0
volt = x * 0.0048828125
 
Print $FE, 1,#volt," Volt" 
DelayMS 400
 
 
GoTo main
وهذا المقياس يقيس الجهد بين 0 و 5 فولت فقط

ملاحظة سيتم شرح ال LCD في مشاركة لاحقة ان شاء الله
واللنك التالي للبرنامج و السميوليش


ولطول المشاركة نكمل في المشاركة التالية ان شاء الله


التعديل الأخير تم بواسطة : eabueida بتاريخ 18-03-2010 الساعة 11:55 PM

eabueida
:: مهندس متواجد ::
تاريخ التسجيل: Apr 2007
المشاركات: 171
نشاط [ eabueida ]
قوة السمعة:
قديم 18-03-2010, 11:47 PM المشاركة 15   
افتراضي


مثال عملي 2
هذا البرنامج صمم للتعامل مع مجس الحرارة LM35 وهو عبارة مجس تناظري على ان يتم اصدار صوت تنبيهي في حالة ارتفاع درجة الحرارة عن حد معين وهنا هو ال 90 درجة

ملاحظة هذا المثال التالي شاركت به سابقا في موضوع آخر

الدائرة
تم تمثل ال LM35 على انها مقاومة متغيرة


الكود

كود:
Device = 16F877
Xtal 4
 
Declare Adin_Res 10 ' 10-bit result required 
Declare Adin_Tad FRC ' RC OSC chosen 
Declare Adin_Stime 50 ' Allow 50us sample time 
TRISA.0=1
TRISB=0
Symbol sound_pin = PORTB.0
Symbol LED = PORTB.1
LED =0
 
 
 
Dim x As Word
Dim limit As Word
 
ADCON1 = %10000000 ' Set analogue input on PORTA.0 
 
limit=185 ' this an assumption that 90C = 100 this number should be calibrated 
main:
 
x=ADIn 0
 
If x > limit Then
LED =1
DelayMS 1000
Sound sound_pin,[100,100]
 
Else 
LED =0
EndIf
 
GoTo main

واللنك التالي للبرنامج و السميوليش


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

ولا تنسونا من دعائكم الصالح


الصورة الرمزية Eng-Rayan
Eng-Rayan
:: عضو فضي ::
تاريخ التسجيل: Feb 2010
الدولة: تونس (بدرس بالأردن)
المشاركات: 454
نشاط [ Eng-Rayan ]
قوة السمعة:
قديم 19-03-2010, 01:19 AM المشاركة 16   
افتراضي


يا سلام عليك و الله مبدع



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