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

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

الصورة الرمزية mohatvnet
mohatvnet
:: مهندس متميز ::
تاريخ التسجيل: Mar 2009
الدولة: https://t.me/pump_upp
المشاركات: 961
نشاط [ mohatvnet ]
قوة السمعة:0
قديم 08-08-2013, 03:07 PM المشاركة 1   
افتراضي ارجو منكم شرح دور هدا سجل في pic18f4550 Twitter FaceBook Google+



اسلام عليكم

وجدت هدا سجل اسمه LATA ويوجد كدالك LATB و LATD في داتاشيت للميكروكنترولر pic18f4550 ولم افهم ما هو دوره

ارجو منكم ان تشرحو لي دوره جزاكم الله خيرا

اعلانات

الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,688
نشاط [ حسن هادي محمود ]
قوة السمعة:135
قديم 08-08-2013, 03:36 PM المشاركة 2   
افتراضي


اسلام عليكم

وجدت هدا سجل اسمه LATA ويوجد كدالك LATB و LATD في داتاشيت للميكروكنترولر pic18f4550 ولم افهم ما هو دوره

ارجو منكم ان تشرحو لي دوره جزاكم الله خيرا
سلام عليكم
هذه مسجلات هي نفسها مسجلات بورتات يعني LATA هو نفسه porta وهكذا
يعني بدلا من ان نضع LATA=0; نضع بدلها PORTA=0; هي نفسها


التعديل الأخير تم بواسطة : حسن هادي محمود بتاريخ 08-08-2013 الساعة 03:42 PM
اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )
  

الصورة الرمزية mohatvnet
mohatvnet
:: مهندس متميز ::
تاريخ التسجيل: Mar 2009
الدولة: https://t.me/pump_upp
المشاركات: 961
نشاط [ mohatvnet ]
قوة السمعة:0
قديم 08-08-2013, 06:03 PM المشاركة 3   
افتراضي


شكرا جزيلا اخي الكريم

ولكن عندما اكتب هدا البرنامج لا يخرج portb الكهرباء لاضائة الled


كود:
void main() { trisa=0;latb=0;
while(1){
latb=0;
delay_ms(100);
latb=0xff;
delay_ms(100);
}

}


الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,688
نشاط [ حسن هادي محمود ]
قوة السمعة:135
قديم 09-08-2013, 03:46 AM المشاركة 4   
افتراضي


شكرا جزيلا اخي الكريم

ولكن عندما اكتب هدا البرنامج لا يخرج portb الكهرباء لاضائة الled


كود:
void main() { trisa=0;latb=0;
while(1){
latb=0;
delay_ms(100);
latb=0xff;
delay_ms(100);
}

}
سلام عليكم
سجرب هذا واعطيك خبر باذن الله


الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,688
نشاط [ حسن هادي محمود ]
قوة السمعة:135
قديم 09-08-2013, 05:16 AM المشاركة 5   
افتراضي


شكرا جزيلا اخي الكريم

ولكن عندما اكتب هدا البرنامج لا يخرج portb الكهرباء لاضائة الled


كود:
void main() { trisa=0;latb=0;
while(1){
latb=0;
delay_ms(100);
latb=0xff;
delay_ms(100);
}

}
سلام عليكم
اخي عزيز انت اخطأت في كود لانك قلت trisa=0 اي جعلت بورت a كله خرج وتعاملت مع بورت b لذا مجرد ان تغير او تضيف كود trisb=0 وبالتالي يصبح بورت b خرج يعمل بشكل طبيعي
ملاحظه لاتنسى ايصال mclr ب 5 فولت عبر مقاومه او تلغيه من اعدادات مشروع


الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,688
نشاط [ حسن هادي محمود ]
قوة السمعة:135
قديم 09-08-2013, 05:22 AM المشاركة 6   
افتراضي


سلام عليكم
اخي انظر للكود كل بورتات تعمل
كود:
void main() 
{ 
trisa=0;
trisb=0;
trisc=0;
trisd=0;
latb=0;
 while(1)
     {

    latb=0;

   lata=0;
   latc=0;
   latd=0;
     delay_ms(100);
      lata=0xff;
      latb=0xff;
      latc=0xff;
      latd=0xff;
      delay_ms(100);
     
      }
}


الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,688
نشاط [ حسن هادي محمود ]
قوة السمعة:135
قديم 09-08-2013, 05:24 AM المشاركة 7   
افتراضي


