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

   

الصورة الرمزية yasirh88
yasirh88
:: مهندس متواجد ::
تاريخ التسجيل: Dec 2014
المشاركات: 155
نشاط [ yasirh88 ]
قوة السمعة:
قديم 09-09-2015, 02:48 AM المشاركة 25   
افتراضي



أخى
لكل عائلة ميكرو سواء ميكرو بروسيسور أو ميكرو كونتروللر لغة أسيمبلى لها ولا تنطبق على أى عائلة أخرى
بعض العائلات تكون تطوير للأعلى بمعنى تعتمد السابق و تضيف إليه و البعض يختلف تماما
على أى أساس؟ هل كود بيك أم كود 8080؟؟؟؟
اخي العزيز لغة الاسيمبلي هي لغة واحدة ولا توجد لغة اسيمبلي خاصة بالبك او الاتميل او غيره حالها حال لغة السي وانا اعتبرتها اسهل لانها لغة ممكن فهمها عندما تقرا الكود كانك تقرا قصة ما ...يبقى الفرق بين ال 8086 والبك هو في تحديد مكان الريجسترات registers القطع segments الخاصة بهم ولا اعلم باللنسبة للاتميل هل هو نفس النظام ام لا
فرق البك عن ال 8086 هو ان ال8086 لا يحتوي على ضفف او banks عكس البك فمثلا بك 16f877a يحتوي على اربعة ضفف وكل ضفة تحتوي على ريجسترات معينة فالضفة الاولى تحتوي على بورت اي والضفة الثانية تحتوي على TRISA فلذلك عندما نحتاج ان نستدعي بورت اي -- في بداية البرنامج نستدعي الضفة الاولى وعندما نريد استدعاء TRISA ننتقل الى الضفة الثانية فمن الممكن تشبيه العملية اشبه بميناء بحري يتكون من عدد من الضفف والسفن والضفة هي bank والسفينة هي register كما ترى في الصورة الاتية
صورة توضح الميناء ص17 بالداتاشيت

فاكيد انا اقصد تحليل الكود باللنسبة للبك

البك PIC16 لإمكانياته المحدودة تجد أن لغته صعبة فهى فقط 35 أمر و ريجستر واحد و Accumulator واحد - ليس بينها ضرب ولا قسمة ولا التعامل مع BCD ولا مقارنة مع ذاكرة ولا indirect address كما أن Stack محدود وهى فى صفحة 162 للميكرو PIC16F877A ولا علاقة لها إطلاقا بالميكرو 8080 إلا الإسم فقط
مداخلة بسيطة يمكن عمل مقارنة ديجيتال بواسطة التعليمة XORLW كذلك يمكن تحويل الرقام الانالوج الى ديجيتال وعمل مقارنة بينهم ولكن العملية مطولة تبقى المشكلة انه في حالة ال 8086 هناك اوامر خاصة بعملية الضرب والقسمة والمقارنة وهناك اربع ريجسترات اي بي سي دي وعمليات الضرب والقسمة تحصل فقط في ريجسترات السي والدي ... واشكرك على معلومة الصفحة الخاصة بالاوامر فتوقعت ان جميع اوامر الاسيمبلي تنطبق على البك لم اعلم انها محددة من قبل الشركة هذا شئ اخر سانتبه اليه بالمستقبل

معذرة لديك فهم خاطئ عن اللغات فلغة السى لا علاقة لها بأى نوع من الميكرو فأنت تكتب
كما هى لا تتغير لكن المترجم للميكرو 8080 غير المترجم للميكرو 6800 غير المترجم للبيك غير المترجم لأتميل و كلهم سيقبلوا نفس الجملة لكن سيعطوا ملف هكس مختلف
هناك مغالطة شائعة بهذا الخصوص
لغة السى أقرب لكذا وكذا و لا أدرى ماذا!!!!!!!!!!!!!!
اخي العزيز هناك ما يسمى لغة الالة وهي اللغة التي يفهمها الحاسب فقط وسيترجم اي لغة الى لغة الالة فانه لا يفهم غيرها والتي تتكون من الاصفار والواحدات وهي نفسها ملفات الهيكس وان فهم لغة الاسمبلي تجعلك تقرا دماغ الحاسب فهي لغة قريبة على لغة الالة ومن السهل تحويلها الى لغة الالة بدون برامج ...فانت في هذه الفقرة تتكلم عن لغة الالة
فمثلا لو اخذنا احدى تعليمات instruction او اوامر .. ال 8086 وهي "mov" عندما تترجم الى لغة الالة بكود "10111" ولكن في حالة المايكروكونترولر او الاتميل ستترجم الى "0100111" فهنا الاختلاف يكون بالكومبايلر او المترجم الخاص بالعائلة علما ان هذا الكود اعطيته مثالا وليس صحيح ولكن هناك جداول خاصة توضح كل تعليمة والكود المقابل لها بلغة الالة

هذا الكلام صحيح فى الحاسبات حيث يوجد بايوس و فوقة كيرنل و فوقه Operating System و فوق ذلك البرنامج الذى تستخدمه و انت بلغة السى تتخطى هذا كله و تتعامل مباشرة مع المكونات Hardware
ملاحظة جميلة فانا اعرف فقط بالبايوس والاوبريتنج سيستم وسامع بال kernal ولكني لم اعرف ان هناك مراحل للنظام وهو المرحلة الوسطى ساطلع على هذا الموضوع فيما بعد

لكن فى الميكرو كونتروللر لا يوجد أى من هذا إطلاقا فمثلا
كود:

For X=5 to 10
-
-
Next

ستترجم بأى لغة سواء سى أو بيزك أو باسكال أو اسيمبلى للتالى
كود:

Loop:
MOV R0,#5
-
-
INC R0
CJNE R0,#10,Loop

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

كود:
  for (5>x<10){
};
لو كان مكتوب بلغة الاسمبلي
كود:
mov al,05
mov bl,10
loop: 
inc al
cmp al,bl
jnae loop
هل هذه لغة باسكال او بيسك ... ام انك اعطيته مثالا لاظهار مدى اختصار اللغة

غير مفهوم
لبرمجة البك يستخدم سي أو بيزك أو غيره حتى أنه توجد شركات تنتج واجهات رسومية مثل Great Cow وهى سهلة و بسيطة و عمليه و نادرا جدا ما تجد من يبرمج بالأسيمبلى
أتميل كثير جدا يستخدم الأسيمبلى ولا يلجأ لأى من اللغات إلا عندما تكون الحاجة للأرقام العشرية موجودة ولا مفر منها
كل البرامج تنفذ فى وحدة ALU و لم اسمع عن اوامر تنفذ فى ذاكرة - الذاكرة لحفظ الأرقام و البيانات فقط
ربما هذا الشرح يفيدك عن ALU
اطلعت على صور خاصة بالواجهات الرسومية ال great cow فعلا انها شئ جميل وساحاول الرجوع اليها فيما بعد لاعرف كيفية عملها واني اشكرك مرة اخرى على هذا الرابط الجميل الذي يشرح ال EEprom فهو من المواضيع التي كنت ابحث عنها ولم اجد شرحا مفصل وباقل عدد صفحات واذا كنت تملك موضوع مختصر يخص ال USB وكيفية تحويل ال RS الى USB اتمنى ان تضعه لان اكثر المواضيع التي قراتها هي مواضيع طويلة وكتب تتعدى ال 50 صفحة
وانا لم اقصد ان الرام هو من ينفذ البرنامج ولكن البرنامج يكتب بالرام ويتم نقله للبروسيسر ليتم معالجته بوحدة ال ALU اما عند كتابة البرنامج بالاسيمبلي فانت تكتب البرنامج بالريجسترات الخاصة بالبروسيسر وستتم العمليات بصورة اسرع بدون اي استهلاك للوقت لنقلها من الرام الى البروسيسر

الدعم حسب البرنامج المترجم فالبعض يدعى أنه يدعم و عندما تنفذ ما يطلبوا يعطى خطأ لغوى Syntax Error
شرحت لك متى تستخدم لغة السى و متى تستخدم الأسيمبلى و مع أى ميكرو

ما تستخدمه لهذه العائلة الميكرو هذه من برامج لا يصلح لعائلة أخرى
8086 غير البك PIC16 و PIC18 حيث جعلوا الأوامر 75 أمر و اضافوا الضرب وهو غير ATMEL حيث لها عدد كبير من الأوامر بينها الضرب و القسمة و التعامل مع BCD
اتمنى ان تكون فهمتني الان فانا اقصد كتابة بداية البرنامج وتهيئة المعلومات الضرورية بالريجسترات بواسطة الاسيمبلي وعندما اصل الى عملية ضرب او قسمة -مثلا- ابدء بالكتابة بواسطة لغة السي
هل تؤيد هذه النظرية وهل تعتقد انها ستزيد من ذاكرة الرام ويمكن كتابة برامج طويلة او اطول من ما لو كتبنا بلغة السي فقط

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

القطع تنتظر حتى يتم تفريغ الدائرة من الكهرباء و تتوقف عن العمل ثماما ثم تعيد التوصيل فتأخذ الدائرة فرصة البدء الصحيح..
هذه الحالة لن تنفعني لانك تخيل انطفاء كهرباء المولد والتحويل الى الوطني خلال ثانيتين او 3 ثواني

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

لها علاجين فقط بعد وضع الدايود الذى شرحته فى المرة الماضية
1- تكبير مكثف التقويم حتى يكون زمن التفريغ أكبر من زمن هذه النبضة التى تكون هذه الضوضاء
بعد ان تخبرني على مكان الدايود اتمنى ان تخبرني ما هو مكثف التقويم فانا في هذا المشروع استعمل محولة 12 فولت مستمر لم اعتمد على مصدر ايسي الى الان
12 فولت مستمر يتم تقليلها بواسطة زينر 5 فولت لغرض الايسيات وال 12 فولت لغرض الريلاي

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


التعديل الأخير تم بواسطة : yasirh88 بتاريخ 09-09-2015 الساعة 03:12 AM
اعلانات

ماجد عباس محمد
:: نائب المشرف العام
::
تاريخ التسجيل: Jun 2009
الدولة: القاهرة - مصر
المشاركات: 11,652
نشاط [ ماجد عباس محمد ]
قوة السمعة:
قديم 09-09-2015, 10:15 AM المشاركة 26   
افتراضي


اخي العزيز لغة الاسيمبلي هي لغة واحدة ولا توجد لغة اسيمبلي خاصة بالبك او الاتميل او غيره حالها حال لغة السي وانا اعتبرتها اسهل لانها لغة ممكن فهمها عندما تقرا الكود كانك تقرا قصة ما ...يبقى الفرق بين ال 8086 والبك هو في تحديد مكان الريجسترات registers القطع segments الخاصة بهم ولا اعلم باللنسبة للاتميل هل هو نفس النظام ام لا
فرق البك عن ال 8086 هو ان ال8086 لا يحتوي على ضفف او banks عكس البك فمثلا بك 16f877a يحتوي على اربعة ضفف وكل ضفة تحتوي على ريجسترات معينة فالضفة الاولى تحتوي على بورت اي والضفة الثانية تحتوي على TRISA فلذلك عندما نحتاج ان نستدعي بورت اي -- في بداية البرنامج نستدعي الضفة الاولى وعندما نريد استدعاء TRISA ننتقل الى الضفة الثانية فمن الممكن تشبيه العملية اشبه بميناء بحري يتكون من عدد من الضفف والسفن والضفة هي bank والسفينة هي register كما ترى في الصورة الاتية
صورة توضح الميناء ص17 بالداتاشيت

فاكيد انا اقصد تحليل الكود باللنسبة للبك
أخى
كنت أقوم بتدريس فرقة ميكرو بروسيسور لعدد من الفرق فى بداية التسعينات لميكرو انتيل 8080 و قرينه Z80 من شركة زيلوج و الذى تبنته أغلب الشركات فى الحاسبات الشخصية القليلة الكلفة ما عدا IBM و ميكرو 6800 لشركة موتورولا وهو شهير فى عالم التحكم و الماكينات و 6502 لشركة روكويل و الذى تبنته شركة أبل
لكل عائلة منها لها لغة أسيمبلى مختلفة
لوضع بيان مثلا الرقم 5 فى A للأولى تكتب
MOV A,#5
بينما فى الثانية تكتب
LD A,#5
و هكذا فرجاء لا تفرض ما تظنه على أنه واقع
مداخلة بسيطة يمكن عمل مقارنة ديجيتال بواسطة التعليمة XORLW كذلك يمكن تحويل الرقام الانالوج الى ديجيتال وعمل مقارنة بينهم ولكن العملية مطولة تبقى المشكلة انه في حالة ال 8086 هناك اوامر خاصة بعملية الضرب والقسمة والمقارنة وهناك اربع ريجسترات اي بي سي دي وعمليات الضرب والقسمة تحصل فقط في ريجسترات السي والدي ... واشكرك على معلومة الصفحة الخاصة بالاوامر فتوقعت ان جميع اوامر الاسيمبلي تنطبق على البك لم اعلم انها محددة من قبل الشركة هذا شئ اخر سانتبه اليه بالمستقبل
إذن أمر هنا قد لا يقبل هناك
اخي العزيز هناك ما يسمى لغة الالة وهي اللغة التي يفهمها الحاسب فقط وسيترجم اي لغة الى لغة الالة فانه لا يفهم غيرها والتي تتكون من الاصفار والواحدات وهي نفسها ملفات الهيكس
معذرة لغة الآله حقا هى أرقام ثنائية يعبر عنها للتسهيل بالنظام الستة عشرى أو الهكس ديسيمل لكنه ليس ملف الهكس
عندما تقوم بترجمه Compile لبرنامج ينتج عنه عدة ملفات
واحد بامتداد .HEX و واحد بامتداد .BIN و الأخير هو ملف بلغة الآلة لآنه Binary بلغة الآلة و تعبر عنه وسائل العرض المتخصصة Hex Editors بالأرقم الهكسا للتسهيل و لذلك فهو أصغر حجما من أى ملف آخر - فقط باينرى كود ولا يمكنك تعديله ولا قراءته بقارئ نصوصوص مثل NotePad مثلا. ولا يوجد بداخله أى تنسيق .
أما ملف الهيكس فهو ملف نصى TEXT File يبدأ كل سطر فيه بالرمز":" ثم مجموعة بيانات تحدد كم بايت يضم هذا السطر و بعض النسق مثل عنوان هذا الجزء الذى يذهب إليه فى ذاكرة الميكرو او الميمورى التى يوجه إليها أو إزاحة Offset ليمكن الوصول لسعات كبيرة ثم بعد ذلك القيم لكل بايت ولكن بحروف نصية ثم فى نهاية السطر CRC
لتفاصيل ملفات الهكس و بالمناسبة هى أكثر من نظام اقرأ
https://en.wikipedia.org/wiki/Intel_HEX

