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

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

abban270
:: مهندس متواجد ::
تاريخ التسجيل: Jul 2009
المشاركات: 89
نشاط [ abban270 ]
قوة السمعة:0
قديم 12-04-2014, 09:08 AM المشاركة 1   
افتراضي مساعدة في تحويل النظام الثنائي إلى العشري Twitter FaceBook Google+



السلام عليكم
ما هي أفضل ظريقة لتحويل النظام الثنائي إلى العشري
وإذا أمكن بدون إستعمال converter
لأني جربت الأمر dec2bcd لكنه لم يعمل
والحساب لا يتم كما ينبغي
الملقات مرفقة مع الموضوع
جزاكم الله خيرا


كود:
void main() {
int X,i ;
TRISB=0XFF;     // initialisation du port B en entrée
TRISC=0;TRISd=0;        //initialisation du port C en sortie
ADCON1=0X06;
PORTC=0;
while(1){
         { PORTC=X;
         portd=dec2bcd(X);
         delay_ms(100);
         X=X+1;         }
         }
           }
ملف المحاكات
http://www.gulfup.com/?PjjNqN

اعلانات

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


السلام عليكم
ما هي أفضل ظريقة لتحويل النظام الثنائي إلى العشري
وإذا أمكن بدون إستعمال converter
لأني جربت الأمر dec2bcd لكنه لم يعمل
والحساب لا يتم كما ينبغي
الملقات مرفقة مع الموضوع
جزاكم الله خيرا


كود:
void main() {
int X,i ;
TRISB=0XFF;     // initialisation du port B en entrée
TRISC=0;TRISd=0;        //initialisation du port C en sortie
ADCON1=0X06;
PORTC=0;
while(1){
         { PORTC=X;
         portd=dec2bcd(X);
         delay_ms(100);
         X=X+1;         }
         }
           }
ملف المحاكات
http://www.gulfup.com/?PjjNqN
السلام عليكم
يمكن أخي بأستعمال طريقه الضرب والجمع مثلا لتحويل من ثنائي الى عشري
نستخدم هذه طريقه
value=0b01001011

value=2^0 *1+2^1 *1+2^2 *0+2^3 *1 +2^4 *0+2^5 *0+2^6 *1+2^7 *0=75
او اكدر اكتبها بطريقه التاليه (( طريقه برمجه))
value2=value.b0 + ( 2*value.b1)+(4*value.b2)+( 8*value.b3)+(16*value.b4)+( 32*value.b5)+(64*value.b6)+( 128*value.b7)
وهنا تم تحويل رقم ثنائي مخزون في value الى رقم عشري ومخزون في value2
اليك الكود الكامل
كود:
char calculate( char value);
void main() 
{
char x=0;
TRISB=0XFF;     // initialisation du port B en entrée
TRISC=0;TRISd=0;        //initialisation du port C en sortie
ADCON1=0X06;
PORTC=0;
while(1){

          PORTC=x;
         portd= calculate(x);
          delay_ms(1000);
           x=x+1;

         }
           
}

char calculate( char value) // value=0b01001011=2^0 *1+2^1 *1+2^2 *0+2^3 *1 +2^4 *0+2^5 *0+2^6 *1+2^7 *0=75
{
 char value2=0;
 value2=value.b0 + ( 2*value.b1)+(4*value.b2)+( 8*value.b3)+(16*value.b4)+( 32*value.b5)+(64*value.b6)+( 128*value.b7)    ;
 return value2;

}
ولمزيد من معلومات حمل كتاب اسمه كتاب التحكم الالكتروني بدون اي خبره من هذا الموقع
http://download-pdf-ebooks.net/13-1-library-books

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

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


شكرا على الفكرة والكتاب
لكن هل يوجد أجوبة على الأسئلة التالية:
1. لماذا لا يشتغل الكود الذي استعملته أنا
كود:
dec2bcd(X)
2. لماذا تعمل 7segment الأولى والثانية بنفس الشكل لابد أن تعمل بشكل الآحاد والعشرات
3. هل أستطيع عمل عداد عن طريق 2 أو 4 7segment بدون إستعمال bcd27seg


التعديل الأخير تم بواسطة : abban270 بتاريخ 12-04-2014 الساعة 05:19 PM

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


شكرا على الفكرة والكتاب
لكن هل يوجد أجوبة على الأسئلة التالية:
1. لماذا لا يشتغل الكود الذي استعملته أنا
كود:
dec2bcd(X)
2. لماذا تعمل 7segment الأولى والثانية بنفس الشكل لابد أن تعمل بشكل الآحاد والعشرات
3. هل أستطيع عمل عداد عن طريق 2 أو 4 7segment بدون إستعمال bcd27seg
السلام عليكم
اخي كريم داله dec2bcd بتحول ارقام بالنظام عشري الى النظام BCD وهذا النظام ليس نظاما ثنائي
بالنسبه لتشغيل العداد على سفن سكمنت فانها تعمل بطريقه تسمى خدع البصريه multiplexing وهي تربط عده سفن سكمنت على نفس اسلاك ولكن يتم تشغيل قطعه واحده ويتم اطفاء البقيه ثم نشغل ثانيه ونطفئ البقيه وهكذا ولكن يكون هذا زمن كلي لايتجاوز 20ms والا سوف تلاحظها تنطفئ وتشتغل
عموما انا بحاول أحصل على برنامج عداد مثلا من 0 الى 999 لكي توضح لك الفكره
وبصراحه اخي لم تذكر انت سفن سكمنت بالبدايه موضوعك
ولم أفهم ماذا تريد الاستفاده من التحويل من نظام الى اخر
فأذا كان قصد تشغيل سفن سكمنت فبالتأكيد موضوع مختلف ولانحول الارقام بال نستخدم مصفوفه جاهزه وهذه مصفوفه يتم فيها خزن شكل الارقام ومنها يتم أظهاره
تحياتي الطيبه لكم


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


هذا ملف المحاكات لتفهم مقصودي

http://www.gulfup.com/?PjjNqN


الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,688
نشاط [ حسن هادي محمود ]
قوة السمعة:136
قديم 12-04-2014, 07:20 PM المشاركة 6   
افتراضي


السلام عليكم
اخي كريم ارجو ارفاق مع ملف محاكاه ملف البرمجه لغرض تشغيله والتاكد منه
اخي لم ارى في ملف محاكاه اي سفن سكمنت؟
عموما هذين مشروعين لعداد سفن سكمنت
http://arabsh.com/files/0c33404b63f3...r-1-2-rar.html

تحياتي


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


ملف البرمحة هو الكود الذي كتبته في الموضوع
في المشاركة الأولى

http://www.gulfup.com/?PUmoC3
كود:
void main() {
int X,i ;
TRISB=0XFF;     // initialisation du port B en entrée
TRISC=0;TRISd=0;        //initialisation du port C en sortie
ADCON1=0X06;
PORTC=0;
while(1){
         { PORTC=X;
         portd=dec2bcd(X);
         delay_ms(100);
         X=X+1;         }
         }
           }


التعديل الأخير تم بواسطة : abban270 بتاريخ 12-04-2014 الساعة 08:48 PM

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


هل من جديد حول البرنامج

إضافة رد

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

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

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


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

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