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

   

abban270
:: مهندس متواجد ::
تاريخ التسجيل: Jul 2009
المشاركات: 89
نشاط [ abban270 ]
قوة السمعة:
قديم 22-04-2014, 10:56 PM المشاركة 25   
افتراضي



بارك اله فيك على الشرح الوافي
والله تعلمت منك الكثير
جزاك الله ( ; ; ) for خير

اعلانات

مهنا
:: مهندس ::
تاريخ التسجيل: Mar 2014
المشاركات: 6
نشاط [ مهنا ]
قوة السمعة:
قديم 23-04-2014, 11:37 AM المشاركة 26   
افتراضي


السلام عليكم
في الحقيقة كان السؤال غير موضح بالنسبة الى التحويل من ثنائي الى عشري . فهل المقصود كدارة الكترونية أم عملية برمجة أم عملية تحويل رياضية
إذا كانت كدارة الكترونية نستطيع استخدام عداد ثنائي ب 12 مرحلة وهو عبارة عن دارة متكاملة(IC) ورقمها 4040
وباستخدام الدارة الرقمية 7 سيكمنت نستطيع أن نشكل الأحرف التالية 0.1.2.3.4.5.6.7.8.9.A.B.C.D.E.F
باستخدام 3 دارات 7 سيكمنت و عداد 4040 يمكننا تشكيل عداد عشري يعد من 0 الى 9999
اذا كان هذا هو المطلوب أستطيع أن أعطيك مواصفات هذه الدارة البسيطة

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

abban270
:: مهندس متواجد ::
تاريخ التسجيل: Jul 2009
المشاركات: 89
نشاط [ abban270 ]
قوة السمعة:
قديم 23-04-2014, 06:46 PM المشاركة 27   
افتراضي


السلام عليكم
في الحقيقة كان السؤال غير موضح بالنسبة الى التحويل من ثنائي الى عشري . فهل المقصود كدارة الكترونية أم عملية برمجة أم عملية تحويل رياضية
إذا كانت كدارة الكترونية نستطيع استخدام عداد ثنائي ب 12 مرحلة وهو عبارة عن دارة متكاملة(IC) ورقمها 4040
وباستخدام الدارة الرقمية 7 سيكمنت نستطيع أن نشكل الأحرف التالية 0.1.2.3.4.5.6.7.8.9.A.B.C.D.E.F
باستخدام 3 دارات 7 سيكمنت و عداد 4040 يمكننا تشكيل عداد عشري يعد من 0 الى 9999
اذا كان هذا هو المطلوب أستطيع أن أعطيك مواصفات هذه الدارة البسيطة

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


abban270
:: مهندس متواجد ::
تاريخ التسجيل: Jul 2009
المشاركات: 89
نشاط [ abban270 ]
قوة السمعة:
قديم 28-04-2014, 08:01 PM المشاركة 28   
افتراضي


لماذا هذا الكود يتوقف عند 255
مع أني غيرت X
كود:
int  i,x;

char dat[] = {192, 249,164,176,153,146,130,248,128,144};

void main()
{

TRISB=0XFF;     // initialisation du port B en entrée
TRISC=0;TRISd=0;        //initialisation du port C en sortie
ADCON1=0X06;
PORTC=0xFF;//
PORTD=0;
while(1){
x++;
for  (i=0;i<2;i++)
 {
 portd=1;
 portc=dat[x%10];
 delay_ms(3);  portd=0;

 portd=2;
 portc=dat[x/10%10 ];
 delay_ms(3); portd=0;
 
  portd=4;
 portc=dat[x/100%10];
 delay_ms(3); portd=0;
 
  portd=8;
 portc=dat[x/1000];
 delay_ms(3); portd=0;

}
         }
}


الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,673
نشاط [ حسن هادي محمود ]
قوة السمعة:
قديم 28-04-2014, 09:26 PM المشاركة 29   
افتراضي


لماذا هذا الكود يتوقف عند 255
مع أني غيرت X
كود:
int  i,x;

char dat[] = {192, 249,164,176,153,146,130,248,128,144};

void main()
{

TRISB=0XFF;     // initialisation du port B en entrée
TRISC=0;TRISd=0;        //initialisation du port C en sortie
ADCON1=0X06;
PORTC=0xFF;//
PORTD=0;
while(1){
x++;
for  (i=0;i<2;i++)
 {
 portd=1;
 portc=dat[x%10];
 delay_ms(3);  portd=0;

 portd=2;
 portc=dat[x/10%10 ];
 delay_ms(3); portd=0;
 
  portd=4;
 portc=dat[x/100%10];
 delay_ms(3); portd=0;
 
  portd=8;
 portc=dat[x/1000];
 delay_ms(3); portd=0;

}
         }
}
السلام عليكم
أخي كريم عندي ملاحظتين
1- لايجوز زياده قيمه متغير X الى اقصى قيمه له خصوصا حسب مالاحظ لديك اربع قطع من سفن سكمنت وعليه اقصى قيمه هي 9999 وعليه أنصحك بأستخدام داله for
كود:
for  (x=0;x<9999;x++)
2- يوجد عند خطأ بالكود
كود:
portd=1;
 portc=dat[x%10];
 delay_ms(3);  portd=0;

 portd=2;
 portc=dat[x/10%10 ];
 delay_ms(3); portd=0;
 
  portd=4;
 portc=dat[x/100%10];
 delay_ms(3); portd=0;
 
  portd=8;
 portc=dat[x/1000];
 delay_ms(3); portd=0;
انت رابط سفن سكمنت على portc وعليه يجب أطفاء سكمنت بعد تشغيله قبل تشغيل سفن سكمنت الثانيه وعليه أستبدل كود بلون احمر بــ ;portc=0xFF
لماذا لان سفن سكمنت من نوع كمن أنود


abban270
:: مهندس متواجد ::
تاريخ التسجيل: Jul 2009
المشاركات: 89
نشاط [ abban270 ]
قوة السمعة:
قديم 29-04-2014, 01:00 AM المشاركة 30   
افتراضي


دائما نفس المشكل
لا يستطيع أن يعد أكثر من 255

كود:
unsigned char  i,x;

char dat[] = {192, 249,164,176,153,146,130,248,128,144};

void main()
{

TRISB=0XFF;     // initialisation du port B en entrée
TRISC=0;TRISd=0;        //initialisation du port C en sortie
ADCON1=0X06;
PORTC=0xFF;//
PORTD=0;
while(1){

for  (x=0;i<9999;x++)
{for  (i=0;i<2;i++)
 {
 portd=1;
 portc=dat[x%10];
 delay_ms(3);  portd=0;

 portd=2;
 portc=dat[x/10%10 ];
 delay_ms(3); portd=0;

  portd=4;
 portc=dat[x/100%10];
 delay_ms(3); portd=0;

  portd=8;
 portc=dat[x/1000];
 delay_ms(3); portd=0;
 }
}
         }
}


التعديل الأخير تم بواسطة : abban270 بتاريخ 29-04-2014 الساعة 01:18 AM

الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,673
نشاط [ حسن هادي محمود ]
قوة السمعة:
قديم 29-04-2014, 05:52 AM المشاركة 31   
افتراضي


دائما نفس المشكل
لا يستطيع أن يعد أكثر من 255

كود:
unsigned char  i,x;

char dat[] = {192, 249,164,176,153,146,130,248,128,144};

void main()
{

TRISB=0XFF;     // initialisation du port B en entrée
TRISC=0;TRISd=0;        //initialisation du port C en sortie
ADCON1=0X06;
PORTC=0xFF;//
PORTD=0;
while(1){

for  (x=0;i<9999;x++)
{for  (i=0;i<2;i++)
 {
 portd=1;
 portc=dat[x%10];
 delay_ms(3);  portd=0;

 portd=2;
 portc=dat[x/10%10 ];
 delay_ms(3); portd=0;

  portd=4;
 portc=dat[x/100%10];
 delay_ms(3); portd=0;

  portd=8;
 portc=dat[x/1000];
 delay_ms(3); portd=0;
 }
}
         }
}
السلام عليكم
اولا انت معرف متغير x من نوع char وهذا خطأ يجب تعريفه من int
جرب هذا التعديل
كود:
unsigned char  i;
unsigned unsigned int x  ;

char dat[] = {192, 249,164,176,153,146,130,248,128,144};

void main()
{

TRISB=0XFF;     // initialisation du port B en entrée
TRISC=0;TRISd=0;        //initialisation du port C en sortie
ADCON1=0X06;
PORTC=0xFF;//
PORTD=0;
while(1){

for  (x=0;x<9999;x++)
{for  (i=0;i<2;i++)
 {
 portd=1;
 portc=dat[x%10];
  delay_ms(3); portc=0xff;

 portd=2;
 portc=dat[x/10%10 ];
 delay_ms(3); portc=0xff;

  portd=4;
 portc=dat[x/100%10];
 delay_ms(3); portc=0xff;

  portd=8;
 portc=dat[x/1000];
 delay_ms(3); portc=0xff;
 }
}
         }
}
جرب هذا التعديل واذا لم ينجح
أعطني ملف محاكاه مع ملف البرمجه لكي نرى اين مشكله

تحياتي


التعديل الأخير تم بواسطة : حسن هادي محمود بتاريخ 29-04-2014 الساعة 06:01 AM

abban270
:: مهندس متواجد ::
تاريخ التسجيل: Jul 2009
المشاركات: 89
نشاط [ abban270 ]
قوة السمعة:
قديم 29-04-2014, 04:19 PM المشاركة 32   
افتراضي


صار الكود لا يعمل !!!!
http://www.gulfup.com/?m6BL8P



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