بسم الله الرحمن الرحيم
مراحل برمجة الميكروكنتروللر
مراحل برمجة الميكروكنتروللر
برمجة اي ميكروكنتروللر وبأية لغة برمجة كانت : اسمبلي او سي او بيزك ... تمر من مراحل أساسية ثلاث:
1- كتابة المسار الخطي flowchart , Organigramme يحدد مراحل تنفيذ برنامج تشغيل الميكروكنترولر.
2- إعداد ملف HEX : كتابة الكود وترجمته ببرنامج خاص( Compiler) بعد ضبط الاعدادات الضرورية
3- نقل الملف Hex الى شريحة المتحكم بواسطة برنامج خاص ومبرمجة مناسبة وجهاز حاسوب
1- كتابة المسار الخطي flowchart , Organigramme يحدد مراحل تنفيذ برنامج تشغيل الميكروكنترولر.
2- إعداد ملف HEX : كتابة الكود وترجمته ببرنامج خاص( Compiler) بعد ضبط الاعدادات الضرورية
3- نقل الملف Hex الى شريحة المتحكم بواسطة برنامج خاص ومبرمجة مناسبة وجهاز حاسوب
البرمجة ببرنامج Flowcode
في الموضوع التالي الذي سيغطي ان شاء الله عدة مشاركات ، سنتعرف على أسلوب جديد في البرمجة :
البرمجة بواسطة رموز وأشكال هندسية محددة واضحة الدلالة يحولها "فلوكود" الى تعليمات برمجية بلغة السي واسمبلي ثم Hex
هناك عدة برامج خاصة بهده الطريقة المتفردة من البرمجة ..من بينها برنامج Flowcode الذي بلغ درجة من التطور تشجع على اختياره لهذا الموضوع.
فلوكود برنامج يعلم البرمجة بأسلوب ميسر وفي نفس الوقت يمنح القدرة على إعداد و تنفيذ مشاريع متميزة وحقيقية بالميكروكنترولر ..
1/ تنصيب Flowcode V3 :
تنصبه كالمعتاد وتتابع بتنصيب المكمل PPPV3 (هنا)
لا تتجاوز هذه الخطوة بل اضغط على install PPP3.9 ثم تابع الخطوات المتبقية لاكمال التنصيب . و لتتأكد من تنصيب PPPV3
او لاعادة تنصيبه تتبع ما يلي (هنا)
2/ مشروع برمجة ب Flowcode :
المشروع التالي لا ينجز الكثير .. اشعال ليد بمجرد توصيل الدارة بالتغذية +5 فولت ..
الهدف منه تعليمي يتمثل في التعريف بخطوات بناء مشروع وخاصة:
* اختيار متحكم مناسب : PIC16F84A هذه المرة
* اختيار تردد مذبذب المتحكم : 4000.000 هرتز مثلا (كريستالة 4Mhz)
* ضبط الاعدادات الاولية المعروفة ب Configuration
ا- الدارة : PIC16F84a+ كريستالة 4Mhz (الدارة هنا) :
ب - أدوات العمل الاساسية :
نتعرف على ايقونات البرنامج الاساسية والمكونات والرموز من خلال الصورة (هنا)
ننشأ مجلدا جديدا ثم نتبع الخطوات :
ج- بناء المشروع :
1- اعدادات شريحة المتحكم الاولية: Configure
هي إعدادات ضرورية لتوليد ملفات هيكس صالحة لتنفيذ مشروع حقيقي .. (هنا)
2- اعداد برنامج اشعال الليد :
نتابع المراحل كالتالي (PDF هنا) ..
3- توليد ملف Hex:
انتهينا من التجربة على فلوكود ونريد الحصول على ملف Hex : نضغط على ايقونة Compile to Hex كما في الصورة (هنا).
-يفترض ان الاعدادات التالية قد تمت سابقا (هنا) وهو شرط نجاح البرمجة الفعلية .
ملاحظة:
-البرنامج المكمل PPPV3 هو من يمكنك (دون ان يظهر) من ضبط الاعدادات المذكورة وذلك عندما تضغط على ايقونة Chip ثم Configure
واذا لم يتعرف فلوكود على مكان PPPV3 ستظهر لك رسالة تحذيرية ( الصورة هنا)
المطلوب إذن: البحث في جهازك عن PPPV3 لادماجه مع فلوكود (الخطوات هنا) .
- للتذكير فإنك ستجد PPPV3 في جهازك شرط ان تكون قد نصبته سابقا مع فلوكود عندما طلب منك ذلك: install PPP3.9 (هنا) .
ملف المشروع :
(هنا)
البرمجة بواسطة رموز وأشكال هندسية محددة واضحة الدلالة يحولها "فلوكود" الى تعليمات برمجية بلغة السي واسمبلي ثم Hex
هناك عدة برامج خاصة بهده الطريقة المتفردة من البرمجة ..من بينها برنامج Flowcode الذي بلغ درجة من التطور تشجع على اختياره لهذا الموضوع.
فلوكود برنامج يعلم البرمجة بأسلوب ميسر وفي نفس الوقت يمنح القدرة على إعداد و تنفيذ مشاريع متميزة وحقيقية بالميكروكنترولر ..
1/ تنصيب Flowcode V3 :
تنصبه كالمعتاد وتتابع بتنصيب المكمل PPPV3 (هنا)
لا تتجاوز هذه الخطوة بل اضغط على install PPP3.9 ثم تابع الخطوات المتبقية لاكمال التنصيب . و لتتأكد من تنصيب PPPV3
او لاعادة تنصيبه تتبع ما يلي (هنا)
2/ مشروع برمجة ب Flowcode :
المشروع التالي لا ينجز الكثير .. اشعال ليد بمجرد توصيل الدارة بالتغذية +5 فولت ..
الهدف منه تعليمي يتمثل في التعريف بخطوات بناء مشروع وخاصة:
* اختيار متحكم مناسب : PIC16F84A هذه المرة
* اختيار تردد مذبذب المتحكم : 4000.000 هرتز مثلا (كريستالة 4Mhz)
* ضبط الاعدادات الاولية المعروفة ب Configuration
ا- الدارة : PIC16F84a+ كريستالة 4Mhz (الدارة هنا) :
ب - أدوات العمل الاساسية :
نتعرف على ايقونات البرنامج الاساسية والمكونات والرموز من خلال الصورة (هنا)
ننشأ مجلدا جديدا ثم نتبع الخطوات :
ج- بناء المشروع :
1- اعدادات شريحة المتحكم الاولية: Configure
هي إعدادات ضرورية لتوليد ملفات هيكس صالحة لتنفيذ مشروع حقيقي .. (هنا)
2- اعداد برنامج اشعال الليد :
نتابع المراحل كالتالي (PDF هنا) ..
3- توليد ملف Hex:
انتهينا من التجربة على فلوكود ونريد الحصول على ملف Hex : نضغط على ايقونة Compile to Hex كما في الصورة (هنا).
-يفترض ان الاعدادات التالية قد تمت سابقا (هنا) وهو شرط نجاح البرمجة الفعلية .
ملاحظة:
-البرنامج المكمل PPPV3 هو من يمكنك (دون ان يظهر) من ضبط الاعدادات المذكورة وذلك عندما تضغط على ايقونة Chip ثم Configure
واذا لم يتعرف فلوكود على مكان PPPV3 ستظهر لك رسالة تحذيرية ( الصورة هنا)
المطلوب إذن: البحث في جهازك عن PPPV3 لادماجه مع فلوكود (الخطوات هنا) .
- للتذكير فإنك ستجد PPPV3 في جهازك شرط ان تكون قد نصبته سابقا مع فلوكود عندما طلب منك ذلك: install PPP3.9 (هنا) .
ملف المشروع :
(هنا)
برامج التعلم:
تحتاج لبرنامجين للتعلم الاول أساسي وهو برنامج فلوكود للبرمجة والمحاكاة ..
والثاني مكمل وهو البرنامج الشهير بروتوس لرسم الدوائر الالكترونية ومحاكاتها..
لتنزيل فلوكود مباشرة اضغط هنا :
Flowcode PIC Free Demo
موقع Flowcode :
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]
والثاني مكمل وهو البرنامج الشهير بروتوس لرسم الدوائر الالكترونية ومحاكاتها..
لتنزيل فلوكود مباشرة اضغط هنا :
Flowcode PIC Free Demo
موقع Flowcode :
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]
PROTEUS برنامج محاكاة معروف في منتديات الالكترونيات فاذا بحثت عنه ستجده.. في جميع الاحوال يمكنك تحميل نسخة تجريبية (من موقع المنتج labcenter electronics ) ، على الاقل لفتح ملفاته (امتداد .dsn)
طريقة محاكاة دوائر الميكروكونترولر ببروتوس:
(هنا)
المتحكم : PIC16F84A
نوع المذبذب : كوارتز 4Mhz
1- الهدف :
توظيف رموز/ تعليمات المخارج التوقيت
استخدام مكون الليدات
2- ملف التطبيق- محتويات الملفات :
- رسمة الدارة
- ملف المشروع بفلوكود
- ملف شرح الخطوات بالصور
- ملف المحاكاة
تطبيق 1
فلاشر 01
فلاشر 01
المتحكم : PIC16F84A
نوع المذبذب : كوارتز 4Mhz
1- الهدف :
توظيف رموز/ تعليمات المخارج التوقيت
استخدام مكون الليدات
2- ملف التطبيق- محتويات الملفات :
- رسمة الدارة
- ملف المشروع بفلوكود
- ملف شرح الخطوات بالصور
- ملف المحاكاة
ملفات المحاكاة(هنا)
شرح بالصور ( PDF هنا )
فلاشر 02 :
المتحكم : PIC16F84A
نوع المذبذب : Crystal 4Mhz
1- الأهداف :
توظيف رمز /تعليمةالمخارج
توظيف رمز/تعليمة التوقيت
ربط مكون الليدات بالمنفذ "ب"
توظيف الماكرو
2- ملف التطبيق- محتويات الملف :
- رسمة الدارة
- ملف المشروع بفلوكود
- ملف شرح الخطوات بالصور
- ملف المحاكاة
الملف
(هنا)
عداد 0 الى 9 :انشاء variable وإجراء عمليات حسابية عليه
إدراج متغير (variable )وتوضيح علاقة المفهوم مع بنية PIC المادية .
شرح بالصور ( PDF هنا )
فلاشر 02 :
المتحكم : PIC16F84A
نوع المذبذب : Crystal 4Mhz
1- الأهداف :
توظيف رمز /تعليمةالمخارج
توظيف رمز/تعليمة التوقيت
ربط مكون الليدات بالمنفذ "ب"
توظيف الماكرو
2- ملف التطبيق- محتويات الملف :
- رسمة الدارة
- ملف المشروع بفلوكود
- ملف شرح الخطوات بالصور
- ملف المحاكاة
الملف
(هنا)
عداد 0 الى 9 :انشاء variable وإجراء عمليات حسابية عليه
إدراج متغير (variable )وتوضيح علاقة المفهوم مع بنية PIC المادية .
يؤكد كثيرون انه، بخلاف الاسمبلي الذي يفرض على متعلم البرمجة ان يلم بتفاصيل عمل المتحكم داخليا ، لا حاجة للمبرمج باللغات "عالية المستوى" مثل السي او البيزك في التعرف على "مكونات البيك الداخلية ولا سجلاته الا فيما ندر..
هؤلاء يعتبرون البيك مجرد "علبة سوداء" يكفي المبرمج التعامل مع اطرافها الخارجية دون الدخول في طريقة عمل البيك غالبا ..
كومبيليرات C او Basic تتكفل بالباقي .. هل هم على حق ؟ تلك قضية لا مجال لمناقشتها هنا ..
فلوكود يتبع نفس النهج ويحاول ان يغنيك عن الخوض في تفاصيل عمل البيك..لكن مع ذلك من رأيي الافضل التعرف على حد أدنى من الجانب النظري ما بقد يسهل الربط بين المفاهيم المجردة للبرنامج و بين المكونات الفيزيائية للعنصر بيك..
يتكون البيك (ليكن هذه المرة 16F84a) من "وحدة عمل" بها معالج و سجل العمل .W - اول حرف من work-وأدوات عمل متنوعة ثم "غرفة عمليات" وهذا ما يعنينا الآن:
"غرفة العمليات هذه هي مجموعة سجلات ذاكرة من نوع RAM (رام : ذاكرة تفقد محتوياتها بمجرد انقطاع جهد التغذية عنها ).
عدد هذه السجلات يختلف من بيك الى آخر وتفصيل ذلك في الداتا شيت ..
كما هو معروف، هناك نوعان من هذه السجلات في البيك:
1- سجلات عمل خاص ، بمعنى انها تكاد تكون خاصة بوحدة العمل داخل البيك ، ولا دخل يذكر للمبرمج فيها.
2- سجلات عمل عام ، ، سميت سجلات عامة لأنها متاحة "للعموم " أي نحن جماعة المبرمجين هواة وطلابا ومحترفين.. وهذه هي المعنية بالموضوع الحالي .. الواحد منها يسمى Variable في فلوكود وفي البرامج التي تقوم بعملية compilation أي تحويل برنامج مكتوب بلغة برمجة مثل C او PicBasic او غيرها ، إلى برنامج مكتوب بلغة اسمبلي (assembler)ثم في النهاية الى ملف هكس Hex وهو سلسلة من الأرقام ،كل رقم يفهمه البيك على انه أمر يتوجب عليه القيام به.
فما علاقة مفهوم "الارقام " وهو مفهوم مجرد لا وجود له إلا في تصورنا .. "الارقام " التي تعودنا على استعمالها في عد الأشياء و إحصائها، ما علاقتها بعنصر الكتروني كالبيك مثلا؟
وما هو السجل ؟ وماذا يمكن ان نفعل به؟
باختصار ودون الإغراق في تاريخ ظهور الالكترونيات الرقمية :
1) العلاقة المذكورة جاءت نتيجة الربط بين ملاحظتين أساسيتين :
الملاحظة الاولى: الكهرباء في عنصر الكتروني ما، اما ان تكون حاضرة او غائبة
فاذا كانت تغذية العنصر = 5 فولت مثلا.. فان حضور الجهد يعطي+5 فولت وغيابه يعطي 0 فولت .
الملاحظةالثانية: نظام العد الثنائي يتوفر على رمزين اثنين فقط هما : 0 و 1
بحيت ان أي رقم يكتب بنظام العد هذا ، لا يمكن ان يأخذ الا القيمة 0 او 1.. هكذا فان العدد 2 في النظام العشري (المألوف عند الانسان)
يكتب في النظام الثنائي (لغة الالة) : 10 او 0010 او 0000010 ..الأصفار على اليسار لا تزيد في الرصيد شيئا..
اذن : غياب الجهد يساوي 0 وحضوره يساوي +5 فولت (+V عموما)
نرمز لغياب الجهد ب 0 ولحضور ه ب 1 ونسمي الاول حالة منطقية 0 والثاني حالة منطقية 1.
من هنا فان مسجلا الكترونيا له 8 مخارج مثلا يتيح 3 امكانيات على الاقل:
ا- كل المخارج ليس بها أي جهد (متصلة بالارضي داخل العنصر الالكتروني) أي كلها = 0 فولت ، رمزها هو :
00000000 او 0
ب- بعضها به جهد +5 فولت والباقي 0 فولت ...مثلا:
10000100 ثنائي وهو ما يعادل 132 عشري.
ج- كلها بها جهد +5 فولت ورمزها سيكون 11111111 ثنائي وهو ما يعادل 255 عشري.
2) في البيك مجموعة مهمة من مثل هذه العناصر الالكترونية تعرف بالمسجلات ..يتألف كل مسجل من 8 "مواضع للخزن " ولكل موضع "طرف" يسمى bit ومجموع 8bits يسمى byte بالانجليزي او octet بالفرنسي ..
ويمكن ان ياخذ كل bit القيمة 5 فولت في حضور الجهد او 0 فولت في غابه (مع توصيله بالارضي طبعا) . يتميز كل سجل بكونه قادرا على الاحتفاظ بالجهد +5 فولت الذي يودع في احد او كل مواضعه الثمان . هو ببساطة ذاكرة الكترونية. اشياء معروفة لا جديد ..
تهمنا السجلات العامة .. فلوكود يسمي الواحد منها Variable
يمتلك 8 مواضع، معنى ذلك: 256 احتمال بما فيها الصفر :
من 0000000(0) الى 11111111 (255) .
في أي شيء ينفعنا سجل ما ؟
1- ذاكرة نضع فيها رقما ثنائيا معينا أي ترتيبا معينا للمخارج الثمانية .. ثم "نأمر" البيك بنقل هذا الترتيب بين 0 و1 (هذا الرقم الثنائي) الى المخارج B مثلا (PORTB) لتوصيلها بليدات او غير ذلك..
2- عداد counter ، كلما اضفنا عليه 1 يزيد ويكتب في خانة variable بهذه الصياغة:
Counter = counter + 1
3- اسم لطرف حددناه مدخلا ...
اضافة الى وجود سجلvariable وظف في البرنامج كعداد counter على النحو الذي تقدم معنا .. فان اهم ملاحظة هي كون البرنامج به حلقتان واحدة عامة لانهائية تجعل العد مفعلا باستمرار .. وثانية داخل الاولى مهمتها "حصر العداد في القيمة 9 حتى لايتجاوزها ..
ارجو من الله التوفيق
هؤلاء يعتبرون البيك مجرد "علبة سوداء" يكفي المبرمج التعامل مع اطرافها الخارجية دون الدخول في طريقة عمل البيك غالبا ..
كومبيليرات C او Basic تتكفل بالباقي .. هل هم على حق ؟ تلك قضية لا مجال لمناقشتها هنا ..
فلوكود يتبع نفس النهج ويحاول ان يغنيك عن الخوض في تفاصيل عمل البيك..لكن مع ذلك من رأيي الافضل التعرف على حد أدنى من الجانب النظري ما بقد يسهل الربط بين المفاهيم المجردة للبرنامج و بين المكونات الفيزيائية للعنصر بيك..
يتكون البيك (ليكن هذه المرة 16F84a) من "وحدة عمل" بها معالج و سجل العمل .W - اول حرف من work-وأدوات عمل متنوعة ثم "غرفة عمليات" وهذا ما يعنينا الآن:
"غرفة العمليات هذه هي مجموعة سجلات ذاكرة من نوع RAM (رام : ذاكرة تفقد محتوياتها بمجرد انقطاع جهد التغذية عنها ).
عدد هذه السجلات يختلف من بيك الى آخر وتفصيل ذلك في الداتا شيت ..
كما هو معروف، هناك نوعان من هذه السجلات في البيك:
1- سجلات عمل خاص ، بمعنى انها تكاد تكون خاصة بوحدة العمل داخل البيك ، ولا دخل يذكر للمبرمج فيها.
2- سجلات عمل عام ، ، سميت سجلات عامة لأنها متاحة "للعموم " أي نحن جماعة المبرمجين هواة وطلابا ومحترفين.. وهذه هي المعنية بالموضوع الحالي .. الواحد منها يسمى Variable في فلوكود وفي البرامج التي تقوم بعملية compilation أي تحويل برنامج مكتوب بلغة برمجة مثل C او PicBasic او غيرها ، إلى برنامج مكتوب بلغة اسمبلي (assembler)ثم في النهاية الى ملف هكس Hex وهو سلسلة من الأرقام ،كل رقم يفهمه البيك على انه أمر يتوجب عليه القيام به.
فما علاقة مفهوم "الارقام " وهو مفهوم مجرد لا وجود له إلا في تصورنا .. "الارقام " التي تعودنا على استعمالها في عد الأشياء و إحصائها، ما علاقتها بعنصر الكتروني كالبيك مثلا؟
وما هو السجل ؟ وماذا يمكن ان نفعل به؟
باختصار ودون الإغراق في تاريخ ظهور الالكترونيات الرقمية :
1) العلاقة المذكورة جاءت نتيجة الربط بين ملاحظتين أساسيتين :
الملاحظة الاولى: الكهرباء في عنصر الكتروني ما، اما ان تكون حاضرة او غائبة
فاذا كانت تغذية العنصر = 5 فولت مثلا.. فان حضور الجهد يعطي+5 فولت وغيابه يعطي 0 فولت .
الملاحظةالثانية: نظام العد الثنائي يتوفر على رمزين اثنين فقط هما : 0 و 1
بحيت ان أي رقم يكتب بنظام العد هذا ، لا يمكن ان يأخذ الا القيمة 0 او 1.. هكذا فان العدد 2 في النظام العشري (المألوف عند الانسان)
يكتب في النظام الثنائي (لغة الالة) : 10 او 0010 او 0000010 ..الأصفار على اليسار لا تزيد في الرصيد شيئا..
اذن : غياب الجهد يساوي 0 وحضوره يساوي +5 فولت (+V عموما)
نرمز لغياب الجهد ب 0 ولحضور ه ب 1 ونسمي الاول حالة منطقية 0 والثاني حالة منطقية 1.
من هنا فان مسجلا الكترونيا له 8 مخارج مثلا يتيح 3 امكانيات على الاقل:
ا- كل المخارج ليس بها أي جهد (متصلة بالارضي داخل العنصر الالكتروني) أي كلها = 0 فولت ، رمزها هو :
00000000 او 0
ب- بعضها به جهد +5 فولت والباقي 0 فولت ...مثلا:
10000100 ثنائي وهو ما يعادل 132 عشري.
ج- كلها بها جهد +5 فولت ورمزها سيكون 11111111 ثنائي وهو ما يعادل 255 عشري.
2) في البيك مجموعة مهمة من مثل هذه العناصر الالكترونية تعرف بالمسجلات ..يتألف كل مسجل من 8 "مواضع للخزن " ولكل موضع "طرف" يسمى bit ومجموع 8bits يسمى byte بالانجليزي او octet بالفرنسي ..
ويمكن ان ياخذ كل bit القيمة 5 فولت في حضور الجهد او 0 فولت في غابه (مع توصيله بالارضي طبعا) . يتميز كل سجل بكونه قادرا على الاحتفاظ بالجهد +5 فولت الذي يودع في احد او كل مواضعه الثمان . هو ببساطة ذاكرة الكترونية. اشياء معروفة لا جديد ..
تهمنا السجلات العامة .. فلوكود يسمي الواحد منها Variable
يمتلك 8 مواضع، معنى ذلك: 256 احتمال بما فيها الصفر :
من 0000000(0) الى 11111111 (255) .
في أي شيء ينفعنا سجل ما ؟
1- ذاكرة نضع فيها رقما ثنائيا معينا أي ترتيبا معينا للمخارج الثمانية .. ثم "نأمر" البيك بنقل هذا الترتيب بين 0 و1 (هذا الرقم الثنائي) الى المخارج B مثلا (PORTB) لتوصيلها بليدات او غير ذلك..
2- عداد counter ، كلما اضفنا عليه 1 يزيد ويكتب في خانة variable بهذه الصياغة:
Counter = counter + 1
3- اسم لطرف حددناه مدخلا ...
اضافة الى وجود سجلvariable وظف في البرنامج كعداد counter على النحو الذي تقدم معنا .. فان اهم ملاحظة هي كون البرنامج به حلقتان واحدة عامة لانهائية تجعل العد مفعلا باستمرار .. وثانية داخل الاولى مهمتها "حصر العداد في القيمة 9 حتى لايتجاوزها ..
ارجو من الله التوفيق
ملف التجربة
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]
ساعة رقمية LCD
المتحكم : PIC16F84A
المذبذب : كوارتز الساعات 32,768Khz
البرنامج مأخوذ من التطبيق TUT_22 المرافق لفلوكود..بعد إضافة تعديلات مهمة..
اذ كان لابد من اجراء تعديل في ماكرو مقاطعة تايمر البيك وبالضبط في اعدادات التدرج..
أضفت كذلك ماكرو ضبط الدقائق والساعات ليصبح البرنامج عمليا..
يمكن بسهولة الوقوف على هذه التعديلات بمقارنة البرنامج الاصلي مع المعدل..وهي فرصة لاجراء مزيد من التعديلات لمن يرغب ، امثلة:
اضافة ايام الاسبوع ، الشهر، السنة..
مؤقت تنبيه واحد او أكثر..
وغير ذلك..
ملف التجربة :
(هنا)
استعمال المكون ADC
مقياس حرارة
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]
ساعة رقمية LCD
المتحكم : PIC16F84A
المذبذب : كوارتز الساعات 32,768Khz
البرنامج مأخوذ من التطبيق TUT_22 المرافق لفلوكود..بعد إضافة تعديلات مهمة..
اذ كان لابد من اجراء تعديل في ماكرو مقاطعة تايمر البيك وبالضبط في اعدادات التدرج..
أضفت كذلك ماكرو ضبط الدقائق والساعات ليصبح البرنامج عمليا..
يمكن بسهولة الوقوف على هذه التعديلات بمقارنة البرنامج الاصلي مع المعدل..وهي فرصة لاجراء مزيد من التعديلات لمن يرغب ، امثلة:
اضافة ايام الاسبوع ، الشهر، السنة..
مؤقت تنبيه واحد او أكثر..
وغير ذلك..
ملف التجربة :
(هنا)
استعمال المكون ADC
مقياس حرارة
المتحكم : PIC16F877A
مثال عن طريقة الاستفادة من المكون ADC في برنامج Flowcode لقياس جهود غير رقمية (تناظرية - analog )
معلوم ان المدخل الرقمي في البيك لا يأخذ الا قيمتين :
القيمة 0 منطقي اي 0 فولت تقريبا
القيمة 1 منطقي اي جهد (5 فولت في الدارة ) ولا يستطيع التعرف على القيم التي تتوسط 0 و5 فولت ..
البيك PIC16F84a لا يتوفر على محول تناظري / رقمي لذلك تحولنا الى البيك PIC16F877a الذي يتوفر على هذه الميزة ..مما يسمح ببناء دارات قياس كمقياس الحرارة وقياس الجهد (فولتمتر) او شدة التيار (امبيرمتر) والتحكم في سرعة موتور بواسطة مقاومة متغيرة ...
اضافة مقاومة متغيرة سمحت بالاستفادة من التطبيق TUT_26 المرافق لفلوكود وتحويله لمقياس حرارة ، حتى يكون نموذجا لاستعمالات أخرى.
-----------------
اختبار التطبيق :
- افتح ملف فلوكود 3- غير، ان شئت، المتحكم منPIC16F88 الى PIC16F877a وسرعة تردد البيك .
- اضغط على الايقونة المناسبة لتوليد ملفات c وasm و HEX
- جرب عمل الدارة ببرنامج بروتوس بعدما تدمج فيه الملف HEX.
اضافات:
- المفاتيح (+و - ) على LM35 هي فقط مفاتيح افتراضية ، وتمكنك من تغيير درجة الحرارة للتجربة.
- المقاومة للضبط مرة واحدة : تمكنك من جعل الرقم المسجل على مجس الحرارة يتوافق مع درجة الحرارة المسجلة على شاشة العرض LCD
- يمكنك طبعا ان تتدخل كما تريد في برنامج فلوكود، مثال: إضافة كتابة معينة على الشاشة Lcd، وقد سبق شرح الطريقة ..
ملف التجربة:
هنا
الملفات السابقة
كانت من أجل تقديم فكرة
عن إمكانات برنامج فلوكود..
قبل الاسترسال سأنتظر تفاعل المهتمين به ..
وحده ذلك التفاعل من سيحدد مسار الموضوع
الى اللقاء..
هنا
الملفات السابقة
كانت من أجل تقديم فكرة
عن إمكانات برنامج فلوكود..
قبل الاسترسال سأنتظر تفاعل المهتمين به ..
وحده ذلك التفاعل من سيحدد مسار الموضوع
الى اللقاء..
عدل سابقا من قبل م/حسن المصري في الخميس 15 يناير - 11:11 عدل 2 مرات