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

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

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:332
قديم 08-07-2013, 12:38 PM المشاركة 1   
افتراضي مشروعات البرمجة بلغة Basic والمترجم Proton Basic أولا : مشروعات الليدات : Twitter FaceBook Google+



مشروعات البرمجة بلغة Basic والمترجم Proton Basic
أولا : مشروعات الليدات :
البرنامج الأول :
الغرض :
تشغيل on وفصل off (وميض) ليد على فترات زمنية قدرها واحد ثانية .

الدائرة الكهربية :





البرنامج :






كود:
'**************************************************************** '* Name : Project1-LED-Blink-LED.BAS * '* Author : Eng.F.Abdelaziz * '* Notice : Copyright (c) 2013 [select VIEW...EDITOR OPTIONS] * '* : All Rights Reserved * '* Date : 6/22/2013 * '* Version : 1.0 * '* Notes : * '* : * '**************************************************************** Device = 16F628A ; Produce code for a 16F628a device Declare Xtal = 4 ; 4MHz oscillator Symbol led = PORTB.0 ; Symbol for the port B.0 Loop: ; subroutine name Loop High led ; LED lights that is connected to pin 6 DelayMS 1000 ;PAUSE 1000 , wait a second Low led ; LED off DelayMS 1000 ;PAUSE 1000 , wait a second GoTo Loop ; continue the program forever End



تفاصيل قواعد البرمجة بلغة Basic المذكورة بهذا المشروع والتى سوف نستخدمها فى باقى المشاريع :

اعلانات

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:332
قديم 08-07-2013, 12:41 PM المشاركة 2   
افتراضي


تفاصيل قواعد البرمجة بلغة Basic المذكورة بهذا المشروع والتى سوف نستخدمها فى باقى المشاريع :
السطر من 1 إلى 10 :
يسمى رأس البرنامج header وكل ما به "تعليقات.

