مشروع أضواء مبرمجة متحركة بعدة نماذج والميكروكونترولر PIC12F675

استعرض الموضوع السابق استعرض الموضوع التالي اذهب الى الأسفل

مشروع أضواء مبرمجة متحركة بعدة نماذج والميكروكونترولر PIC12F675

مُساهمة من طرف Admin في الأحد مارس 06, 2016 10:44 pm

مشروع أضواء مبرمجة متحركة بعدة نماذج والميكروكونترولر PIC12F675 :
الدائرة الكهربية :




1- دالة الإعدادات و الدالة الرئيسية وداخلها الحلقة الغير منتهية ، نبدأ الحلقة الغير منتهية بقراءة الجهد التناظرى من على الطرف المتصل بطرف المقاومة المتغيرة GP0/AN0(pin 7) وتحويله إلى عدد من 0 إلى 1024 وحفظ هذه القيمة فى متغير باسم AD_Val  ، الخطوة التالية هى نسخ هذه القيمة إلى متغير عداد التأخير الزمنى وهو باسم Delay_Val  ، وذلك لتحديد سرعة العرض ، وهذا يعنى أنه يجب علينا إعلان هذه المتغيرات بنوع unsigned int فى بداية البرنامج وقبل استخدامها فى البرنامج الرئيسى .
2- فى نهاية البرنامج يتم تحديد دوال نماذج الإضاءة المطلوب عرضها ولتكن بالمسمى
.RunSeq_02(Wink,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();




  }
}

Admin
Admin

عدد المساهمات : 985
تاريخ التسجيل : 28/01/2014

معاينة صفحة البيانات الشخصي للعضو http://fathallaabdelaziz.forumarabia.com

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: مشروع أضواء مبرمجة متحركة بعدة نماذج والميكروكونترولر PIC12F675

مُساهمة من طرف Admin في الثلاثاء مارس 08, 2016 6:42 pm

المذبذب / الساعة
المذبذب / الساعة والتي توفر توقيت تعليمات PIC لا تحتاج إلى أن تكون مستقرة جدا ، ودائرة شبكة RC بسيطة (C1 / R14 + RV1) يكون فيها الكفايةومن ثم توفير الكريستال .
طرق التحكم فى سرعة الإضاءة : يوجد طريقتان
- من خلال مقاومة متغيرة RV1 توضع فى دائرة RC ، والتي تؤثر بشكل مباشر على التردد الأساسى لتوقيت تعليمات PIC .
- عن طريق البرنامج ، مع دالة بمتغير يتزايد عند كل مقاطعة بالمؤقت Timer 0 .
عمليا يتم وضع RV1 في وضع الوسط، ويتم ضبط السرعة عن طريق أزرار الضغط Speedup "تسريع" و SpeedDown

Admin
Admin

عدد المساهمات : 985
تاريخ التسجيل : 28/01/2014

معاينة صفحة البيانات الشخصي للعضو http://fathallaabdelaziz.forumarabia.com

الرجوع الى أعلى الصفحة اذهب الى الأسفل

استعرض الموضوع السابق استعرض الموضوع التالي الرجوع الى أعلى الصفحة


 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى