المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : المتحكم الصغير بشرح حسن علي


الصفحات : [1] 2 3 4 5

hasanAli
28-05-2006, 02:26 AM
إن الكومبيوتر الذي تستعمله أنت الآن يمكنك أن تبرمجه وتصله في منزلك على لمبات الغرف والبراد والتلفزيون وكمرات حراسه الخ..لكي يطفئ جهاز ويشغل الآخر ويحدد الوقت حسب البرنامج هذا كلام لا خلاف عليه.بل أكثر من ذلك ,هناك مصانع وطائرات وأقمار اصطناعية وجدول لا نهاية له يدخل الكومبيوتر في تركيبته ألأساسيه.وما علاقة ذالك بالمتحكم الصغير.؟ العلاقة هو أن المتحكم الصغير بحد ذاته هو عبارة عن كومبيوتر بكل ميزاته موضوع في دائره متكامله واحده .
تصور ذلك.باثنان سنتم طول ونصف سنتم عرض وربع سنتم ارتفاع وأحيانا اقل من ذلك بكثير يوجد كومبيوتر متكامل.إنها ثوره صناعية بحق . إن التقدم في أي مجال كان يعتمد على المتحكم الصغير.وخاصة السعر الرخيص من دولارين وما فوق.لماذا المتحكم ؟ لأنه قلب أي داره أو شبكه إلكترونيه ويتحكم بإدارتها .
اما جمال وروعة المتحكم هو اننا نستطيع برمجته ثم انتزاعه من المبرمج ووضعه اينما شئنا في اي داره فهو يحتفظ بالمعلومات لمدة اربعين عاما وبدون كهرباٍ ناهيك عن قدرته الفائقه في تنفيذ الاوامر مليون ومليونان امر في الثانيه حسبما نريد, فلا تترك هذا الامر يفوتك فهيا بنا لندرسه وباسهل الطرق والله المعين .
المتحكم الصغير تصنعه شركات مختلفة وبدوره هناك أنواع عديدة ووظائف مختلفة الخ . ولكي ندخل معا عالم المتحكم الصغير سندرس واحد على وجه الخصوص ألا وهو الدائرة المتكاملة 16ف84أ من إنتاج شركه MICROCHIP ونستعمله كعامود أساس لانطلاق إلى ما فوق .
لكي نبرمج , المتحكم علينا :1-
1- أن تمتلك حاسوب , لتنصب به , برنامج " لبرمجة المتحكم "
2- أن تمتلك مبرمجه , وهي آله كالطابعه , توصل على الحاسوب من خلال المنفذ المتوازي أو التسلسلي , نركب عليها المتحكم , لنحرقه "إذا جاز التعبير" , أي نبرمجه . بعدها ينزع من المبرمجه , لنضعه في الدائره التي صمم ليقوم بعمل ما بداخلها .

بالنسبه للنقطه الثانيه : أخوك حسن علي يضع بين يديك مبرمجته الخاصه صنعتها بنفسي . ويمكنك أن تفعل مثلها .

هناك ثلاثة دروس بدون إتقانها مستحيل تعلم المتحكمات , وسأشرحها لك , وهي : الأنظمه الرقميه , الدوائر المتكامله
وشرائح الذاكره
الأنظمه الرقميه

النظام الثنائي
النظام الثماني
النظام العشري.

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

النظام العشري المشفر ثنائيا




[النظام العشري ] , أو قاعده عشره , أو النظام الرقمي العربي. DECIMAL


http://www.electvillage.com/up06/up/alanth1.gif

الأرقام عباره عن رموز تستعمل لتمثيل كميات معينه , النظام الرقمي الأكثر اشاعة واللأقدم هو النظام العشري أو قاعده 10[ لأنه يتكون من عشرة رموز], وسمي كذالك بالنظام الرقمي العربي , نسبة الى مخترعيه العرب اللذين أدخلوه الى أوروبا قبل 800 سنه , وكل الدول المتحظره تبنته رسميا , هو النظام الأكثر استعمالا في حياتنا اليوميه , وتكيفنا الذهني معه أكثر من غيره من الأنظمه, لذالك اخترنا دراسته قبل غيره.

ألنظام العشري يستعمل عشرة رموز أو أرقام [ 0,1,2,3,4,5,6,7,8,9 ] وربما يرجع ذلك الى أن الإنسان له عشرة أصابع , يستعملها بطريقة عفويه أو معتمده للعد, منذ قدم العصور


عندما نعد عشريا , نبدأ بالرقم الاقل قيمة [0] الصفر, ثم [1] واحد, [2] .…الخ حتى الوصول إلى [9] تسعه , وهو الرقم الأكبرقيمة, أي عد إضافي ينتج إنتقال إلى اليمين ,(Carry) منتجا الرقم عشره [ 10] في هذا الرقم الواحد [1] يحتل موقع أو خانة العشرات ( 10^1=10), بينما ال [ 0 ] الصفر يحتل خانة الأحاد (10^0=1) .

تتابع هذه العمليه , كلما نصل الى ( 9) في موقع اللأحاد , وعندما نصل الى ( 9 ) في موقع العشرات يحدث إنتقال الى موقع المئات ( 2^10=100 ) لاحظ ان أي رقم في موقع العشرات له قيمه أو (ثقل) 10 مرات أكثر منه في موقع الأحاد. وهذه القاعده صحيحه لكل المواقع الأكثر ثقلا , وإنطلاقا من هذه العلاقه , فإن النظام العشري هو نظام موقعي وقاعدته عشره .
عامة , إن كل الأنظمه الرقميه التي سندرسها , هي أنظمه موقعيه ( قاعده 2, 8, 10, 16 ) وتطبق عليها القوانين التاليه
1 كل موقع أو خانه يظرب قيمة العدد بالقاعده .
2 الإنتقال من موقع الى التالي يكبر الثقل بعامل يساوي القاعده .
3 عدد الأرقام المستعمله في النظام مساوي للقاعده.
4 الرقم اللأكبر قيمه يساوي القاعده ناقص واحد.

لنأخذ العدد ( 735 ) على صعيد المثال , أل 5 هو الرقم الأقل قيمة - LSD Least Significant Digit.
والرقم 7 هو الرقم الأكثر قيمة , ( MSD) (Most Significant Digit)
ويحتل موقع المئاتْ , وهذا الرقم 735 يتضمن أنه هناك ( 7) مِئاتْ , ( 3 ) عشراتْ و ( 3 ) وحدات. ويمكن أن يعبر عنه بألشكل التالي:
700+30+5

ألثـنـائي Binary

ألنظام الرقمي الثنائي , قاعده 2 , يستعمل فقط رقمين وهما الصفر والواحد ( 0,1) وكل من هذان الرقمين يدعى ( بيت) , البيت تتغير قيمته حسب الموقع الموجود به , في أقصى اليسار من أي عدد ثنائي يوجد البيت الأكثر ثقلا MSBوفي أقصى اليمين البيت الأقل ثقلا LSB


http://www.electvillage.com/up06/up/alanth2.gif


المواقع أو الخانات في النظام العشري ( أحاد , عشرات , مئات , ألوف , عشرات الألوف .... الخ ) بينما في النظام الثنائي ( أحاد , إثنان , أربعات , ثمانيات , ستة عشرات , إثنان وثلاثينات , أربعه وستينات , مئه وثمانيه وعشرينات .... الخ).
في نظامنا العشري , إذا وجد الرقم تسعه في الخانه الثالثه , فهو يعني 900 أي 9×100 , كذلك الأمر في النظام الثنائي , فإذا وجد الواحد في الخانه الثالثه فهو يعني أربعه أي 1×4 . فعملية التحويل من عشري إلى ثنائي وبالعكس لهي في غاية السهوله.
أمامنا عدد من خمسه بيت 10010 ونريد تحويله الى عشري.
نأخذ الخانه الأكثر ثقلا وهي الخامسه. نرى أنها تحتوي على البيت 1 , وهذا معناه أن هناك واحد ستة عشرات أي 1×16 أي 16 ...... في الخانه الرابعه هناك البيت صفر , اللآن نقوم بنفس العمليه , والناتج صفر لأن كل ما يظرب بصفر نتيجته صفر. نفس الأمر في الخانه الثالثه النتيجه صفر , في الخانه الثانيه هناك واحد ومعناه 1×2 أي 2 وفي الأخير صفر.
إذا هناك 16 و 2 فكل ما عليك هو جمعهما لتحصل على 18 , وها أنت وبدون حسد , قد حولت العدد الثنائي 10010 إلى عشري.

= 16 + 0 + 0 + 2 + 0 = 18

http://www.electvillage.com/files/up2/alanth4.gif


كيف نحول من عشري إلى ثنائي ؟
يتم ذلك بالقسمه المتتاليه للعدد العشري على إثنين ( 2 ) وبالشكل التالي
37 عشري إلى ثنائي :
أقسم 37 على 2 فالجواب 18 والباقي 1
أقسم 18 على 2 فالجواب 9 والباقي 0
أقسم 9 على 2 فالجواب 4 والباقي 1
أقسم 4 على 2 فالجواب 2 والباقي 0
أقسم 2 على 2 فالجواب 1 والباقي 0
أقسم 1 على 2 فالجواب 0 والباقي 1 لأنه في عملية التحويل لا مجال للكسور.
الباقي هو الرقم الثنائي للعدد العشري 37 , ونبدأ بترتيبه من الأسفل إلى الأعلى , حيث ألبيت ( bit ) الأكثر ثقلا هو بيت الباقي الأخير.
إذا 100101 = 37
ملاحظه : الأرقام الثنائيه تقرأ , واحد صفر صفر واحد صفر واحد ولا يجوز قرائتها كالنظام العشري لنقول مئة ألف ومئه وواحد.





ألنظام الثماني Octal

http://www.electvillage.com/files/up2/alanth5.gif
قاعده 8 , يستعمل ثمانية رموز ( 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 ) , يختلف عن النظام العشري بأنه لا وجود للرقمين ( 8 , 9 ) فأعلى رقم في النظام الثماني هو السبعه .


كيف نحول من عشري إلى ثماني ؟
يتم ذلك بالقسمه المتتاليه للعدد العشري على ثمانيه ( 8 ) وبالشكل التالي :
لنفترض أنني أريد تحويل العدد 267 إلى ثماني :

أقسم 267 على 8 فالجواب 33 والباقي 3 (Lsd)
أقسم 33 على 8 فالجواب 4 والباقي 1
أقسم 4 على 8 فالجواب 0 والباقي 4 (MSD)
الباقي هو الرقم الثماني للعدد العشري 267, ونبدأ بترتيبه من الأسفل إلى الأعلى , حيث ألرقم الأكثر ثقلا هو الباقي الأخير.
إذا 267 عشري يساوي 413 ثماني .


ألنظام السادس عشري Hex Hexadecimal


http://www.electvillage.com/files/up2/alanth6.gif
هو النظام الأكثر إستعمالا في الأجهزه الإلكترونيه , وبالحاسوب على وجه الخصوص , يسمى بنظام قاعده 16 كذلك يتألف من ستة عشر رمزا وهما الأرقام من 0 الى 9 بالإضافه الى الأحرف ( A , B , C , D , E , F )

الرقم الأكبر هو الحرف(F) والذي يوازي 15 عشريا , والأقل قيمة هو الصفر ويعد في هذا النظام من الصفر إلى F أمثله لأعداد سادس عشريه ( 123 , A23F , 23FF , F4 , DF)


كيف نحول من سادس عشري إلى عشري ؟ HEX to Decimal
ففي الرقم السادس عشري A23F
هناك ( عشر ) 4096, و ( إثنان ) 256 , و ( ثلاثه ) 16 , و ( خمسة عشر ) 1
A23F = 10 x 4096 + 2 x 256 + 3x16 + 15 x 1
= 40960 + 512 + 48 +15
= 41535
كيف نحول من عشري الى سادس عشري ؟
لنحول العدد العشري 1991
نقسم 1991 على 16 جواب 124 والباقي 7
نقسم 124 على 16 جواب 7 والباقي 12 ©
نقسم 7 على16 جواب 0 والباقي 7 (MSD)
1991 = 7C7


النظام العشري المشفر ثنائياBinary-Coded-Decimal

ليس نظاما رقميا بحد ذاته , بل يمزج ما بين العشري والثنائي , وتعتمد عليه بعض الألات الحاسبه . وكثير من الشرائح الإلكترونيه , فكيف يعمل نظام BCD؟.
لدي الرقم العشري 4975
نأخذ الأرقام رقما رقما ونحولها الى ثنائي
فا لأربعه تساوي 0100
والتسعه تساوي 1001
والسبعه تساوي 0111
والخمسه تساوي 1001
إذا 4975



هو النظام العشري لكن الأرقام به تكتب ثنائيا.

hasanAli
28-05-2006, 02:53 AM
الدوائر المتكامله
http://www.electvillage.com/files/up2/16f.jpg

الدوائر المتكامله : ( IC ) : عباره عن شريحه كما تراها في الشكل أعلاه , ويخرج منها أطراف أو أرجل.
بداخل الشريحه , هناك عدد من القطع الإلكترونيه بما فيه ترانسيستورات , دايود, مقاومات , مكثفات , وأسلاك ربط , موصولين ببعضهم ليكونوا دائره ما , ذات عمل محدد , كعدادات ومؤقتات وميكروكونترولارات "متحكمات صغيره" , ذاكرات , بوابات منطقيه , معالجات وآلاف من الوظائف.
هذه الدوائر الموجوده داخل الشريحه , تتصل مع العالم الخارجي من خلال الأطراف , فمنها ما هو مخصص لوصل الجهد الإيجابي وآخر للسلبي , ولكل طرف وضيفه .
نحن كهواة , وجود هذه الدوائر المتكامله بالنسبه لنا , يوفر علينا أعمالا شاقه , وطويله , بل تبدو في أغلب الأحيان مستحيله. خذ مثلا , الدائره المتكامله 555 , عباره عن شريحه ذات ثماني أطراف وتعمل كمؤقت , لو أردت بنائه بنفسك , فأنت بحاجه لوصل ما يقارب العشرين ترانسيستور, وستة عشر مقاومه , وثلاثه دايود , وهذا معناه :
1 . الطلب من الله عز وجل أن تجد كل هذه الترانسيستورات في السوق.
2 . الكلفه العاليه .
3 . يوم من الوصل والتلحيم إذا كفاك.
4 . حجم دائرتك ومهما كنت بارعا لن يقل عن 10*10سنتم .
5. آلاف المصائب الأخرى.
أنظر الصوره أدناه , لترى ما هو موجود داخل الدائره 555 التي لا تتعدى السنتم المربع.

http://www.electvillage.com/files/up2/alda.gif

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

http://www.electvillage.com/files/up2/dmotak2.gif
هذه التعليبه, أو الشكل للدائره المتكامله, يسمى DIP وهناك أشكال آخرى كأل TO-5 , أنظر الصوره أدناه , تعليب SMT وهي ذات التركيب السطحي ( تلحم على اللوحه مباشرة بدون ثقوب).


الحمدلله هناك الكثير من مصنعي الدوائر المتكامله ( دم) . مثلا ( موتورولا , ناشونال , تكساس, فايرتشايلد, سامسونغ, نك, أنالوغ ديفايسس, الخ ) وهناك مصانع في عديد من البلدان . فكل هذه المعلومات تأتي مكتوبة على ظهر الدوائر الإلكترونيه . وفي أغلب الأحيان نجد سطرين , مثلا
M8228
DM74LS08N
بالإضافه إلى أن لكل شركه شعار خاص بها , مطبوعا في أحد الزوايا .


كما تلاحظ في مثلنا أعلاه أن لكل بلد مصنع شيفره تدل عليه , فسطرنا الأول يعني
أن (دم) صنعت في ماليزيا , في الأسبوع 28 من سنة 1982 .
لكل شركه مصنعه شيفره تدل عليها , DM تعني قطعه رقميه من ناشونال .
سيريال 74 أو مجموعة 74 . ( مجموعه تضم عدة (دم) مختلفة الوظائف).
العائله : تنقسم ال(دم) إلى عدة عائلات وتفرعات , تختلف فيما بينها , بعدة أمور منها , الجهد , التيار, السرعه , وطريقة التصنيع , . LS عباره عن تفرع من عائلة TTL .
الوضيفه : 08 تقول لنا أن (دم) عباره عن : أربع بوابات منطقيه AND ذات المدخلين .
و N تدل على نوع التعليبه .




دوائر ألذاكرهقبل الدخول في شرح دوئر الذاكره , خذ هذه الفكره من أخوك حسن علي , مهما كانت الإلكترونيات الرقميه معقده لا تتعدى كونها لعبة الصفوره والواحد , اللغه الرقميه لغة الالكترونيات والكومبيوتر والاله الحاسبه وكل الادواه المتطوره. ربما الان تقول لنفسك انها لغه معقده جدا وللاخصائين الى ما شابه ذالك.هذه لغه بسيطه جدا واكثر مما تتصور فابجديتها مكونه من حرفين نعم حرفين اثنين فكل الاجهزه التي ذكرتها لك سابقا,بما فيهم الكومبيوتر لا تفهم اكثر من حرفين.وهما الواحد والصفر (1) و(0) وكذلك يطلق على هذان الحرفان اسم (الاعلى) و(الادنى) اجنبيا (H) و (L). ولماذا هذه الاسماٍ لحرفان فقط ؟ بسبب الاسلوب الذي تستعمله هذه الاجهزه لكتابة هذان الحرفان بداخلها.قلنا باننا نكتب العربيه اينما نشا ٍ ورق,حجر ,رمل. اما الكومبيوتر فيكتب في الذاكره التي هي عباره خانات افقيا وعاموديا وكل خانه بداخلها جهاز يمكن ان يعبأ بشحنه كهربائيه كالبطاريه تماما. مثلا لووضعنا 8 أجهزه من هذه بشكل افقي.

وأخذنا نشحن بعضها , بجهد 5 فولت , وتركنا بعضها الآخر بدون شحنه , المعالج يفهم , أنه حيث هناك خمسه فولت هناك واحد منطقي , وبدون شحنه صفر منطقي .
لنفترض أن ما في الصناديق هو " 11111111" . طبعا أنت درست معي الأنظمه الرقميه , وأصبحت تعرف أن هذا الرقم الثنائي , قيمته العشريه 255 . المعالج كذلك يعرف هذه القيمه . ويستطيع أن يجمع أو يطرح ...إلخ من رقم ثنائي آخر ويعطيك الجواب ثنائيا .
ما تبقى , من لعبة الصفوره والواحد , ليس أكثر من تشفيرات . كيف ؟ . أولا إتفقنا أنه , ما يحفظ في الذاكره والقرص الصلب يكتب بأرقام ثنائيه , أليس كذلك؟ .... أنت اللآن تقرأ موضوعي بالعربي .... وهو مخزن في حاسوب .... ويجب أن يكون أرقام ثنائيه , كيف هذا ؟ .
بسيط جدا , داخل الحاسوب هناك دوائر متكامله تحول الأرقام الثنائيه إلى أحرف , كل حرف يمثله رقم . مثلا الـ A الرقم 65 ..... هذه التشفيره .... تدعى " تشفيرة أسكي" .... نعود لموضوعنا.

كل خانه من هذه الخانات الثنائيه . بغض النظر عما تحتويه " واحد أم صفر" تسمى "بيت" .
النيبل أربعة صناديق جنب بعظها , أي أربعه بيت .
"البايت" ثمانيه "بيت" ....... والكلمه 16 بيت.
عندما تقرأ على "السي دي" أن سعته 800 ميغا بايت , أو عندما تقرأ , أن سرعة إتصالك بإنترنت,كذا كيلو بايت بالثانيه , أصبحت تعلم بالتأكيد , بما يتعلق الموضوع.
نعود لدوائر الذاكرات, الخانات الأفقيه , تدعى "سجل" ممكن أن تكون بعرض 8 بيت أو أكثر .
السجلات , موجوده بشكل عامودي , واحد تحت الآخر , لنقل على صعيد المثال 60 سجل . كل سجل له عنوان أو موضع , الأول عنوانه صفر , الثاني واحد , وهكذا حتى الـ 59 .
الذاكرات مهما كان نوعها ... ليست أكثر من سجلات وعناوين.
http://www.electvillage.com/files/up2/mawthi3.gif
طيب , سؤال .... كيف يفهم المعالج بأنني أريد طرح هذا أو ذاك السجل من تلك ؟ ببساطه لكل سجل إسم وعنوان لنرى ......كيف ؟ ..... الذاكره مؤلفه من سجلات بشكل عامودي

الموضع يشكل عنوان السجل , والمعالج يفهم ذلك تلقائيا , وليس لديه مشكله في ذلك, المشكلة لدينا نحن إذا كان هناك ذاكره من ستين عنوان , وكنا نكتب برنامج مثلا , لقياس مساحة المربع .... الطول ضرب العرض .... فبأي من هذه العناوين وضعنا الطول والعرض ...... لذا هناك لكل سجل إسم .... إما أن نضعه نحن بأنفسنا .... وهناك أسماء لسجلات محدده من المصنع ....
لنوضح أكثر ..... كتابة برنامج للمتحكم أمر سهل جدا وليس بالمعقد مثلا مساحة المربع .. لاحظ معي السطرين التالين
tool equ 2
arth equ 4
كلمة ( EQU ) معناها يوازي ..... بكل بساطه هنا قلت للمعالج .... بأنني سميت السجل الموجود في الموضع 2 كـ طول وفي الموضع 4 كـ عرض ...... من هنا فصاعدا .... لن أشغل رأسي بموضع أي من هذان السجلان .... يكفي أن أقول للمعالج إقرأ طول فهو يعرف تلقائيا موضعه .... وينفذ لك الأمر الذي تريده .....إكتملت الصوره الآن سنضع تعريف نهائي للسجل
سجل : مجموعة خانات ذاكره أفقيه , تحتوي كل منها على بيت واحد , وله طول معين , وإسم وعنوان يحدد موضعه في الذاكره .

أنواع الذاكرات
الذاكرة المؤقته ( رام ) ...... يعني انها تعمل وتحتفظ بالمعلومات ..... طالما هناك جُهد كهربائي يصل للمتحكم .... في حال فقدانه .... تتحول كل السجلات إلى صفر ..... وتفقد المعلومات ....... (ذاكره مؤقتة )
الذاكره من نوع( فلاش) ...... أي أنها تمحى وتقرأ كهربائيا ...... تحتفظ بالمعلومات لمدة 40 عام حتى ولو قطع التيار الكهربائي عن المتحكم ..... نستطيع قرائتها أو محيها ...... ألف مره فقط ...... بكلمات أخرى يمكننا برمجة ( حرق المتحكم , إذا جاز التعبير) ألف مره فقط ......
ذاكرة المعلومات ..... من نوع ( إإبروم) ..... يعني ..... أنها تسجل وتمحى كهربائيا ..... تحفظ المعلومات لأربعين عام بدون كهرباء ..... خلافا لسابقتها ..... يمكن قرائتها وكتابتها مليون مره .... كذلك بحاجه لوقت أكثر من سابقتها .... لقرائة أو كتابة السجلات ... بطبيعة الحال الوقت قصير جدا .... إذا كنا نتكلم في السابقه عن ميكروثانيه فهنا نتكلم عن ميلي ثانيه .

hasanAli
28-05-2006, 03:12 AM
طرفان مصدر التغذيه
http://www.electvillage.com/files/up2/kari.bmp





الكومبيوتر نصله على جهد كهربائي مقداره 110 فولت , صاحبنا المتحكم يوصل على جهد خمسه فولت . الجهد الموجب على الطرف 14 والسالب على الطرف 5 .

نحن كهواة , نستعمل في دوائرنا بطاريات 9 فولت ألمستطيله , الحل , هناك دائرة متكاملة تسمى 7805 ذات ثلاثة أطراف شبيهة بالترانسيستور , تستعمل لتعديل هذا الجهد إلى خمسه فولت . هكذا

http://www.electvillage.com/files/up2/ta3dil.jpg


طرفان هزاز



الهزاز : هو دائره بسيطه تحدث ذبذبه , يستعملها المتحكم بعمله . توصل على الأطراف 15 و 16 . وهناك نوعان منها .

الأول : عباره عن حجر كريستال

كل منا عنده كومبيوتر ويقول , عندي بنتيوم 4 سرعة معالجه 1400 ميغا , وأخر 400 و 600 وهذا أسرع وذاك بطيء ممرضني , إلخ , إذا السرعة هي سرعة تنفيذ البرنامج , السرعة لمتحكمنا تحددها دائرة هزاز خارجية توصل على الأطراف 15 و 16 . ممكن أن تكون من مقاومه ومكثف أو ببساطه حجر كريستال , الاحتمال الثاني ذا دقه عالية . حجر الكريستال يحدث تذبذب عند مرور التيار به . وقيمة تذبذبه مكتوبة على غلافه المعدني فمنه 4 و 10 وعشرين ميغا هيرتس .


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

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

النوع الثاني : مقاومه ومكثف .

http://www.electvillage.com/files/up2/2_8.bmp
إذا كان مشروعك , ليس بحاجه للدقه في التوقيت , يمكنك إختيار هذا النوع من الهزازات, لماذا عدم الدقه ؟ لأنه يتأثر بـ جهد المصدر , حراره المكان , تفاوتات قيمة المقاومه والمكثف. المقاومه يجب أن لا تقل قيمتها عن 2.2 كيلو أوم ,والمصنع ينصح بـ 3 كيلو لغاية 100 كيلو وعلى أن يتعدى المكثف الـ 20 بيكو فراد . وما فوق.

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

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

منفذ أ و منفذ ب




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

قلت بأن المتحكم الصغير , هو كمبيوتر متكامل , إذا يوجد بداخله معالج , كيف تدخل وتخرج المعلومات. إليه ؟ . كالكومبيوتر بالظبط من خلال منفذين منفذ أ و منفذ ب


منفذ أ : مكون من خمسة أطراف وهي ( 17 , 18 ,1, 2 , 3 ) .

هذه الأطراف , برمجيا , تسمى " منفذ أ 0 , منفذ أ 1 , منفذ أ 2 , منفذ أ 3 , منفذ أ 4"

منفذ ب مكون من ثمانية أطراف وهي ( من 6 إلى 13 ) .

هذه الأطراف , برمجيا , تسمى " منفذ ب0 , منفذ ب1 ولغاية منفذ ب 7 "

ما أقصده عندما أقول" برمجيا تسمى" ؟

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

خذ مثلا برمجيا :

أحد الأوامر التي يفهمها المتحكم , هو " ضع واحد ببيت " .

فإذا قلت له ضع واحد ببيت منفذ ب 7

سيصبح جهد الطرف "13" 5 فولت . أي واحد منطقي.

فإذا قلت له ضع صفر ببيت منفذ ب 7 وهذا أمر آخر يفهمه المتحكم.

سيصبح جهد الطرف "13" 0 فولت . أي صفر منطقي.

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

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

يوصل بهذه الطريقة:
http://www.electvillage.com/files/up2/binkam3.gif

شاهد معي الصوره ," بص , شوف, دحق زين" , وضع المفتاح في الصوره "مفتوح", معناه أن ما يصل الطرف أربعه " جهد 5 فولت " , صدقت " واحد منطقي" . طيب , في هذه الحاله ليس هناك إعادة إنظباط . الآن لو أغلقنا المفتاح ... سيصل طرف إعادة الإنظباط صفر منطقي وستحدث عملية إعادة إنظباط . خلاصه : تفعيل إعادة الإنظباط تتم بوضع صفر منطقي بالطرف 4 . حسن علي ينصحك , إذا كنت لا تريد إستعمال إعادة الإنظباط في مشروعك , على الأقل قم بوصل الطرف 4 بواسطة مقاومه 10 كيلو أوم على الجهد الموجب لمصدر التغذيه . لتفادي حصول عمليات إعادة إنظباط غير إراديه.

طرف مقاطعه
أذكرك بأنني , لا زلت أتكلم عن المتحكم من الخارج ,وقلت أن له 18 طرف , وحتى الآن سردتها كلها لك , 2 لمصدر التغذيه , 2 هزاز , 13 منفذ أ و ب , 1 إعادة إنضباط , ولا زلت مصرا أن هناك أطرافا أخرى, وأسمح لنفسي بالتكلم عن طرف مقاطعه .... كيف هذا؟.

نعم عزيزي , هناك أطراف ذات وظيفه مزدوجه , يعني يمكن أن تقوم بعملين مختلفين , ليس بنفس الوقت طبعا, لذلك عليك إختيار الدور الذي تريده لهذه الأطراف , هذه النقطه بالتحديد سنتطرق لها عند شرحنا لسجلات العمل الخاصه , والبرمجه.ما أريد أن تعرفه اللآن , أن الطرف 6 نفسه منفذ ب صفر , يمكن إستعماله كطرف دخول/خروج للمعلومات كمنفذ ب صفر أو كطرف مقاطعه .

ما معنى دخول / خروج ؟ : عندما أقول للمتحكم بأن يضع واحد منطقي في أي طرف من منفذ ب أو أ , فأنا أخرج المعلومه , فإذا قلت له إقرأ ما في طرف ما . فهو يقرأ لي المعلومه التي أدخلت عليه من دائره خارجيه " واحد أو صفر "

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

طيب لو إخترناه "طرف مقاطعه" ... كيف سيكون عمله؟.وما هي المقاطعه بحد ذاتها ؟ رائع , تصور نفسك بين مجموعه من الأصدقاء وأنت تخاطبهم بموضوع ما , وقاطعك أحدهم , في الحقيقه , ما فعله هذا الأخير بمقاطعته , هو إيقافك عن الكلام .

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

الأوامر إبتداءا من هناك .

مقاطعة "طرف المقاطعه" شبيهه بعملية " إعادة الإنظباط" الفرق أن الأخيره ترجع المتحكم للعنوان صفر من ذاكرة البرنامج , والأولى للعنوان أربعه .... كيف تراني معك ؟ روعه أليس كذلك؟ .

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

أطراف مقاطعة منفذ ب



هناك أربعة أطراف من منفذ ب , يمكن إستخدامها بعد تفعيلها وإعدادها كأطراف دخول , لتحدث مقاطعات بنفس الطريقه والنتائج التي شرحتها في طرف المقاطعه .هذه الأطراف هي منفذ ب 4 ولغاية منفذ ب 7 أي الأطراف 10 حتى 13 .

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



طرف عداد



داخل المتحكم , وبالتحديد في الذاكره االمؤقته , هناك سجل بطول 8 بيت كباقي سجلات هذه الذاكره , يدعى المؤقت , عندما يكون السجل بطول 8 بيت , كما شرحت لك في الأنظمه الرقميه , ممكن أن نحمله أرقام من ........ ولغاية 11111111 أي من صفر ولغاية 255 عشري .

سجل المؤقت هذا , يرتفع تلقائيا بواحد مع كل دورة ساعه للهزاز , تتذكر شرحي للهزاز عندما قلت إذا إستعملنا كريستال 4 ميغا ستكون دورة الساعه ميكروثانيه واحده. صاحبنا المؤقت أوتوماتيكيا , تلقائيا , لوحده , يرتفع بواحد مع كل دورة فيكون صفر ثم يصبح 1 ثم 2 وهكذا حتى الـ 255 .

لماذا مؤقت لأنه يعد لنا كم ميكروثانيه مضت . " في هذه الحاله". طيب وصل لل 255 وبما أنه سجل بطول 8 بيت , ولا يمكنه أن يعد أرقام أكبر من 255 , ماذا سيحدث عندما يصل 255 , ببساطه سينقلب إلى صفر ويبدأ العد مجددا.

لحظة إنقلاب المؤقت من 255 لـ صفر تحدث مقاطعه إذا كنت مفعلها , ولها نفس صفات المقاطعات التي ذكرتها سابقا يترك المتحكم عمله ويذهب إلى العنوان الرابع من ذاكرة البرنامج.

المؤقت نفسه له إستعمال مزدوج , إما كمؤقت كما شرحت لك أعلاه يرتفع مع كل دورة ساعه , أو كعداد يرتفع مع تغيرات الطرف 3 نفسه منفذ أ 4 , من 1 إلى صفر أو من صفر لـ 1 .

ملخص مفيد: المؤقت له وضيفتان , كعداد أو مؤقت , أمر نختاره بالبرمجه.

الطرف 3 له وضيفتان إما كطرف د/خ عادي أو كطرف عداد . أمر نختاره بالبرمجه.

هناك طريقتان يمكن أن تختارها للإرتفاع العداد بواحد , بينما يتغير طرف المقاطعه من صفر لواحد منطقي , أو من واحد لصفر الأولى تدعى صعوديا والثانيه هبوطيا. . أمر نختاره بالبرمجه.

aladdin_2005
28-05-2006, 12:24 PM
بسم الله ماشاء الله
جزاكم الله كل خير وهذا عهدنا بك ......عطاء بلا حدود
أرجو من الله أن يجعل عملك وموقعك وجهدك في سجل حسناتك..................اللهم أمين

hasanAli
29-05-2006, 05:49 PM
http://www.electvillage.com/up06/up/ta3riyah.jpg

قلت بأن االمتحكم شبيه بحاسوب متكامل, وقلب أو عقل أي حاسوب هو المعالج, من بنتيوم وسيلرون و أ.م.د إلخ . متحكمنا بداخله معالج 8 بيت . ما معنى ذلك؟ ... معناه أنه يستطيع فقط قرائة أو كتابة سجلات بطول ثمانيه بيت ليعالجها " يطرحها يجمعها .... إلخ"
هذا المعالج , له سجل عمل خاص, إسمه "واو" . أي عمليه حسابيه , أو نقل معلومه من وإلى أي سجل , يجب أن تمر "بواو".....خذ مثالا : لدي سجل في الذاكره المؤقته إسمه طول وأريد أن أحمله بالرقم 80 . بلغة أسمبلر , أو بالأحرى في الـ 35 أمر التي يفهمها هذا المتحكم ,ليس هناك أمر " إجعل سجل طول 80 " .
والصحيح أن نستعمل أمران موجودان:
حرك رقم لواو 80
حرك واو لسجل طول

ذاكرة البرنامج :
1024 سجل بطول 14 بيت كل واحد.
هذه الذاكره تحتوي على البرنامج الذي "حرقته" , على مشروعك , أو بالأحرى على الأوامر التي كتبتها.
كل سجل في هذه الذاكره , عباره عن أمر مما كتبته.
طيب ... يا حسن إفترض أنني كتبت الأمر " حرك رقم لواو 80" وأنت تقول أن طول السجل 14 بيت فقط , أولا : كيف يساع هذا الأمر ؟ وثانيا كيف يفهم المعالج هذا الأمر.
لكي يفهم المعالج بأنك تأمره بتحميل الرقم 80 لواو .... يجب أن يكون السجل الموجود في الذاكره محملا بالرقم الثنائي التالي "11000001010000" صاحبنا المعالج يفهم أن هذا الرقم معناه " حرك رقم لواو 80" ... من أين أتيت بهذا يا حسن ؟ صديقي :آخر سته بيت أي " 110000" يفهمها المعالج بالأمر " حرك رقم لواو " هذه تشفيرة الأمر هذا , وأول 8 بيت " 1010000 0" تساوي الرقم العشري 80 .
لاحظ معي أن الرقم الثنائي كله " الـ 14 بيت " يساوي الرقم السادس عشري "3050".
كل أمر من ألـ 35 التي يفهمها المعالج له تشفيره . طيب , لو أردنا كتابة برنامج للمتحكم , وعلينا إجراء كل هذه التحليلات , سيكون عمل شاق, ومصيبه كبيره ,أليس كذلك؟ أوافقك الرأي لأني أعلم جوابك.
لحسن الحظ , هناك برامج تنصبها في حاسوبك كـ "الأم .بي.لاب" . تكتب بواسطتها برنامجك بلغة أسمبلر " حرك رقم لواو 80" وهو يحولها لسادس عشري , "ويحرقها كذلك" .
نعود لنتكلم عن ذاكرة البرنامج بحد ذاتها: قلت سابقا بأن الذاكرات مهما كان نوعها ليست اكثر من سجلات وعناوين , عدد سجلاتها 1024 معناه أن مشروعك يجب أن لا يتعدى 1024 أمر.
العناوين تبدأ بصفر .... إذا السجل الأول عنوانه صفر .... الثاني واحد ......وألـ 1024 عنوانه 1023 .
تلاحظ في الصوره أعلاه وبالتحديد في ذاكرة البرنامج : في الموضع صفر كتبت "مؤشر إعادة إنظباط" وفي الرابع مؤشر مقاطعه...سابقا شرحت لك معنى ذلك.

عداد البرنامج:

تكلمت معك عن العدادات عندما شرحت "طرف عداد" .
عداد البرنامج : سجل بطول 13 بيت . عندما تضع متحكمك في دائره وتصل التيار . هذا السجل تكون قيمته صفر . ويرتفع بواحد تلقائيا مع كل دورة ساعه "أنظر شرحي للهزاز" فيكون صفر ثم واحد وهكذا حتى 1023 . تتذكر أنني قلت بأن المعالج يطبق الأوامر بشكل تسلسلي؟.إليك السبب..... لأن عداد البرنامج هو من يحدد عنوان الأمر الذي سيطبقه المعالج.
عندما أبدأ بالتكلم معك عن "البرمجه" سنتوسع أكثر في شرح إستعمالات هذا العداد.

ذاكرة العوده:

طيب المعالج يطبق الأوامر بشكل تسلسلي إعتمادا على العنوان الذي يحتويه عداد البرنامج . كلام إتفقنا عليه, هل نحن مقيدون بهذا الترتيب ؟ يعني لو معالجنا يطبق الأمر 100 " عنوانه" ما في طريقه يرجع بها "يقفز" ليطبق الأمر العاشر"عنوانه" .....
نعم : أن يكون الأمر مئه نفسه " إستدعي 10 "
حدث ذلك وذهب إلى الموضع 10 وبدأ يطبق الأوامر مجددا بالتسلسل الموضع 11 فـ 12 وهكذا .نريده عندما يصل الموضع 20 أن يرجع ليطبق الأمر الذي يلي عملية الإستدعاء . أي إلى الموضع 101 ..... كيف أفعل ذلك ؟..... فقط بأن يكون السجل 20 يحتوي على الأمر "إرجع".
لاحظ لم نحدد إلى أين يرجع ...... المعالج يعرف ذلك تلقائيا.
سأعطيك مثل :
لنفترض أن مشروعي بسيط .... يمكنني أن أكتب خمسة أسطر ضمن برنامجي , كبرنامج مصغر أستدعيه متى أريد .

...........إستدعي................. خمسه
........... حرك رقم لواو ........ 80
.......... حرك واو لسجل........ طول
خمسه.... لا عمل
.......... لا عمل
.......... لا عمل
.......... إرجع

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

ذاكرة المعلومات:

هذه الذاكره من نوع " إإبروم" أي تحتفظ باالمعلومات لمدة أربعين عاما , بدون تيار, ويمكن قرائتها ومحيها مليون مره قبل أن تعطب, عملية القرائه أو الكتابه فيها , تحتاج لوقت أكثر من غيرها كذاكرة البرنامج"فلاش", أو الذاكره المؤقته "رام" . المهم أنها تحتوي على 64 سجل من صفر ولغاية 63 .
عملية الكتابه أو االقرائه لذاكرة المعلومات, لا تتم بشكل مباشر بل من خلال سجلات عمل خاصه موجوده داخل الذاكره المؤقته... سأشرحها في وقتها.
خذ مثلا على إستعمال هذه الذاكره : برنامجك يتطلب كلمة سر يدخلها المستعمل بواسطة لوحة مفاتيح,كلمة السر الصحيحه يجب تحفظ في ذاكرة المعلومات . إذا كانت صحيحه المتحكم سيفعل كذا وكذا ..... وغلط كذا وكذا ... وستسمح له بتغيرها .. معرفة قرائة وكتابة ذاكرة المعلومات مهم جدا في هذه الحاله.

مؤقت حراسه:

مؤقت حراسه عباره عن دائره مكونه من مقاومه ومكثف . موجوده داخل المتحكم , مبدئيا تستطيع أن تعطينا توقيت 18 ملي ثانيه . مؤقت الحراسه مستقل لا علاقه له بالهزاز وليس مربوط به . بالأحرى لا علاقه له بدورات الساعه .ولا توقيتاتها .

الذاكره المؤقته :

من نوع "رام" أي عندما نقطع التيار عنها نخسر المعلومات ...مكونه من صفحتان ذاكره .... صفحه صفر و صفحه واحد . أول 12 سجل من كلا الصفحتان " عباره عن سجلات عمل خاص" سجلات يستعملها المتحكم في عمله...مثلا سجل المؤقت االذي شرحته في طرف مقاطعه هو أحدها .
هناك 68 سجل هدف عام من الموضع 12 ولغايه 79 . أن هذه السجلات خاصه بك كمبرمج .... لك الحرية بأن تسميها كما تشاء , مثلا طول أو عرض كما ذكرت سابقا ..... إذا عندك 68 سجل تحت تصرفك المطلق. هذا في الصفحه صفر .
في الصفحه واحد: أول 12 كذلك سجلات هدف عام .
هناك 68 سجل هدف عام , عباره عن صوره طبق الأصل لسجلات الأهداف العامه الموجوده في الصفحه صفر ...... نتوقف قليلا , لتوضيح هذه النقطه .... لنقل أنه لديك سجل إسمه طول عنوانه 12في الصفحه صفر ..... فأنت تقول للمعالج إدخل الصفحه صفر .... إقرأ طول ..... أما إذا طلبت من المعالج دخول الصفحه واحد ليقوم بمهمة ما .... ثم إحتجت لقرائة سجل طول ..... فلست بحاجه للذهاب إلى الصفحه الأولى ثانية ..... فالمتحكم يضع صوره طبق الأصل للسجل ويسمها طول في الموضع 140 كل ما عليك أن تقول إقرأ طول مثلا ...رائع ..... عدا ذلك أي تغيير يجري لهذا السجل .... سواء كان في الصفحه الأولى أو الثانيه , ينعكس على مقابله , فكل واحد منهم مرآة للآخر

هذا كل ما بداخل المتحكم . قبل الشرح المفصل لسجلات العمل الخاصه . سنتكلم عن لغة أسمبلر , والأوامر .

mohamed21
30-05-2006, 08:49 AM
السلام عليكم ورحمة الله وبركاته
ما شاء تبارك الله
الله الله الله يبارك فيك وعليك
يااااااااااااااااااا \ استاذ
ونرجــــــــــــــــــــــــــــــــــــــــو الاستمرار بالجمال والروعه التى انت بهــــــــــــــــا
ياااااااا \ استاذ
وعليكم سلام الله يا \ اساتذه

walidlahham
30-05-2006, 02:21 PM
عمل رائع جدا أخ حسن وشرح سلس.
أقل مايمكن أن أقوله في هذا الصدد هوكلمة شكر من الأعماق وحقيقة أسعدني عملك هذا جدا وإلى الأمام.
وليد لحام

hasanAli
30-05-2006, 06:05 PM
لغة أسمبلر , وهذا الإسم المرعب , ليست أكثر 35 أمر , وبعض الترتيبات , من مستوى طفل بصف الثالث إبتدائي. سأشرحها ,وإحكم بنفسك . سأبدأ بالترتيبات أولا.
قاعدتي تقول : أن أي أمر لا تتجاوز تركيبته أربعة حقول: وهم بالترتيب" مؤشر , أمر , هدف أو رقم , إحفظ بـ ".

http://www.electvillage.com/files/up2/asm2.GIF

لاحظ معي السطر صفر , مكون فقط من حقلان فقط , أمر وهدف . الأمر "إذهب إلى " والهدف ...إلى أين نريد أن يذهب المعالج وهو "بدايه" ....
"بدايه" بحد ذاتها هي مؤشر السطر الرابع .
طيب ما معنى مؤشر ؟ ..... هو إسم أو داله , نضعها أول السطر للإشاره إليه , ونستعملها في باقي البرنامج للقفز إلى السطر حيث هو....
المؤشر يمكن أن يكون إسم لمصغر كما شرحت سابقا , إسم لجدول نضعه في برنامجنا ..
الحقل الثاني : "أمر " هو الأمر نفسه .
الحقل الثالث : هدف أو رقم : أي من الإثنين هذا يعتمد على طبيعة الأمر نفسه , لاحظ هذا الحقل في السطر صفر هناك هدف وفي السطر 4 هناك رقم .
الحقل الرابع : "إحفظ بـ " هناك أوامر يمكنك ان تضع جوابها في مكانين مختلفين , في هذا الحقل تختار أحدهما , مثلا الأمر في السطر 5 ..... يجمع ما يحتويه سجل واو مع ما يحتويه سجل الحالات ..... هذا الأمر يتيح لك أن تضع الجواب إما في "واو" أو " بالسجل " في هذا أختير سجل ....
هناك أكثر من أمر له نفس التركيبه أي " أمر فسجل وإحفظ بـ " عند شرحي للأوامر سأشير للتركيبه بإختصار [ أمر س, بـ] بالطبع أصبحت تعلم ما أقصد نعم " إن جواب هذا الأمر يمكن وضعه في مكانان مختلفين , ويواسطة "إحفظ بـ " نختار أحدهما"
الحقلان الآخران " سادس عشري و ثنائي "لا علاقه لهم مباشره بلغة أسمبلي . بل ترجمه تلقائيه يجريها البرنامج للأمر.

الأوامر الخمسه والثلاثين : أربعة أنواع: 1- متعلق بسجلات . 2- متعلق ببيت. 3 – متعلق بأرقام . 4- برمجي .

المتعلقه بسجلات :

http://www.electvillage.com/files/up2/bisigilat.GIF

متحكمنا يفهم 15 أمر متعلقه بسجلات : وهي أمامك أعلاه:

1- إجمع واو وسجل .................... تركيبه[ أمر س, بـ]

تعلم أن السجل ليس أكثر من رقم ثنائي ... بما قيمته عشريا من صفر لـ 255.
هذا الأمر ببساطه " يجمع قيمة واو مع قيمة سجل .

2 – منطقية "و" بين واو وسجل ........... تركيبه[ أمر س, بـ]

عمليات الجمع والطرح عمليات حسابيه , تكيفنا الذهني معها سريع والحمدلله.
منطقية "و" ليست أكثر من عمليه حسابيه لا تجمع ولا تطرح .بل تعطي الجواب حسب مقارنات لكل "بيت" من التركيبه الثنائيه لرقمين مثلا .

10000101 واو
10000001 سجل
10000001 جواب
يقارن أول بيت من "واو" مع أول بيت من "سجل" , فإذا كان كلاهما "واحد" فالجواب "واحد" ...ما دون ذلك الجواب "صفر" ......هذا كل ما في الأمر.... وهذه منطقية "و"......ثم يقارن الثاني مع الثاني ثم الثالث مع الثالث وهكذا حتى السابع مع السابع ...وعندها نحصل على الجواب النهائي.
في مثلنا أعلاه : واو = 133 عشري وسجل= 129 عشري والجواب=129 عشري.

3 – إمحي سجل .................................. تركيبه[ أمر س]

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

4- نقص من سجل............................... تركيبه[ أمر س, بـ]
ينقص واحد من قيمة سجل ...... فإذا كانت قيمته 10 ستصبح 9 , ومئه يصبح 99 , لعبة أطفال ,أليس كذلك؟...
ولكن فيه سر .... السر في التركيبه...[ أمر, سجل ,إحفظ بـ] .....ومعناه .
هذا الأمر يتيح لك أن تضع الجواب إما في "واو" أو " بالسجل " نفسه.مثلا:عندي سجل "طول" وقيمته عشره
نقص من سجل......... طول.......... سجل بعد تنفيذ الأمر , ستصبح قيمة "طول" تسعه.
نقص من سجل......... طول ....... واو بعد تنفيذ الأمر , ستصبح قيمة "واو" تسعه. ويبقى السجل على قيمته الأساسيه ... أي عشره .. فهمت سره الآن؟ "فهو يستطيع أن ينقص دون أن ينقص.... ويبدوا معقدا دون أن يعقد" .
كيفني معك؟.... متفقين....

hozen
30-05-2006, 09:30 PM
الله اكبر عليك
فوق الممتاز
بس يا ريت ان امكن :تتبع الشرح العربى الجميل بالرمز الاجنبى للربط بين اللغتين
عربى للفهم واجنبى للتعلمل مع البرمجه
وجزاك الله كل خيرhttp://www.qariya.com/vb/images/icons/natur1.gif

hasanAli
30-05-2006, 11:10 PM
hozen
تقول "عربى للفهم واجنبى للتعلمل مع البرمجه"......بعد الشرح سأهديك ما يغنيك , عن الأجني للبرمجه.

alsheit
31-05-2006, 01:06 AM
شكرا جزيلا اخ حسن على هده المعلومات القيمة انا شخصيا استفدت كثيرا لاني اهنم كثيرا بتطوير واختراع الاجهزة ان صح التعبير مرة تانية اشكرك كثيرا وبارك الله فيك

hasanAli
01-06-2006, 06:57 PM
5 – نقص من سجل واقفز إذا صفر ............. تركيبه[ أمر س, بـ]
هذا الأمر له علاقه مباشره بالأمران اللذان يلياه . ببساطه هذا الأمر فيه شرط , أولا ينقص واحد من قيمة سجل ,فإذا كان الجواب غير صفر , سيطبق بعدها , الأمر الذي يليه مباشرة , أما إذا كان الجواب صفر , فسيقفز الذي يليه , ليطبق ما بعده . مثلا:
نقص من سجل واقفز إذا صفر ............... الطول ..............سجل
إجمع واو وسجل .............................العرض .............سجل
لا عمل
أولا ينقص واحد من سجل الطول , إذا كان الجواب صفر , سيقفز عن الأمر الذي يليه ليطبق ما بعده , أي "لا عمل"
الحاله الثانيه, طبقنا الأمر , وكان الجواب غير صفر , المعالج سيطبق الأمر الذي يليه مباشرة , أي " إجمع واو وسجل".

6- زد على سجل ............. تركيبه[ أمر س, بـ]
يزيد واحد على قيمة سجل ....... إذا كان 9 يصبح 10
كذلك له سر , أصبحت تعرفه , "يزيد دون أن يزيد" ....كيف؟
نعم عندما نحفظ الجواب بواو وليس بالسجل.... نعم واو تصبح 10 أما السجل يبقى 9 .... كما كان.

7- زد على سجل وإقفز إذا صفر . .............. تركيبه[ أمر س, بـ]


للوهلة الأولى يبدوا هذا الأمر غير عقلاني , كيف يمكن أن نزيد واحد على سجل ونصل لصفر؟ ..... في عالم المتحكمات هذا ممكن , إذا كانت قيمة السجل 255 عشري أي "11111111" ثنائي , وبما أن طول السجل 8 بيت , ولا نستطيع كتابة رقم أكبر...... بعد الـ 255 يأتي الصفر.

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

8- منطقية "أو" بين واو وسجل .................. تركيبه[ أمر س, بـ]
عمليه حسابيه لا تجمع ولا تطرح , بل تقارن كل "بيت " من "واو"مع مقابله "سجل" . فإذا كان كلاهما أو أي منهما "واحد" الجواب "واحد" , وغير ذلك صفر . "عيني عليك ... لعب أولاد صغار". مثلا:

10000101 واو
10000001 سجل
10000101 جواب
يقارن أول بيت من "واو" مع أول بيت من "سجل" , فإذا كان كلاهما "واحد" أو أي منهما فالجواب "واحد" ...ما دون ذلك الجواب "صفر" ......هذا كل ما في الأمر.... وهذه منطقية "أو"......ثم يقارن الثاني مع الثاني ثم الثالث مع الثالث وهكذا حتى الثامن مع الثامن ...وعندها نحصل على الجواب النهائي.
في مثلنا أعلاه : واو = 133 عشري وسجل= 129 عشري والجواب=133 عشري.
حتى الآن درسنا منطقيتان:
منطقية "و" : إذا كان كلاهما "واحد" فالجواب "واحد".
منطقية " أو" : إذا كان كلاهما أو أي منهما "واحد" فالجواب "واحد".

9- حرك سجل ................ تركيبه[ أمر س, بـ]
هذا الامر يحرك قيمة سجل إلى "واو" .... مثلا
حرك سجل......طول......واو
كذلك هذا الأمر يحرك قيمة السجل إلى السجل نفسه. مثلا
حرك سجل......طول.......سجل
ربما تتسائل الآن ....ما فائدة أن نحرك السجل لنفسه, الفائده أن هناك علم أو بيت داخل السجلات الخاصه ,تتغير قيمته بهذا الأمر .سأشرح ذلك بالبرمجه.

10- حرك واو لسجل ................. تركيبه[ أمر س]

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

11- إبرم سجل لليسار ..................... تركيبه[ أمر س, بـ]
داخل المتحكم , في الذاكره المؤقته,هناك سجل من سجلات العمل الخاص يسمى "الحالات" أول "بيت" منه ,يعني البيت صفر يدعى "باليد"..... هذا البيت يستعمل في هذا الأمر... وبالطريقه التاليه.
مثلا : إفترض معي أن قيمة "باليد" واحد منطقي..... وعندي سجل إسمه "طول" وقيمته 15 عشري:
"00001111" طول
وأريد أن أطبق عليه الأمر " إبرم سجل لليسار............. طول............ سجل"
ما أريده برمه لليسار ووضع الناتج بنفس السجل "طول"
عند تطبيق الأمر ماذا سيحدث؟ .....سينتقل البيت رقم سبعه"آخر واحد" من سجل "طول" إلى البيت "باليد".
البيت رقم سبعه من سجل "طول" هو آخر بيت وقيمته " صفر منطقي".
بعدها ستحصل إزاحه إلى اليسار لكل بيتات سجل "طول" ليصبح هكذا :
"- 0001111"
ثم ما كان يحتويه بيت "باليد" أي "1" سيذهب ألى البيت الأول"بيت صفر" من سجل "طول" ليصبح:
"00011111"
وبذلك يكون قد إكتمل الأمر وحدثت برمه لليسار.

12- إبرم سجل لليمين ..................... تركيبه[ أمر س, بـ]

كسابقه ويختلف الإتجاه :
مثلا : إفترض معي أن قيمة "باليد" واحد منطقي..... وعندي سجل إسمه "طول" وقيمته 15 عشري:
"00001111" طول
وأريد أن أطبق عليه الأمر " إبرم سجل لليمين............. طول............ سجل"
ما أريده برمه لليمين ووضع الناتج بنفس السجل "طول"
عند تطبيق الأمر ماذا سيحدث؟ .....سينتقل البيت رقم صفر"أول واحد" من سجل "طول" إلى البيت "باليد".
البيت رقم صفر من سجل "طول" هو أول بيت وقيمته " واحد منطقي".
بعدها ستحصل إزاحه إلى اليمين لكل بيتات سجل "طول" ليصبح هكذا :
"0000111-"
ثم ما كان يحتويه بيت "باليد" أي "1" سيذهب ألى البيت الأخير"بيت سبعه" من سجل "طول" ليصبح:
"10000111"
وبذلك يكون قد إكتمل الأمر وحدثت برمه لليمين.

13- إطرح واو من سجل .................... تركيبه[ أمر س, بـ]

يطرح قيمة "واو" من قيمة "سجل": مثلا:
"إطرح واو من سجل............. طول............ سجل" تضع الناتج بالسجل نفسه.
"إطرح واو من سجل............. طول............ واو" تضع الناتج بـ "واو"

14- بدل نيبلات سجل .................... تركيبه[ أمر س, بـ]

قلت سابقا بأن النيبل عباره عن أربعه "بيت" ....وسجلاتنا بطول ثمانيه "بيت" معناها عندنا 2 "نيبل" بكل سجل ...هذا الأمر يبدل ما يحتويه هذا بذاك.
أول أربعه "بيت" تصبح قيمتها كقيمة آخر أربعه "بيت" . و
آخر أربعه "بيت" تصبح قيمتها كقيمة أول أربعه "بيت". مثلا
سجل طول قبل تطبيق الأمر:
"11110000 "
بعد تطبيق الأمر:
"00001111 "

15- منطقية "أو خاصه" بين واو وسجل ..................... تركيبه[ أمر س, بـ]

عمليه حسابيه لا تجمع ولا تطرح , بل تقارن كل "بيت " من "واو"مع مقابله من "سجل" . فإذا كان كلاهما متساويان الجواب "صفر" , وغير ذلك واحد . مثلا:

10000101 واو
10000001 سجل
00000100 جواب
يقارن أول بيت من "واو" مع أول بيت من "سجل" , فإذا كان كلاهما متساويان الجواب "صفر" , وغير ذلك واحد .. هذا كل ما في الأمر.... وهذه منطقية "أوالخاصه "......ثم يقارن الثاني مع الثاني ثم الثالث مع الثالث وهكذا حتى الثامن مع الثامن ...وعندها نحصل على الجواب النهائي.
في مثلنا أعلاه : واو = 133 عشري وسجل= 129 عشري والجواب=4 عشري.
حتى الآن درسنا ثلاث منطقيات, وهذه كل المنطقيات لمتحكمنا:
منطقية "و" : إذا كان كلاهما "واحد" فالجواب "واحد".
منطقية " أو" : إذا كان كلاهما أو أي منهما "واحد" فالجواب "واحد".
منطقية "أو خاصه" : إذا كان كلاهما متساويان الجواب "صفر" , وغير ذلك واحد.
على هامش هذا الموضوع , برأيك هذا الأمر[ منطقية "أو خاصه"] بما يمكن أن يفيدنا؟....نعم , لنقارن رقمين ونعرف إذا كانا متساويان أم لا , كيف ؟ متساويان الجواب "صفر" .... مثلا نستعمله في مشروع لنطلب من المستخدم إدخال رقم سري من خلال لوحة تحكم , نطبق [ منطقية "أو خاصه"] بين هذا الرقم وآخر وضعناه مسبقا في سجل بذاكرة المعلومات. فإذا كان الجواب صفر .. ندع المستخدم يفعل مايشاء وغير ذلك نطرده وندع كلاب الجيران تلاحقه..... ها ...ها...ها.

hasanAli
03-06-2006, 12:34 AM
أوامر متعلقه "ببيت"

هناك أربعة أوامر متعلقه ببيت يفهمها متحكمنا:عملها يتميز بفحص أو تغيير , قيمة بيت معين في سجل ما.
إتفقت معك سابقا , بأن طول سجلاتنا 8 "بيت" وبأن الأول هو بيت صفر والثاني هو بيت واحد وهكذا حتى الثامن هو بيت سبعه.

1- ضع صفر ببيت ......................تركيبه[أمر س,بيت]

ماذا تعني هذه التركيبه؟.... أن نكتب الامر ونحدد السجل ونحدد البيت.
هذا الأمر [ضع صفر ببيت] يضع صفر منطقي في بيت معين من سجل ما , مثلا :
ضع صفر ببيت ......... الطول........خمسه
إفترض قيمة "الطول" قبل تنفيذ الأمر
"11111111"
فبعد تننفيذه ستصبح
"11011111"

2- ضع واحد ببيت ......................تركيبه[أمر س,بيت]

هذا الأمر كسابقه, الفرق بدل "الصفر منطقي" يضع " واحد منطقي" في بيت معين من سجل. مثلا:
ضع واحد ببيت ......... الطول........صفرإفترض قيمة "الطول" قبل تنفيذ الأمر
"00000000"
فبعد تننفيذه ستصبح
"00000001"

3- إفحص بيت إقفز إذا صفر ......................تركيبه[أمر س,بيت]

يفحص بيت معين من السجل , فهناك حالتان لا ثالث لهما , إما أن يكون صفر أو واحد:
إذا كان "واحد" سيطبق المعالج الأمر الذي يليه مباشرة . وصفر سيقفزه ليطبق ما بعده, مثلا:
إفحص بيت إقفز إذا صفر..............الطول.............ثلاثه
إجمع واو وسجل..........................الطول............سجل
لا عمل
إذا كان البيت "ثلاثه" من سجل الطول "واحد منطقي" سيجمع قيمة "واو" مع قيمة "الطول" ويضع الناتج في سجل الطول.
إذا كان البيت "ثلاثه" من سجل الطول "صفر منطقي" سيقفز أمر الجمع وسيطبق الأمر [لا عمل]

4- إفحص بيت إقفز إذا واحد......................تركيبه[أمر س,بيت]

كسابقه بالظبط , الفرق , أنه سيقفز إذا كانت قيمة البيت المفحوص " واحد منطقي" ولن يقفز إذا كانت "صفر"



أوامر متعلقه "برقم"

سأكرر ما قلته سابقا , سجلاتنا بطول 8 بيت , فأعلى رقم يمكن أن نتعامل معه هو الـ 255 عشري , فالمقصود برقم بكل هذه الأوامر , أي رقم من صفر ولغاية 255 .

1 – إجمع واو ورقم ....................... تركيبه[أمر رقم]
يجمع قيمة "واو" مع قيمة رقم نحدده من " 0 إلى 255" ويضع الجواب في "واو": مثلا
إجمع واو ورقم ...............58
2- إطرح واو من رقم .................... تركيبه[أمر رقم]
يطرح قيمة واو من رقم ويضع الجواب بواو مثلا
واو=4
إطرح واو من رقم............11
بعد تنفيذ الأمر واو تصبح "7"............. 11 -4=7
3- إمحي واو............................ تركيبه[أمر]
بعد تنفيذه تصبح قيمة "واو" صفر.
4- منطقية "و" بين واو ورقم ................. تركيبه[أمر رقم]
يطبق [منطقية "و"] بين واو ورقم , ويضع الناتج في واو. مثلا:
منطقية "و" بين واو ورقم..................17
أذكرك[ بمنطقية "و" ] : إذا كان كلاهما "واحد" فالجواب "واحد".
5 - منطقية "أو" بين واو ورقم ................. تركيبه[أمر رقم]
يطبق [منطقية "أو"] بين واو ورقم , ويضع الناتج في واو. مثلا:
منطقية "و" بين واو ورقم..................57
أذكرك[ بمنطقية "أو" ] : إذا كان كلاهما أو أي منهما "واحد" فالجواب "واحد".
6- منطقية "أو خاصه" بين واو ورقم ................. تركيبه[أمر رقم]
يطبق [منطقية "أو خاصه"] بين واو ورقم , ويضع الناتج في واو. مثلا:
منطقية "أو خاصه" بين واو ورقم..................99
أذكرك[ بمنطقية "أو خاصه" ] : إذا كان كلاهما متساويان الجواب "صفر" , وغير ذلك واحد.
7- حرك رقم لواو.................... تركيبه[أمر رقم]
يحمل واو برقم , فتصبح قيمتها كقيمته , مثلا:
حرك رقم لواو....................25
تصبح قيمة "واو" 25 , ليس مهما إذا كانت تحتوي قبل تنفيذ الأمر على 60 أو 70 ستصبح 25 .
8- إرجع مع الرقم محملا بواو................ تركيبه[أمر رقم]
يحمل واو برقم , فتصبح قيمتها كقيمته, ثم يرجع ليطبق الأمر الذي يلي أمر الإستدعاء .....هذا الأمر له علاقه فقط بالجداول ....في برنامجك يمكن أن تضع جداول فيها الكثير من الأرقام , وهذا الأمر يرجع محملا "واو" بأحدها .... الجداول سأخصص لها درس خاص...."بالبرمجه".
مثال:
إرجع مع الرقم محملا بواو...............20

ahmedabdo
03-06-2006, 12:23 PM
مهما قولنا من كلمات شكر مش هنقدر نرد للاستاذ حسن الجميل
بس انا اقترح ان بعد اذنه ان نؤجل كلمات الشكر حتي ينتهي الاستاذ حسن من تكمله كامل الشرح
لان ممكن علي اخر درس يوصل عدد الصفحات ل 100 نصفها كلمات شكر مع العلم ان الموضوع يستاااهل اكتر

FREE4AYMAN
03-06-2006, 07:45 PM
بسم الله الرحمن الرحيم

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

hasanAli
05-06-2006, 04:17 AM
أوامر "برمجيه"- وشيئ من "البرمجه"
1- إمحي مؤقت الحراسه................. تركيبه[أمر]
2- نام .................................. تركيبه[أمر]
قلت: مؤقت حراسه عباره عن دائره مكونه من مقاومه ومكثف . موجوده داخل المتحكم , مبدئيا تستطيع أن تعطينا توقيت 18 ملي ثانيه . مؤقت الحراسه مستقل لا علاقه له بالهزاز وليس مربوط به . بالأحرى لا علاقه له بدورات الساعه .ولا توقيتاتها.
الآن سأشرح لك ما فائدته وكيف يُفعَّل: مؤقت الحراسه عندما تنتهي فترته "18 ملي ثانيه " يحدث عملية "إعادة إنظباط" بالظبط وكأنك ضغطت على مفتاح "طرف إعادة الإنظباط"... كما في الكومبيوتر, في حالات , يكون حاسوبك شغال , وأنت في ويندوس وكل شيء على ما يرام , فجأه تتجمد الفاره , ولا يمكنك بعدها عمل شيء , "يروكب". مفتاح "طرف إعادة الإنظباط" , ينهي البرنامج ثم يعود لتطبيقه من الأول مجددا.
في المتحكمات : سيتوقف المعالج عن تطبيق الأمر حيث هو ويقفز إلى العنوان "صفر" ليطبق أول أمر في برنامجك.
في حالة الحاسوب , أنت رأيت بعينك , أن "الفأره" تجمدت , وحاسوبك "روكب"....لسبب ما "تشويش..إلخ" ...في المتحكم , يمكن أن يكون مشروعك , من ضمن دائره لقياس سرعة الرياح في قمة جبل .... أو ببساطه ....مشروعك لا يحتاج لعناصر خارجيه مرئيه كالشاشه , لتعرف إذا "روكب" أم لا .
في كلا الحالتان, مؤقت الحراسه , هو الصديق الوفي , الذي سيغنيك , عن وجود إنسان قرب مشروعك يراقب إذا "روكب" أو لا , وعن بصاره في الحاله الثانيه.
بإختصار شديد "مؤقت الحراسه يمكن إستعماله كـ " معيد للإنظباط" تلقائي "أوتوماتيكي". كيف؟ سأشرح لك:
هناك يا صديقي , سجل في ذاكرة البرنامج , يدعى "كلمة الإعدادات" مكون من 14 بيت كباقي سجلات ذاكرة البرنامج , لكن بعيدا عن 1024 أمر برنامجنا , تحديدا في العنوان 2007 سادس عشري. "كلمة الإعدادات" سيكون لها شرح خاص, ما أريد منك أن تعرفه اللآن , أنها تكتب , لحظة تسجيل البرنامج"حرقه" وأن البيت الثالث منها أي " بيت , 2 " , إذا وضعناه "واحد منطقي " نكون قد فعلنا مؤقت الحراسه , وصفر منطقي , وكأننا نقول " لا أريد إستعمال مؤقت الحرسه في برنامجي" أي "أبطله".
إذا إتخاذ القرار بتفعيل أو عدم تفعيل مؤقت الحراسه , يتم لحظة "حرق البرنامج" , فإذا فعلناه لا توجد طريقه لإيقافه.
كيف يمكن إستعماله كـ " معيد للإنظباط" تلقائي ؟
أولا : أن نكون قد فعَلناه.
ثانيا : أن ندخل في برنامجنا , مستحسن في الأوامر الأولى : الأمر " إمحي مؤقت الحراسه"
إمحي مؤقت الحراسه
هذا كل شيء.
الأمر " إمحي مؤقت الحراسه" يعيد مؤقت الحراسه إلى نقطة البدايه. فإذا كان قد وصل لـ 6 أو 7 ميلي ثانيه . سيعيده للصفر.
لأصف لك ما سيحصل في حال " روكب" المتحكم , مهما كان برنامجك طويلا , فلن يتعدى الألف وأربعه وعشرين أمر ..... متفقون على ذلك ..... إذا كانت دورة ساعتك "ميكرو ثانيه" يعني تستعمل كريستال "4 ميغا هيرتس" .... لكي يطبق المعالج كل أوامر برنامجك بحاجه لـ " 1024 " ميكرو ثانيه أي مايقارب ملي ثانيه واحده .
صاحبنا مؤقت الحراسه بحاجه لـ 18 ميلي ثانيه , ليحدث إعادة إنظباط , وبرنامجك لا يتعدى الميلي ثانيه , ويتضمن الأمر الذي يرجع مؤقت الحراسه إلى نقطة البدايه , معناه لن يصل للـ 18 ميلي ثانيه . المطلوبه , ولن يحدث إعادة إنظباط طالما البرنامج شغال , وكل شيء على ما يرام .
إفترض "روكب" برنامجك , مؤقت الحراسه مستقل وسيبقى شغالا , وبما أن الأمر الذي يعيده للصفر لن يقرأ , فبعد مرور 18 ملي ثانيه من "روكبته" ستحصل عملية " إعادة إنظباط تلقائيه" , بفضل مؤقت الحراسه.
ما رأيك .... أسرع من إرسال صديق لك لقمة الجبل , ليعيد إنظباطه.
هذه هي الوظيفه الأولى لمؤقت الحراسه ....... الوظيفه الثانيه يستيقض المتحكم وسأشرحه مع الأمر "نام".
األأمر" نام "

2- نام .................................. تركيبه[أمر]
نام
الأمر " نام" يدخل المتحكم في حالة " أقل إستهلاك للتيار" .... سيتوقف عمل الهزاز , ومعه دورات الساعه, وبطبيعة الحال المعالج عن تطبيق أي أمر. صاحبنا نام ....
ما يفعله الأمر"نام" قبل الدخول في حالة النوم.
يزيد على عنوان الأمر واحد ويضعه في ذاكرة العوده, إذا الأمر الذي سيطبق بعد الإستيقاظ , هو الأمر الذي يلي "نام" مباشرة.
كذلك سيصفر مؤقت الحراسه.
طيب , إذا كان مؤقت الحراسه مفعلا, وبعد مرور فترته "18 " ميلي ثانيه , سيستيقظ المتحكم , ليكمل تطبيق البرنامج إبتداءا من الأمر الذي يلي أمر"نام" . لاحظ هنا لا توجد حالة إعادة إنظباط , بل متابعه للبرنامج.
هل مؤقت الحراسه هو الوحيد الذي يمكنه إستيقاظ المعالج من النوم ؟ ...لا ..... بل عدد من المقاطعات التي سأشرحها لاحقا.... المهم أن المقاطعات تذهب بالمعالج إلى مؤشر مقاطعه إلى العنوان أربعه, هنا في حالة "النوم" ... المقاطعات تستيقظه فيطبق الأمر الذي يلي أمر "نام" وبعدها يذهب إلى مؤشر مقاطعه.
من ما سبق , حسن علي ينصحك , أو خذها كقاعده ذهبيه, إذا أردت إستعمال الأمر نام في برنامجك , أسبقه بالأمر , "إمحي مؤقت الحراسه" , وألحقه بالأمر "لا عمل". على الشكل التالي:
إمحي مؤقت الحراسه
نام
لا عمل
في أحد الأيام , كنت أتحدث مع صديق , حول الأمر "نام" وأن إستهلاك الطاقه فيه قليل , وممكن أن تدوم البطاريه أكثر, فقال , كلهن 18 ميلي ثانيه , ما ستوفره ؟, فبعد أن إستطعت الإمتلاك من الضحك . حسبتها لبرنامجه , فهو يعمل بكافة طاقته 59 ميكرو ثانيه وينام 18 ميلي ثانيه,.......الـ 59 ميكرو تساوي 0.059 ملي, الآن هذا التحول يحدث في الدقيقه " 60000÷ 18.059=3322" مره . منهم بطاقه كامله: 3322×0.059= تقريبا 160 ميلي ثانيه في الدقيقه
في الساعه : 60×160 ميلي= 9600 ملي أي 9.6 ثانيه .
في اليوم : 24×9.6ثانيه= 403 ثواني أي ما يقارب الست دقائق وشيء دعها سبعه.
ما رأيك في اليوم يعمل بكامل طاقته 7 دقائق , والباقي بحالة "إستهلاك منخفظ " هل سيطول عمر البطاريه , بالتأكيد نعم .

3- لا عمل .......................... تركيبه[أمر]
هذا الأمر بواسطته المعالج لا يفعل شيء , لكن مجرد قرائته , تستهلك دورة ساعه واحده.

abouomar
09-06-2006, 10:58 AM
السلام عليكم
اتقدم إليك بالشكر سلفا على ما قدمته وما ستقدمه من معارف وهو ما نحن في أمس الحاجة إليه فما طرحته ييسر السبل إلى المعرفة وإثبات أن لغتنا غير قاصرة على إبلاغ رسالة العلم
نوّار الله طرقيك وسدد خطاك وأثابك خيرا أجدد لك الشكر وأرجو منك المزيد
أخوكم أبو عمر

عبدالله طلعت
12-06-2006, 03:21 AM
ان الكلمات تعجز عن شكرك لما قدمته لنا من علمك و ادعو الله ان يطول لنا فى عمرك و ان يغفر لك ذنبك.

بس انا شويه متلخبط يريت تفسرلى عده اسئله.....لانى مش بقرا هذا الكلام للمعرفه النظريه و لاكنى انشاء الله سوف اقوم بعمل بعض لمشاريع لاكتسب لخبره العمليه

كيف يفهم المتحكم هذه الاوامر عن طريق المنافذ و لاكن بشكل عملى....فمثلا اذا اردت ان ادخل له امرا كيف اضع له التشفيره الثنائيه لهذا الامر على المنافذ و كيف هو يسجلها وكيف هو يفهم انها اشاره داخله له. و كيف استدعيها...اى على اى منافذ استدعيها و ما اوامر الاستدعاء.....و انت تقول ان السجل طوله 14 بيت...كيف ادخلها اذا كان عدد اطراف المنافذ 13 طرف....و بعضها يستخدم للاخراج .......الخلاصه
كيف اتعامل معه بال machine code و ليس باستخدام compailer و يريت الشرح بطريقه عمليه

hasanAli
12-06-2006, 03:50 PM
الأخ عبدالله طلعت:
سلام الله عليكم وبعد .
ليس هناك ما يلخبط , ما هو بطول 14 بيت هو سجلات الأوامر , أي سجلات ذاكره البرنامج, هذه الأوامر تكتب لحظة حرق البرنامج , ومستحيل كتابتها بدون برنامج وسيط يحول مثلا من أسمبلر عربي "الأوامر كما أعلمك إياها" إلى ثنائي.
برنامج بهذا الشكل لا وجود له في العالم العربي . أخوك حسن علي يعمل الآن على جبهتان , الأولى إبداع هذا البرنامج وأن يكون مستواه بمستوى تقديري وإحترامي لكم , أدامكم الله.
الجبهه الثانيه هي تكملة الشرح , وهنا أجاوبك على سؤالك الثاني , أنا لم أتطرق بعد لموضوع برمجة وإعدادات المنافذ , فقليلا من الصبر , وتابع الموضوع .....ولكن كمقدمه ما يمكن إرساله للمنافذ قيمة سجلات الذاكره المؤقته أو الدائمه وهذه بطول 8 بيت. أو أرقام ثنائيه بطول 8 بيت.

عبدالله طلعت
12-06-2006, 08:19 PM
يريت متتاخرش علينا فى الشرح .....لان انا كنت متصور ان الmicrocontroller هذا من اصعب الاشياء لكنى بعد ما قرات شرحك عرفت انه من اسهل الاشياء...و كمل و احنا معاك

hasanAli
12-06-2006, 09:46 PM
آخر أربع أوامر متعلقه "ببرمجه" وبعد شرحها , بإذن الله , نكون قد إنتهينا من شرح كل الأوامر المتعلقه بمتحكمنا.
الأربعة أوامر : شبه مترابطه , لذلك سأشرحها سويا وهي:

4- إذهب إلى................... تركيبه[أمر مؤشر]
5- إستدعي.................... تركيبه[أمر مؤشر]
6- إرجع....................... تركيبه[أمر]
7- إرجع من مقاطعه........... تركيبه[أمر]
تكلمت معك سابقا عن المؤشرات ,وقلت أنها تكتب في أول عامود من سطر في البرنامج , وهو دالته حيث يمكن الرجوع من أي سطر آخر في البرنامج , إلى السطر حيث المؤشر, أو القفز عن عدة أسطر لتطبيق الأمر حيث المؤشر.... لأوضح لك بمثل:
كلمتان قبل المثل: لاحظ الصوره أدناه , ما تراه , هو جزء من برنامج , كتبته بلغة فيوجال2005 , وإسمه "فلوجة المتحكم" ..... الإسم يعبر عن محبتي لأهل الفلوجه التي فاقت محبتي لنفسي....ثانيا لأنه أول خطوه للتحرر من لغه أجنبيه , في برمجة هذا المتحكم بالذات, كثير من الأصدقاء ,تسائلوا .... أخي أنت تشرح لنا بالعربي.... ولا تطرق لكلمه أجنبيه واحده .... "والأم . بي. لاب" المترجم لا يفهم إلا أجنبي, فأين سنصرف عملتك هذه , الأخت "حُسن" هنا في مداخلتها تقول " عربي للفهم ..وأجنبي للتطبيق".
أعزائي "عملتي تصرف عندي" فكل ما ستكتبه عربي. وفي الحقيقه أنت لن تكتب شيء , ستختار الأوامر من صندوق وبالنقرعليه يكتب الأمر في برنامجك تلقائيا في العامود المخصص له , وبناءا على طبيعة الأمر , سيظهر لك سجلات لتختار واحد, أو يطلب منك رقم .... ملخص ... برنامج سلس ومعد بذكاء وحنكه ليترجم لك الأمر مباشرة من أسمبلر عربي " فلوجي" .... لسادس عشري وثنائي, كذلك أي ملف هيكس يترجمه لك "لفلوجي" وكثير من المميزات الأخرى.
هذا البرنامج ليس للبيع وهو إهداء من حسن علي لكل عربي , بعد الإنتهاء منه ومن الشرح , عندها فقط سأرفعه هنا في القريه, لينزله من يشاء .
للإخوه اللذين سألوني عن موقعي , لا تبحثوا عن هذه المشاركه أو عن البرنامج فلا وجود لهما , موقعي حجب في عدد من الدول العربيه . فكل ما أكتبه سيكون حصري للقريه الإلكترونيه , ما يهمني إيصال المعلومه . ليس مهما من موقعي أو من غيره . فلست بهذه الأنانيه. فأنا عضو في القريه منذ وقت بعيد ,لا يهم إذا كانوا لا يريدون ترقيتي ويصفوني " بالعضو الجديد" ... ها ....ها ..ها

http://www.electvillage.com/up06/up/fal2.GIF

نعود لشرحنا , أنظر الصوره أعلاه, المؤشر "بدايه" يستعمل كداله في الأمر الأول " السطر صفر" هنا نقول للمعالج إقفز حتى السطر 8 حيث المؤشر " بدايه" ...... لاحظ السطر 11 "إذهب إلى .......بدايه" يعيد المعالج إلى السطر 8 .
إذا الأمر " إذهب إلى................... تركيبه[أمر مؤشر]" يذهب بالمعالج ليطبق الأمر حيث المؤشر.
المؤشر بحد ذاته يمكن أن يكون واحد من ثلاثه : إما داله كما في الحاله السابقه يستعملها الأمر "إذهب إلى" أو إسم لمصغر أو إسم لجدول .
لنرى ما هو المصغر.
المصغر: عباره عن " بريمج" برنامج صغير داخل البرنامج الأساسي يمكن إستدعائه متى تشاء ليقوم بوضيفه معينه ....إليك مثلا:
http://www.electvillage.com/files/up2/mosagar.GIF
أمامك أعلاه , برنامج مصغر داخل البرنامج الرئيسي: المصغر يبدأ بالسطر 7 وينتهي بالسطر 14 .
إسم المصغر"ضيع وقت" وينتهي بالأمر "إرجع".
إرجع....................... تركيبه[أمر] .....بواسطة هذا الأمر نحدد نهاية مصغر.ليس له أي وضيفه أخرى في متحكمنا.