وهذا برنامج بالأسيمبلى لأتميل و ترجمته .HEX و أيضا .BIN و شوف فرق الحجم و التركيب لكل ملف و دور أى مبرمجة تعمل بنظام هكس أن تحوله لباينارى قبل وضعه فى الهدف أما التى ستقرأ .BIN فستضعه كما هو بدأ من موقع صفر فصاعدا
وان فهم لغة الاسمبلي تجعلك تقرا دماغ الحاسب فهي لغة قريبة على لغة الالة ومن السهل تحويلها الى لغة الالة بدون برامج ...فانت في هذه الفقرة تتكلم عن لغة الالة
فمثلا لو اخذنا احدى تعليمات instruction او اوامر .. ال 8086 وهي "mov" عندما تترجم الى لغة الالة بكود "10111" ولكن في حالة المايكروكونترولر او الاتميل ستترجم الى "0100111" فهنا الاختلاف يكون بالكومبايلر او المترجم الخاص بالعائلة علما ان هذا الكود اعطيته مثالا وليس صحيح ولكن هناك جداول خاصة توضح كل تعليمة والكود المقابل لها بلغة الالة
ليس سهلا فعندما يتعلق الأمر بالإنتقال من جزء لآخر Bransh , jump سيكون صعب أن تحسب هل تضيف 128 أم 127 أو تطرح 128 أو 127 و هل العنوان خارج النطاق أم داخلة و خطأ بسيط يتوه البرنامج لذا المترجم يرفع كثير من الأخطاء كما أنه يستخدم العناوين بدلا من الأرقام ليكون واضح أين تذهب
ملاحظة جميلة فانا اعرف فقط بالبايوس والاوبريتنج سيستم وسامع بال kernal ولكني لم اعرف ان هناك مراحل للنظام وهو المرحلة الوسطى ساطلع على هذا الموضوع فيما بعد

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

كود:
  for (5>x<10){
};
لو كان مكتوب بلغة الاسمبلي
كود:
mov al,05
mov bl,10
loop: 
inc al
cmp al,bl
jnae loop
هل هذه لغة باسكال او بيسك ... ام انك اعطيته مثالا لاظهار مدى اختصار اللغة
كان هذا مثالا لتوضيح أن فى الميكرو كونتروللر الفرق بين المترجم وآخر أهم من اللغة المستخدمة فهو الذى يحلل الأوامر المعقدة لمراحل أبسط لتحويلها لكود و نفس الدالة قد تنتج كود أطول فى مترجم عن مترجم آخر لنفس الميكرو بنفس اللغة
اوانا لم اقصد ان الرام هو من ينفذ البرنامج ولكن البرنامج يكتب بالرام ويتم نقله للبروسيسر ليتم معالجته بوحدة ال ALU اما عند كتابة البرنامج بالاسيمبلي فانت تكتب البرنامج بالريجسترات الخاصة بالبروسيسر وستتم العمليات بصورة اسرع بدون اي استهلاك للوقت لنقلها من الرام الى البروسيسر
ارجو ان نضع المسميات الصحيحة كاملة ولا نخلط بين الميكرو كونتروللر و الميكرو بروسيسور
فى الميكرو بروسيسور يوضع البرنامج فى الرام ولهذا يمكن لكود البرنامج أن يعدل نفسه و إن كان غير محبب لدى المبرمجين لصعوبة تتبعة لاحقا أما الميكرو كونتروللر فلا - البرنامج فى الميكرو كوتروللر يوضع فى الفلاش وهى غير قابلة للتعديل وهى فى البيك 14 بت بينما الداتا 8 فقط و لا يمكن للكود أن يعدل البرنامج فى EEPROM بينما يعدل الداتا فقط

ايضا ما معنى أنك تكتب فى الريجيترات الخاصة بالبروسيسور، هل فى السى لا تكتب فيها؟
الريجسترات محدودة ولا يتكب فيها شيء فقط تنقل البيانات منها و إليها من موقع آخر سواء كان هذا الموقع خطوة من البرنامج أو ريجستر آخر أو ذاكرة بيانات Data Ram أو مدخل من خارج الوحدة بورت فى الميكرو كونتروللر أو الداتا باص فى الميكرو بروسيسور
اتمنى ان تكون فهمتني الان فانا اقصد كتابة بداية البرنامج وتهيئة المعلومات الضرورية بالريجسترات بواسطة الاسيمبلي وعندما اصل الى عملية ضرب او قسمة -مثلا- ابدء بالكتابة بواسطة لغة السي
هل تؤيد هذه النظرية وهل تعتقد انها ستزيد من ذاكرة الرام ويمكن كتابة برامج طويلة او اطول من ما لو كتبنا بلغة السي فقط

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

هذه الحالة لن تنفعني لانك تخيل انطفاء كهرباء المولد والتحويل الى الوطني خلال ثانيتين او 3 ثواني

نعم اخي العزيز هذا الذي اتكلم عنه فالمعروف ان الضوضاء يحدث بفعل مؤثرات خارجية كتشويش او تداخل اشارات او حالات الهسترة التي تحصل لعدم انتظام الفولتيات ولم اكن اتوقعك تقصد هذا الكلام وانا افعل هذا الشئ لوجود سبب وهو كما قلت لك سرعة التحويل بالكهرباء

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

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

مكثف التقويم موجود داخل مصدر التيار المستمر و المقصود هنا أن هذا الدايود سيجعل تفريغ مكثف RESET يتبع جهد التغذية القادم من المصدر و الذى أظنه بعد الزينر 5 فولت و يمكنك زيادة تأثير مكثف التقويم بوضع واحد على البوردة أيضا على 12 فولت و آخر على 5 فولت
الدايود أيضا 1N4148 كالسابقين

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

الصورة الرمزية yasirh88
yasirh88
:: مهندس متواجد ::
تاريخ التسجيل: Dec 2014
المشاركات: 155
نشاط [ yasirh88 ]
قوة السمعة:
قديم 10-09-2015, 12:16 AM المشاركة 27   
angry


أخى
كنت أقوم بتدريس فرقة ميكرو بروسيسور لعدد من الفرق فى بداية التسعينات لميكرو انتيل 8080 و قرينه Z80 من شركة زيلوج و الذى تبنته أغلب الشركات فى الحاسبات الشخصية القليلة الكلفة ما عدا IBM و ميكرو 6800 لشركة موتورولا وهو شهير فى عالم التحكم و الماكينات و 6502 لشركة روكويل و الذى تبنته شركة أبل
لكل عائلة منها لها لغة أسيمبلى مختلفة
لوضع بيان مثلا الرقم 5 فى A للأولى تكتب
MOV A,#5
بينما فى الثانية تكتب
LD A,#5
و هكذا فرجاء لا تفرض ما تظنه على أنه واقع
اخي العزيز قد تكون فهمتني بصورة خاطئة فلم اقصد اي اهانة ولا التقليل من شانك ... وباللنسبة "لا تفرض ما تظنه على انه واقع" انا لم افرض اي شيء ولم ادعي اي شي انا فقط تكلمت على ما اعرفه ولكن عندما اوضحت الامر ورايت الاكواد تغيرت نظرتي واصبحت اعرف ان لغة الاسمبلي تختلف وليست واحدة واني كنت على خطأ فانا درست هذه اللغة بالجزء الخاص بال 8086 ولم اتطرق الى اي معالج اخر لذلك اعتقدتها هية عامة حالها حال لغة السي


معذرة لغة الآله حقا هى أرقام ثنائية يعبر عنها للتسهيل بالنظام الستة عشرى أو الهكس ديسيمل لكنه ليس ملف الهكس
عندما تقوم بترجمه Compile لبرنامج ينتج عنه عدة ملفات
واحد بامتداد .HEX و واحد بامتداد .BIN و الأخير هو ملف بلغة الآلة لآنه Binary بلغة الآلة و تعبر عنه وسائل العرض المتخصصة Hex Editors بالأرقم الهكسا للتسهيل و لذلك فهو أصغر حجما من أى ملف آخر - فقط باينرى كود ولا يمكنك تعديله ولا قراءته بقارئ نصوصوص مثل NotePad مثلا. ولا يوجد بداخله أى تنسيق .
أما ملف الهيكس فهو ملف نصى TEXT File يبدأ كل سطر فيه بالرمز":" ثم مجموعة بيانات تحدد كم بايت يضم هذا السطر و بعض النسق مثل عنوان هذا الجزء الذى يذهب إليه فى ذاكرة الميكرو او الميمورى التى يوجه إليها أو إزاحة Offset ليمكن الوصول لسعات كبيرة ثم بعد ذلك القيم لكل بايت ولكن بحروف نصية ثم فى نهاية السطر CRC
لتفاصيل ملفات الهكس و بالمناسبة هى أكثر من نظام اقرأ
https://en.wikipedia.org/wiki/Intel_HEX

وهذا برنامج بالأسيمبلى لأتميل و ترجمته .HEX و أيضا .BIN و شوف فرق الحجم و التركيب لكل ملف و دور أى مبرمجة تعمل بنظام هكس أن تحوله لباينارى قبل وضعه فى الهدف أما التى ستقرأ .BIN فستضعه كما هو بدأ من موقع صفر فصاعدا
اشكرك اخي العزيز على توضيح الفكرة وتصحيح الخطا والان بدات افهم كيف اقرا كود الهيكسا

ليس سهلا فعندما يتعلق الأمر بالإنتقال من جزء لآخر Bransh , jump سيكون صعب أن تحسب هل تضيف 128 أم 127 أو تطرح 128 أو 127 و هل العنوان خارج النطاق أم داخلة و خطأ بسيط يتوه البرنامج لذا المترجم يرفع كثير من الأخطاء كما أنه يستخدم العناوين بدلا من الأرقام ليكون واضح أين تذهب
كان هذا مثالا لتوضيح أن فى الميكرو كونتروللر الفرق بين المترجم وآخر أهم من اللغة المستخدمة فهو الذى يحلل الأوامر المعقدة لمراحل أبسط لتحويلها لكود و نفس الدالة قد تنتج كود أطول فى مترجم عن مترجم آخر لنفس الميكرو بنفس اللغة
معلومة جميلة اخرى تم اضافتها لمعلوماتي

ارجو ان نضع المسميات الصحيحة كاملة ولا نخلط بين الميكرو كونتروللر و الميكرو بروسيسور
فى الميكرو بروسيسور يوضع البرنامج فى الرام ولهذا يمكن لكود البرنامج أن يعدل نفسه و إن كان غير محبب لدى المبرمجين لصعوبة تتبعة لاحقا أما الميكرو كونتروللر فلا - البرنامج فى الميكرو كوتروللر يوضع فى الفلاش وهى غير قابلة للتعديل وهى فى البيك 14 بت بينما الداتا 8 فقط و لا يمكن للكود أن يعدل البرنامج فى EEPROM بينما يعدل الداتا فقط


الريجسترات محدودة ولا يتكب فيها شيء فقط تنقل البيانات منها و إليها من موقع آخر سواء كان هذا الموقع خطوة من البرنامج أو ريجستر آخر أو ذاكرة بيانات Data Ram أو مدخل من خارج الوحدة بورت فى الميكرو كونتروللر أو الداتا باص فى الميكرو بروسيسور
اخي العزيز الريجستيرات موجودة في قلب المايكروبروسيسر والقصد هو وضع قيم في هذه الريجسترات واجراء العمليات عليها ومن ثم نقلها الى الرام تحت ادريس معين الا تعتقد بانه اسرع من ما تضع القيم في الرام وتنقل القيم الى البروسيسر لاجراء العمليات عليها وثم ارجاعها الى الرام
ايضا ما معنى أنك تكتب فى الريجيترات الخاصة بالبروسيسور، هل فى السى لا تكتب فيها؟
... هل يمكنك ان تكتب كود بلغة السي تنقل قيمة 05 الى الريجستر A لتوضيح الفكرة

ولم تبقى الا نقطتين للايضاح وسنترك هذا الموضوع نهائيا

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

الثانية هي في 8086 كما قلت لك هناك اربع ريجسترات وعدد من السيجمنت لغرض اجراء العمليات فيها لكن في البك لاحظت عدم وجود هذه الريجسترات وعندما اذهب الى صفحة ال map اجد البورتات وال intcon وال tris ومواقعها في الرام ولكن كما تعلم اخي هذه الخانات لا يمكن نقل بها قيم لان لها معنى فلا يمكن ان نخزن قيمة معينة في موقع الذاكرة الخاص بال intcon او option reg فهذا يعني اننا سنقوم باطفاء او تفعيل التايمر زيرو او تفعيل حالة تغير الفولتية على بورت اي او بي
هل يمكنك ان تخبرني اين اجد البورت اي واين اجد السيجمنت التي يمكن الخزن بها عدا السيجمنت الخاصة التي لا يمكن تغيير قيمها

مكثف التقويم موجود داخل مصدر التيار المستمر و المقصود هنا أن هذا الدايود سيجعل تفريغ مكثف RESET يتبع جهد التغذية القادم من المصدر و الذى أظنه بعد الزينر 5 فولت و يمكنك زيادة تأثير مكثف التقويم بوضع واحد على البوردة أيضا على 12 فولت و آخر على 5 فولت
الدايود أيضا 1N4148 كالسابقين
اخي العزيز جربت الدائرة ولم يحصل شي جديد واستمر العداد بتغيير الحالة عند التشغيل والاطفاء السريع لكن هل تستطيع ان تركز معي بهذه الصورة



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


التعديل الأخير تم بواسطة : yasirh88 بتاريخ 10-09-2015 الساعة 12:38 AM

