الدرس الثانى : لمحة عن أنظمة العد مع التعريف بمكونات الميكروكنترولر


#1

والان سوف نبدا فى لمحة سريعة للتعرف على انظمة الاعداد

اولا النظام العشرى

وهو نظام الاعداد المعتاد لنا جميعا والذى يتكون من صفر الى 9 وهذا السبب لتسميته بالنظام العشرى حيث يحتوى على 10 رموز اما باقى الارقام فيكون صياغتها من هذه العشر رموز .

وطريقة العد فى النظام العشرى كانت عن طريق البدء من صفر مع زيادة واحد فى كل عده الى ان نصل الى العدد 9 فنقوم بزيادة خانه العشرات واحد ونبدا فى العدد من صفر فى الى 9 مرة اخرى فى الاحاد

ثانيا النظام السادس عشر

وسبب تسميته ايضا لانه يحتوى على 16 رمز وهما

{ 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F }

ولتطيبق طريقة العد فى النظام السادس عشر فاننا نبدا من صفر الى ان نصل F ثم نزيد الخانة التى تمثل فئة 16 بمقدار واحد ونبدا من العد من صفر فى الاحاد كما يلى

ثالثا النظام الثنائى

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

 1 ,0 

وطريقة العد ايضا كما سبق

ويوجد ايضا النظام الثمانى والذى يحتوى على الاعداد من صفر الى 7

والان سنتعلم كيفية التحويل بين انظمة العد المختلفة

1- التحويل من النظام العشرى الى الثنائى

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

ويكون الناتج هو

 10010110

2- التحويل من النظام العشرى الى السادس عشر

نقوم ايضا بالقسمة ولكن هذه المره يكون الاساس هو 16
مثلا قم بتحويل 3924 الى النظام السادس عشر
فعند قسمة 3924 على 16 فان الناتج يكون 245.25
اذن ناخد القيمة 245 ونضربها فى 16 فنجد انها تساوى 3920
نقوم بطرح هذا الرقم من الرقم المراد تحويله فيكون الناتج 4 وهذا اول عنصر من الرقم الجديد .
وبالمثل حتى نصل الى الصفر او رقم اقل من 16 حتى يصبح ناتج القسمة يساوى صفر
مع ملاحظة انه اذا كان الناتج اكبر من 9 فيتم تحويله الى الرقم المقابل له فى النظام السادس عشر

ان الناتج النهائى هو

F54

فهرس دروس دورة الميكروكنترولر كاملة
فهرس دروس دورة الميكروكنترولر كاملة
#2

والان سنقوم بالتحويل من النظام الثنائى الى العشرى

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

110011010

الى عشرى
فنقوم ضرب اول عنصر من اليمين وهو 0 فى 2 اس صفر والعدد الثانى فى 2 اس 1
ويكون كما يلى

وبالمثل للتحويل من النظام السادس عشر الى العشرى
فمثلا نريد تحويل الرقم الاتى

4fde

الى نظام عشرى


#3

مكونات الميكروكنترولر

وحده الذاكرة Memory unit

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

خط البيانات data bus
حيث تقوم الذاكرة بتبادل البيانات مع وحدة المعالجة المركزية حسب نوع العملية فمثلا اذا كانت العملية هى قراءة فان البيانات ترسل من الذاكرة الى خط البيانات ثم تقوم وحدة المعالجة بقراءتها .

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

خط العناوين

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

وحدة المعالجة المركزية Central Processing Unit

وهى تتكون من جزءين هما

وحده الحساب والمنطق :

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

والجزء الثانى هى المسجلات registers :

وهى امكان يتم بها تخزين مؤقت للبيانات بغرض تنفيذها فى وحده الحساب والمنطق .

Bus

وهو مجموعة الاسلاك التى تقوم بنقل الاشارات الكهربية الرقمية بين اجزاء الميكروكنترولر ويجد ثلاثة انواع من الباص .

Address bus

ويحتوى على عدد اسلاك كافى للتعبير عن حجم الذاكرة
فمثلا لو كان حجم الذاكرة 64 k
فان عرض الباص يمكن استنتاجه من المعادلة الاتية

2^n=memory size

اذن فى المثال الموجود لدينا نجد n تساوى 8 وهى التى تعبر عن عرض الباص او عدد الاسلاك الموجودة به ويسمى 8-bit

data bus

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

control bus

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

وحدات الادخال والاخراج Input-output units

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

Timer unit

وفائدته هى تنظيم عمليات وحده المعالجة المركزية حيث تقوم وحدة المعالجة بتنفيذ تعليمة واحده فى وحده الزمن وتعتمد سرعة الميكروكنترولر على تردد الساعة او Timer unit وايضا يسمح للميكرو القيام بالعمليات التى تعتمد على الزمن مثل عمليات العد counter

Serial communication

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

Watchdog

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

Analog to Digital Converter

ومن المعرف عند الجميع ان الميكروكنترولر يعمل بالنظام الرقمى digital ولكن هناك بعض البيانات القادمة اليه تكون غير رقمية (تناظرية ) Analog مثل السرعات المختلفة للمواتير او درجات الحرارة فلذلك لابد من وجود وحدة تحول هذه البيانات الى اشارات يفهمها الميكروكنترولر وهذه الوحدة تسمى ADC
وفى الشكل الاتى نجد التركيب العام للميكروكنترولر والمكونات المادية التى يشملها .

Program

وهذا الجزء الغير مادى من مكونات الميكرو ويكون عبارة عن مجموعة من السطور تحتوى على اوامر معينة
فمثلا البرنامج الاتى

START
REGISTER1=MEMORY LOCATION_A
REGISTER2=MEMORY LOCATION_B
PORTA=REGISTER1 + REGISTER2
END

يقوم عند بداية التنفيذ بوضع القيمة الموجودة فى المكان A بالذاكرة الى المسجل رقم 1 الموجود فى وحدة المعالجة .
وكذلك ايضا القيمة الموجودة فى المكان B سيقوم بوضعها فى المسجل رقم 2
وستقوم وحدة الحساب والمنطق بجمعهم ووضع الناتج فى البورت A.

وهذا البرنامج يمكن صياغته بالعديد من لغات البرمجة سواء عالية المستوى او غير عالية المستوى ومن اشهر هذه اللغات
Assemblerو C و Basic


#4

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


(system) #5

جزاكم الله خيرا علي المجهود الذي تبذلوه في سبيل توصيل العلم للاخرين
م/ مرسي


(eng.waleed) #6

هناك استفسار لدي حول الدرس الثاني و هو :

هل يمكن تحويل الداتا باص data bus و استخدامه كـ addres bus مثلا وبالتالي يمكننا زيادة المحتويات التي يمكن التخزين بها ؟

هل يمكن أن يعمل الـ address bus كـ data bus ? و ما السبب في الرد على السؤال ؟ و هل هناك طريقة لتحويله اذا لم يكن في الامكان استخدامه كـ data bus ?

شكرا لكم على الدرس الثاني و أعتذر على الاطالة في الاسئلة

سلام
المهندس وليد


(عباس العراقي) #7

اذا سمح لي الاخ احمد ان اجيب
نعم اخي يمكن ان نستعمل نفس الاسلاك databus وايضا adressbus وسنحتاج نتيجة لذلك دائرة للتمييز بين المعلومات


(عباس العراقي) #8

يا اخ احمد ممكن ان توضح اكثر Watchdog


#9

السلام عليكم ورحمة الله وبركاته
سوالك مهم جدا مهندس وليد
اولا : data bus هو الذى ينقل البيانات من و الى وحدة المعالجة المركزية الى اى مكان فى الميكرو .
ولكن ال address bus ينقل العناوين من وحدة المعالجة المركزية الى الذاكرة اى ان العناوين تسير فى اتجاه واحد فقط .
والعناوين هى بالفعل بيانات ولذلك فان ال address bus يعتبر Data bus ولكن فى اتجاة واحد