الهدف من هذا المصغر, أريد من المعالج عندما يصل ليطبق الأمر 17 أن يضيع بعض الوقت قبل تطبيق
الأمر18
إستدعي.................... تركيبه[أمر مؤشر]......لاحظ الأمر17 ....هنا نستدعي المصغر"ضيع وقت"....بواسطة الأمر " إستدعي" الأمر الذي سيطبقه المعالج مباشرة...بعد الأمر 17 هو الأمر 7
طيب, كيف يضيع الوقت في هذا المصغر, وكم من الوقت يضيع؟.
دورة ساعتي , ميكروثانيه, "دورة الساعه شرحتها سابقا"...إذا تطبيق الأمر الواحد يستغرق ميكروثانيه.
عندما يذهب المعالج ليطبق أول أمر في المصغر"سطر7 " , سيحمل "واو" بالرقم 250 ثم ينقله لسجل هدف عام داخل الذاكره المؤقته , كنت قد سميته مسبقا "بعداد1 " ..كيف نفعل ذالك سأشرحه لاحقا.
لاحظ السطر"9 " يبدأ بمؤشر1 وأمر "لا عمل " ثم يلحقه أمران "لا عمل" , قرائة الثلاث أوامر تستغرق 3 ميكروثانيه. الآن سينقص من قيمة "عداد1 " واحد ..... أصبح "249 " بما أنه ليس صفرا سيذهب إلى "مؤشرا"......هنا ضيعنا 3 ميكرو ثانيه أخرى ... "لأن الأمر – إذهب إلى – يستهلك دورتان ساعه" ...سيتكرر هذا الموضوع 250 مره ... 250×6=1500 ميكروثانيه أي 1.5 ميلي ثانيه . ضاعت قبل ما الأمر "إرجع" سيذهب بالمعالج ليطبق الأمر 18 .....

المصغر: عباره عن " بريمج" برنامج صغير داخل البرنامج الأساسي يمكن إستدعائه متى تشاء ليقوم بوضيفه معينه .
الجدول: مجموعه من الأرقام , تضعها بجدول داخل برنامجك الأساسي, تستدعيه لتقرأ أحدها . إليك مثل. http://www.electvillage.com/up06/up/jadwal.GIF
لاحظ معي الأمر 13 يحمل "واو" بالرقم 2 ثم نستدعي "جدول1 " . أول أمر في الجدول يجمع "2 " على "عداد البرنامج" تذكر أنني قلت "عداد البرنامج , يحمل عنوان الأمر الذي يطبق , في هذه الحاله "6" ..وهو الذي يحدد الأمر الذي سيطبق , وبما أنني جمعت عليه 2 أصبح 8 ..... إذا الأمر الذي سيطبق مباشرة بعد الأمر 6 هو الأمر8 ..... حيث ستصبح قيمة "واو" 17 ....... وسيرجع المعالج ليطبق الأمر الذي يلي عملية الإستدعاء " أمر 15 " حيث يحمل سجل منفذأ بالرقم 17 .

خلاصه مفيده : الأمر " إستدعي" ..... يستعمل لإستدعاء الجداول والمصغرات.
المؤشرات ثلاثة أنواع: داله لـ "إذهب إلى" .....إسم جدول ...... إسم مصغر.
المصغر يبدأ بإسمه وينتهي بالأمر " إرجع " ....
بقي لكم في ذمتي أمر واحد " إرجع من مقاطعه........... تركيبه[أمر] " سأشرحه لكم في المشاركات المقبله حيث سنبدأ بالتكلم عن سجلات العمل الخاصه ... والتي تتضمن سجل إسمه المقاطعات.
أما الآن فأستودعكم الله.

hasanAli
13-06-2006, 11:50 PM
سجلات هدف عام وخاص
تذكر شرحي للذاكره المؤقته :
من نوع "رام" أي عندما نقطع التيار عنها نخسر المعلومات ...مكونه من صفحتان ذاكره .... صفحه صفر و صفحه واحد . أول 12 سجل من كلا الصفحتان " عباره عن سجلات عمل خاص" سجلات يستعملها المتحكم في عمله...مثلا سجل المؤقت االذي شرحته في طرف مقاطعه هو أحدها .
هناك 68 سجل هدف عام من الموضع 12 ولغايه 79 . أن هذه السجلات خاصه بك كمبرمج .... لك الحرية بأن تسميها كما تشاء , مثلا طول أو عرض كما ذكرت سابقا ..... إذا عندك 68 سجل تحت تصرفك المطلق. هذا في الصفحه صفر .
في الصفحه واحد: أول 12 كذلك سجلات هدف عام .
هناك 68 سجل هدف عام , عباره عن صوره طبق الأصل لسجلات الأهداف العامه الموجوده في الصفحه صفر ...... نتوقف قليلا , لتوضيح هذه النقطه .... لنقل أنه لديك سجل إسمه طول عنوانه 12في الصفحه صفر ..... فأنت تقول للمعالج إدخل الصفحه صفر .... إقرأ طول ..... أما إذا طلبت من المعالج دخول الصفحه واحد ليقوم بمهمة ما .... ثم إحتجت لقرائة سجل طول ..... فلست بحاجه للذهاب إلى الصفحه الأولى ثانية ..... فالمتحكم يضع صوره طبق الأصل للسجل ويسمها طول في الموضع المقابل كل ما عليك أن تقول إقرأ طول مثلا ...رائع ..... عدا ذلك أي تغيير يجري لهذا السجل .... سواء كان في الصفحه الأولى أو الثانيه , ينعكس على مقابله , فكل واحد منهم مرآة للآخر.
في شرحي للمصغر , إستعملت سجل هدف عام سميته "عداد1".
كيف ندخل سجل هدف عام وكيف نستعمله في "فلوجة المتحكم" .
هناك زر إسمه "زد سجل هدف عام " أنقره يضهر لك صندوق كما في الصوره :

http://www.electvillage.com/files/up2/IDRAJSIGILAM.GIF

أكتب إسم السجل , ووافق , وإنتهى الموضوع...
"فلوجة المتحكم" يعرف تلقائيا , أنه لديك 68 سجل حر بتسميتها كما تشاء.فإذا تجاوزت هذا الرقم سيخبرك , يعرف أن عناوين هذه السجلات تبدأ من 12 وتنتهي بـ 79 ..ويخصص لكل سجل تكتبه العنوان تلقائيا , فلا حاجه لأن تفكر في هذا الموضوع. وإذا حاولت إدخال نفس الإسم أكثر من مره , لا يتقبل ذلك . تفاديا لوقوعك بأخطاء.
كيف أستعمل هذا السجل في برنامجي ؟
.... عندما تختار أي أمر متعلق بسجلات من صندوق الأوامر . سيكتب الأمر في العامود المخصص له .... تلقائيا سينتقل لعامود "هدف" وسيتحول صندوق الأوامر , إلى صندوق يحتوي كل السجلات . أنظر الصوره أدناه.

http://www.electvillage.com/files/up2/BAAD.bmp

هنا , أختير الأمر" إبرم سجل لليمين " فكتب , ظهرت لنا كل السجلات , لاحظ "عداد1 " في الأسفل .... إذا نقرت عليه سيكتب "عداد1 " في عامود الهدف . تلقائيا سيترجم الأمر كله لسادس عشري وثنائي , عامود إحفظ بـ يحدد تلقائيا بـ "سجل " ويمكنك تغييره "واو" . بالنقر عليه فقط .
ملاحظه :" فلوجة المتحكم" يعرف بأي صفحه من الذاكره , أنت تعمل , ويريك فقط السجلات المخصصه لها . في الصوره نحن في الصفحه صفر. .... وبذلك لن تكون أخطاء ....من هذا القبيل.
سجلات هدف خاص


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


http://www.electvillage.com/files/up2/sigilatkasah.bmp


كلها 16 سجل , منها ما هو في الصفحتان, معنى ذلك أن كل واحد مرآه للآخر " أي تغيير يجري لهذا السجل .... سواء كان في الصفحه الأولى أو الثانيه , ينعكس على مقابله" . ومنها ما هو موجود في صفحه معينه فقط .
سجل مؤقت : أعطيته ما يستحق من الشرح , عندما شرحت " طرف عداد".
سجل الحالات:
إخترت دراسته قبل غيره لأنه الصديق الوفي للمبرمج , حيث يطلعه على أشياء تحصل بينما يطبق برنامجه , فنعتمد على معلوماته لإتخاذ قرار ما , أو نخطط هنا في حال حدوث هذا إفعل ذاك . سجل الحالات , في متحكمنا مكون من سته بيت فقط.
بيت 0 : باليد ...... هناك عمليتان حسابيتان فقط , يقوم بهما المعالج بشكل مباشر , وهما الجمع والطرح , ومن الطبيعي أن يقوم بذلك بشكل ثنائي , هذا البيت باليد يتأثر بعملية الجمع التي يجريها المعالج بشكل , إذا كان فيه مجموع الرقمان أكبر من 255 فسيتحول تلقائيا إلى واحد . وما دون ذلك , سيبقى صفر . أمر الجمع هو إجمع واو وسجل الطول(مثلا) .

الأمر الثاني الذي يتأثر به هذا البيت , هو إطرح واو من سجل , إذا كانت قيمة واو أقل من قيمة السجل , رائع , سيكون الجواب إيجابي , هنا سيتحول(باليد) تلقائيا إلى واحد , وكأنه يقول الجواب إيجابي. وعكس ذلك ( واو أكبر من السجل) تلقائيا يتحول إلى صفر.

الأمر الثالث الذي يتأثر به هذا البيت (باليد), هو إبرم سجل لليمين كيف؟ راجع شرحي للأمر.
الأمر الرابع هو إبرم سجل لليسار كيف؟ راجع شرحي للأمر.

بيت 1 : باليد بعد الرابع المقصود بالرابع هو رابع بيت من السجل , النيبل عباره عن أول أربعه بيت من أي سجل . بواسطة أربعه بيت يمكننا العد من 0000 أي صفر إلى 1111 أي 15 , بعملية الجمع إجمع واو وسجل , إذا تعدى جمع أول أربعه بيت من واو مع أول أربعه بيت من ألسجل الـ 15 بيت الحالات-1 ( باليد بعد الرابع ) سيصبح تلقائيا واحد , مشيرا بذلك للحدث , وإذا لم نتجاوز الـ 15 سيكون صفر , أيضا , مشيرا للحدث .

الأمر الثاني والأخير الذي يتأثر به باليد بعد الرابع هو الطرح إطرح واو من سجل , إذا كانت قيمة أول 4 بيت من واو أقل من قيمة أول 4 بيت من السجل , سيتحول باليد بعد الرابع تلقائيا إلى واحد , وإذا كان العكس سيتحول تلقائيا إلى صفر.

بيت 2 :جواب صفر
يصبح واحد , في حال جواب أي عمليه حسابيه أو منطقيه , هو صفر ........ ويصبح صفر في حالة أن أي جواب لعمليه حسابيه أو منطقيه لا يساوي صفر.

هذه الثلاثه بيت التي درسناها حتى الآن , رغم أننا نستطيع القرائه والكتابه إليها , إلى أن أمر الكتابه يعتبر غير فاعل بالنسبه لها , حيث تغيراتها تحدث بصوره , تلقائيه وطبقا للمنطقيه التي سردتها لك .

هذه أعلام تشير إلى حدث , في كثير من الاوقات , وبينما أكتب أي برنامج , أقول لنفسي , دعني أرى إذا "جواب صفر" رفع يده , أي أصبح واحد.

سأتوقف قليلا , وأتوسع في شرحي ....لما سبق.... أو بكلمات أخرى....
متحكمي يفهم أربعة أوامر حسابيه , وهي:
إجمع واو وسجل – إطرح واو من سجل - إجمع واو ورقم - إطرح واو من رقم .
الجواب الناتج عن أي من الأوامر أعلاه , يغير أول ثلاثه بيت من سجل الحالات , وبالشكل التالي:
بيت صفر " باليد" : يصبح واحد منطقي في حال مجموع الرقمان أكبر من 255 . وصفر أصغر من 255 .
بيت صفر " باليد" : يصبح واحد منطقي في حال جواب الطرح " إيجابي" . وصفر " جواب سلبي".

بيت 1 " باليد بعد الرابع " : واحد منطقي , إذا كان جمع أول نيبل من أول رقم مع أول نيبل من ثاتي رقم تعدى الـ 15 .
صفر منطقي إذا لا . هذا بالجمع .
بيت 1 " باليد بعد الرابع" : في الطرح, قيمة النيبل الذي سيطرح أقل من قيمة النيبل الذي سيطرح منه , يصبح "واحد منطقي" ... والعكس صفر منطقي.

بيت 2 "جواب صفر" : إذا كان جواب أي من الأربع أوامر صفر , فبيت "جواب صفر" يصبح واحد منطقي. وغير ذلك صفر منطقي .... رائع ..... فقط هذا البيت "جواب صفر" يتأثر كذلك بكل أوامر منطقيات متحكمنا ...فإذا كان جواب أي منها صفر يصبح " واحد منطقي " وغير ذلك " صفر منطقي" .

سأتوقف عن الشرح قليلا , لندخل لتطبيقات عمليه ذات صله , وبمستوى ما تعلمته حتى الآن.
عندي ثلاث سجلات هدف عام , سميتها أول رقم , ثاني رقم , جواب .
أريد من المتحكم أن يفعل ما يلي :
إذا كان أول رقم وثاني رقم متساويان أن يكون "جواب" صفر.ثم ينام
إذا كان أول رقم أكبر من ثاني رقم أن يطرح الأول من الثاني , يحمل جواب ثم ينام .
إذا كان أول رقم أصغر من ثاني رقم أن يجمع الأول مع الثاني , يحمل جواب ثم ينام.
أين شباب القريه , هل من مساعد؟....
إليك الحل:

http://www.electvillage.com/files/up2/tagribah.bmp

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

HallaM
17-06-2006, 10:27 PM
السلام عليكم أخ حسن على
ماشاء الله شرح أكثر من ممتاز
لأول مره أحس إني أفهم لغه الأسمبلي
ولكن
هل هناك كمبايلر(مترجم) من لغه السي إلى الأسمبلي
فعندما درست في الجامعه عن المتحكمات الدقيقه Embedded System
نوع إنفنيون م 167 ( Infineon M 167 )
كنا نكتب البرنامج الذي نحتاج المتحكمه أن تجريه بلغه السي
ومن ثم نحمل البرنامج المترجم إلى المتحكمه عن طريق المبرمجه
فهل يوجد لهذه المتحكمه مترجمه من لغة السي إلى لغة الأسمبلي
ولك جزيل الشكر أخ حسن

أخوك
مروان -أبو مازن
بريطانيه

hasanAli
01-07-2006, 12:46 AM
بيت 3- تيار محجوب : هو البيت الرابع من سجل الحالات, وقبل شرحه لا بد لنا من معرفه بعض خصائص المتحكم والتي سأبدأ بشرحها:
في أغلب الحالات , يستمد المتحكم طاقته من دائرة مصدر تغذيه مثبته لجهد 5 فولت , وهذه الدوائر عادة لا تعطينا جهد 5 فولت مباشرة , بل هناك تأرجح بسيط ولوقت قليل جدا , قبل أن يستتب التيار على جهد 5 فولت نهائي . كذلك الهزاز " الكريستال أو غيره " لا تستتب ذبذبته إلا بعد تأرجح بسيط ولقليل من الوقت . متحكمنا مجهز بدوائر خاصه بداخله , تساعدنا على التعاطي مع هذه الحالات.
معيد إنظباط إنطلاقة جهد ألمصدر: دائره داخل المتحكم , تعمل بشكل تلقائي " أوتوماتيكي" , تتحسس إرتفاع الجهد عندما يصل لمستوى 1.2 فولت ولغاية 1.7 فولت , فتصدر نبض بواسطته, تبقي المتحكم في حالة إعادة إنطباط دائمه لوقت قليل جدا .
معيد إنظباط إنطلاقة جهد ألمصدر , يعمل بشكل تلقائي ليس بحاجه لبرمجه أو أي تدخل من قبلنا , لكن يمكننا الإستفاده منه , مثلا : يمكننا وصل طرف إعادة الإنظباط مباشرة على السالب , فما يحدث في هذه الحاله ؟ .. عندما يصل جهد المصدر إلى 1.2 فولت ستبدأ نبظة " معيد إنظباط إنطلاقة جهد ألمصدر" بعدها هناك حالة إعادة إنظباط دائمه , إذا في هذه الحاله نحن من يقرر متى يبدأ المتحكم عمله , وذلك بإدخال واحد منطقي على طرف إعادة الإنظباط , بهذه الطريقه نؤخر عمل المتحكم الوقت الذي نريده. هل هذا ضروري , بالطبع لا , لكنني أسرده لك للمعرفه , ولأخبرك أن هناك طريقه لإحداث تزامن بين متحكمان ليبدآن العمل في نفس الوقت...
مؤقت إنطلاقة جهد مصدر : دائره داخل المتحكم مكونه من مقاومه ومكثف , تعطينا توقيت 72 ميلي ثانيه , إذا تم تفعيل هذا المؤقت , فبعد إنتهاء فترة " معيد إنظباط إنطلاقة جهد ألمصدر" هناك 72 ميلي ثانيه إظافيه , كي يبدأ المتحكم عمله , وبذلك يكون قد إستقر جهد المصدر , لك الحريه بتفعيل أو إبطال هذا المؤقت , وذلك بواسطة البيت الرابع من كلمة الإعدادات , فصفر منطقي يعني تفعيل , وواحد منطقي إبطال .