ماجد عباس محمد
:: نائب المشرف العام
::
تاريخ التسجيل: Jun 2009
الدولة: القاهرة - مصر
المشاركات: 11,652
نشاط [ ماجد عباس محمد ]
قوة السمعة:
قديم 10-09-2015, 10:48 AM المشاركة 28   
افتراضي


اخي العزيز الريجستيرات موجودة في قلب المايكروبروسيسر والقصد هو وضع قيم في هذه الريجسترات واجراء العمليات عليها ومن ثم نقلها الى الرام تحت ادريس معين الا تعتقد بانه اسرع من ما تضع القيم في الرام وتنقل القيم الى البروسيسر لاجراء العمليات عليها وثم ارجاعها الى الرام
لاحظ أن هناك عدد من الريجسترات و مراكم واحد فقط Accumulator ، و الفرق أن لو ذهبت نتيجة الحساب إليه سمى Accumulator و لو لم تذهب النتيجة إليه سمى Register
لهذا قبل أن نحكم أيها أسرع نذكر كم خانة ريجيتر متوافر و هل تستطيع أن تبقى كل حساباتك داخلها أم لا ولهذا السبب الوحدات الحديثة حتى من الميكرو كونتروللر زادت عدد الريجيترات إلى 32 حتى يمكنك أن تضع فيهما رقمين عشريين لكن مازالت المشكلة أنك يجب أن تذهب كل مرة إلى ALU و التى تخرج للمراكم Accumulator فقط و هنا اللعب بالألفاظ مستخدم دوما فى الشرح دون التفاصيل فدوما يذكر أن الحساب من الريجستر أسرع من الذاكرة
هذا صحيح لو لم تحتاج تأتى بالبيانات أصلا من الذاكرة ثم تعيد النتائج ثانيا لها
قارن بين الحالين التاليين

نقل الرقم الأول من الذاكرة للريجستر 1
نقل الرقم الثانى من الذاكرة للريجستر 2
جمع الرقمين و النتيجة ستذهب للمراكم Accumilator
نقل النتيجة من المراكم للذاكرة

و بين
نقل البيان الأول للمراكم
جمع المراكم على الرقم الثانى مباشرة من الذاكرة
نقل النتيجة للذاكرة

وهذا الكلام يخص الميكرو بروسيسور فقط لأن الرام خارج الوحدة وقد تكون بطيئة و غالبا ابطأ من الميكرو لذا أضافوا مدخل له يسمى Wait أو غيرة من الأسماء لينتظر الميكرو بروسيسور المحيط peripheral حتى يضع الداتا على الداتا باص
أما الميكرو كونتروللر فالذاكرة و الريجيستر كلاهما فى داخل الوحدة و الفرق بينهما بسيط و الوحدات الحديثة اصبحت متساوية كانت واحدة تأخذ دورة و الأخرى دورتان دون انتظار لشيء و كثير من الوحدات الأحدث ساوت بينهما
... هل يمكنك ان تكتب كود بلغة السي تنقل قيمة 05 الى الريجستر A لتوضيح الفكرة
انا لم ابرمج لميكرو بروسيسور بالسى - فقط بالأسيمبلى و من قراءتى تضطر لإستخدام كود اسيمبلى داخل السى

لكن للميكرو كونتروللر أى منهم مجرد خانة ذاكرة و تستطيع إعطائه اسم آخر و ما تضع به رقم فى أى ريجستر أو ذاكرة تضع به فى A وهذا فى أتميل لكن بيك لم استخدم اسيمبلى معه و لم افكر فيه
ولم تبقى الا نقطتين للايضاح وسنترك هذا الموضوع نهائيا

الاولى عند عمل build ببرنامج المايكروسي فهو يستخدم ذاكرتين الرام والروم هل يمكنك توضيح هذه النقطة لماذا استخدم الذاكرتين ولم يستخدم واحدة
اليس فى الوحدة "البيك" أو غيرها من الميكرو كونتروللر ذاكرتين واحدة للداتا وهى رام و الأخرى للبرنامج EEPROM ولا تستطيع الخلط بينهما؟؟
إذن هو يوضح لك كم استهلكت من المتاح لك كبرنامج حتى لا تتعداه
و أثناء التشغيل ستستهلك كم من المتاح لبياناتك فقد تطلب توفير أكثر من المتاح فيعطيك رسالة خطأ
الثانية هي في 8086 كما قلت لك هناك اربع ريجسترات وعدد من السيجمنت لغرض اجراء العمليات فيها لكن في البك لاحظت عدم وجود هذه الريجسترات وعندما اذهب الى صفحة ال map اجد البورتات وال intcon وال tris ومواقعها في الرام ولكن كما تعلم اخي هذه الخانات لا يمكن نقل بها قيم لان لها معنى فلا يمكن ان نخزن قيمة معينة في موقع الذاكرة الخاص بال intcon او option reg فهذا يعني اننا سنقوم باطفاء او تفعيل التايمر زيرو او تفعيل حالة تغير الفولتية على بورت اي او بي
هل يمكنك ان تخبرني اين اجد البورت اي واين اجد السيجمنت التي يمكن الخزن بها عدا السيجمنت الخاصة التي لا يمكن تغيير قيمها
هل قرأت الفرق بين الميكرو بروسيسور و الميكرو كونتروللر و PLC؟
http://www.qariya.info/vb/showthread...549#post977549
البيك 16 به 2 فقط أتميل به 8 إضافة لل A,B
لا تبحث عن ما هو موجود فى الميكرو بروسيسور فى الميكرو كونتروللر فكلاهما لعالم مختلف
اخي العزيز جربت الدائرة ولم يحصل شي جديد واستمر العداد بتغيير الحالة عند التشغيل والاطفاء السريع لكن هل تستطيع ان تركز معي بهذه الصورة
معذرة لا اعلم ما إن كنت وضعت مكثف كبير على مدخل التغذية ولا ماذا فعلت ولم يعمل و الأفضل لو تضع رسما كاملا ولو كان بالبروتس يمكنك قبل ان تحفظ الصورة من قائمة Export أن تختار صورة أصغر حجما فهو يتيح كم بكسيل فى كم و أيضا 16 لون فقط و الخلفية أبيض لكن حاليا نناقش هذه الدائرة
هذه الدائرة بها خطأ ان التغذية 6 فولت و موضوعة على زينر 5 فولت - ببساطة سينفجر الزينر و خاصة لو استخدمت مصدر 12 فولت و كان تياره كبير ولو تياره صغير قد يحترق
الا تعتقد بان هذه المتسعة لها علاقة .. هل من الممكن ان تكون السبب في تشغيل ال 555 وبالتالي العداد ... اعلم اخي انها لا تعتبر مشكلة ولا اهتم بها لهذا المشروع ابدا ولكن مستقبلا عندما اواجه مثل هذه الحالة وفي دوائر حساسة ستفيدني كثيرا
تحياتي لك اخــــي العـــزيــــز
بهذه أو بدونها فالمؤقت 555 يعانى من هذه المشكلة حتى لو كان وحيدا وله طرق لإيقافها مشروحة فى سلسلة عن 555 مرفوعة هنا ولكن حتى لو اعطى نبضة سيفرق عد واحد فى العداد ولن يتعدى وضع الريسيت
مهمة المكثف الذى وضعته فى الدائرة أن يفرض RESET ويوقف العداد فترة البدء وهى زمن = هذا المكثف × المقاومة 10ك و لو استبدلته بآخر 100 ميكرو سيقف العداد لمدة حوالى ثانية قبل أن يستجيب مرة أخرى لل 555


الصورة الرمزية yasirh88
yasirh88
:: مهندس متواجد ::
تاريخ التسجيل: Dec 2014
المشاركات: 155
نشاط [ yasirh88 ]
قوة السمعة:
قديم 11-09-2015, 12:25 AM المشاركة 29   
افتراضي


قارن بين الحالين التاليين

نقل الرقم الأول من الذاكرة للريجستر 1
نقل الرقم الثانى من الذاكرة للريجستر 2
جمع الرقمين و النتيجة ستذهب للمراكم Accumilator
نقل النتيجة من المراكم للذاكرة

و بين
نقل البيان الأول للمراكم
جمع المراكم على الرقم الثانى مباشرة من الذاكرة
نقل النتيجة للذاكرة
اخي العزيز هذا هو قصدي بالضبط

لاحظ أن هناك عدد من الريجسترات و مراكم واحد فقط Accumulator ، و الفرق أن لو ذهبت نتيجة الحساب إليه سمى Accumulator و لو لم تذهب النتيجة إليه سمى Register
لهذا قبل أن نحكم أيها أسرع نذكر كم خانة ريجيتر متوافر و هل تستطيع أن تبقى كل حساباتك داخلها أم لا
لا توجد مشكلة هنا
ولهذا السبب الوحدات الحديثة حتى من الميكرو كونتروللر زادت عدد الريجيترات إلى 32 حتى يمكنك أن تضع فيهما رقمين عشريين لكن مازالت المشكلة أنك يجب أن تذهب كل مرة إلى ALU و التى تخرج للمراكم Accumulator فقط و هنا اللعب بالألفاظ مستخدم دوما فى الشرح دون التفاصيل فدوما يذكر أن الحساب من الريجستر أسرع من الذاكرة
هذا صحيح لو لم تحتاج تأتى بالبيانات أصلا من الذاكرة ثم تعيد النتائج ثانيا لها
اولا ما المقصود بكلمة الوحدات هل تقصد بها "البروسيسر او البك"
ثانيا ما هو الرقم العشري هل تقصد مثلا "0.3453" لكن كيف سيحسب قيمته هل تحسب على انه 8 بت او 16 هل يمكنك اعطاء مثال
ثالثا ما الذي يمنع الشركات من صنع مايكروبروسيسر يحتوي على 8 ريجسترات ويتم تخصيص اربعة منها لعمل ال ALU -وهذا على سبيل المثال- وبذلك ستتم العمليات في اربعة ريجسترات بدل الواحد في وقت واحد ويتم التحكم بهذه العمليات بواسطة Execution Unit او وحدات سيطرة وبذلك نمنع تداخل الداتا مع بعضها وهناك اربع خطوط لنقل النواتج الى الرام وايضا يتحكم بها داتا باص

وهذا الكلام يخص الميكرو بروسيسور فقط لأن الرام خارج الوحدة وقد تكون بطيئة و غالبا ابطأ من الميكرو لذا أضافوا مدخل له يسمى Wait أو غيرة من الأسماء لينتظر الميكرو بروسيسور المحيط peripheral حتى يضع الداتا على الداتا باص
أما الميكرو كونتروللر فالذاكرة و الريجيستر كلاهما فى داخل الوحدة و الفرق بينهما بسيط و الوحدات الحديثة اصبحت متساوية كانت واحدة تأخذ دورة و الأخرى دورتان دون انتظار لشيء و كثير من الوحدات الأحدث ساوت بينهما
هل تقصد ان الرام يقع في قلب البروسيسر الى جانب ريجستر a في حالة المايكروكونترولر ؟؟ وهل يمكنك ان توضح ماذا تقصد بالدورة هل تقصد clock نبضة واحدة ونبضتين .... وحسب علمي ان المايكروكونترولر يحتاج الى اربع نبضات للقيام بعملية واحدة لذلك يتم قسمة تردد الكرستالة على 4 هل هذا صحيح؟؟

لكن للميكرو كونتروللر أى منهم مجرد خانة ذاكرة و تستطيع إعطائه اسم آخر و ما تضع به رقم فى أى ريجستر أو ذاكرة تضع به فى A وهذا فى أتميل لكن بيك لم استخدم اسيمبلى معه و لم افكر فيه
لم افهم هذه الفقرة ايضا ما الذي اعطيه اسم اخر وهل تقصد بان جميع ذاكرة المايكروكونترولر هي عبارة عن ريجستر a فقط
يا اخي انا من مشجعي البك وانت من مشجعي ومحبي الاتميل وانا بدأ الفضول لدي واود ان اعرف ما هو فرق الاتميل عن البك الاعتيادي؟ وهل يتقبل لغة السي ام فقط الاسمبلي؟ وهل توجد به نوعيات ام نوعية واحدة؟ هل تنصحني ان اترك البك والجأ الى الاتميل؟ هل سعره اغلى من البك ام نفس الاسعار؟

اليس فى الوحدة "البيك" أو غيرها من الميكرو كونتروللر ذاكرتين واحدة للداتا وهى رام و الأخرى للبرنامج EEPROM ولا تستطيع الخلط بينهما؟؟
إذن هو يوضح لك كم استهلكت من المتاح لك كبرنامج حتى لا تتعداه
و أثناء التشغيل ستستهلك كم من المتاح لبياناتك فقد تطلب توفير أكثر من المتاح فيعطيك رسالة خطأ
من هذه الفقرة افهم انه عنده عمل burn للبرنامج على البك سيحفظ في ذاكرة الروم للبك وعند ربط البك بالكهرباء وتوصيله بالدائرة الكهربائية تبدا القيم بالانتقال الى ذاكرة الرام الخاصة بالبك وان المايكروسي يحدد لي الحالتين هل هذا صحيح؟

هل قرأت الفرق بين الميكرو بروسيسور و الميكرو كونتروللر و PLC؟
http://www.qariya.info/vb/showthread...549#post977549
البيك 16 به 2 فقط أتميل به 8 إضافة لل A,B
لا تبحث عن ما هو موجود فى الميكرو بروسيسور فى الميكرو كونتروللر فكلاهما لعالم مختلف
ماذا تقصد بال 2 وال 16 ريجسترات ام سيجمنت

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

اول شي سؤال : "الثانى وهو الميكرو كونتروللر نشأ عندما تطور الميكروبروسيسور من 8 بت إلى 16" هل تقصد تطور الريجسترات الموجودة بالبروسيسر مثلا a , b, c فعلى سبيل المثال في ال 8086 هذا الكود
كود:
mov Ax,1234H
هذا الكود ينقل 16 بت الى ريجستر a فهل يعتبر ال 8086 16 بت على هذا الاساس


