مشروع أضواء مبرمجة متحركة بعدة نماذج والميكروكونترولر 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

عدد المساهمات : 1003
تاريخ التسجيل : 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

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

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

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

الرجوع الى أعلى الصفحة


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