مؤقت إنطلاقة الهزاز : دائره داخل المتحكم , تؤخر إنطلاقة الهزاز بـ 1024 دوره , وبذلك تكون قد إستقرت ذبذبته. هذا المؤقت يُفعّل تلقائيا , عندما تختار كهزاز , كريستال , أو راسوناتور , ويبطل تلقائياً , بإختيارك مقاومه ومكثف.
عندما يكون مفعّلاً , لا يقتصر عمله " تأخير إنطلاقة الهزاز بـ 1024 دوره " بعد إنطلاقة جهد المصدر بل كذلك بعد الإستيقاض من الأمر " نام".

الآن يمكننا التكلم عن البيت الرابع والخامس من سجل الحالات :

بيت 3- تيار محجوب : هو البيت الرابع من سجل الحالات:
يصبح واحد منطقي : بعد إستقرار جهد المصدر أو بعد الأمر إمحي مؤقت الحراسه.
يصبح صفر منطقي : بعد تنفيذ الأمر "نام" .

بيت 4 – وقت مضى : هو البيت الخامس من سجل الحالات:
يصبح واحد منطقي : بعد إستقرار جهد المصدر أو بعد الأمر إمحي مؤقت الحراسه أو بعد تنفيذ الأمر نام .
يصبح صفر منطقي : بعد مرور فترة مؤقت الحراسه.
مما سبق , نستنتج أن البيتان , عباره عن أعلام تخبرنا بتغيرات تحدث في متحكمنا : فكيف يمكننا قرائة وترجمة البيتان معا :
تيار محجوب ........... وقت مضى
واحد.................... واحد : بعد إنتهاء فترة " معيد إنظباط إنطلاقة جهد ألمصدر" وإستقرار التيار
واحد.................... واحد : معنى آخر, حدثت إعادة إنظباط خلال التطبيق العادي للبرنامج بواسطة .....................................: طرف إعادة الإنظباط.
واحد.....................صفر : حدثت إعادة إنظباط بواسطة مؤقت الحراسه. خلال التطبيق العادي.
صفر ....................صفر :حدث إستيقاظ بواسطة مؤقت الحراسه.
صفر ....................واحد :حدث إعادة إنظباط بواسطة "طرف إعادة الإنظباط" خلال النوم , أو بعد حدوث مقاطعه تسببت بإستيقاظ المتحكم من النوم .

بيت 5- صفحه : : سبق وذكرت , أن الذاكره , المؤقته مكونه من صفحتين , صفحه صفر وصفحه واحد , هنا البيت 5 (صفحه) , لا يستعمل فقط لإعطائنا المعلومه , بل كذلك لتحديد مسار المعالج إلى أي صفحه يذهب , فمثلا الأمر:
ضع صفر ببيت............. الحالات .......صفحه
سيدخل المعالج إلى الصفحه صفر........... والأمر

ضع واحد ببيت...............الحالات....... صفحه
سيدخل المعالج إلى الصفحه واحد .

البيتان المتبقيان لا عمل لهما في هذا المتحكم ويجب أن يبقوا صفر .

http://www.electvillage.com/files/up2/shalat.bmp

ايند هكر
11-07-2006, 06:55 PM
مشكووووووووور يا بطل على هذه المشاركه الرائعه ,و عندي بعض الاسأله ما هيه فائدة الامر لا عمل ارجو منك شرح مفصل لو سمحت كما اتمنا منك تكملة الشرح لاني جداًً مهتم بالموضوع كما اتمنا منك تطبيقات عمليه اكثر للبرمجه
ارجو الرد.
.
.
لا تنسى البرنامج ههههههههههه
شكراً

hasanAli
03-08-2006, 08:32 PM
بسم الله الرحمن الرحيم
عزيزي ايند هكر , أنا آسف , ما أزعجني في كلامك قولك " إذا كنت لا تملك البرنامج " إقرأ جيدا موضوعي , أنا لم أقل في لحظه , أنني أملك البرنامج , بل إنني أعمل على جبهتين إبداع البرنامج وتكملة الشرح , لقد أجبرتني مداخلتك , على إشراككم تطورات البرنامج حتى قبل الإنتهاء منه . فإليكم أين أصبحت :البرنامج في الملحقات:

يمكنك كتابة أسمبلر عربي , حفظه , قرائته إلخ .......
يمكنك تحويل أي ملف هيكس لأسمبلر عربي ......
الأخ ألادينو وضع برنامج "لد فلاشر " في تطبيقات على المتحكم , الآن البرنامج حمل بملف هيكس اللد فلاشر .... فمن يريد درس هذا التطبيق بالعربي يمكنه فعل ذلك بكبسة زر ....
أخيرا ... أدعوا الله .... نصرة مقاوماتنا ... في العراق وفلسطين ولبنان ...
http://www.4shared.com/file/43127925/859e83ec/alanbar.html

غسان العراقي
07-08-2006, 02:29 PM
ممتاز جدا اخ حسن علي لكن هل بامكانك ان تعطينا مثال تطبيق عملي على برنامجك

abou_yahya
21-08-2006, 11:36 PM
السلام عليكم
موضوع أكثر من ممتاز،وأرجو من الأخ حسن علي أيجمع هذه المعلومات القيمة في كتاب جامع مع زيادة في التفصيل و ضرب الأمثلة ومراعات التبسيط في الشرح بالنسبة للمبتدئين.
و السلام عليكم

hasanAli
26-08-2006, 05:17 PM
كل ما سبق وشرحته في كتاب
الكتاب الأول والثاني في الملحقات......
http://www.qariya.com/modules.php?name=Downloads&d_op=getit&lid=2737

mbd
29-08-2006, 08:46 PM
جزاك الله خيرا وأريد أن أسالك كيف يمكن الاستفادة من هذا المتحكم من اجل تصميم جريدة الكترونية

jihad1961
31-08-2006, 12:08 PM
بسم الله الحمن الرحيم
جزاك الله خيرا اخي حسن على هذا المجهود العظيم وننتظر البقيه
فعلا اثني على طلب اخونا حسين بارفاق الصطلح النجليزي مع الشرح العربي مثلا اجمع و او سجل =xxxxxxxxx
سؤال ك: ذكرت في دارة المتحكم طرف الهزاز رجل 16 ان المصنع ينصح بوضع المقاومه من3k----------100k المكثف 20 PF-----????كم
والسلام عليكم

hasanAli
08-09-2006, 08:38 AM
سجلان" إعداد منفذ أ و إعداد منفذ ب"
سجلان , في الصفحه واحد من الذاكره المؤقته .
إعداد منفذ أ : سجل بطول 8 بيت , المعلومه ( واحد أم صفر منطقي ) التي يحتويها كل بيت منهم , تحدد عمل الطرف التابع , كدخول أم خروج , 1 دخول و 0 خروج . مثلا ..... مشروعي يتطلب أن يكون أول أربع أطراف من منفذ أ ( منفذأ 0 حتى منفذأ 3) كخروج و منفذ أ 4 كدخول ..... إذا يجب أن أكتب الرقم الثنائي " 00001111" في سجل إعداد منفذأ ...
إعداد منفذ ب : : سجل بطول 8 بيت , المعلومه ( واحد أم صفر منطقي ) التي يحتويها كل بيت منهم , تحدد عمل الطرف التابع , كدخول أم خروج , 1 دخول و 0 خروج , يتم بنفس الطريقة السابقة , وهو يُعد منفذ ب .
لنوضح أكثر
السجلان , إعداد منفذ أ و إعداد منفذ ب موجودان في الذاكره المؤقته وفي الصفحه واحد , أول عمل أقوم به , أحدد ما هي الأطراف التي أريدها " كمدخل" والتي أريدها كمخرج , وبطبيعة الحال الأطراف هي منفذ أ و منفذ ب . وبدورهما ليسا أكثر من سجلان بطول 8 بيت كل واحد .
ما أريده كخروج , أضع في "البيت" الذي يمثله "صفر" , ما أريده كدخول , أضع في "البيت" الذي يمثله "واحد" , وسأحصل على رقم ثنائي من ثمانيه بيت , أحوله إلى عشري وأحمله في في سجلان إعداد منفذ أ و إعداد منفذ ب وإنتهينا .
كيف أفعل ذلك برمجيا؟
أولا يتوجب دخول الصفحه "واحد" ثم أحمل "واو" بالرقم ثم أنقل "واو" لسجل "إعداد منفذ أ"
ثانيا : أحمل "واو" بثاني رقم ثم أنقل "واو" لسجل "إعداد منفذ ب" ثم أخرج من الصفحه "واحد" . ما أقوله برمجيا يكتب بالشكل التالي:

http://www.electvillage.com/files/up4/idadat.bmp

كيف يمكنني مساعدتك أكثر؟
بأن أقدم لك البرنامج التالي : في الملحقات .

http://www.electvillage.com/files/up4/bornamigIDAD.bmp

كل ما عليك , أن تضع إشارة صح على ما تريده كدخول , وسيعطيك تلقائيا ... الأرقام.
http://www.4shared.com/file/43130193/21adbfa3/Manfathan.html

the lover1
09-09-2006, 03:02 PM
بسم الله الرحمن الرحيم
اخى العضو
hasanAli
لقد تصفحت موضوعك على عجاله ووجدت انه من المواضيع المتميزه التى المت بجانب الميكروكنترولر
وان شاء الله تعالى ساقوم بتحويل هذا المشروع الى ملف PDF ووضعه فى منتدى الماشريع فى المواضيع المتميزه
وسيوضع ايضا فى مكتبه القريه
وجزاك الله خيرا

walidlahham
09-09-2006, 03:47 PM
حقيقة انها إلتفاتة طيبة منك أخي the lover1 بالتسهيل على الأعضاء للتعامل مع هذا الموضوع القيم وأرجو رؤيته قريبا في الحلة الجديدة. بالطبع الشكر موصولا لصاحب الموضوع الأخ الكريم hasanAli.

bechir
13-09-2006, 01:17 PM
حقيقة يا سيد حسن علي موضوعك أكثر من ممتاز ويستحق كل الإكبار والتقدير
بالنسبة للأشخاص اللذين لم يبدؤوا في تعلم لغة البيك 16ف84 هي حقيقة فرصة لهم.

soosee
19-09-2006, 09:56 AM
شكرااا جزيلا على المجهود الرائع
واريد ان يكون الجزء العملي في سهولة شرح الجزء النظرى ان شاء الله

salama_m
19-09-2006, 12:17 PM
هايل يا هندسة وعجبني اوي وضوح فيزياء الmicrocontroller في دماغك

khaled_hs_m
19-09-2006, 03:20 PM
ما شاء الله عليك
ولكن ياريت الاسماء والرموز تكون انجليزي

hasanAli
19-09-2006, 09:58 PM
آسف أخ خالد , لا أريد تلبية طلبك , فأنا أكره الإنكليز بتفرعاتهم , الأمريكي والأسترالي والبريطاني والكندي , وأكره لغتهم , أصلهم رعاة بقر وقراصنه , واليوم غزاه ومجرمين , بعدين أخي أنا أخجل من مخاطبة إنسان عربي بالإنكليزيه كي يفهمني , كذلك عزيزي , أمه تحترم نفسها تحترم لغتها , وأنا من الناس , الذين يرون العروبه في كل صحن طعام يأكلوه ...

salama_m
20-09-2006, 08:35 AM
يا اخ حسن كلنا نكره الغزاه والمجرمين حتي لو كانوا من العرب
ولكن تعلم لغة القوم حتي تأمن شرهم
احب ان اشير ان كل ال datasheets and the instructions set مكتوبة بالغة الانجليزية
وانا اري ان معظم الناس تريد المصطلحات الانجليزية ولم اري احداً يطلب الشرح بالانجليزية

hasanAli
20-09-2006, 05:03 PM
أخي وصديقي المحترم:
أنا لست ضد أن يتقن أي شخص الإنكليزيه , بل أتمنا لو كان كل عربي يجيد عشر لغات , المصيبه أن لا نتقن لغتنا , إذا كنت تعتقد أن كل ما في أدبيات "ميكروتشيب" من معلومات ومصطلحات وأدوات تقنيه , لا يمكن ترجمتها , فأنت على خطأ .نريد البطل الذي يترجم "قاعدة بيانات" لأي "متحكم صغير"....بما فيها المصطلحات والأوامر ....ويريحنا من عبأ التبعيه المطلق ....والمضحك في بعض الأحيان ..... لأن مثقفنا يعتقد أنه إذا كتب مقالا تقنيا , بدون مصطلحات أجنبيه , يعتبره قد خلي من التقنيه وتحول إلى أدبي, ...... أخي لغتنا العربيه ليست عاجزه .....بل نحن العاجزون.....عزيزي وأخي الحبيب :بالله عليك , قل لي في هذه التعابير ما هو الأسهل :
أن تقول :
ضع واحد ببيت
أو
bit set function
أن تقول:
ضع واحد وأقفز إذا صفر
أو
bit set skip if zero
روحي : لغتنا أجمل , أروع , أسهل للحفظ , تجري في عروقنا , يا ريت نحترمها كما تستحق.
لاحظ معي هذه الجمله التي كتبها أنت بنفسك:
احب ان اشير ان كل ال datasheets and the instructions set مكتوبة بالغة الانجليزية
ألم يكن أجمل وأسهل عليك كتابة:
احب ان اشير ان كل قواعد البيانات ومجموعة الأوامر مكتوبة باللغة الانجليزية.
لكل ما سبق وذكرته مقالي خال من المصطلحات الأجنبيه ..... وليس فقط بسبب كرهي لهم .

أهلا بك .

walidlahham
20-09-2006, 06:24 PM
أخي الكريم حسن
من وجهة نظري الخاصة بي والتي من حقي أن اصرح بها، فأنت قد أصبت إذ أن لساننا العربي يحتوي على كل المصطلحات، ولكن للأسف فإن مجمع اللغة العربية (لدي اعتراض على كلمة لغة بمعنى منطوق العربية لأنها ليست من العربية بشيء وإنما أتت من الكلمة الإغريقية Logus) لا يلاحق التطورات ويغطيها بما يفي احتياجاتنا في المجالات التقنية والمعرفية وصدقني أخي الكريم أنني أتكلم عن سابق معرفة في هذا المجال فأنا أقيم في المانيا منذ 34 سنة وقمت بترجمات علمية عديدة من الألمانية وقليل من الإنجليزية إلى العربية وعانيت الكثير.
وسؤالي الآن ..... كيف يمكن لنا معرفة آخر التطورات الخاصة بهذا الأمر من المجمع العربي فأنا لا أستطيع الإتصال بهم لمعرفة آخر ما اتفق عليه في هذا المجال.
أكون شاكرا لكل من يمد يد العون والدعم في هذا الموضوع.

وليد لحام

khaled_hs_m
20-09-2006, 09:55 PM
اخي حسن
انا معك في ووجهة نظرك ولكن
هذه المصطلحات والاومر تستخدم في برامج غير مكتوبة بالعربية وبالتالي يجب كتابة المصطلحات انجليزي لعدم حدوث اي التباس

khaled_hs_m
21-09-2006, 12:26 PM
اخي حسن
هل تستطيع ان تعطيني بعض المعلومات والتطبيقات العملية عن
Field Programmable Gate Array(FPGA )

jihad1961
21-09-2006, 10:38 PM
بارك الله فيك
حتى الان تقريبا شبه مستوعب

the lover1
22-09-2006, 01:28 PM
اخى حسن على
لقد اصبحت من متابعى موضوعك هذا بكل شغف حتى اننى انتظر يوميا اى اضافه لك فى هذا الموضوع
لقد تعلمت الكثير من هذا الموضوع وجزاك الله خيرا واود ان يكتمل من جميع جوانبه حتى اقوم بوضعه فى ملف اكروبات ووضعه فى مكتبه القريه وفى المواضيع المتميزه فى قسم المشاريع
ونحن فى الانتظار
وشكرا