ناتي للغموض
اولا
أيضا حجم الذاكرة المتاحة للميكرو بروسيسور لا نهائى لكن للميكرو كونتروللر فالداخلية منها محدودة و الخارجية ليست متاحة لكافة الطرازات.
ان البروسيسر يوضع له رام خارجي وهذا الرام محدد حسب سرعة المايكروبروسيسر في حالة زيادة الرام عن قيمة معينة سيؤدي الى خلل في عمل البروسيسر والكومبيوتر ايضا يبدا بعمل ريستارت تلقائي او ظهور الشاشة الزرقاء او ثقل في تشغيل البرامج اما اذا كان قصدك الهارد فهو ايضا محدد ولا يمكن وضع هارد تيرا بايت على بروسيسر سرعته قليلة كما في الحاسبات القديمة بينتيوم ون وتو وثري هل ما قلته صحيح ؟؟؟

ثانيا

و فارق آخر أنك لو تريد بضع مئات الآلاف منه يمكنك توفير زمن البرمجة و ارسال نموذج مع البرنامج للشركة المنتجة فتعطى لك وحدات مبرمجة على ذاكرة ROM بدلا من EEPROM وهى أرخص بكثير ولكن بالطبع غير قابلة للمحو و إعادة البرمجة.
هل تقصد الشركة المنتجة للبك مثلا microchip بمعنى اخر لو اردت عمل برنامج لتشغيل ليد على بورت معين سارسل الكود الهيكسا للشركة وملف البروتس والشركة ستعمل الالاف من البكات التي تحتوي على برنامج لتشغيل الليد على البورت ولا يمكن تغيير البرنامج بعد هذه العملية حتى بالمبرمجة وكيف تتم مراسلتها ؟؟ وكيف يرسلون البكات عن طريق بريد فيديكس او دي اج ال مثلا

مداخلة

1 - C الزائد أو المحمول Carry وهو يسجل إن كانت عملية الجمع ينتج عنها Carryو الطرح تحتاج اقتراض Borrow واحد أم لا.
2 - H نصف زائد Half Carry وهو بين البت 3،4 حيث وهو يسجل إن كانت عملية الجمع ينتج عنها Carryو الطرح تحتاج اقتراض Borrow واحد أم لا و ذلك بين الرقمين المكونان للعدد
هل تقصد بهذه دوائر اللوجك ال half adder وال full adder (اضغط على الكلمة لاظهار الرابط )
ام شئ اخر يسمى half carry, carry

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



هذه الدائرة بها خطأ ان التغذية 6 فولت و موضوعة على زينر 5 فولت - ببساطة سينفجر الزينر و خاصة لو استخدمت مصدر 12 فولت و كان تياره كبير ولو تياره صغير قد يحترق
نعم اخي العزيز ان التغذية خطأ فالتغذية موضحة بالصورة التي وضعتها بالصفحة الثانية وهذه الصورة وضعتها لانها اوضح من السابقة وكما ترى اخي ان هذه الصورة بالاعلى منقولة وليست من صنعي ولكني حولتها الى الرسم (اضغط على كلمة الدائرة)

الدائرة


بهذه أو بدونها فالمؤقت 555 يعانى من هذه المشكلة حتى لو كان وحيدا وله طرق لإيقافها مشروحة فى سلسلة عن 555 مرفوعة هنا
مهمة المكثف الذى وضعته فى الدائرة أن يفرض RESET ويوقف العداد فترة البدء وهى زمن = هذا المكثف × المقاومة 10ك و لو استبدلته بآخر 100 ميكرو سيقف العداد لمدة حوالى ثانية قبل أن يستجيب مرة أخرى لل 555
نعم اخي فهو يعتبر من دوائر RC الخاصة بتوفير delay للدوائر والمستخدم في اجهزة الحماية وضع الانتظار هل هذا صحيح ؟ ولكن لا اعرف لماذا لا يعمل
ولكن حتى لو اعطى نبضة سيفرق عد واحد فى العداد ولن يتعدى وضع الريسيت
لم افهم هذه الفقرة هل تقصد بانه سيتحول من Q0 الى Q1 ام انه سيبقى في وضع الريسيت

هناك سؤال في بالي ولكني محرج يا اخي ... هل يمكنك ان تتكلم عن مراحل عمل الحاسوب يعني عند تشغيل الكومبيوتر ماذا يحدث بالضبط هل يتم تصفير قيم البروسيسر ام ماذا ... عند ظهور الشاشة السوداء في بداية التشغيل ماذا يحصل ... عند بداية الوندوز ماذا يحدث هل يتم تهيئة ملفات الريجستري -اذا مطلع على العمليات التي تجري في الحاسوب alt+ctrl+del بها احدى العمليات باسم svchost.exe ليست واحدة بل اكثر من واحدة ولا يمكن الغاء اي واحدة لانها تابعة للنظام ... وهناك ما يسمى بال privacy policy ما هو هل يعتبر جزء موجود في جميع نسخ الوندوز ام شئ اضافي ... عند تشغيل برنامج معين مصنوع مثلا بالفيجوال بيسك عند الضغط على كومند بالبرنامج سيظهر صورة كيف سيقرا البروسيسر هذه العملية وكيف سيظهر الصورة هل الصور تحتوي على اكواد معينة ...
علما ان الموضوع ليس بالسهل وانه اذا اردنا التحدث عنه سنحتاج ايام وصفحات ولكني لا اريدك ان تتكلم بالتفصيل عن خطوة خطوة ولكن ما اريده فقط اسماء المراحل التي تتم بعدها يمكنني البحث عن المراحل في الانترنيت ودراستها ... في حالة عدم الرد على هذه الفقرة ساتركها ولن اسالك ابدا عليها مرة ثانية

بعد الهدوء عاصفة ... هذه عاصفة من الاسئلة اتمنى تتماسك اعصابك معي وما تغلق الموضوع او تقوم باي عمل تهوري يؤدي الى خسارة الحاسبة او كسر شئ ما
وراح احاول انهي الموضوع باسرع وقت بس خل تخلص الاسئلة


التعديل الأخير تم بواسطة : yasirh88 بتاريخ 11-09-2015 الساعة 02:20 AM

ماجد عباس محمد
:: نائب المشرف العام
::
تاريخ التسجيل: Jun 2009
الدولة: القاهرة - مصر
المشاركات: 11,652
نشاط [ ماجد عباس محمد ]
قوة السمعة:
قديم 11-09-2015, 12:24 PM المشاركة 30   
افتراضي


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

قلت هنا الوحدات لأن الكلام صحيح للحالتين فالميكرو بروسيسور الحديث 23 بت و 64 بت و بداخله أظن 32 ريجستر و الأجيال الحديثة من الميكرو كونتروللر أيضا تنتقل لهذا الإتجاه رغم معارضة المستخدمين كثيرا لأنه يفقد أهم خاصية للميكرو كونتروللر وهى البساطة
أتميل AVR بداخلة 32 ريجستر × 8 بت و 6 ريجستر منها يمكن جمع كل 2 لتكوين 3 ريجستر × 16 بت
ثانيا ما هو الرقم العشري هل تقصد مثلا "0.3453" لكن كيف سيحسب قيمته هل تحسب على انه 8 بت او 16 هل يمكنك اعطاء مثال
معذرة لهذا الخطأ فهو متكرر لدى - نعم أقصد الرقم الكسرى أو الحقيقى
حسابه معقد لذلك يتم فى الميكرو بروسيسور داخل وحدة متخصصة نشأت باسم Co-Processor و تحولت لإسم Math processor و أخيرا دمجت بداخل الميكرو و الأوامر تتداول حسب نوع الأمر فى داخله
أما الميكرو كونتروللر فالأمر كله Software و الأوامر التى تتم HW لا تعدو الضرب للأرقام الصحيحة و كانت القسمة فى أتميل ولا أدرى لماذا هجرت فى AVR
للفهم العام اليك هذا الرابط
https://en.wikipedia.org/wiki/Double...g-point_format
أما ما يخصك فهو من المترجم Compiler الذى تستخدمه فهو ما يحدد عدد البايت المستخدم الخ
فى ميكرو سي للبك تجده فى ملف المساعدة، ثالث موضوع من الأسفل
mikroBasic PRO for PIC Language Reference > Types > Simple Types >
ثالثا ما الذي يمنع الشركات من صنع مايكروبروسيسر يحتوي على 8 ريجسترات ويتم تخصيص اربعة منها لعمل ال ALU -وهذا على سبيل المثال- وبذلك ستتم العمليات في اربعة ريجسترات بدل الواحد في وقت واحد ويتم التحكم بهذه العمليات بواسطة Execution Unit او وحدات سيطرة وبذلك نمنع تداخل الداتا مع بعضها وهناك اربع خطوط لنقل النواتج الى الرام وايضا يتحكم بها داتا باص
أتميل عائلة C51 بها 8 ريجستر وهى جزء من الرام الأماكن 00 إلى 07 و يمكنك نقل عنوانها بينه و بين الثلاث أماكن التاليه (08 - 0F أو 10 : 18 أو 1F 20 ) , l ) و مازال اسمها R0:R7 فلو ذهبت إلى SUB مثلا ولا تريده أن يعبث بهذه الريجسترات خاصة وأن لها ميزات عن الذاكرة العادية بأمر واحد تنقل عنوانها من 0 : 3
هل تقصد ان الرام يقع في قلب البروسيسر الى جانب ريجستر a في حالة المايكروكونترولر ؟؟
نعم انظر لتركيب أى ميكرو كونتروللر ستجد الرام داخلة و محدودة 128 أو 256 ×8 بت
البعض أضاف EEPROM لتستطيع حفظ بيانات عند انقطاع التيار أو RESET لأى سبب بدلا من استخدام وحدة خارجية مثل 24C01 و لها اوامر خاصة
وهل يمكنك ان توضح ماذا تقصد بالدورة هل تقصد clock نبضة واحدة ونبضتين .... وحسب علمي ان المايكروكونترولر يحتاج الى اربع نبضات للقيام بعملية واحدة لذلك يتم قسمة تردد الكرستالة على 4 هل هذا صحيح؟؟
نعم و الحديث الآن اصبح دورة لكل Clock إلا القليل مثل الضرب و الإختبار مع انتقال
لم افهم هذه الفقرة ايضا ما الذي اعطيه اسم اخر وهل تقصد بان جميع ذاكرة المايكروكونترولر هي عبارة عن ريجستر a فقط
ستجده مشروح فى تركيب الميكرو فى الداتا شيت
البيك ستجد مكان و عنوان لكل ريجستر ولا يوجد به A
لأتميل أيضا به مواقع ذاكرة مخصصه لهذه الأماكن البورت و الأكيوميليتور A,B الخ
المسأله تعود للمترجم الذى تستخدمه
بعض البرامج تسمح أن تعطى أسماء للريجسترات كما تعطى أسماء للبورتات
فكما يمكنك أن تسمى بورت A باسم LCD_Data و بعدها كل مرة تريد كتابة شيى على الشاشة تستخدم هذا الإسم يمكنك أيضا أن تعطى ريجستر أسم و تستخدمه
فمثلا فى أتميل 8 ريجستر منها R0,R1 تسمح ب Indirect Address فيمكنك تسمى R0 باسم Table و بدلا من الطلب حيث R0* تستخدم الإسم للسهولة *Table
لكن بعض البرامج قد لا تقبل أن تعطى اسماء لها و يمكنك التحايل حول ذلك ففى النهاية هى مكان فى الذاكرة تكتب فيه زى أى مكان آخر
فكل البرامج تسمح أن تعطى لأماكن الذاكرة أسماء
يا اخي انا من مشجعي البك وانت من مشجعي ومحبي الاتميل وانا بدأ الفضول لدي واود ان اعرف ما هو فرق الاتميل عن البك الاعتيادي؟
تقصد PIC 16 مقابل C51 مثل AT89C52
البك به F,W الاتميل به A,B + 8 يمكن نقلها
البك 32 أمر فقط لكن الأتميل حوالى 120 أمر منها الضرب و القسمة
لا يتعامل مع BCD - يتعامل مع BCD
لا يوجد Index register - يوجد به واحد و البعض 2
ذاكرة البرنامج 12 بت مختلفة عن الداتا - الإثنين 8 بت
لا يقرأ الكود للأكيوميليتور ولكن هناك وسيلة للتحايل - يقرأ الكود و من ثم يمكنك حفظ جدول كبير كجزء من البرنامج ثم تقرأ منه
به 5 بورت غير منسقة 2 منها فقط 8 بت - به 4 بورت كل منها 8 بت و كل أطرافها متتابعة تسهل كثيرا عمل البوردة
البرمجة بالأسيمبلى صعبة جدا - البرمجة بالأسيمبلى سهلة
و غيرها كثير
وهل يتقبل لغة السي ام فقط الاسمبلي؟
يبدو أنك لم تقرأ ما ذكرته المرة الماضيه عن الملفات أو بدأت الرد قبل أن تكمل.
السى و الأسيمبلى و البيزك و الباسكال و الرسومية كلها فى النهاية تولد إما ملف هيكس أو ملف باينارى أو الإثنين معا طبقا لنوع الميكرو بروسيسور او الميكرو كونتروللر المختار
وهذا ما تتعامل معه المبرمجة لتحوله إلى باينارى داتا تذهب للميكروكونتروللر
وهل توجد به نوعيات ام نوعية واحدة؟ هل تنصحني ان اترك البك والجأ الى الاتميل؟ هل سعره اغلى من البك ام نفس الاسعار؟
طبعا به أنواع عديدة جدا فى عائلة C51 ثم مجموعة أخرى فى عائلة AVR و عائلة ثالثة تسمى XMEGA
الأسعار متقاربة و ما تحبه أكثر استخدمه
من هذه الفقرة افهم انه عنده عمل burn للبرنامج على البك سيحفظ في ذاكرة الروم للبك وعند ربط البك بالكهرباء وتوصيله بالدائرة الكهربائية تبدا القيم بالانتقال الى ذاكرة الرام الخاصة بالبك وان المايكروسي يحدد لي الحالتين هل هذا صحيح؟
ما زلت تفكر فى الميكروكونتروللر بعقلية الميكرو بروسيسور
أولا هى فى EEprom و عند البدء تقرأ منها مباشرة لل ALU و إن كان الأمر يخص بورت مثلا لا يتعامل مع الرام إطلاقا