كود:
'**************************************************************** '* Name : Project1-LED-Blink-LED.BAS * '* Author : Eng.F.Abdelaziz * '* Notice : Copyright (c) 2013 [select VIEW...EDITOR OPTIONS] * '* : All Rights Reserved * '* Date : 6/22/2013 * '* Version : 1.0 * '* Notes : * '* : * '****************************************************************
التعليقات Comments ، الأمر Rem :
الصيغة :
كود:
' Comments or ; Comments
الغرض :
إدراج تذكير فى كود المصدر للغة Basic . لا يتم ترجمة هذه السطور وتستخدم فقط لتوفير المعلومات للشخص الذى يستعرض البرنامج .
العوامل :
التعليقات Comments يمكن أن تكون أى نص لحروف أبجدية ورقمية .
ملاحظة :
يمكن استخدام أى من الفاصلة المنقوطة ( ; ) أو علامة التنصيص المفردة ( ' ) .

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

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:332
قديم 08-07-2013, 12:43 PM المشاركة 3   
افتراضي


السطر 11 :
توجيه يخبر المترجم بأن الميكروكونترولر المستخدم هو الجهاز PIC16F628A :
Device = 16F628A ; Produce code for a 16F628a device
التوجيه "الجهاز" Device :
الصيغة :
كود:
DeviceDevice number
الغرض :
إخبار المترجم بنوع جهاز الميكروكونترولر المستخدم .
العوامل :
Device number : يمكن أن يكون إى جهاز 12-bit, 14-bit, 18F .
مثال :

كود:
Device = 16F877 ' Produce code for a 16F877 device or Device = 16F684 ' Produce code for a 16F684 device or Device = 12F508 ' Produce code for a 12-bit core 12F508 device or Device = 18F4520 ' Produce code for a 18F4520 device
التوجيه Device يجب أن يكون أول أمر يوضع فى البرنامج .
فى حالة عدم استخدام التوجيه Device فإن الكود الناتج سوف يكون على اعتبار أن الميكروكونترولر الافتراضى هو 16F84 .


الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:332
قديم 08-07-2013, 12:45 PM المشاركة 4   
افتراضي


السطر 12 :
إعلان تردد الكريستال المستخدم

كود:
Declare Xtal = 4 ; 4MHz oscillator
التوجيه "إعلان" Declare :
الصيغة :

كود:
[Declare]code modifying directive= modifying value
الغرض :
ضبط جوانب معينة من الكود الناتج عن طريق إعلانها ، مثل تردد الكريستال ، ومنفذ وأطراف شاشة LCD ومعدل البيانات التسلسلية وغيرها .
العوامل :
code modifying directive : هى مجموعة من الكلمات المحددة مسبقا .
modifying value : هى القيمة التى تناظر الأمر .

التوجيهDeclareهو جزء لا يتجزأ من المترجم . فهو يشكل مكتبة الروتينات الفرعية ويمرر معلومات المستخدم الأساسية لها .
كلمة Declare اختيارية ، فبدلا من "Declare Xtal 4" يمكن استخدام "Xtal = 4" .
لاحظ أن هناك علامة تساوى اختيارية تفصل التوجيه المعلن والقيمة المراد تمريرها .


الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:332
قديم 08-07-2013, 12:48 PM المشاركة 5   
افتراضي


السطر 13 :
تخصيص اسم مستعار معبر لمتغير أو ثابت ، لتسهيل فهم وتتبع البرنامج .

كود:
Symbol led = PORTB.0 ; Symbol for the port B.0
يشير إلى أن الطرف رقم "6" بالميكروكونترولر PIC16F628A قد أطلق عليه الاسم "led" .

التوجيه Symbol
يوفر التوجيه Symbol تخصيص اسم مستعار للمتغيرات والثوابت ،ولا يمكن استخدامه لإنشاء متغير . أعلان الثوابت باستخدام Symbol لا يستخدم أى ذاكرة RAM داخل الميكروكونترولر .
أمثلة :
كود:
Symbol Cat = 123 Symbol Tiger = Cat ' Tiger now holds the value of Cat Symbol Mouse = 1 ' Same as Dim Mouse as 1 Symbol TigOuse = Tiger + Mouse ' Add Tiger to Mouse to make Tigouse

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

كود:
Symbol PI = 3.14 ' Create a floating point constant named PI Symbol FlNum = 5.0 ' Create a floating point constant holding the value 5
كما يمكن إنشاء ثوابت الأعداد التى تحتوى على فاصلة عشرية باستخدام التعبيرات كما يلى :


كود:
' Create a floating point constant holding the result of the expression Symbol Quanta = 5.0 / 1024
إذا تم استخدام متغير أو اسم سجل فى تعبير ثابت عندئذ يمكن استبداله بعنوان المتغير أو السجل وليس القيمة المحفوظة فى المتغير أو السجل كما يلى :

كود:
Symbol Con = (PORTA + 1) ' Con will hold the value 6 (5+1)
أيضا ، Symbol مفيد فى إعطاء اسماء مستعارة للمنافذ والسجلات كما يلى :

كود:
Symbol LED = PORTA.1 ' LED now references bit-1 of PortA Symbol T0IF = INTCON.2 ' T0IF now references bit-2 of INTCON register
علامة التساوى "=" الموجودة بين اسم الثابت وقيمة الاسم المستعار اختيارية ، كما فى المثال التالى :

كود:
Symbol LED PORTA.1 ' Same as Symbol LED=PortA.1


الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:332
قديم 08-07-2013, 12:50 PM المشاركة 6   
افتراضي


السطر 14 :
وضع علامة (لافتة أو عنوان) للرجوع إليها بالأوامر مثل Goto .
كود:
Loop: ; subroutine name Loop
المعرفات Identifiersوالتسميات (العناوين) Labels
المعرفات Identifiers
المعرف هو مصطلح تقنى لاسم . يتم استخدام المعرفات من أجل : سطر العنوان line label ، وأسماء المتغيرات variable names ، والأسماء المستعارة للثوابت constant aliases . المعرف هو أى تسلسل من الحروف والأرقام ، والشرطة السفلية ( _ )، لكن لا يجب أن يبدأ برقم . المعرفات ليست حساسة لحالة الأحرف ، لذلك فإن label و LABEL و Labelيتم التعامل معها على أنها مكافئة . وعلى الرغم من العنوان قد يكون طوله أى عدد من الأحرف ، لكن يتم التعرف على 32 حرف فقط .
عنوان السطرLine Label

لوضع علامة على العبارات الت
ى قد يرغب البرنامج إلى الرجوع إليها بالأوامر Goto, Call, Gosub يستخدم المترجم "عنوان السطر" label. يمكن لأى سطر أن يبدأ بعنوان ، وهو مجرد معرف متبوعا بنقطتين ':' كما يلى :

كود:
Label: Print "Hello World" Goto Label



الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:332
قديم 08-07-2013, 12:52 PM المشاركة 7   
افتراضي


السطر 15 :
وضع الطرف المناظر للاسم المستعار led فى الحالة المرتفعة بغرض إضاءة الليد المتصل به :
كود:
High led ; LED lights that is connected to pin 6
الأمر High :
الصيغة :
كود:
High Port or Port.Bit
الغرض :
وضع منفذ Port أو بت bit فى الحالة المرتفعة high . فى حالة المنفذ فهو يعنى ملوه بآحاد 1's، أما فى حالة البت فهو يعنى تحديدها set بواحد "1" .
العوامل :
Port يمكن أن يكون أى منفذ متاح .
Port.Bit يمكن أن تكون أى مجموعة من منفذ وبت متاح ، مثل PortA.1 .
مثال :

كود:
Symbol LED = PORTB.4 High LED


الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:332
قديم 08-07-2013, 12:54 PM المشاركة 8   
افتراضي


السطر 16 :
التأخير أو الانتظار فى هذه الحالة لمدة 1000 ملى ثانية (واحد ثانية) .
كود:
DelayMS 1000 ;PAUSE 1000 , wait a second

الأمر DelayMs
الصيغة :
كود:
DelayMs Length
الغرض :
تنفيذ تأخير بطول "x" ملى ثانية . التأخيرات حتى طول 65535ms (65.535 seconds) .
العوامل :
Length : يمكن أن يكون : ثابت ، أو متغير ، كما فى المثال التالى :

كود:
Declare Xtal = 4 Dim Var1 as Byte Dim Wrd1 as Word Var1 = 50 Wrd1= 1000 DelayMs 100 ' Delay for 100ms DelayMs Var1 ' Delay for 50ms DelayMs Wrd1 ' Delay for 1000ms DelayMs Wrd1 + 10 ' Delay for 1010ms
ملحوظة :
الأمر DelayMs مستقل عن المذبذب ، طالما أنك أخبرت المترجم عن تردد الكريستال المستخدم ، باستخدام التوجيه Declare .

إضافة رد

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

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

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


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

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