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

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

الصورة الرمزية remon romany
remon romany
:: عضو نشط ::
تاريخ التسجيل: Feb 2011
المشاركات: 897
نشاط [ remon romany ]
قوة السمعة:0
قديم 04-08-2013, 03:26 PM المشاركة 1   
ha ما الخطا فى هذا الكود Twitter FaceBook Google+



اريد عمل ليد ماتريكس 5 صفوف و8 اعمدة باستخدان البك 16f84a
وقمت بكتابة الكود التالى ولكن عندما قمت بتجربتة لا اجد الكلام الذى اريد كتابتة على الماتريكس واضح ارى الليدات تعمل بشكل عشوائى
فهل وجد خطا فى هذا الكود ام لا ؟؟
هذا هو الكود ارجو ان تجدو الحل
كود:
char R1=0B00000000;
char R2=0B00011111;
char R3=0B00010101;
char R4=0B00010101;
char R5=0B00010101;
char R6=0B00000000;
char R7=0B00011111;
char R8=0B00010001;
char R9=0B00010001;
char R10=0B00010001;
char R11=0B00000000;
char R12=0B00011111;
char R13=0B00001001;
char R14=0B00001001;
char R15=0B00011111;
char R16=0B00000000;
char R17=0B00000110;
char R18=0B00001111;
char R19=0B00011110;
char R20=0B00001111;
char R21=0B00000110;
char R22=0B00000000;
char n;
void main()
{
TRISa=0;
 PORTa=0;

 TRISB=0;
 PORTB=0;
loop:

 for(n=0;n<100;n++)
{
PORTB=0B10000000;
PORTA=R1; DELAY_US(300);
PORTB=0B01000000;
PORTA=R2; DELAY_US(300);
PORTB=0B00100000;
PORTA=R3; DELAY_US(300);
PORTB=0B00010000;
PORTA=R4; DELAY_US(300);
PORTB=0B00001000;
PORTA=R5; DELAY_US(300);
PORTB=0B00000100;
PORTA=R6; DELAY_US(300);
PORTB=0B00000010;
PORTA=R7; DELAY_US(300);
PORTB=0B00000001;
PORTA=R8; DELAY_US(300);
}
R1=R2;
R2=R3;
R3=R4;
R4=R5;
R5=R6;
R6=R7;
R7=R8;
R8=R9;
R9=R10;
R10=R11;
R11=R12;
R12=R13;
R13=R14;
R14=R15;
R15=R16;
R16=R17;
R17=R18;
R18=R19;
R19=R20;
R20=R21;
R21=R22;
R22=R1;

goto loop;
}

اعلانات

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


اريد عمل ليد ماتريكس 5 صفوف و8 اعمدة باستخدان البك 16f84a
وقمت بكتابة الكود التالى ولكن عندما قمت بتجربتة لا اجد الكلام الذى اريد كتابتة على الماتريكس واضح ارى الليدات تعمل بشكل عشوائى
فهل وجد خطا فى هذا الكود ام لا ؟؟
هذا هو الكود ارجو ان تجدو الحل
كود:
char R1=0B00000000;
char R2=0B00011111;
char R3=0B00010101;
char R4=0B00010101;
char R5=0B00010101;
char R6=0B00000000;
char R7=0B00011111;
char R8=0B00010001;
char R9=0B00010001;
char R10=0B00010001;
char R11=0B00000000;
char R12=0B00011111;
char R13=0B00001001;
char R14=0B00001001;
char R15=0B00011111;
char R16=0B00000000;
char R17=0B00000110;
char R18=0B00001111;
char R19=0B00011110;
char R20=0B00001111;
char R21=0B00000110;
char R22=0B00000000;
char n;
void main()
{
TRISa=0;
 PORTa=0;

 TRISB=0;
 PORTB=0;
loop:

 for(n=0;n<100;n++)
{
PORTB=0B10000000;
PORTA=R1; DELAY_US(300);
PORTB=0B01000000;
PORTA=R2; DELAY_US(300);
PORTB=0B00100000;
PORTA=R3; DELAY_US(300);
PORTB=0B00010000;
PORTA=R4; DELAY_US(300);
PORTB=0B00001000;
PORTA=R5; DELAY_US(300);
PORTB=0B00000100;
PORTA=R6; DELAY_US(300);
PORTB=0B00000010;
PORTA=R7; DELAY_US(300);
PORTB=0B00000001;
PORTA=R8; DELAY_US(300);
}
R1=R2;
R2=R3;
R3=R4;
R4=R5;
R5=R6;
R6=R7;
R7=R8;
R8=R9;
R9=R10;
R10=R11;
R11=R12;
R12=R13;
R13=R14;
R14=R15;
R15=R16;
R16=R17;
R17=R18;
R18=R19;
R19=R20;
R20=R21;
R21=R22;
R22=R1;

goto loop;
}
سلام عليكم
نصيحه لك اخي كريم ارفق مشروع كامل يعني كود ورسم البرنامج البروتيس لكي استطيع الاخوه مساعدتك فحيانا تشغيل مشروع يساعد يكثير على ايجاد مشكله وفهم الكود وتعديل عليه

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