حتى فى الميكرو بروسيسور لا تنتقل من الرام للريجستر هى تنتقل للكاش وهذا فرق كبير
ماذا تقصد بال 2 وال 16 ريجسترات ام سيجمنت
الم اقل لك لا تبحث فى الميكرو كونتروللر عن ما فى المكرو بروسيسور؟
أقصد فى PIC16xxxxx يوجد 2 فقط أما اتميل فكما ذكرت A,B و 8 أخرة R0:R7
هى ريجسترات
وباللنسبة لهذا الموضوع فهو اكثر من رائع والفقرة الاخيرة هل قمت باضافتها حديثا فانها غير موجودة بملف البي دي اف وهناك بعض الغموض
نعم فالمناقشة معك جعلتنى أشعر بضرورة إضافتها فقد كان قصدى أصلا أنه كورس لوجيك ولكنى وجدت أن مادام أتى ذكر الحاسب فلتكن الصورة أوضح و عند الإنتهاء إن شاء الله من التعديل سيعدل ملف البى دى اف و شكرا لك
اول شي سؤال : "الثانى وهو الميكرو كونتروللر نشأ عندما تطور الميكروبروسيسور من 8 بت إلى 16" هل تقصد تطور الريجسترات الموجودة بالبروسيسر مثلا a , b, c فعلى سبيل المثال في ال 8086 هذا الكود
كود:
mov Ax,1234H
هذا الكود ينقل 16 بت الى ريجستر a فهل يعتبر ال 8086 16 بت على هذا الاساس
هذا أمر و ذاك أمر آخر
بدأت القصة كما بالمنهج ALU من 4 بت و كانت أساس الحاسبة الأولى التى ظهرت لأربع عمليات جمع و طرح و ضرب و قسمة فقط ثم طورت بإضافة الجذور التربيعية و العلامة المئوية % وكانت قمة التكنولوجيا و مكلفة جدا حتى أن الناس كانت تظن أن عندما تحسب جذر 3 ثم حسب مربع الناتج فتحصل على 2.999999999 أن هذا دقة عالية بدلا من الخطأ
ظهر 8080 من انتل و كان طفرة لكن معوق لكثرة المكملات المطلوبة ليعمل فظهرت شركة زيلوج و انتجت Z80 و يحتوى 2 من 8080 داخلها تنتقل بينهما بأمرين فقط واحد ينقل A,B و الثانى باقى الريجسترات ال 8 ولا تحتاج سوى كريستال لتعمل و زودت بعض التعاملات على 16 بت ريجيستر
كانت عمليات 16 بت لحساب العنوان Address فقط حيث كان أقصاه FFFF و إضافات زيلوج كانت جيدة لكن محدودة
كسحت Z80A الأخرى 8080 لأنك تتعامل مع الشاشة بزوج ثم تنتقل للبرنامج بالزوج الآخر حتى أن انتيل انتجت 8085 ولكنها كانت متاخرة
كانت أيضا شركة ثالثة وهى موتورولا صنعت 6800 وهى رائعة للماكينات الخ
بدأ التنافس بعد ذلك لإنتج الجيل الجديد 16 بت
انتجت انتيل 8086 و 8088 و زيلوج Z8000 و موتورولا MC68000
شركة IBM و اعتمادها على منتج انتيل قد أعطاه الصيت و الشهرة ولا يعنى هذا أنه الأفضل و مازالت باقى الشركات تنتج هذه الميكروبروسيسور و تطورت أيضا
انتيل اتجهت لتبسيط الميكرو بروسيسور وكان خط 8085 لم يكن الأمثل فابتكرت الميكرو كونتروللر C51 للإستخدامات المتخصصة فهو مطلوب بشدة فليس كل جهاز يحتاج 16 بت بتعقيداته خاصة أن فى ذلك الوقت ثمن الرام كان غاليا و من المعتاد أن تجد حاسب يعمل ب 2ك كجهاز يقدم العاب و يقوم بعمل جيد
أما 16ك فكان رفاهية وال64 ك كان احترافيا و ابحث عن ما كان على متن ابوللو 11 اول ما نزل على القمر
لسبب أو لآخر لم تكمل انتيل خط C51 و باعته لشركة ATMEL التى استمرت فى انتاجه و طورته و أصبح مقرونا باسمها

التطور هنا يكون البنية كلها
داتا باص يصبح 16 بت ، كل الريجسترات تصبح 16 بت و Address Buss يصبح 24 بت و حجم الميكرو من 40 طرف إلى 48 طرف أو أكبر مما يستهلك كثير من حجم البوردة مقارنة بالوحدات 20 طرف إضافة للسعر
ولما وصلنا للوحدات الأكبر و الأسرع أصبح الشكل لا يناسب الهواة ولا الشركات الصغيرة و المتوسطة و أصبح لزاما عليهم الإتجاه للشركات المتخصصة التى تستطيع التعامل مع البوردات متعددة الطبقات

ناتي للغموض
اولا
ان البروسيسر يوضع له رام خارجي وهذا الرام محدد حسب سرعة المايكروبروسيسر في حالة زيادة الرام عن قيمة معينة سيؤدي الى خلل في عمل البروسيسر والكومبيوتر ايضا يبدا بعمل ريستارت تلقائي او ظهور الشاشة الزرقاء او ثقل في تشغيل البرامج اما اذا كان قصدك الهارد فهو ايضا محدد ولا يمكن وضع هارد تيرا بايت على بروسيسر سرعته قليلة كما في الحاسبات القديمة بينتيوم ون وتو وثري هل ما قلته صحيح ؟؟؟
هذا مكان ال Slot اللى عندك لكن هناك حاسبات فائقة القدرة و القوة تتعامل مع أكثر من ذلك

كما أن هناك تقنية معروفة منذ العصور الأولى لل8بت تسمى Memory Banking فإن كان الميكرو محدود ب 16 خط تتيح 65536 فالدوائر المحيطة تسمح بتنفيذ أمر يوقف هذه المجموعة و يفعل مجموعة أخرى من 65536 أخرى أى Bank1 أو Bank2 وهكذا

أيضا لا مشكلة أن يتعامل الميكروبروسيسور مع أى عدد من الذاكرة Static Ram لكن هذه الظاهرة التى تتحدث عنها لعجز الدوائر عن تحديث Refresh الذاكرة Dynamic Ram عندما تزيد عن حد لم يعمل حسابه فى تقنية Refresh
أما الهارد فهناك كثير من الحاسبات و نظم التشغيل سواء ويندوز أو غيرها التى تسمح بذلك فالمصمم ليعمل خادم Server يمكنك من أن تخرج هارد من الخدمة ثم تسحبه و تضع بديلا له ثم تشغله و تفعله و تنقل إلية ما تريد و الهاردات موجودة على الواجهة و لها يد لتسحبها بدون مسامير و تركب غيرها - كل هذا و الحاسب يعمل حتى لا تتعطل الخدمه و تسمى HOT Swapable اى تغيير على الساخن دون أن تطفئ الجهاز
ثانيا
هل تقصد الشركة المنتجة للبك مثلا microchip بمعنى اخر لو اردت عمل برنامج لتشغيل ليد على بورت معين سارسل الكود الهيكسا للشركة وملف البروتس والشركة ستعمل الالاف من البكات التي تحتوي على برنامج لتشغيل الليد على البورت ولا يمكن تغيير البرنامج بعد هذه العملية حتى بالمبرمجة وكيف تتم مراسلتها ؟؟ وكيف يرسلون البكات عن طريق بريد فيديكس او دي اج ال مثلا
نعم ترسل الكود حسب طلبهم و ربما واحد يعمل لكن بروتس لا يخصهم فى شيء
ربما ليست كل الطرازات متاح فيها هذا الخيار و من موقع الشركة يمكنك تحديد ذلك لكن تذكر انك تصنع الآف منها
المبرمجة تغير EEprom لكن ما ستحصل علية هو ROM أى قراءة فقط وتكون ما تعرف Mask Programmable أى تخلق أثناء التصنيع فقط ولا تعديل لها.
أما الدفع و الأستلام فهذا يتفق عيه بين الأطراف ولا أجد مشكلة أن يرسل بالفيدكس أو الشحن البحرى أو اى اسلوب يناسب العميل حتى أن تذهب لتستلم بنفسك
مداخلة
هل تقصد بهذه دوائر اللوجك ال half adder وال full adder
ام شئ اخر يسمى half carry, carry
أخى
كلامى واضح بت 7 و بين بت 3 الى 4، ما وضعته أنت من دوائر خاص ببت واحدة فقط لكن فى الميكرو نتحدث عن بايت كاملة
عندما تجمع FE+5 سينتج 103
03 ستبقى فى الريجستر و الواحد يكون فى ال C

لو جمعت 59 + 18 = 71
الآن هل 71 صحيحة؟؟
لو القيم هيكس يكون صحيح لكن لو نظام BCD سيكون خطا فالصح أن = 77 كما أن
قيمة 71 هيكس = 113 عشرى
لذلك لتحدد كيف تصحح القيمة يجب أن تعلم
هل 9+8 انتجت كارى HC فهذا الواحد المنقول من البت 3 إلى 4 = 16 عشرى و يجب التصحيح بإضافة 6
71+6=77

اقصد هذه الدائرة الموضوعة على الريسيت دائرة ال RC
نعم اخي فهو يعتبر من دوائر RC الخاصة بتوفير delay للدوائر والمستخدم في اجهزة الحماية وضع الانتظار هل هذا صحيح ؟ ولكن لا اعرف لماذا لا يعمل
هو يعمل لكن الدائرة بها مشاكل
لم افهم هذه الفقرة هل تقصد بانه سيتحول من Q0 الى Q1 ام انه سيبقى في وضع الريسيت
كل نبضة من 555 تقدم العداد للتالى و عندما يكون الخرج من طرف 4 أى عد 2 المفروض هذا الخرج يسبب ريسيت فيعود للصفر مرة أخرى على أول ليد لكن تحت أى ظرف لا يخرج عن هذا السياق
الريسيت لا يسبب له أن يخرج عن هذا السياق يجب أن يكون الخرج Q0 على الطرف 3 = 12 فولت
هناك سؤال في بالي ولكني محرج يا اخي ... هل يمكنك ان تتكلم عن مراحل عمل الحاسوب يعني عند تشغيل الكومبيوتر ماذا يحدث بالضبط هل يتم تصفير قيم البروسيسر ام ماذا ... عند ظهور الشاشة السوداء في بداية التشغيل ماذا يحصل ... عند بداية الوندوز ماذا يحدث هل يتم تهيئة ملفات الريجستري -اذا مطلع على العمليات التي تجري في الحاسوب alt+ctrl+del بها احدى العمليات باسم svchost.exe ليست واحدة بل اكثر من واحدة ولا يمكن الغاء اي واحدة لانها تابعة للنظام ... وهناك ما يسمى بال privacy policy ما هو هل يعتبر جزء موجود في جميع نسخ الوندوز ام شئ اضافي ...
إن شاء الله فى تكمله الكورس
عند تشغيل برنامج معين مصنوع مثلا بالفيجوال بيسك عند الضغط على كومند بالبرنامج سيظهر صورة كيف سيقرا البروسيسر هذه العملية وكيف سيظهر الصورة هل الصور تحتوي على اكواد معينة ...
البروسيسور لا يقرأ شيئ عندما تضغك على كوماند تعطى أمر للقائمة أن هذا الشيء تم النقر عليه ومن ثم بقية البرنامج الخاص بنقر هذا الشيئ يتم تنفيذه و من خطواته إظهار صورة كذا فى هذا المكان أو عزف موسيقى أو اى شيء آخر
علما ان الموضوع ليس بالسهل وانه اذا اردنا التحدث عنه سنحتاج ايام وصفحات ولكني لا اريدك ان تتكلم بالتفصيل عن خطوة خطوة ولكن ما اريده فقط اسماء المراحل التي تتم بعدها يمكنني البحث عن المراحل في الانترنيت ودراستها ... في حالة عدم الرد على هذه الفقرة ساتركها ولن اسالك ابدا عليها مرة ثانية
هذا يسمى Event Driven أى حدث ما وهو النقر على مكان ما به شيء ما كجزء من قائمة أو زر أو صورة الخ الخ يقود سلسلة من الأحداث فى Sub معين مخصص له
بعد الهدوء عاصفة ... هذه عاصفة من الاسئلة اتمنى تتماسك اعصابك معي وما تغلق الموضوع او تقوم باي عمل تهوري يؤدي الى خسارة الحاسبة او كسر شئ ما
وراح احاول انهي الموضوع باسرع وقت بس خل تخلص الاسئلة
الدائرة التى رفعتها طلبت منك أن تكمل خط التغذية لشكى ان بها خطأ و لم تفعل فافترضت الباقى
هذه هى الدائرة


أولا من التغذية لم أرى مكثف تنعيم وهذا يسبب تقويم للدائرة 50 أو 100 مرة فى الثانية
افترضت الحل الأفضل انك مستخدم قنطرة و إن كان الأغلب سيكون دايود واحد وهو أمر بالغ السوء لكونه يقطع التغذية فترة طويلة
الآن ضع مكثف 470 ميكرو على الأقل كما بالرسم
ثانيا وضع المقاومات 560 أوم هكذا خطأ لأنها تزيد من مشاكل خط التغذية و غنتقال الضوضاء التى تولدها555 للباقى و الصح أن تستخدم مقاومة للعزل كما بالرسم و مكثف ترشيح لمنع الضوضاء من التجول بين المكونات
ثالثا وجود مكثف 10ميكرو على خرج الحساس قد يكون خطر لأن خرج الحساس ترانزيستور قد يكون تفريغ المكثف فيه أكثر من احتماله
إن شئت يكفى 0.1 ميكرو حتى 1 ميكرو
المكثف c2 ربط بين الترانزيستور و دخل 555 و الزمن يحدده C3 مع المقاومة بثانية كاملة فطوال هذه الثانية لا يقبل المزيد و النقطة هنا أن اختيار هذه القيم سيكون متوقف لحد كبير على خواص باقى المكونات
قم بتعديل التغذية و المكثف C4 و اعمل الدايودات التى قلت لك عليها ستعمل الدائرة إن شاء الله و إن اردت تغيير استجابة الدائرة غير القيم C1,C2 بعد ذلك


