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

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

عبدالله فقيدة
:: مهندس متواجد ::
تاريخ التسجيل: Oct 2010
المشاركات: 78
نشاط [ عبدالله فقيدة ]
قوة السمعة:0
قديم 09-05-2011, 08:55 PM المشاركة 1   
Unhappy سؤال واستفسار!!! Twitter FaceBook Google+



اطلب رجاءاً من من يعرف شيئاً في لغة الأسمبلي أني وضيح ما يلي:

وجدت بعض الأكواد التي تتعامل مع بورت B و بورت A و المسجلات مثل STATUS وغيرها من غير ان تعرفها في بداية البرنامج ولا حتى في اي موضع من البرنامج:
كان يفترض تعريفها كالآتي:
STATUS equ 03h
TRISA equ 85h
PORTA equ 05h
لكن ذلك لم يكن بل كان البرنامج كالآتي:
clrf PORTA ;all of porta low
clrf PORTB ;all of portb low

bsf STATUS, RP0 ;change to bank1
clrf TRISA ;all of porta outputs
clrf TRISB ;all of portb outputs
bcf STATUS, RP0 ;back to bank0

ولم يعرف بورت B ولا بورت A ولا STATUS ففي كامل البرنامج لا يوجد سوى التعريفات الثلاثة التالية:
Ram EQU h'0C'

Count EQU Ram+0
timer_local EQU Ram+1
وقد جربت البرنامج ووجدته يعمل جيداً وكنت اتوقع انه لن يتعرف على كلمات PortB & PortA & STATUS فما التفسير؟؟؟ ولكم جزيل الشكر

اعلانات

faidamine
:: مهندس ::
تاريخ التسجيل: May 2011
الدولة: maroc
المشاركات: 35
نشاط [ faidamine ]
قوة السمعة:0
قديم 09-05-2011, 09:31 PM المشاركة 2   
افتراضي


التعريفات الولية هي فقط لتسهيل البرمجة عوض STATUS,OPTION_REG,INTCON.... نضع مساويات لها أما الأصل هو أن تسمي كل معاملة باسمها لهدا يسمى الاسمبلور ب langage du machine
هذا و الله أعلم

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

عبدالله فقيدة
:: مهندس متواجد ::
تاريخ التسجيل: Oct 2010
المشاركات: 78
نشاط [ عبدالله فقيدة ]
قوة السمعة:0
قديم 10-05-2011, 03:39 PM المشاركة 3   
افتراضي


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

لكني يا أخي الذي يحيرني انني وجدت هذه الإختصارات للمسميات اعلاه STATUS و PORTB و PORTA و TRISA وغيرها ولم يقم واضع البرنامج بوضع مساوات لها اطلاقاً وفي كامل البرنامج لا توجد سوى ثلاثة مساواة هي كما ذكرتها :
Ram EQU h'0C'

Count EQU Ram+0
timer_local EQU Ram+1
فقط فكيف لم يعرض الكومبايلر او المفسر رسالة خطأ كناية عن عدم تعريف وذكر المسميات ل STATUS و PORTB و PORTA و TRISA


عبدالله فقيدة
:: مهندس متواجد ::
تاريخ التسجيل: Oct 2010
المشاركات: 78
نشاط [ عبدالله فقيدة ]
قوة السمعة:0
قديم 10-05-2011, 03:42 PM المشاركة 4   
افتراضي


كما انني جربت البرنامج على بروتيوس واشتغل مية المية !!!! بالله عليكم من لديه تفسير فليسعفني به لأني الآن في حيرة حقيقية


الصورة الرمزية Abdulla873
Abdulla873
:: مهندس متميز ::
تاريخ التسجيل: Sep 2009
الدولة: Baghdad, Iraq
المشاركات: 504
نشاط [ Abdulla873 ]
قوة السمعة:0
قديم 10-05-2011, 03:58 PM المشاركة 5   
افتراضي


اخي العزيز , كل ال Registers الموجوده في ال RAM يمكن ان تتعامل معها بشكل
مباشر بدون تحديد موقعها في بداية البرنامج. هي معرفه على ال Assembler
فلا تحتاج انت الى تعريفها حيث ان مجرد استدعائك لفايل المايكرو المستعمل
في البرنامج فانك قمت بتزويد البرنامج بكل ما يحتاج.
الخطوه هي
#include <p16f877a.inc>

وايضا كل بت في ال register الواحد يمكن ان تتعامل معه بالاسم مثلا
bsf STATUS, RP0
يمكن ان ترى ايضا الكثير من الكودات التي كتبتها باللغة الاسيمبلي لا تحتوي على
اي تعاريف: تفضل هنا
http://www.pic-tronics.com/Basic-PIC-Projects.php


عبدالله فقيدة
:: مهندس متواجد ::
تاريخ التسجيل: Oct 2010
المشاركات: 78
نشاط [ عبدالله فقيدة ]
قوة السمعة:0
قديم 10-05-2011, 04:12 PM المشاركة 6   
افتراضي


ممتاز ممتاز ممتاز اشكرك اشكرك اخي عبد الله محمد والله لا ادري ماذا اقول او كيف اشكرك غير ان اقول اشكرك.
بالفعل لقد حللت مشكلتي واذهبت حيرتي. بالظبط هذا هو ما يحصل فعلاً حتى في هذا البرنامج الذي ذكرته انا لقد ذكر واضع البرنامج وهو اجنبي التقديم التالي في بداية البرنامج
LIST P=16F84, R=DEC
__FUSES _XT_OSC & _WDT_OFF & _CP_OFF & _PWRTE_ON
include "P16F84.inc"

; RAM definitions

Ram EQU h'0C'
Count EQU Ram+

يعطيك الف عافية اخي عبد الله محمد وجزاك الله الف خير


الصورة الرمزية Abdulla873
Abdulla873
:: مهندس متميز ::
تاريخ التسجيل: Sep 2009
الدولة: Baghdad, Iraq
المشاركات: 504
نشاط [ Abdulla873 ]
قوة السمعة:0
قديم 10-05-2011, 04:57 PM المشاركة 7   
افتراضي


عفوا اخي العزيز بارك الله بك , اتمنى لك التوفيق

إضافة رد

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

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

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


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

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