وكان من الممكن لدى المصنعين عدم استخدام address bus
ونقل العناوين فى ال Data Bus .
ولكن كما قال الاخ عباس بارك الله فيه سنحتاج الى دائرة تمييز مما سيجعل الميكرو اكثر تعقيدا
وسنحتاج الى باص ذو عرض كبير والا سيكون هناك تأخير فى عمل الميكروكنترولر

#10

السلام عليكم
اخى العزيز عباس هذه الوحدة تسمى Watchdog وتحتوى على ما يسمى
Free run counter
وهذا عداد يقوم بالعد كل مرة بعد نجاح تنفيذ تعليمه من تعليمات البرنامج

فاذا لم يحدث نجاح فى التنفيذ او توقف الميكرو عن الاستجابة
فتجد اتوماتيكيا يقوم الميكرو بعمل ريست reset

(eng.waleed) #11

شكرا لك على التوضيح م / احمد

نعم اخي يمكن ان نستعمل نفس الاسلاك databus وايضا adressbus وسنحتاج نتيجة لذلك دائرة للتمييز بين المعلومات

شكرا لك م / عباس العراقي على التعاون
و لكن ما هي الدائرة المميزة التي قد تستخدم ؟
بامكاننا الاستغناء أعتقد عن مثل هذه الدائرة إذا قمنا بادراج أوامر أثناء البرمجة تقوم بتوجيه الداتا أو تجعل الميكروكنترولر يعرف أن هذه هي datas , و هذه هي addresses
أعتقد ان مثل هذه الاضافة لن تزيد من التعقيد على قدر ما أنها ستضيف إمكانية التعامل مع أماكن تخزين أكبر

The More address buses ’ bits ’ the more Memory locations
هل أنا على صواب ؟

شكرا مجددا لكم …

سلام
المهندس وليد


#12

أعتقد عن مثل هذه الدائرة إذا قمنا بادراج أوامر أثناء البرمجة تقوم بتوجيه الداتا أو تجعل الميكروكنترولر يعرف أن هذه هي datas , و هذه هي addresses

ولكن اخى العزيز المكان الذى تنتقل منه واليه البيانات فى الداتا بص مختلف عن المكان الذى تتنتقل منه واليه البيانات فى باص العنوانين

فمثلا تتنتقل التعليمة من مكانها فى ذاكرة البرنامج الى مكان فى وحدة المعالجة يسمى
Instruction Register عبر الداتا بص
حتى تقوم بتنفيذها .

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

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


(eng.waleed) #13

شكرا لك على التوضيح

سلام
المهندس وليد


#14

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


(eng_asa) #15

جزاك الله خيرا - درس جيد وفى انتظار الدرس القادم
هل لى أن اسأل سؤالا
ما لغة البرمجة التى سوف نستخدمها ان شاء الله؟

وبالنسبة لاستفسار المهندس وليد - ان سمحت لى
The More address buses ’ bits ’ the more Memory locations

مفهوم صحيح ولكن علينا ان نضع more chips for memory
اى نزيد سعة الذاكرة والا سيكون هناك عناوين زائدة بلا فائدة (اى لا مكان للتخزين)

شكرا


(عباس العراقي) #16

الان فهمت شكرا جزيلا اخي


#17

السلام عليكم ورحمة الله وبركاته
بالنسبة للغات البرمجة فسنتعرض للغة ال Assembly و PICBasic

وبالنسبة لاستفسار المهندس وليد - ان سمحت لى
The More address buses ’ bits ’ the more Memory locations

المفروض ان يكون العكس
the more Memory locations The More address buses ’ bits '
لان الهدف هو زيادة الذاكرة وليس زيادة الباص


#18

الدرس الثانى بصيغة
الباوربوينت وال PDF

(alrashed71) #19

مشكور أستاذي الكريم


(Eng4ever) #20

السلام عليكم ورحمة الله وبركاته

أشكرك يا باش مهندس عالدروس
ولكن لم أفهم الجملة التالية

the more Memory locations The More address buses ’ bits ’

هل بزيادة الذاكرة تزداد الباص؟؟؟

وجزاكم الله خيرا

محمد Engineer 4 Ever