الصورة الرمزية yasirh88
yasirh88
:: مهندس متواجد ::
تاريخ التسجيل: Dec 2014
المشاركات: 155
نشاط [ yasirh88 ]
قوة السمعة:
قديم 12-09-2015, 06:02 AM المشاركة 31   
افتراضي


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

قلت هنا الوحدات لأن الكلام صحيح للحالتين فالميكرو بروسيسور الحديث 23 بت و 64 بت و بداخله أظن 32 ريجستر و الأجيال الحديثة من الميكرو كونتروللر أيضا تنتقل لهذا الإتجاه رغم معارضة المستخدمين كثيرا لأنه يفقد أهم خاصية للميكرو كونتروللر وهى البساطة
أتميل AVR بداخلة 32 ريجستر × 8 بت و 6 ريجستر منها يمكن جمع كل 2 لتكوين 3 ريجستر × 16 بت
اخي العزيز انا قلت بك لاني لم استخدم اي مايكروكونترولر غيره ولكن من الان تغيرت نظرتي كليا وساسميه مايكروكونترولر لاني سابدأ باستخدام الاتميل والبك (بقيت الفقرة مفهومة وشرح رائع)

أما الميكرو كونتروللر فالأمر كله Software و الأوامر التى تتم HW لا تعدو الضرب للأرقام الصحيحة و كانت القسمة فى أتميل ولا أدرى لماذا هجرت فى AVR
لم افهم هذه الفقرة هل تقصد ان الامر هو عبارة عن كود وعند ربط المايكروكونترولر بالدائرة الكهربائية يتحول الى عمل فعلي وما قصدك لا تتعدى الضرب ؟؟ واين تقع ال math processor هل تقع في قلب البروسيسر (الخاص بالمايكروكونترولر) تحت اسم ريجستر معين من ريجسترات المايكرو

معذرة لهذا الخطأ فهو متكرر لدى - نعم أقصد الرقم الكسرى أو الحقيقى
حسابه معقد لذلك يتم فى الميكرو بروسيسور داخل وحدة متخصصة نشأت باسم Co-Processor و تحولت لإسم Math processor و أخيرا دمجت بداخل الميكرو و الأوامر تتداول حسب نوع الأمر فى داخله

للفهم العام اليك هذا الرابط
https://en.wikipedia.org/wiki/Double...g-point_format
أما ما يخصك فهو من المترجم Compiler الذى تستخدمه فهو ما يحدد عدد البايت المستخدم الخ
فى ميكرو سي للبك تجده فى ملف المساعدة، ثالث موضوع من الأسفل
mikroBasic PRO for PIC Language Reference > Types > Simple Types >
لم اقرأ هذا الموضوع بالتفصيل ولكني تعلمت طريقة حساب الارقام العشرية double-precision binary floating-point format وتعرفت ان اساس الطريقة تقسيم الرقم الى 64 بت الاول خاص بالاشارة بعدها 11 رقم خاص بالرقم الحقيقي بعدها 52 بت خاصة بالارقام بعد الفارزة وهذا الشي يعطي دقة خيالية وتم حفظ الموضوع وسارجع اليه فيما بعد لاعرف طريقة القراءة

باللنسبة لموضوع المايكروسي فعلا اخي هذا ما ابحث عنه عندما سالتك كم بت ياخذ الرقم الكسري فالان يمكنني معرفة حدود وعدد بايتات كل من var float int
جدااا اشكرك لانه من المواضيع المهمة التي تؤخذ بعين الاعتبار عند البرمجة

أتميل عائلة C51 بها 8 ريجستر وهى جزء من الرام الأماكن 00 إلى 07 و يمكنك نقل عنوانها بينه و بين الثلاث أماكن التاليه (08 - 0F أو 10 : 18 أو 1F 20 ) , l ) و مازال اسمها R0:R7 فلو ذهبت إلى SUB مثلا ولا تريده أن يعبث بهذه الريجسترات خاصة وأن لها ميزات عن الذاكرة العادية بأمر واحد تنقل عنوانها من 0 : 3
لم افهم هذه النقطة ما هي هذه الريجسترات هل يمكن عمل بها عمليات الجمع والطرح والمقارنة ALU (وهو ما قصدته)ام تعتبر accumulator ريجستر تذهب اليها النتائج فقط

---- مداخلة بسيطة قمت بالبحث على اتميل c51 ووجدت ان اسمه 8051 هل هناك عائلة تسمى 80 وهل يعتبر ال 8086 8051 ضمن هذه العائلة علما ان الاول بروسيسر مصنوع من شركة انتيل والثاني مايكروكونترولر مصنوع من شركة اتميل ---

نعم انظر لتركيب أى ميكرو كونتروللر ستجد الرام داخلة و محدودة 128 أو 256 ×8 بت
البعض أضاف EEPROM لتستطيع حفظ بيانات عند انقطاع التيار أو RESET لأى سبب بدلا من استخدام وحدة خارجية مثل 24C01 و لها اوامر خاصة
معلومة جميلة اخرى تم اضافتها ... ولكني لم افهم ما معنى جملة "البعض اضاف ايبروم لحفظ بيانات عند انقطاع الكهرباء" الا يحتوي المايكرو كونترولر على ايبروم داخلي ام قصدك قاموا بتوسيع الايبروم الداخلي ومن هم البعض اتقصد الناس ام الشركات؟؟؟ واشكرك على التطرق لهذا الموضوع فبدات افهم كيف اربط sd-card مع المايكرو وسابحث فيما بعد عن ال 24C01
لاراها بالتفصيل

نعم و الحديث الآن اصبح دورة لكل Clock إلا القليل مثل الضرب و الإختبار مع انتقال
من هذا افهم انه تم تخصيص نبضة واحدة لكل عملية عدا بعض العمليات مثل الضرب قد تحتاج الى نبضتين مثلا ولكن سؤالي لك اخي الا يؤثر هذا في تحديد الوقت مثلا ... ففي حالة التايمر زيرو كنا نعرف ان كل عملية تحتاج الى اربع نبضات فنقسم تردد الكرستالة على اربعة الان كيف سيتم تحديد عامل القسمة هل نقسم على واحد او اثنين اذا قسمنا على واحد راح نهمل عملية الضرب واذا قسمنا على اثنين لا ينضبط الوقت ؟؟؟

ستجده مشروح فى تركيب الميكرو فى الداتا شيت
البيك ستجد مكان و عنوان لكل ريجستر ولا يوجد به A
لأتميل أيضا به مواقع ذاكرة مخصصه لهذه الأماكن البورت و الأكيوميليتور A,B الخ
المسأله تعود للمترجم الذى تستخدمه
بعض البرامج تسمح أن تعطى أسماء للريجسترات كما تعطى أسماء للبورتات
فكما يمكنك أن تسمى بورت A باسم LCD_Data و بعدها كل مرة تريد كتابة شيى على الشاشة تستخدم هذا الإسم يمكنك أيضا أن تعطى ريجستر أسم و تستخدمه
فمثلا فى أتميل 8 ريجستر منها R0,R1 تسمح ب Indirect Address فيمكنك تسمى R0 باسم Table و بدلا من الطلب حيث R0* تستخدم الإسم للسهولة *Table
لكن بعض البرامج قد لا تقبل أن تعطى اسماء لها و يمكنك التحايل حول ذلك ففى النهاية هى مكان فى الذاكرة تكتب فيه زى أى مكان آخر
فكل البرامج تسمح أن تعطى لأماكن الذاكرة أسماء
الفقرة واضحة انت تقصد ال indirect address ومن هذا نفهم .. مثلا ان بورت بي في البك 16xxxx هو عبارة عن ريجستر يتكون من 8 بت يمكن نقل القيم اليه ومنه ويتم به حفظ ناتج العمليات مثل ال exclusive-or وغيرها ويمكن اعطائه اسم غير مباشر ويقع في الرام الواقع في قلب المايكروبروسيسر هل هذا صحيح؟؟؟

تقصد PIC 16 مقابل C51 مثل AT89C52
البك به F,W الاتميل به A,B + 8 يمكن نقلها
البك 32 أمر فقط لكن الأتميل حوالى 120 أمر منها الضرب و القسمة
لا يتعامل مع BCD - يتعامل مع BCD
لا يوجد Index register - يوجد به واحد و البعض 2
ذاكرة البرنامج 12 بت مختلفة عن الداتا - الإثنين 8 بت
لا يقرأ الكود للأكيوميليتور ولكن هناك وسيلة للتحايل - يقرأ الكود و من ثم يمكنك حفظ جدول كبير كجزء من البرنامج ثم تقرأ منه
به 5 بورت غير منسقة 2 منها فقط 8 بت - به 4 بورت كل منها 8 بت و كل أطرافها متتابعة تسهل كثيرا عمل البوردة
البرمجة بالأسيمبلى صعبة جدا - البرمجة بالأسيمبلى سهلة
و غيرها كثير
اولا ما هي ال F وال W هل هية تسميات غير مباشرة لمواقع ذاكرة لاني رايتها مع الامر mov ولكن عند الذهاب الى ال mapping لم اجدها ضمن ال banks وريجسترات الرام
ثانيا انا معك في هذه النقطة عدد الاوامر اكثر بكثير
ثالثا تمام
رابعا ماهو الانديكس ريجستر ... ريجستر يعطي عنوان بداية ونهاية ام ماذا
خامسا لم افهم ماذا تقصد في ذاكرة البرنامج
سادسا هل تقصد في حالة الاتميل نستطيع ان ناخذ ناتج عملية مثلا ضرب او جمع من الاكيوميليتر ونحفظه على شكل جدول ام نقوم بصناعة جدول داخل الاكيوميليتر ..كل عملية تعطي ناتج تحفظ في خانة بالجدول؟؟؟
سابعا تقصد 3 بورت وليس 2 b,c,d
ثامنا صعبة لمحدودية الاوامر المتوفرة ولكن سؤالي لك لماذا تبرمج بلغة الاسمبلي ولا تستخدم لغة السي في الاتميل ما هو الفرق ام لانك تفضلها ... تبقى مداخلة صغيرة اتوقع ان غاية الشركة لعمل شي بسيط وغير معقد ويستخدم للاغراض التحكم البسيطة فقاموا بتقليل الريجسترات والاوامر ولا تنسى ان بك 18اف 4550 يحتوي على اوامر جمع وطرح وانت لم تتطرق الى الريجسترات الخاصة بقراءة اشارات الانالوج واخرى لها معاني خاصة

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

طبعا به أنواع عديدة جدا فى عائلة C51 ثم مجموعة أخرى فى عائلة AVR و عائلة ثالثة تسمى XMEGA
الأسعار متقاربة و ما تحبه أكثر استخدمه
واضحة

أيضا حجم الذاكرة المتاحة للميكرو بروسيسور لا نهائى لكن للميكرو كونتروللر فالداخلية منها محدودة و الخارجية ليست متاحة لكافة الطرازات.
ما زلت تفكر فى الميكروكونتروللر بعقلية الميكرو بروسيسور
أولا هى فى EEprom و عند البدء تقرأ منها مباشرة لل ALU و إن كان الأمر يخص بورت مثلا لا يتعامل مع الرام إطلاقا

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

وضحت الصورة انك تقصد الايبروم ولكنك قلت الذاكرة الخارجية للمايكروكونترولر غير متاحة ولكن ماذا عن ربط SD-Card مع المايكروكونترولر الا يعتبر ذاكرة خارجية ام ماذا ؟؟
الكاش كلمة اسمع بها الالاف المرات واعرف موقعها بالبروسيسر ولكن لا اعرف هل تعتبر ريجستر ام ايبروم اضافي تحفظ به البيانات مؤقتا وسامع ايضا ببرامج لتنظيف الكاش ما هو عمل هذه البرامج منها ccleaner ؟؟

الم اقل لك لا تبحث فى الميكرو كونتروللر عن ما فى المكرو بروسيسور؟
أقصد فى PIC16xxxxx يوجد 2 فقط أما اتميل فكما ذكرت A,B و 8 أخرة R0:R7
هى ريجسترات
يعني البك يحتوي على ريجسترات 2 فقط وماذا تسمي البقية intcon tris tmr0 ؟؟؟
هل نسميها سيجمنت ام ماذا

نعم فالمناقشة معك جعلتنى أشعر بضرورة إضافتها فقد كان قصدى أصلا أنه كورس لوجيك ولكنى وجدت أن مادام أتى ذكر الحاسب فلتكن الصورة أوضح و عند الإنتهاء إن شاء الله من التعديل سيعدل ملف البى دى اف و شكرا لك
الشكر لك وعلى شرحك الرائع واللي تقدمه للناس وبارك الله فيك وكثر الله من امثالك

كسحت Z80A الأخرى 8080 لأنك تتعامل مع الشاشة بزوج ثم تنتقل للبرنامج بالزوج الآخر
غير مفهومة ما المقصود زوج مع الشاشة وزوج مع البرنامج ؟؟

لسبب أو لآخر لم تكمل انتيل خط C51 و باعته لشركة ATMEL التى استمرت فى انتاجه و طورته و أصبح مقرونا باسمها
انا سامع بشركة انتل عظيمة في هذا المجال واكثر الكومبيوترات الموجودة في البلد تحتوي على بروسيسر انتل ولذلك تعجبت من كلمة مايكروشيب واتميل والان فهمت القصة كلها

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

الرابط الاول
الرابط الثاني
وهي لا تفرق عن الطريقة الاعتيادية يقومون بطباعة الدائرة على بورد اولي ثم يجلبون بورد ثاني فيلصقوه بالاول ويطبعون الجزء الثاني من الدائرة واكيد يبقى الفن بطريقة تصغير حجم الدوائر ضبط اماكن المكونات والبنات على جميع الطبقات وتحديد اماكن التثقيب

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

كما أن هناك تقنية معروفة منذ العصور الأولى لل8بت تسمى Memory Banking فإن كان الميكرو محدود ب 16 خط تتيح 65536 فالدوائر المحيطة تسمح بتنفيذ أمر يوقف هذه المجموعة و يفعل مجموعة أخرى من 65536 أخرى أى Bank1 أو Bank2 وهكذا
هل يمكن تشبيه العملية بال 16بت انكودر ال encoder 2 ^ 16 = 65536 وخط كونترول يحول بين البانكات ام ان هناك فرق ؟؟؟

أيضا لا مشكلة أن يتعامل الميكروبروسيسور مع أى عدد من الذاكرة Static Ram لكن هذه الظاهرة التى تتحدث عنها لعجز الدوائر عن تحديث Refresh الذاكرة Dynamic Ram عندما تزيد عن حد لم يعمل حسابه فى تقنية Refresh
أما الهارد فهناك كثير من الحاسبات و نظم التشغيل سواء ويندوز أو غيرها التى تسمح بذلك فالمصمم ليعمل خادم Server يمكنك من أن تخرج هارد من الخدمة ثم تسحبه و تضع بديلا له ثم تشغله و تفعله و تنقل إلية ما تريد و الهاردات موجودة على الواجهة و لها يد لتسحبها بدون مسامير و تركب غيرها - كل هذا و الحاسب يعمل حتى لا تتعطل الخدمه و تسمى HOT Swapable اى تغيير على الساخن دون أن تطفئ الجهاز
اخي العزيز اقرأ هذه الفقرة "Another big difference between 32-bit processors and 64-bit processors is the maximum amount of memory (RAM) that is supported. 32-bit computers support a maximum of 3-4GB of memory, whereas a 64-bit computer can support memory amounts over 4 GB. This feature is important for software programs used in graphic design, engineering, and video editing as these programs have to perform many calculations to render their images. " هذا ما قصدته بالضبط
والدليل هو حاسبات البينتيوم 4 لا يمكن زيادة الرام عن قيمة معينة والحاسبات الحديثة core i3
او core i 5 او core i 7 الرام يتعدى الواحد كيكا - ولكن ايضا لم افهم معنى core i3 وما هو فرقه عن ال بروسيسر العادي
طبعا هذا الكلام ماخوذ من هذا الموضوع
الموضـــــــوع
وما هي تقنية refresh -
وباللنسبة للهارد نعم اخي هناك تقارير كاملة عن سيرفرات شركة كوكل ويوتيوب وفيسبوك توضح غرف كاملة وانظمة تبريد خاصة chiller ومهندسين يعملون على تغيير الهاردات المعطوبة مع الحفاظ على هذه المعلومات
وهذا التقرير يمكنك مشاهدته
من هنا
لكن يبقى السؤال كيف تغير هارد بدون ان تفقد محتوياته اين سيتم خزن محتوياته في حالة عطله ؟؟؟

نعم ترسل الكود حسب طلبهم و ربما واحد يعمل لكن بروتس لا يخصهم فى شيء
ربما ليست كل الطرازات متاح فيها هذا الخيار و من موقع الشركة يمكنك تحديد ذلك لكن تذكر انك تصنع الآف منها
المبرمجة تغير EEprom لكن ما ستحصل علية هو ROM أى قراءة فقط وتكون ما تعرف Mask Programmable أى تخلق أثناء التصنيع فقط ولا تعديل لها.
أما الدفع و الأستلام فهذا يتفق عيه بين الأطراف ولا أجد مشكلة أن يرسل بالفيدكس أو الشحن البحرى أو اى اسلوب يناسب العميل حتى أن تذهب لتستلم بنفسك
نعم اخي هذه النقطة واضحة واخيرا عرفت معنى mask programmable بالعربي

أخى
كلامى واضح بت 7 و بين بت 3 الى 4، ما وضعته أنت من دوائر خاص ببت واحدة فقط لكن فى الميكرو نتحدث عن بايت كاملة
عندما تجمع FE+5 سينتج 103
03 ستبقى فى الريجستر و الواحد يكون فى ال C

لو جمعت 59 + 18 = 71
الآن هل 71 صحيحة؟؟
لو القيم هيكس يكون صحيح لكن لو نظام BCD سيكون خطا فالصح أن = 77 كما أن
قيمة 71 هيكس = 113 عشرى
لذلك لتحدد كيف تصحح القيمة يجب أن تعلم
هل 9+8 انتجت كارى HC فهذا الواحد المنقول من البت 3 إلى 4 = 16 عشرى و يجب التصحيح بإضافة 6
71+6=77
نعم اخي انا فهمت قصدك دوائر ال half adder , full adder ايضا مخصصة لهذا الغرض كما توجد دوائر half adder BCD وفل اددر بي سي دي -- هذا رابط موضوع يوضح جمع 8 بت بدون carry ويوجدايضا ال full adder مع carry يجمع

الرابــــــــط

الريسيت لا يسبب له أن يخرج عن هذا السياق يجب أن يكون الخرج Q0 على الطرف 3 = 12 فولت
هل تقصد 5 فولت لان فولتية ال vcc خمسة فولت

إن شاء الله فى تكمله الكورس
ان شاء الله خذ كل الوقت وانا بانتظاره

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

هذا يسمى Event Driven أى حدث ما وهو النقر على مكان ما به شيء ما كجزء من قائمة أو زر أو صورة الخ الخ يقود سلسلة من الأحداث فى Sub معين مخصص له
مصطلح اخر تم اضافته -وهو كما تصنع برنامج في فيجوال بيسك عندما تضغط على تيكست بوكس يظهر البرنامج الفرعي sub-private

الدائرة التى رفعتها طلبت منك أن تكمل خط التغذية لشكى ان بها خطأ و لم تفعل فافترضت الباقى هذه هى الدائرة
اخبرتك مسبقا انه مصدر فولتية مستمر 12 فولت
"بعد ان تخبرني على مكان الدايود اتمنى ان تخبرني ما هو مكثف التقويم فانا في هذا المشروع استعمل محولة 12 فولت مستمر لم اعتمد على مصدر ايسي الى الان
12 فولت مستمر يتم تقليلها بواسطة زينر 5 فولت لغرض الايسيات وال 12 فولت لغرض الريلاي "

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

رابط صورة المحولة

رابط الدائرة

رابط تحميل ملف بروتس

أولا من التغذية لم أرى مكثف تنعيم وهذا يسبب تقويم للدائرة 50 أو 100 مرة فى الثانية
افترضت الحل الأفضل انك مستخدم قنطرة و إن كان الأغلب سيكون دايود واحد وهو أمر بالغ السوء لكونه يقطع التغذية فترة طويلة
الآن ضع مكثف 470 ميكرو على الأقل كما بالرسم
ثانيا وضع المقاومات 560 أوم هكذا خطأ لأنها تزيد من مشاكل خط التغذية و غنتقال الضوضاء التى تولدها555 للباقى و الصح أن تستخدم مقاومة للعزل كما بالرسم و مكثف ترشيح لمنع الضوضاء من التجول بين المكونات
ثالثا وجود مكثف 10ميكرو على خرج الحساس قد يكون خطر لأن خرج الحساس ترانزيستور قد يكون تفريغ المكثف فيه أكثر من احتماله
إن شئت يكفى 0.1 ميكرو حتى 1 ميكرو
المكثف c2 ربط بين الترانزيستور و دخل 555 و الزمن يحدده C3 مع المقاومة بثانية كاملة فطوال هذه الثانية لا يقبل المزيد و النقطة هنا أن اختيار هذه القيم سيكون متوقف لحد كبير على خواص باقى المكونات
قم بتعديل التغذية و المكثف C4 و اعمل الدايودات التى قلت لك عليها ستعمل الدائرة إن شاء الله و إن اردت تغيير استجابة الدائرة غير القيم C1,C2 بعد ذلك
اولا ان المحولة تحتوي على مكثف هل هذا صحيح علما اني لم افهم اين يوضع مكثف التقويم ومكثف التنعيم كل الذي اعرفه انه بعد ما نخفض الفولتية نضع مكثف على التوازي ولا اعلم هل هو تنعيم ام تقويم
ثانيا ظهر مكثف من نوع اخر مكثف ترشيح وايضا لا اعلم اين يوضع هل هو نفسه المكثف الذي يوضع على مصدر التغذية للايسيات ؟؟ وهل يجب وضع واحد بعدما وضعنا مرشح التقويم والتنعيم وما هي مقاومة العزل وهل يجب وضعها مع كل الدوائر ؟؟؟
ثالثا ملاحظة جميلة سانتبه اليها بالمستقبل
اما باللنسبة لقيم المقاومة والمتسعة الثالثة هي التي تحدد وقت النبضة فهو 555 في حالة مونوستيبل حسب القانون 1.1 * RC
وتبقى المشكلة كما هي ولكن فرق صغير انه الدائرة بدات بالاستقرار فعند اطفاء الدائرة والكاونتر على صفر يبقى صفر مهما حاولت من اطفاء وتشغيل للدائرة وعند اطفاء الدائرة والكاونتر على واحد يبقى واحد مهما حاولت هذا في المحاولة الاولى عندما حاولت بعدها لم احصل على هالنتيجة فالدائرة لا تستجيب للريموت كونترول وعند رفع المقاومة 30 كيلو من الدائرة ترجع الدائرة للعمل كما في الوضعية الاولى التي تحدثنا عنها سابقا وهية حالة التحويل بين الصفر والواحد الان اصبح الرسم امامك واضح والبرنامج واضح وخذ كل الوقت وانا ساسمع منك اي فكرة
تحياتــــي لك اخي الكريم

ما رايك الى الان هل نكمل ام نتوقف


التعديل الأخير تم بواسطة : yasirh88 بتاريخ 12-09-2015 الساعة 06:15 AM

ماجد عباس محمد
:: نائب المشرف العام
::
تاريخ التسجيل: Jun 2009
الدولة: القاهرة - مصر
المشاركات: 11,652
نشاط [ ماجد عباس محمد ]
قوة السمعة:
قديم 12-09-2015, 11:08 AM المشاركة 32   
افتراضي


لم افهم هذه الفقرة هل تقصد ان الامر هو عبارة عن كود وعند ربط المايكروكونترولر بالدائرة الكهربائية يتحول الى عمل فعلي وما قصدك لا تتعدى الضرب ؟؟ واين تقع ال math processor هل تقع في قلب البروسيسر (الخاص بالمايكروكونترولر) تحت اسم ريجستر معين من ريجسترات المايكرو
لم أقل أن بداخل الميكرو كونتروللر Co-Processor فقط ذكرت أن الضرب و القسمة كانا فى أتميل ثم بقي الضرب و اختفت القسمة وهذا للأرقام الصحيحة الثنائية فقط
وذلك لأنك لو بحثت عن دائرة الضرب على النت ستجدها متاحة ل 2 بت و أكثر كمكونات رقمية وهذه لا تعتبر Co-processor لأن Co-processor يختص أساسا بالأرقام العشرية ذات الكسور من الجمع و الطرح حتى باقى الدوال الهندسية
ربما لا تدرك كم هى معقدة ان تجمع رقمين عشريين
أولا يجب أن توافق الأس (القوة المرفوع لها) فجمع 0.0000000123 + 1.23 ليس كجمع 1.23 + 0.123
ثم تجمع و تعيد تنسيق الناتج فى الصورة التى وضعتها لك فى مشاركة سابقة
الميكرو بروسيسور المزود ب Co-processor به أوامر تحميل رقم كسرى و عمل حسابات عليه لكن الميكرو كونتروللر لا يحتوى هذا
لو تريد جمع رقمين طبيعيين بكسور ستستدعى sub مخصصه لهذا من المترجم و تضاف لبرنامجك
اكتب برنامج عرف فيه RES كرقم longword أى من 4 بايت
Res= 11+22
و شوف سيكون من كم بايت
بعدها عدل تعريفك إلى float مازال 4 بايت
Res=1.1+2.2
وشوف حجمه بقى كم بايت و كل الفرق لمجرد حساب الرقم الطبيعى
لم افهم هذه النقطة ما هي هذه الريجسترات هل يمكن عمل بها عمليات الجمع والطرح والمقارنة ALU (وهو ما قصدته)ام تعتبر accumulator ريجستر تذهب اليها النتائج فقط
أخى
accumulator اكثر ميزة عن الريجستر
قلت فى مرة سابقة أرجو ان تذكرها أنهما أى accumulator و الريجستر شيء واحد فقط لو أمكن أن تذهب إليه النتيجة يسمى عند ئذ accumulator

كل العمليات التى تتم مع accumulator تتم مع الريجستر أيضا لكن النتيجة تذهب دوما ل accumulator لو كان أحد الطرفين

---- مداخلة بسيطة قمت بالبحث على اتميل c51 ووجدت ان اسمه 8051 هل هناك عائلة تسمى 80 وهل يعتبر ال 8086 8051 ضمن هذه العائلة علما ان الاول بروسيسر مصنوع من شركة انتيل والثاني مايكروكونترولر مصنوع من شركة اتميل ---
الإسمين مستخدمين لكن 8086 ميكرو بروسيسور و ليس ميكرو كونتروللر
معلومة جميلة اخرى تم اضافتها ... ولكني لم افهم ما معنى جملة "البعض اضاف ايبروم لحفظ بيانات عند انقطاع الكهرباء" الا يحتوي المايكرو كونترولر على ايبروم
رجاء أن تعطى كل نوع اسمه الصحيح
الذاكرة الخاصة بالبرنامج اسمها فلاش ميمورى ولا علاقة لها بحفظ البيانات
البيك فيه EEprom للبيانات Data وهى 8 بت يمكنك ان تحفظ فيها رقم و غدا تشغل الدائرة و تقرأه - ارجع للداتا شيت
اتميل AT89x5x أو عائلة C51 لا تحتوى هذه الذاكرة لذا لو تريد حفظ بيان ستستخدم ذاكرة خارجية لذلك مثل 24C01 لكن أضافوها فى عائلة AVR
داخلي ام قصدك قاموا بتوسيع الايبروم الداخلي ومن هم البعض اتقصد الناس ام الشركات؟؟؟ واشكرك على التطرق لهذا الموضوع فبدات افهم كيف اربط sd-card مع المايكرو وسابحث فيما بعد عن ال 24C01
لاراها بالتفصيل
الشركات فلا يمكن للناس أن تغير تركيب الميكرو الداخلى
من هذا افهم انه تم تخصيص نبضة واحدة لكل عملية عدا بعض العمليات مثل الضرب قد تحتاج الى نبضتين مثلا ولكن سؤالي لك اخي الا يؤثر هذا في تحديد الوقت مثلا ... ففي حالة التايمر زيرو كنا نعرف ان كل عملية تحتاج الى اربع نبضات فنقسم تردد الكرستالة على اربعة الان كيف سيتم تحديد عامل القسمة هل نقسم على واحد او اثنين اذا قسمنا على واحد راح نهمل عملية الضرب واذا قسمنا على اثنين لا ينضبط الوقت ؟؟؟
لم يتم تخصيص لأن تخصيص تعنى ناخد واحد و نترك الباقى
هى تنفيذ أمر مع كل نبضة
أما مسألة التايمر فببساطة ضع أولا الرقم الجديد المناسب
أو استخدم كريستال ابطأ
لا أري أى مشكلة
الفقرة واضحة انت تقصد ال indirect address ومن هذا نفهم .. مثلا ان بورت بي في البك 16xxxx هو عبارة عن ريجستر يتكون من 8 بت يمكن نقل القيم اليه ومنه ويتم به حفظ ناتج العمليات مثل ال exclusive-or وغيرها ويمكن اعطائه اسم غير مباشر ويقع في الرام الواقع في قلب المايكروبروسيسر هل هذا صحيح؟؟؟
يعتمد على المترجم هل يقبل هذا أم لا
اولا ما هي ال F وال W هل هية تسميات غير مباشرة لمواقع ذاكرة لاني رايتها مع الامر mov ولكن عند الذهاب الى ال mapping لم اجدها ضمن ال banks وريجسترات الرام
اذهب لصفحة 8 فى الداتا شيت ستجدهما فى التركيب الداخلى للميكرو و فى صفحة 161 شرحهم تفصيلا مع كل أمر بالأسيمبلى و اعلى يمين الصفحة جدول 15-1 شرحهم
رابعا ماهو الانديكس ريجستر ... ريجستر يعطي عنوان بداية ونهاية ام ماذا
معذرة اخطأت اسمه هو Data Pointer وهو 16 بت ريجستر يحمل عنوان تستطيع أن تستخدمه لتحميل جدول بأمر
MOVC A,*A+DPTR
فيتم جمع ما فى A على العنوان فى DPTR و الناتج عنوان جديد تأخذ محتواه للأكيوميلاتور A
و إما
CLR A
INC DPTR
للموقع التالى
MOV A,#xx
لأى موقع آخر
خامسا لم افهم ماذا تقصد في ذاكرة البرنامج
حيث تضع البرنامج - الفلاش ميمورى!!
سادسا هل تقصد في حالة الاتميل نستطيع ان ناخذ ناتج عملية مثلا ضرب او جمع من الاكيوميليتر ونحفظه على شكل جدول ام نقوم بصناعة جدول داخل الاكيوميليتر ..كل عملية تعطي ناتج تحفظ في خانة بالجدول؟؟؟
هل قلت هذا الكلام؟ من اين أتيت بناتج عملية تحفظه فى جدول فى الأكيوميلاتور؟
الأكيوميلاتور 8 بت فقط رجاء اقرا ما اكتب مرتين قبل أن ترد!!
قلت " يقرأ الكود و من ثم يمكنك حفظ جدول كبير كجزء من البرنامج ثم تقرأ منه "
هذه الأشياء تسمى LUT اختصار Look Up Table
مثلا اللوغاريتمات و الزوايا من أين ستحسب جا 30؟
تحفظ جدول به 9 قيم أو 90 حسب الدقة كجزء من البرنامج (من الكود الذى ستضعة بالمبرمجة فى ذاكرة البرنامج) ثم بعد ذلك تقرأ قيمة أو قيمتين و تقرب لنتيجة بينهما
سابعا تقصد 3 بورت وليس 2 b,c,d
ارجع للداتا شيت شوف كل بورت من A,B,C,D,E فى البك كم طرف ستجد C 3 طرف فقط و توزيعهم على اطراف المتكاملة
و قارن بينها و بين مثلا AT89S52
وضحت الصورة انك تقصد الايبروم ولكنك قلت الذاكرة الخارجية للمايكروكونترولر غير متاحة ولكن ماذا عن ربط SD-Card مع المايكروكونترولر الا يعتبر ذاكرة خارجية ام ماذا ؟؟
هناك فرق بين ذاكرة البرنامج و ذاكرة البيانات فكل الميكرو كونتروللر الصغير منها و الكبير يقرأ ذواكر تسلسلية كداتا ولكنه لا يعتمدها للبرنامج - فقط بيانات- لكن أتميل يقرا توازى مما يتيح لك استخدامه مع برامج أكبر من سعته
الكاش كلمة اسمع بها الالاف المرات واعرف موقعها بالبروسيسر ولكن لا اعرف هل تعتبر ريجستر ام ايبروم اضافي تحفظ به البيانات مؤقتا وسامع ايضا ببرامج لتنظيف الكاش ما هو عمل هذه البرامج منها ccleaner ؟؟
الكاش انواع، ما هو داخل الميكرو لا سلطان لك ولا لأى برنامج عليه
لكن كثير من البرامج تأخذ من الذاكرة رام للحاسب أو من الهارد جزء تسميه كاش لأنها تحفظ فيه ما يخصها و تمنع اتصال الغير بها لكونها ستتعامل معه بصورة أسرع من محاولات استئذان الويندو أن تتكرم بإعطائها هذا البيان من هذا الجزء
لذلك لو كل برنامج يخصص لنفسه كاش ولا يتركها أو يحررها عندما يخرج سيتعطل عمل الحاسب و هذه البرامج ccleaner تبحث عنها و تحررها
يعني البك يحتوي على ريجسترات 2 فقط وماذا تسمي البقية intcon tris tmr0 ؟؟؟
هل نسميها سيجمنت ام ماذا
كلها ريجسترات لكن ريجستر الداتا للتعامل مع ALU و الباقى لحفظ الخيارات
ما معنى كلمة Register ؟؟؟ تعنى مسجل
أى انك تسجل فيه بيان أما فيم تستخدمه بعد ذلك فأمر آخر
غير مفهومة ما المقصود زوج مع الشاشة وزوج مع البرنامج ؟؟
اخى
ارجع للشرح تجد أنه به A,B و ثمانية آخرين و هذا الطاقم مكرر مرة اخرى
بأمر تبدل بين A1,B1 و A2,B2 و أمر آخر تبدل الثمانية بثمانية
فعندما تعرض النتيجة على الشاشة 50 مرة فى الثانية تستخدم طاقم و عندما تعود للحساب تستخدم الطاقم الثانى

البديل ان تستخدم أوامر Push, Pop لتحفظها فى ستاك

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

شرحت لك كيفيه عمل memory banking لتزيد من حجم الذاكرة المتاحة و رايتها و درستها فى حاسبات عاملة

هناك فرق بين ما يتيحة الميكرو من امكانيات بناء على بنيته الذاتية فقط
و بين ما يمكنك فعله بإضافة دوائر و مكونات خارجية
هل يمكن تشبيه العملية بال 16بت انكودر ال encoder 2 ^ 16 = 65536 وخط كونترول يحول بين البانكات ام ان هناك فرق ؟؟؟
نعم لكن كل بانك يحتوى طاقة البروسيسور كامله فلو يتعامل مع 16 جيجا سيكون كل بانك 16 جيجا و عدد الإنكودر فقط على قدر كم بانك ستحتاج
اخي العزيز اقرأ هذه الفقرة "Another big difference between 32-bit processors and 64-bit processors is the maximum amount of memory (RAM) that is supported. 32-bit computers support a maximum of 3-4GB of memory, whereas a 64-bit computer can support memory amounts over 4 GB. This feature is important for software programs used in graphic design, engineering, and video editing as these programs have to perform many calculations to render their images. " هذا ما قصدته بالضبط
والدليل هو حاسبات البينتيوم 4 لا يمكن زيادة الرام عن قيمة معينة والحاسبات الحديثة core i3
او core i 5 او core i 7 الرام يتعدى الواحد كيكا - ولكن ايضا لم افهم معنى core i3 وما هو فرقه عن ال بروسيسر العادي
طبعا هذا الكلام ماخوذ من هذا الموضوع
الموضـــــــوع
الشرح فى الفقرات السابقة
وما هي تقنية refresh -
ارجع للفرق بين Static - dynamic memory
وباللنسبة للهارد نعم اخي هناك تقارير كاملة عن سيرفرات شركة كوكل ويوتيوب وفيسبوك توضح غرف كاملة وانظمة تبريد خاصة chiller ومهندسين يعملون على تغيير الهاردات المعطوبة مع الحفاظ على هذه المعلومات
وهذا التقرير يمكنك مشاهدته
من هنا
لكن يبقى السؤال كيف تغير هارد بدون ان تفقد محتوياته اين سيتم خزن محتوياته في حالة عطله ؟؟؟
هم لا ينتظرون فدوما يوجد زوج من الأنظمة عاملة آنيا فلكل شيء نسخة بديلة و يتم عمل باك أب كل فترة صغيرة فالمسألة لا تعدو نقل بيانات من هارد لآخر
أما تغييرة فالمشكلة أنه أثناء عمله الويندوز تعلم أنه موجود وقد تتعامل معه فتأخذ بيان خاطئ و تتوقف أما فى هذه الحاسبات كما يحدث فى الويندو وضع النوم توقف التعامل معه و تعمل Park للهد و تقطع عنه التغذية فيصبح قطعة حديدة تخلعها و تغيرها دون تأثير و بعدها تبدأ الويندو بالترتيب الصحيح لتفعيله
هل تقصد 5 فولت لان فولتية ال vcc خمسة فولت
الدائرة التى انت ارسلتها VCC واخد من 12 فولت، 5 فولت للحساس فقط
هل يمكن توضيح ماذا تقصد بالقائمة
انت تقول كماند وهو إما جزء من قائمة أو زر تعامل
مصطلح اخر تم اضافته -وهو كما تصنع برنامج في فيجوال بيسك عندما تضغط على تيكست بوكس يظهر البرنامج الفرعي sub-private

اخبرتك مسبقا انه مصدر فولتية مستمر 12 فولت
و لكن الرسم لا يعطى مصدر مستمر و بناء على الصورة المرفقة اليوم فغالبا هذه الدائرة التى اكملتها فى الرسم هى ما بداخلة و المكثف (مكثف التقويم) بداخلة 220 ميكرو أو 470 ميكرو

"بعد ان تخبرني على مكان الدايود اتمنى ان تخبرني ما هو مكثف التقويم فانا في هذا المشروع استعمل محولة 12 فولت مستمر لم اعتمد على مصدر ايسي الى الان
وضعت لك الدايود قبل ذلك مرتين
12 فولت مستمر يتم تقليلها بواسطة زينر 5 فولت لغرض الايسيات وال 12 فولت لغرض الريلاي "
راجع الرسم الذى صححته المرة الماضية
مع ذلك قمت بعمل الدائرة على بروتس ورفعت لك صورة المحولة وللتبسيط قمت بالغاء الريلاي ووضع ليد للعمل ب 5 فولت فقط ولكي لا ندخل بمتاهات الدائرة
هذه الدائرة بها اخطاء كثيرة فانت وصلت طرف الريسيت بالأرضى وهذا يلغى عمله
المرة الماضية وضعت لك الرسم لجزء الريسيت
ضعة كما هو
التزم بتوصيلات التغذية كما وضعتها لك المرة الماضية فالدائرة بالبروتس خطأ لأن 555 تتغذى من 5 فولت بينما 4017 12 فولت قد لا يكفى خرج 555 لقدح 4017


اولا ان المحولة تحتوي على مكثف هل هذا صحيح علما اني لم افهم اين يوضع مكثف التقويم ومكثف التنعيم
هما شيء واحد داخل وحدة التغذية 12 فولت التى رفعت صورتها
كل الذي اعرفه انه بعد ما نخفض الفولتية نضع مكثف على التوازي ولا اعلم هل هو تنعيم ام تقويم
فلتر أو ترشيح
كل المكثفات بين التغذية و الأرضى تعتبر Filter أو ترشيح
ثانيا ظهر مكثف من نوع اخر مكثف ترشيح وايضا لا اعلم اين يوضع هل هو نفسه المكثف الذي يوضع على مصدر التغذية للايسيات ؟؟ وهل يجب وضع واحد بعدما وضعنا مرشح التقويم والتنعيم وما هي مقاومة العزل وهل يجب وضعها مع كل الدوائر ؟؟؟
ثالثا ملاحظة جميلة سانتبه اليها بالمستقبل
اما باللنسبة لقيم المقاومة والمتسعة الثالثة هي التي تحدد وقت النبضة فهو 555 في حالة مونوستيبل حسب القانون 1.1 * RC
وتبقى المشكلة كما هي ولكن فرق صغير انه الدائرة بدات بالاستقرار فعند اطفاء الدائرة والكاونتر على صفر يبقى صفر مهما حاولت من اطفاء وتشغيل للدائرة وعند اطفاء الدائرة والكاونتر على واحد يبقى واحد مهما حاولت هذا في المحاولة الاولى عندما حاولت بعدها لم احصل على هالنتيجة فالدائرة لا تستجيب للريموت كونترول وعند رفع المقاومة 30 كيلو من الدائرة ترجع الدائرة للعمل كما في الوضعية الاولى التي تحدثنا عنها سابقا وهية حالة التحويل بين الصفر والواحد الان اصبح الرسم امامك واضح والبرنامج واضح وخذ كل الوقت وانا ساسمع منك اي فكرة
تحياتــــي لك اخي الكريم

ما رايك الى الان هل نكمل ام نتوقف
ارجع للدائرة مع توصيل الدايودات كما اوضحت لك أول مرة و ثانى مرة مع مكثف الريسيت فى مشاركة 26
هناك خطأ فى الدائرة المرسومة يدوى أن طرف 12 متصل بالأرضى وهو خرج و توصيلة بالأرضى خطأ
لو عملت الدائرة كما رسمت لك ستعمل بإذن الله
أما لو لديك اسئلة عن الحاسب فلا بأس لكن لا تجعلنى اجيب على السؤال مرتين



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