بسم الله الرحمن الرحيم
أولا : اعتذر عن هذا التأخير ، نظرا لضروف العمل
ثانيا : هذا المشروع هو تعليمي بحت اولا واخيرا ، الهدف منه هو التدرج في بناء مشروع الكتروني و التدرب على استعمال الميكوكونترولات ، حتى البرنامج الذي سأقدّمه في نهاية هذا البحث لن يكون نهائيا ، و إنّما يحتاج الى لمسات تكمياية من طرف كل من يريد استعماله كمشروع للدراسة.
سأتحدث اليوم عن
الخوارزمية Algorithme المستعملة لبرمجة هذه الساعة الرقمية.
الدارة الالكترونية للساعة هي :
يجب ان نبحث عن الخوارزمية التي تعمل وفقها الساعة ، لكي نفكّر في كتابة البرنامج .
الخوارزمية لاتتغيّر ، اما البرنامج فيمكن كتابته بعدة لغات ، و سأركّز على لغة الاسمبلير.
هذا البرنامج الذي نكتبه ، نتحصل منه في النهاية على برنامج بإمتداد hex ، هو الذي نحتاجه ليشحن في المتحكم.
السؤال المطروح بعد التركيز في الدارة :
كيف يمكن اضاءة المرقّمات الستة في وقت واحد بإستعمال مفكك ترميز واحد ؟
و هنا مربط الفرس ، ومن هنا تبدأ فكرة البرنامج ، او بعبارة اخرى فكرة الخوارزمية.
في الواقع لا تضاء المرقّمات الستة في وقت واحد ، و إنما يضاء في لحظة زمنية مرقّم واحد فقط ، لان ذلك اقصى مايسمح به مفكك الترميز.
ولاضاءة المرقّمات الستة في وقت واحد ، نلجأ الى خداع حاسة البصر لدينا.
أي يضاء المرقم الاول وليكن الاقصى الى اليمين لمدة زمنية قصيرة تقدّر بالميلي ثانية ، ثم نطفئه و نضيء المرقم الموالي بنفس المدة الزمنية السابقة ، تم نطفئه ، و نكرّر العملية حتى نصل الى آخر مرقّم وهو الاقصى الى اليسار.
ثم نكرر اضاءة المرقمات بشكل متتابع، عدد من المرات نصل بها الى زمن قدره 1 ثانية.
نرفع عداد الثواني برقم ، ثم نكرّر العملية السابقة لإضاءة المرقّمات الستة.
نواصل رفع عداد الثواني ، وفي كل مرة نضيء المرقمات الستة ، حتى نصل الى العدد 59 ، حيث ننتهي من عد دقيقة.
نبدأ في رفع عداد الدقائق برقم ، ونعيد عداد الثواني الى الصفر ، ثم نكرّر كل العمل السابق وذلك بعرض تعاقب الثواني حتى نصل الى العدد 59.
نواصل رفع عداد الدقائق ، وفي كل مرة نضيء تعاقب ارقام الثواني ، حتي يصل عداد الدقائق الى العدد 59 ، وهنا ينتهي عد ساعة.
نبدأ في رفع عداد الساعات ، و نعيد عداد الدقائق الي الصفر ، ونعيد ايضا عداد الثواني الى الصفر.
ثم نبدأ بالإضاءة المتتابعة لارقام الثواني و الدقائق ، الى ان يصل عداد الدقائق الى العع 59 .
نقوم برفع عداد الساعات برقم ، ونعيد عداد الدقائق و الثواني الى الصفر ، ونبدأ بالعرض المتتابع للارقام.
نواصل رفع عداد الساعات حتى نصل الى العدد 23، و هنا ينتهي حساب يوم .
تعود كل الارقام الى الصفر، ويبدأ عد يوم جديد
لفهم جيّد لهذه الطريقة اقترح عليكم الخوارزمبة algorithme التالية :
حيث
أ يرمز لعداد الثواني ،
ب يرمز لعداد الدقائق ،
جـ يرمز لعداد الساعات
العبارة
أ = أ+1 معناها القيمة الجديدة للعدد أ هي القيمة السابقة للعدد أ يضاف اليه 1 .
هذه هي نقطة الانطلاق ، التي سيبنى عليها البرنامج.
فقط للتذكير :
المنفذ :
port A يستعمل لاظهار الارقام.
المنفذ :
port B يستعمل لاختيار المرقّم الذي سيضاء.
أرجو ان يكون بالكم واسع.
و إلى موضوع آخر من هذه الساعة ، دمتم في رعاية الله.
<O