او هذا كود ايضا يعمل
كود:
void main() 
{ 
trisa=0;
trisb=0;
trisc=0;
trisd=0;
latb=0;
 while(1)
     {

    portb=0;

   porta=0;
   portc=0;
   portd=0;
     delay_ms(100);
      porta=0xff;
      portb=0xff;
      portc=0xff;
      portd=0xff;
      delay_ms(100);
     
      }
}
لكن يااخي لاتنسى هناك فقره مهمه هي تحديد طبيعه بورت هي هل يتعامل مع digital او anloge
لاحظ هذه لاحظه من منول
Note: On a Power-on Reset, RA5 and RA3:RA0
are configured as analog inputs and read
as ‘0’. RA4 is configured as a digital input.
او
========================================

Note: On a Power-on Reset, RB4:RB0 are
configured as analog inputs by default and
read as ‘0’; RB7:RB5 are configured as
digital inputs.
By programming the Configuration bit,
PBADEN (CONFIG3H<1>), RB4:RB0 will
alternatively be configured as digital inputs
on POR.
============================================
Note: On a Power-on Reset, these pins, except
RC4 and RC5, are configured as digital
inputs. To use pins RC4 and RC5 as digital
inputs, the USB module must be disabled
(UCON<3> = 0) and the on-chip
USB transceiver must be disabled
(UCFG<3> = 1).
================================================
Note: On a Power-on Reset, RE3 is enabled as
a digital input only if Master Clear
functionality is disabled.
==============================================
نصيحه دائما اذهب في منول الى فقره I/O port
ثم اختار بورت بورت ولاحظ فقره تعريف بورت موجوده في كل منول مثلا راح شوف هاي عباره
INITIALIZING PORTA وبداخلها مجموعه الاوامر روح الى الاوامر تخص الادخالات او تخص بورت مثلا
MOVLW 0Fh ; Configure A/D
MOVWF ADCON1 ; for digital inputs
معناه هكذا خلي adcon1 =0x0f حتى يصبح بورت digital
او انك شوف اي سجل يتعامل هذا بورت هنا هو adcon1

بسيطه في منول ابحث عن هذا سجل للسهوله اضغط ctrl+f راح يطلع مستطيل صغير اضع فيه كلمه التي تريد البحث عنها واضغط على enter بخفه الى ان يطلع لك سجل وسجل بسيط فيه 8 بتات شوف كل بت شنو مهمته
لو تلاحظ adcon1 خله ب 0f راح شوف ان لو خليت اول اربع بتات كلها 1 يصبح بورت كله ديجتل واذا جعلته اول اربع بتات كلها 0 يصبح بورت كله anloage
ضروري اخي تعرف هذه معلومات حتى تستطيع فهم سجل ودائما ابحث عن الذي تحتاجه اكيد راح يقود الى سجل وفيه 8 بتات لو فهمت مره او مرتين كيفه تقرا سجل صدقني سيسهل عليك كثير في تعامل مع بورت
وحاول بحث عن كلمه بنفس طريقه التي اخبرت عنها فهذا يقودك بسرعه الى مبتغاك
============================================
كود:
void main() 
{
// INITIALIZING PORTA
CMCON=0x07;//Configure comparators for digital inputs
ADCON1=0x0f;//  Configure A/D for digital inputs
//INITIALIZING PORTB
ADCON1=0x0E;//Set RB<4:0> as for digital inputs
//INITIALIZING PORTE
ADCON1=0xA0;//Configure A/D for digital inputs
CMCON=0x07;//Configure comparators for digital inputs
trisa=0;
trisb=0;
trisc=0;
trisd=0;
latb=0;
 while(1)
     {

    portb=0;

   porta=0;
   portc=0;
   portd=0;
     delay_ms(100);
      porta=0xff;
      portb=0xff;
      portc=0xff;
      portd=0xff;
      delay_ms(100);
     
      }
}


التعديل الأخير تم بواسطة : حسن هادي محمود بتاريخ 09-08-2013 الساعة 05:58 AM

الصورة الرمزية mohatvnet
mohatvnet
:: مهندس متميز ::
تاريخ التسجيل: Mar 2009
الدولة: https://t.me/pump_upp
المشاركات: 961
نشاط [ mohatvnet ]
قوة السمعة:0
قديم 12-08-2013, 12:49 PM المشاركة 8   
افتراضي


شكرا جزيلا جزاك الله خيرا

اسف على تأخري في رد لقد ازلت المشكل كان في طرف micler

إضافة رد

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

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

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


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

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