مشروع أضواء مبرمجة متحركة بعدة نماذج والميكروكونترولر PIC12F675
منتديات الهندسة الكهربية والإلكترونية والميكاترونكس والكومبيوتر :: الميكروكونترولر PIC والبرجة بلغة السى والمترجم مسكروسى برو :: الميكروكونترولر PIC والبرمجة بلغة السى والمترجم ميكروسى برو
صفحة 1 من اصل 1
مشروع أضواء مبرمجة متحركة بعدة نماذج والميكروكونترولر PIC12F675
مشروع أضواء مبرمجة متحركة بعدة نماذج والميكروكونترولر PIC12F675 :
الدائرة الكهربية :
1- دالة الإعدادات و الدالة الرئيسية وداخلها الحلقة الغير منتهية ، نبدأ الحلقة الغير منتهية بقراءة الجهد التناظرى من على الطرف المتصل بطرف المقاومة المتغيرة GP0/AN0(pin 7) وتحويله إلى عدد من 0 إلى 1024 وحفظ هذه القيمة فى متغير باسم AD_Val ، الخطوة التالية هى نسخ هذه القيمة إلى متغير عداد التأخير الزمنى وهو باسم Delay_Val ، وذلك لتحديد سرعة العرض ، وهذا يعنى أنه يجب علينا إعلان هذه المتغيرات بنوع unsigned int فى بداية البرنامج وقبل استخدامها فى البرنامج الرئيسى .
2- فى نهاية البرنامج يتم تحديد دوال نماذج الإضاءة المطلوب عرضها ولتكن بالمسمى
.RunSeq_02(,RunSeq_01();,… RunSeq_00();, وهذا يستلزم إنشاء دالة التأخير المتغير بالمسمى Delay(); ثم دالة مستقلة لكل نموذج ، ومن ثم يكون البرنامج بالشكل التالى يلى :
الدائرة الكهربية :
1- دالة الإعدادات و الدالة الرئيسية وداخلها الحلقة الغير منتهية ، نبدأ الحلقة الغير منتهية بقراءة الجهد التناظرى من على الطرف المتصل بطرف المقاومة المتغيرة GP0/AN0(pin 7) وتحويله إلى عدد من 0 إلى 1024 وحفظ هذه القيمة فى متغير باسم AD_Val ، الخطوة التالية هى نسخ هذه القيمة إلى متغير عداد التأخير الزمنى وهو باسم Delay_Val ، وذلك لتحديد سرعة العرض ، وهذا يعنى أنه يجب علينا إعلان هذه المتغيرات بنوع unsigned int فى بداية البرنامج وقبل استخدامها فى البرنامج الرئيسى .
2- فى نهاية البرنامج يتم تحديد دوال نماذج الإضاءة المطلوب عرضها ولتكن بالمسمى
.RunSeq_02(,RunSeq_01();,… RunSeq_00();, وهذا يستلزم إنشاء دالة التأخير المتغير بالمسمى Delay(); ثم دالة مستقلة لكل نموذج ، ومن ثم يكون البرنامج بالشكل التالى يلى :
- الكود:
//light chaser
//PIC12F675, Internal clock , MCLR disabled
http://Eng.F.Abdelaziz 6/3/2016
// variables
unsigned int AD_Val,Delay_Val ,i;
///////variable delay function/////////////
void Delay(){
for(i=0;i<=Delay_Val;i++){
Delay_us(1000); // 0 to 1023ms as Delay_Val=AD_Val
}
}
//////////////////////
void Init(){
TRISIO=0b00001001; //GP3can't be an output - always input
CMCON = 0b00000111; // comparators OFF
ANSEL = 0b00000001; // AN0 only is enabled (last 4 bits are enable bits {AN3:AN0}
GPIO = 0b00000000;
}
///////////////////////////////////////////////////
//////////////////////////////////////////////////
void RunSeq_00()
{
GPIO = 0b00110110;
Delay();
GPIO = 0b00000000;
Delay();
}
////////////////////
void RunSeq_01()
{
//.................
}
////////////////////
void RunSeq_02()
{
//....................
}
////////////////////////
void RunSeq_03()
{
//...............
}
///////////////////////
void RunSeq_04()
{
//.................
}
////////////////
void RunSeq_05()
{
//....................
}
//////////////////
void RunSeq_06()
{
//................
}
/////////////////
void RunSeq_07()
{
//..................
}
////////////////
void RunSeq_08()
{
///////////////////
}
//////////////////////
void RunSeq_09()
{
//..................
}
///////////////////
void RunSeq_10()
{
//...................
}
///////////////////
// main program
void main()
{
Init();
while(1)
{
AD_Val = ADC_Read(0);
Delay_Val = AD_Val ;
RunSeq_00();
RunSeq_01();
RunSeq_02();
RunSeq_03();
RunSeq_04();
RunSeq_05();
RunSeq_06();
RunSeq_07();
RunSeq_08();
RunSeq_09();
RunSeq_10();
}
}
رد: مشروع أضواء مبرمجة متحركة بعدة نماذج والميكروكونترولر PIC12F675
المذبذب / الساعة
المذبذب / الساعة والتي توفر توقيت تعليمات PIC لا تحتاج إلى أن تكون مستقرة جدا ، ودائرة شبكة RC بسيطة (C1 / R14 + RV1) يكون فيها الكفايةومن ثم توفير الكريستال .
طرق التحكم فى سرعة الإضاءة : يوجد طريقتان
- من خلال مقاومة متغيرة RV1 توضع فى دائرة RC ، والتي تؤثر بشكل مباشر على التردد الأساسى لتوقيت تعليمات PIC .
- عن طريق البرنامج ، مع دالة بمتغير يتزايد عند كل مقاطعة بالمؤقت Timer 0 .
عمليا يتم وضع RV1 في وضع الوسط، ويتم ضبط السرعة عن طريق أزرار الضغط Speedup "تسريع" و SpeedDown
المذبذب / الساعة والتي توفر توقيت تعليمات PIC لا تحتاج إلى أن تكون مستقرة جدا ، ودائرة شبكة RC بسيطة (C1 / R14 + RV1) يكون فيها الكفايةومن ثم توفير الكريستال .
طرق التحكم فى سرعة الإضاءة : يوجد طريقتان
- من خلال مقاومة متغيرة RV1 توضع فى دائرة RC ، والتي تؤثر بشكل مباشر على التردد الأساسى لتوقيت تعليمات PIC .
- عن طريق البرنامج ، مع دالة بمتغير يتزايد عند كل مقاطعة بالمؤقت Timer 0 .
عمليا يتم وضع RV1 في وضع الوسط، ويتم ضبط السرعة عن طريق أزرار الضغط Speedup "تسريع" و SpeedDown
مواضيع مماثلة
» تطبيق على المقاطعة الخارجية : برنامج أضواء متحركة بنماذج متعددة :
» الموسوعة الشاملة للدوائر العملية المبسطة :مؤقتات-عدادات-أضواء متحركة-مبينات-حساسات .
» مراجعة برمجة الميكروكونترولر PIC من خلال مشاريع الميكروكونترولر PIC16F877A مع الدايودات المشعة للضوء والمترجم ميكروسى برو :
» مشروع أضواء متلاحقة 8 مخارج متعدد النماذج والسرعات ، بسيط وذهيد ياستخدام الميكروكونترولر PIC16F628A
» المشاريع المتوسطة : 1- مشروع عداد السرعة "التاكوميتر" Tachometer باستخدام الميكروكونترولر PIC
» الموسوعة الشاملة للدوائر العملية المبسطة :مؤقتات-عدادات-أضواء متحركة-مبينات-حساسات .
» مراجعة برمجة الميكروكونترولر PIC من خلال مشاريع الميكروكونترولر PIC16F877A مع الدايودات المشعة للضوء والمترجم ميكروسى برو :
» مشروع أضواء متلاحقة 8 مخارج متعدد النماذج والسرعات ، بسيط وذهيد ياستخدام الميكروكونترولر PIC16F628A
» المشاريع المتوسطة : 1- مشروع عداد السرعة "التاكوميتر" Tachometer باستخدام الميكروكونترولر PIC
منتديات الهندسة الكهربية والإلكترونية والميكاترونكس والكومبيوتر :: الميكروكونترولر PIC والبرجة بلغة السى والمترجم مسكروسى برو :: الميكروكونترولر PIC والبرمجة بلغة السى والمترجم ميكروسى برو
صفحة 1 من اصل 1
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى