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

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

abd-ulrhman
:: مهندس ::
تاريخ التسجيل: Aug 2010
المشاركات: 5
نشاط [ abd-ulrhman ]
قوة السمعة:0
قديم 03-02-2011, 01:25 AM المشاركة 1   
افتراضي مشكلة صغيرة في تيارات pic16f84a ... أتمنى المساعدة Twitter FaceBook Google+



عند وضع القطب A والقطب B كدخل input
تم قياس التيار المسحوب في حالة الـ " 1 " منطقي لكل من الأقطاب وكان هذا التيار في القطب A الرجل 0 ... معدوم تقريباً وهوه أمر ايجابي
أما في الرجل 1 وحتى الـ 7 من نفس القطب ... فكان التيار المسحوب هوه 250 ميللي أمبير بالرغم من أن الداتا شيت حددت التيار الأعظمي المسحوب من القطب A بـ 80 ميللي أمبير.

والمشكلة الأعظم أنه حتى عند تأمين جهد تقريبا 5 فولت ... فاذا كان التيار أقل من 150 ميللي أمبير يتم اعتبار الحالة عدم تعيين ؟؟؟

الصورة التالية توضح المشكلة تماماً


اعلانات

فيصل72
:: مهندس جيد ::
تاريخ التسجيل: Nov 2010
المشاركات: 245
نشاط [ فيصل72 ]
قوة السمعة:0
قديم 03-02-2011, 09:27 AM المشاركة 2   
افتراضي


أخي الكريم


بعد التجربة لاحظت ان الأمر portb=0 يعني أنها 00000000 اي كلها مخارج بينما الأمر portb=1 يعني بأنها 00000001 أي portb.1 دخل والباقي مخارج .
أنا ايضا مبتدىء في البرمجة و أرجو أن يفيدنا الأخوة عن ذلك
أنظر الصورة بعد تحويل الكل الى مداخل
ورجاء تصغير حجم الصور عند وضعها ليسهل متابعة الموضوع.



التعديل الأخير تم بواسطة : فيصل72 بتاريخ 03-02-2011 الساعة 09:44 AM
اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )
  

abd-ulrhman
:: مهندس ::
تاريخ التسجيل: Aug 2010
المشاركات: 5
نشاط [ abd-ulrhman ]
قوة السمعة:0
قديم 03-02-2011, 09:33 PM المشاركة 3   
افتراضي


بعد التجربة لاحظت ان الأمر portb=0 يعني أنها 00000000 اي كلها مخارج بينما الأمر portb=1 يعني بأنها 00000001 أي portb.1 دخل والباقي مخارج .
أخي الكريم .... سؤالي السابق كان بخصوص الدخل أي أن portb=1; porta=1;

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


فيصل72
:: مهندس جيد ::
تاريخ التسجيل: Nov 2010
المشاركات: 245
نشاط [ فيصل72 ]
قوة السمعة:0
قديم 04-02-2011, 05:03 AM المشاركة 4   
افتراضي


أخي الكريم .... سؤالي السابق كان بخصوص الدخل أي أن portb=1; porta=1;

وتم قياس تيارات الدخل في هذه الحالة وكانت النتيجة السابقة
أخي الكريم
بالتفصيل الممل
كتابة trisb=1; يعني بأنك اعطيت القيمة 00000001 للبورت b وهذا يعني
b0=input b1,2,3,4,5,6,7=output
وهكذا في تجربتك كانت a0 و b0 فقط مداخل والباقي مخارج
ولهذا كانت المشكلة في التيارات
استخدم trisb=255; trisb=0b11111111;trisb=0xff;
وكذلك بالنسبة للبورت a
بعدها ستجد النتيجة كما بالصورة التي وضعتها في مشاركتي السابقة


التعديل الأخير تم بواسطة : فيصل72 بتاريخ 04-02-2011 الساعة 05:09 AM

الصورة الرمزية باسم ماجد
باسم ماجد
:: مهندس متميز ::
تاريخ التسجيل: Jan 2009
الدولة: Amman-Jordan
المشاركات: 326
نشاط [ باسم ماجد ]
قوة السمعة:0
قديم 04-02-2011, 10:51 AM المشاركة 5   
Smile


الأخوه الكرام الأخ فيصل 72 و الأخ abd-ulrhman
تحياتي

الأمران TRISA و TRISB هما لتحديد حالة البورت فمثلا" إذا أردنا جعل البورت B
PORTB خرجا" لجميع أطرافه ال 8 نكتب الأمر التالي :
TRISB=0; أو
TRISB=0B00000000 ; أو
TRISB=0X00; أو
.............................................
و إذا أردنا جعل البورت A دخلا" لجميع أطرافه ال 8 نكتب الأمر التالي :
TRISA=255; أو
TRISA=0B11111111;أو
TRISA=0XFF;
الأن بعد تحديد الدخل و الخرج ...ماذا نريد ان نفعل ؟ بالطبع البك صُنع اصلا" لأغراض التحكم أذن بماذا نريد التحكم؟
لنتحكم ب LED عن طريق كبسه SWITCH مثلا"
1. نستخدم أحد أطراف البورت A لنوصله بالكبسه فليكن A0 كدخل أذن نكتب:
PORTA=1;.......هذا البورت معرف في لغة الميكروسي فمن الممكن أن نكتب الرقم بالنظام العشري
أو بالنظام الثنائي :
PORTA=0B00000001 أو
أو بالنظام السادس عشري :
PORTA=0X01;
هذا كود أو أمر يشغل ليد عند الضغط على الكبسه الموصله ب A0 للبورت A لمدة ثانيه واحده ثم يطفئه ،
IF(PORTA.F0==0) {PORTB=1; DELAY_MS(1000)
الخلاصه:حتى لا نخلط الأمور عند أستخدام الأمر tris نتبع
1.........يعني Input
0........يعني Output

أما عند أستخدام أمر PORT فعندها 1 يعني إخراج جهد 5فولت من ذلك البت
و 0 يعني إخراج 0فولت أو سالب 5فولت
سوف أرفع ملفات المحاكاه لاحقا"
أرجو أن أكون قد وفقت بالشرح ...تمنياتي لكما و للجميع بالتوفيق


التعديل الأخير تم بواسطة : باسم ماجد بتاريخ 04-02-2011 الساعة 11:05 AM

فيصل72
:: مهندس جيد ::
تاريخ التسجيل: Nov 2010
المشاركات: 245
نشاط [ فيصل72 ]
قوة السمعة:0
قديم 04-02-2011, 12:13 PM المشاركة 6   
افتراضي


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


abd-ulrhman
:: مهندس ::
تاريخ التسجيل: Aug 2010
المشاركات: 5
نشاط [ abd-ulrhman ]
قوة السمعة:0
قديم 04-02-2011, 01:50 PM المشاركة 7   
افتراضي


شكرا جزيييييييييييلا للأخوة الكرام...

بالفعل كان الخطأ المرتكب سخيف جداً ولكن لا أدري كيف تخيل لي أن 1 بالعشري تعني 11111111 بالثنائي وبالتأكيد هذا الشيء خاطئ

شكرا جزيلا مرة أخرى


الصورة الرمزية باسم ماجد
باسم ماجد
:: مهندس متميز ::
تاريخ التسجيل: Jan 2009
الدولة: Amman-Jordan
المشاركات: 326
نشاط [ باسم ماجد ]
قوة السمعة:0
قديم 05-02-2011, 08:43 AM المشاركة 8   
Arrow برنامج بسيط


http://www.4shared.com/dir/rukHiiqb/sharing.html
أعلاه مرفق ملف المحاكاه و كود الميكروسي تحياتي للجميع هذه دائره بسيطه ممكن أن تستخدم لفحص البك مثلا" قد يستفيد منها أحد الأعضاء و تكون مشروعه الأول

إضافة رد

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

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

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


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

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