armor
:: مهندس متواجد ::
تاريخ التسجيل: Apr 2006
المشاركات: 112
نشاط [ armor ]
قوة السمعة:0
قديم 05-08-2013, 05:09 AM المشاركة 3   
افتراضي


حسب فهمي للكود, أظن أنه يرسم الشكل التالي:


01111011
01000001
01111010
01000001
01111011
الشكل ملخبط هنا بسبب المسافات, هل هذا حرف B

و يبدو أنك تريد تحريك هذا الشكل بحيث يظل يدور حول الشاشة

هناك خطأ بسيط في الكود, و هو:
R1=R2;
يجب أن تكون كالتالي:
temp=R1
R1=R2
.
.
R22=temp
هذا لأن قيمة R1 القديمة تفقد بمجرد أن تنقل إليها قيمة R2, ثم بعد ذلك في آخر سطر تأخذ هذه القيمة (قيمة R2 أصلا و تضعها في R22), و بذلك بعد 5 دورات ستجد الشاشة كلها مضيئة (أو مظلمة حسب التوصيل)

بالمناسبة هل هذه الدائرة علي Proteus أم دائرة حقيقة؟


التعديل الأخير تم بواسطة : armor بتاريخ 05-08-2013 الساعة 05:16 AM

الصورة الرمزية remon romany
remon romany
:: عضو نشط ::
تاريخ التسجيل: Feb 2011
المشاركات: 897
نشاط [ remon romany ]
قوة السمعة:0
قديم 05-08-2013, 12:30 PM المشاركة 4   
افتراضي


حسب فهمي للكود, أظن أنه يرسم الشكل التالي:



الشكل ملخبط هنا بسبب المسافات, هل هذا حرف B

و يبدو أنك تريد تحريك هذا الشكل بحيث يظل يدور حول الشاشة

هناك خطأ بسيط في الكود, و هو:

يجب أن تكون كالتالي:


هذا لأن قيمة R1 القديمة تفقد بمجرد أن تنقل إليها قيمة R2, ثم بعد ذلك في آخر سطر تأخذ هذه القيمة (قيمة R2 أصلا و تضعها في R22), و بذلك بعد 5 دورات ستجد الشاشة كلها مضيئة (أو مظلمة حسب التوصيل)

بالمناسبة هل هذه الدائرة علي Proteus أم دائرة حقيقة؟
الف شكر لردك الجميل دة
انا الكلمة اللى انا عاوز اكتبها ECA
وبالنسبة للخطا اللى حضرتك قولت علية انا لسة مبتدى فى البرمجة وانا اخذت الكود من موضوع (طريقة عمل الليد ماتريكس للمبتدئين ) وقمت بالتعديل علية ولكن لا يعمل بالطريقة المناسبة فهل تعتقد ان هذا هو السبب؟؟؟
انا قمت بصنع الدائرة حقيقية ولا اقم باستخدام بروتس


الصورة الرمزية remon romany
remon romany
:: عضو نشط ::
تاريخ التسجيل: Feb 2011
المشاركات: 897
نشاط [ remon romany ]
قوة السمعة:0
قديم 05-08-2013, 12:32 PM المشاركة 5   
افتراضي


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


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


الف شكر لردك الجميل دة يا استاذ حسن ولكن المشكلة انى لا اجيد استخدام البروتس وقمت بصنع الدائرة حقيقية
سلام عليكم
تاكد يااخي كريم ان بروتيس سهل ليس هناك صعوبه فيه اذا حاولت وتعلمت من خلال يوتيوب ستجده بسيط ان شالله واذا ردت نسخه من بروتيس سارفقه لك


armor
:: مهندس متواجد ::
تاريخ التسجيل: Apr 2006
المشاركات: 112
نشاط [ armor ]
قوة السمعة:0
قديم 05-08-2013, 03:26 PM المشاركة 7   
افتراضي


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

إضافة رد

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

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

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


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

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