aliturnado
25-09-2006, 09:02 PM
بسم الله ما شاء الله لا قوة الا بالله
عاشت ايدك على الجهد المبذول وجعله الله في ميزان حسناتك يوم لا ينفع مال ولابنون الا من اتا الله بقلب سليم
جزاكم الله كل خير

رانية1
26-09-2006, 07:39 PM
الاخ حسن :
ارجو ان ترسل لي دائرة البرمجة لل pic 16f84a مع الشكر

علي بن حسن
28-09-2006, 05:19 PM
أخي حسن علي
أشكرك على هذا الموضوع . وبارك الله فيك .
أما فيما يخص اللغة العربية فأنا معك مع بعض التحفظ
في بعض البلدان العربية يرفظ المدرسون تدريس العلوم بالعربية فياللعار أصبحنا نخجل من أنفسنا
ومن تراثنا ومن عروبتنا.
وكما قيل "من عرف لغة قوم أمن شرهم" وقيل كذلك "الحكمة ظالة المؤمن أنا وجدها إقتنصها "
بدون أن ينطبق عليه المثل القائل " جاء يتعلم مشية الحمام فنسي مشيته"
وشكراَ مجددا أخوك علي بن حسن .

HASSAN BASHER
02-10-2006, 09:17 AM
طبعا هذا الاستاذ حسن علي غني عن التعريف
جزاك الله خيرا وادخلك فسيح جناته

Satdr
08-10-2006, 09:57 AM
[الاخ العزيز حسن علي .....

السلام عليكم ورحمة الله وبركاته ....
الف شكر يا اخي علي هذا الموضوع وايضا على الموقعيين http://www.geocities.com/albaramig لما فيهما من معلومات مفيدة جدا عن
الألكترونيات. لقد حاولت ان ابعث لك e-mail على عنوانك في ال yahoo لكنه لم ينفع على كل حال
ارجو منك اذا امكن ان تشرح لي كيف قمت بعمل ال animation في برنامجك خطوي 1 (الدائرة) للأهمية .
او اذا امكن ان تبعث لي عن طريق ال e-mail ال source code للبرنامج الذي عملته انت بالفجول بيسك .

و جزاك الله خير في هذا الشهر المبارك

أخوك
محمد ابن عبدالله
satdr2000********com

محمود عطية
10-10-2006, 05:38 PM
:flw: السلام عليكم:flw:
أستاذنا القدير
جزاك الله خيرا وذادك علما و نفع بك و جعلة فى ميزان حسناتك .
علم غزير وأسلوب شيق لكن اسمح لى أن أقترح عليك أن ترتبط كل مرحلة بتطبيق صغير حتى تكتمل الفائدة :xlve:
محمود عطية مصطفى
تصميم _ تصنيع _ صيانة
الدوائر الالكترونية
الاسكندرية مصر
0123492245
MOAMEN_ELEC********COM:sail:

ابوسراج2005
18-10-2006, 04:56 AM
اسأل الله الرحيم في هذا الشهر الفضيل في هذه العشرة الأواخر ان يجزاك خير الجزاء في الدنيا و الآخرة

و ان يزيدنا و يزيدك علما الى علم

في انتظار التكملة....

و زادك الله قوة

fathiidriss
20-10-2006, 10:44 PM
شكرا جزيلا لهذا التوضيح العبقري
لدي سؤال هو كيف لي ان اعرف اي الاطراف من المنافذ سوف يكون دخول او خروج حتي ارسل برنامجي الي الميكروكونترولر من اول برمجة لي يعني برنامج التحميل كيف يعرف ان الطرف المعين هو دخول المعلومات في اول شحن للبرنامج لك شكري وتقديري

etpm
05-11-2006, 01:24 AM
الاخ/ حسن على
شكرا على مجهودك الرائع و كلمة الشكر لا تكفى فما تكتبة عن الميكروكنتروللر و تغير اسلوبك فى الشرح عن الميكرو انما يعبر عن حبك و احترامك للجميع و تعبك من اجل الغير

أرجو لك التوفيق

hassankasim84
16-11-2006, 03:38 PM
مشكور اخي على هذا الشي الجميل وانا بانتضار فايلات الpdf
لاكمال الموضوع ونحن شاكرين لك ذلك
مع التقدير
اخوك المهندس
حسن العراقي

hasanAli
21-11-2006, 04:15 AM
الإخوه الأحباء
شكرا على مشاعركم .... والمعنويات العاليه ....
لله ما في السماوات والأرض ..... وللعرب العزه والكرامه ....بعونه.
كل هذا الغياب لإصدار "هذا البرنامج" العمود الفقري لمشاركتي..
الآن ... شاهد بنفسك .....كيف .... تحرق المتحكمات الصغيره وبالعربي مباشرة .... حتى بدون ملف هيكس لو أردت.
إكتشف .... جمال البرنامج بنفسك ... وسنكون على موعد قريبا لمتابعة الشرح

نزل فلوجة المتحكم (http://www.electvillage.com/files/up9/Faugi.rar)

م/سيدعبدالرحمن
21-11-2006, 05:02 AM
بارك الله فيك ايها الأستاذ العبقرى

وتحياتى لك وجعله فى ميزان حسناتك وأعز الأمه الأسلامية و العربية بك وبأمثالك

أخوك سيدعبد الرحمن

hasanAli
21-11-2006, 07:00 PM
هاوي متحكمات....ولا يمتلك "مبرمجه"...في هذه المرحله كمن تعطي الحلاوه لمن ليس له أسنان ....
فلوجة المتحكم....يستعبد ال "winpic800" وهو برنامج مجاني على النت , لست بحاجه لتنزيله ... فلوجة المتحكم (http://www.electvillage.com/files/up9/Faugi.rar)...يتظمنه وهو معرب ..فعلت ذلك , لأنه أفضل بكثير من البرامج كالـ "ICprog" وغيرهم ....والسبب الأهم : تفكيري بالأصدقاء اللذين بنوا مبرمجات , وهم ليسوا بحاجه لصنع جديده ...للتعامل مع ... فلوجة المتحكم (http://www.electvillage.com/files/up9/Faugi.rar).... فهو يتعامل مع إثنان وعشرون نوع من المبرمجات ... أما الإخوه اللذين لا يملكون مبرمجه ....حان الوقت لبنائها وإليكم أسهلها...
بنظري "JDM programmer" هو أسهل المبرمجات ... ويمكن أن تجد على النت آلاف المخططات لها ... ومع ذلك سأقدم لك نموذجا سهلا :
http://www.electvillage.com/files/up9/swf1.jpg
لاحظ : كل الموضوع : 4 مقاومات , صمام ثنائي , وآخر زنر , ومكثف.
http://www.electvillage.com/files/up9/swf2.jpg
وشاهد الخطوط :
http://www.electvillage.com/files/up9/swf3.jpg
هذه المبرمجه ليست بحاجه لمصدر طاقه , هي تستهلك التيار مباشرة من المنفذ التسلسلي "RS232" .... موجود عادة خلف الحاسوب وله تسعة أطراف.
http://www.electvillage.com/files/up9/female9w.gif
لتوضيح : في المخطط الأول تجد عبارة "(T*D(3)" أي أن هذا السلك يوصل على الطرف الثالث هنا .... وهكذا ....

فإلى بناء المبرمجه .... وأدعوا الله لكم بالتوفيق.....

ahmad72
21-11-2006, 10:29 PM
السلام عليكم
الاخ حسن بصراحه لااجد كلام اعبر به عن شكرى لكم على هذا العمل العظيم
لاننا فعلا محتاجين الشخصيات امثالك فجزاك الله عنا خيرا
وايدكم الله بنصره انه هو القادر عليه:flw:

ahmad72
21-11-2006, 11:25 PM
يا اخ حسن تم تنزيل البرنامج ولاكن لا استطيع تنصيبه
ارجو شرح تنصيب البرنامج
شكرا:flw:

hasanAli
22-11-2006, 12:36 AM
فك الضغط ,, ثم setup.exe
يجب أن تكون متصل بإنترنت , إذا كان ناقض في حاسوبك بعض الأدوات .... سينزلها تلقائيا...

ahmad72
22-11-2006, 09:18 AM
اخى حاولت اكثر من مره
وتظهر هذه الرساله ما الحل

hasanAli
22-11-2006, 01:46 PM
عزيزي أحمد72
الرساله تقول أنك بحاجه لـ Microsoft .NET Framework 3.0 جديد لأن التي عندك قديمه أو بيتا لا تصلح
نزل من هذا العنوان وركبه ..... ثم ركب البرنامج


مايكروسوفت (http://www.microsoft.com/downloads/details.aspx?FamilyId=10CC340B-F857-4A14-83F5-25634C3BF043&displaylang=en)

عاشق الحسين
23-11-2006, 11:47 AM
أخي الفاضل الاستاذ حسن علي السلام عليكم ورحمة الله وبركاته وأشهد الله أنني أحبك فيه
لا أخفي عليك مدى إعجابي بمشاريعك المذهلة وخصوصا مشروع قيادة سيارة المعاقين عن طريق الجوال
أنا من فلسطين المقهورة واهتممت بهذه السيارة لكثرة المقطعة أرجلهم من صواريخ اليهود الحاقدين فوجدت مشروعك الكامل الرائع مع الشرح الممتاز.الخاص بقيادة سيارة أوتوماتيك بالجوال
ولكن واجهت مشكلة في تنزيل الرامج الموجودة عليه فأرجو إرسالها على البريد
poraq_2000********com
ولك الاجر بإذن الله
أخوك في الله عاشق الحسين من الاراضي المحتة

hassankasim84
23-11-2006, 05:18 PM
عاشت ايديكم اخواني على هذا الشي الجميل
اخوكم حسن العراقي

hasanAli
24-11-2006, 01:22 AM
أخي عاشق الحسين:
أنا كذلك أحبك ,بالله, والعروبه,عزيزي,هذا مشروع كتبته منذ أكثر من سنه , حاول التحقق هنا في القريه , في جناح "مقالات مميزه" , على كل حال سأبحث وأرسل البرامج لك بإذن الله...... وسأهديك وكل احبائي في فلسطين العزيزه ....وعراقي البطل .... شرح اليوم ...إقرأ ما سأقول ... من فضلك ....وسأبدأ

hasanAli
24-11-2006, 02:27 AM
المخطط المساري ....
ما هو مخطط المسار....؟
خذ برنامج "فلوجي أو أسمبلر " بطول أكثر من 20 أمر , وحاول قرائته لفهمه , ربما تصاب بالصداع .... فهمه أقصد فهم وضيفة البرنامج بشكل عام ....
طيب شرحت لك الأوامر وأشياء عده عن المتحكم وآخر خطوه كانت "فلوجة المتحكم " والمبرمجه .... الآن يمكننا البدء في المشاريع الصغيره ....
السؤال : كيف أبدأ بكتابة مشروع لمتحكم صغير .....وإليك الخطوه الأولى : أن تضع "مخطط مسار لمشروعك" .... وإلا ستضيع ....
ما هو "مخطط المسار" تركيبته , وأهميته.
شخصيا... ودعني أتكلم معك ...كأصدقاء من عشرين سنه , "مخطط المسار" يعبر عن مدا إحترامك لنفسك كمبرمج , ولبرنامجك , ومدا تكلل عملك بالنجاج .. ويعتمد على مدا إلمامك بالموضوع .... وسأشرح:

مخطط المسار ليس أكثر من 5, أشكال هندسيه , وأسهم تحدد المسار ...

الأول شبه دائري : دائري وبه نحدد البدايه والنهايه
http://www.electvillage.com/files/up9/aaa1.GIF
الثاني مربع : ويعبر عن أو يحتوي على إجراء ....
الإجراء , هو حدث داخل المتحكم . مثلا إجمع 12 و 14
http://www.electvillage.com/files/up9/aaa2.GIF
الشكل الثالث : معين , وهو يعبر عن "قرار".
بطبيعة الحال , هناك سؤال , وإحتمالان لجوابين " نعم أم لا " ويتخذ قراران , واحد لـ "نعم" وواحد لـ "لا" .
http://www.electvillage.com/files/up9/aaa3.GIF
سأتوقف قليلا لأعطي مثل , لا علاقة له بالمتحكمات , بل بالمخططات المساريه
http://www.electvillage.com/files/up9/aaa4.GIF
لاحظ "المخطط المساري " أسهل للفهم من أن تحلل قولي :
في المكتب
إسأل عن الطقس
إسأل عن الوقت
إذاكانت تمطر
إنتظر 5 دقائق
إسأل عن الطقس
إسأل عن الوقت
إذا كانت لا تمطر
ليست الرابعه عصرا
إنتظر 5 دقائق
إسأل عن الطقس
إسأل عن الوقت
إذا كانت لا تمطر
حلت الرابعه عصرا
قد السياره إلى البيت
البيت

"المخطط المساري " أسهل للفهم, بطبيعة الحال ... المخططات المساريه في المتحكمات , تتضمن , الأشكال الثلاثه , بالإضافه إلى شكلان:

الأول: مربع منحني " أدخل" لاحظ الضلع الأعلى وكأنه سهم إلى اليسار
http://www.electvillage.com/files/up9/aaa5.GIF

المربع "أدخل" يتضمن , ما يقرأه المتحكم من العالم الخارجي ... مثلا .... متحكم متصل بميزان ..... في هذا المربع يمكننا كتابة أدخل الوزن .....عموما أي معلومه تأتي من العالم الخارجي....

الثاني : مربع منحني " أخرج" , لاحظ الضلع الأعلى وكأنه سهم إلى اليمين.
http://www.electvillage.com/files/up9/aaa6.GIF
المربع " أخرج " يتضمن , ما يخرجه المتحكم إلى العالم الخارجي ... مثلا ....
متحكم متصل بمفتاح ....... في هذا المربع يمكننا كتابة "أغلق المفتاح1 " أو "شغل جهاز ب" أو "وقف جهاز ب"

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

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

لنقول...هذه تصوراتنا للمشروع ....ونريد برنامج للمتحكم ليدير كل هذه الأمور ..... قال لي الأخ حسن "أول خطوه وضع مخطط مسار" طيب... رائع...تعال نضع مخطط مسار ....
http://www.electvillage.com/files/up9/aaa7.GIF
هذا نحن والحمدلله وضعنا مخطط مسار لمشروعنا ..... الخطوه التاليه .... عليك أن تؤمن بأنه جل من لا يخطئ وتفحص مشروعك عن أخطاء أو تحسينات ممكنه...لنفعل ذلك ... هل هناك أخطاء .
كما يقول أحبائي وإخواني الفلسطينيون, ول ول ول ول ول ول ول خطأ فادح , في هذا المخطط المساري تفتح المياه إذا كان الوعاء فارغا, لكنني لا أشاهد أين تقفل.... والطوفان آت لا محاله....
نصحح , آه ... يجب وضع "إغلق مفتاح المياه " إذا كان جواب "القرار "فارغ" بلا " ....
هل يجوز أن تكون هناك أخطاء أخرى.؟...معقول....آه ... أنا طلبت من ذراع الشاي التحرك في آن واحد مع ذراع السكر .... ربما تصادموا...طيب ... دعني أضع "إجراء توقيت لدقيقه" بين "ضع الشاي"و"ضع السكر".
هل يجوز أن تكون هناك تحسينات على المخطط ... نعم ..... كيف سنعلم أن الشاي خلص.... لما لا نضع "إخراج" قبل النهايه....كشغل صفارة الإنذار...
-------------------------------------------------------------
ما رأيك : تعلمنا الكثير اليوم , على الأقل كيف نبدأ بمشروع..وبالشكل الصحيح...إلى اللقاء.
لله ما في السماوات والأرض ....وللعرب العزه والكرامه....بعونه

ahmad72
24-11-2006, 11:41 PM
اخى الفاضل كل يوم يذداد تعلقى بموضعك واسلوبك الجميل فى الشرح
لاكنى حاولت بكل الطرق التى اعرفها لتثبيت البرنامج دون جدوى بالله عليك ما العمل:flw:
شكرا جزيلا:flw:

hasanAli
24-11-2006, 11:50 PM
أخي العزيز
المشكله عندك , الملف صحيح , مئه بالمئه , لدرجة أنه أضيف هنا في القريه, بجناح برامج عامه....

x