منتدى المشاريع و الدوائر الإلكترونية صناعة وتصميم وانشاء مشاريع و دوائر الكترونية

   

الصورة الرمزية soofeljean
soofeljean
:: مهندس متميز ::
تاريخ التسجيل: Jul 2004
المشاركات: 711
نشاط [ soofeljean ]
قوة السمعة:
قديم 22-07-2016, 06:45 PM المشاركة 1   
افتراضي طلب دائرة عداد يتم برمجته



الاخوة الخبراء

برجاء افادتنا عن دائرة اليكترونية تقوم بالعد الى غاية 100
ويمكن برمجتها لعدد معين 50 مثلا أو 60 ثم تعطي اشارة رست
ثم تعود للعد من جديد .

طريقة العد تأتيها اشارة من حساس ضوئي تمر امامه اشياء ويتم عدها بالدائرة

.

اعلانات

الصورة الرمزية حيدر علاج حسن
حيدر علاج حسن
:: مشرف منتدى الهندسة الكهربائية ::
تاريخ التسجيل: Mar 2005
الدولة: IRAQ
المشاركات: 9,848
نشاط [ حيدر علاج حسن ]
قوة السمعة:
قديم 23-07-2016, 12:15 AM المشاركة 2   
افتراضي


اذا كنت ستركب شاشة سفن سكمنت فمن الافضل استخدام البك ...

اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )

الصورة الرمزية عبدالله حجازى
عبدالله حجازى
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2011
الدولة: مصر .. محافظة دمياط
المشاركات: 1,682
نشاط [ عبدالله حجازى ]
قوة السمعة:
قديم 23-07-2016, 04:29 AM المشاركة 3   
افتراضي اللهم انفعنا بما علمتنا وعلمنا ما ينفعنا وزدنا علما


الاخوة الخبراء

برجاء افادتنا عن دائرة اليكترونية تقوم بالعد الى غاية 100
ويمكن برمجتها لعدد معين 50 مثلا أو 60 ثم تعطي اشارة رست
ثم تعود للعد من جديد .

طريقة العد تأتيها اشارة من حساس ضوئي تمر امامه اشياء ويتم عدها بالدائرة

.

دة نظام عداد .. كنت مصممه لماكينة قطاعة الخبز .. وهو يعد تصاعدى ... ويمكنك اختيار رقم معين يقف عندة العداد وايضاااا يوقف الأله .. أو المحرك لخط الإنتاج ... وايضاااا يحتفظ بالأرقام اللتى عدها فى حين انقطاع التيار .. وعند رجوع التيار يكمل العد من حيث وقف ...

اليك صورة عامة للنظام والدائرة ..








ودة الكود الخاص بالدائرة ..

كود:
  
 unsigned short mask(unsigned short num);
 unsigned int  a1=0,m1=0,e1=0,w1=0,k1=0;
//----------------------------------------------------------------------------------//
 void interrupt(){
  portb=1;
  portd=mask(a1);
  delay_ms(1);
  portb=2;
  portd=mask(m1);
  delay_ms(1);
  portb=4;
  portd=mask(e1);
  delay_ms(1);
  portb=8;
  portd=mask(w1);
  delay_ms(1);
  portb=16;
  portd=mask(k1);
  delay_ms(1);
  INTCON=0b00100000;
  TMR0=0;
 }
//----------------------------------------------------------------------------------//
  #define D9 porte.f2=1; delay_ms(200); porte.f2=1;
  #define D8 porta.f0=1; delay_ms(300); porta.f0=0;
  #define D7 porte.f1=1;delay_ms(1500);porte.f1=0;delay_ms(500);
  #define D6 porte.f1=1;delay_ms(40);porte.f1=0;
  #define D5  for(z=0;z<3;z++){porte.f1=1;delay_ms(350);  porte.f1=0;delay_ms(250);}
  #define D4  porte.f1=0;
  #define D3 for(x=0;x<20;x++){ porte.f1=1;delay_ms(60);porte.f1=0;delay_ms(60); }
  #define D2  porte.f1=1;delay_ms(70);porte.f1=0;
  #define D1  porte.f1=1;delay_ms(120);porte.f1=0;delay_ms(90);
  #define D0  a1=0;for(m=0;m<15;m++){ D2 }
  
  /*unsigned short byts = 255;
  unsigned short get_byts;
  char byts_get[255];*/
//---------------------&#207;&#199;&#225;&#201; &#199;&#225;&#200;&#209;&#228;&#199;&#227;&#204; &#199;&#225;&#209;&#195;&#237;&#211;&#237;&#201;---------------------------------------//
 
        void main(){
         int m=0;
         int x=0;
         int k=0;
         int z=0;
  OPTION_REG=0b10000101;
   INTCON=0b10100000;
     TMR0=217;
   trisb=0; portb=0;
   trisd=0; portd=0;
   trisc=1; portc=0;
   trisa=0; porta=0;
   trise=0; porte=0;
/*eeprom_write(0,0);
  eeprom_write(1,0);
  eeprom_write(2,0);
  eeprom_write(3,0);
  eeprom_write(4,0);
  eeprom_write(5,0);
  eeprom_write(6,0);
  eeprom_write(7,0);*/
//--------------------------------------------------------------------------------//
      a1 = eeprom_read(0);
      m1 = eeprom_read(1);
      e1 = eeprom_read(2);
      w1 = eeprom_read(3);
      k1 = eeprom_read(4);
            for(;;){
    if(portc.f5==1){D3  goto start;}
   if(a1>1){D5}
   if(a1==0){D1 delay_ms(400);goto loop;}
   if(portc.f5==1){D0 goto loop;}
   if(portc.f6==1){D5 a1=0,m1=0,e1=0,w1=0,k1=0;
   eeprom_write(0,0);       eeprom_write(1,0);
   eeprom_write(2,0);       eeprom_write(3,0);
   eeprom_write(4,0);               goto loop;
//----------------------------------------------------------------------------------//
 }
   /*else a1>1; goto loop;*/
 }
 //-------------&#221;&#228;&#223;&#212;&#228; &#199;&#206;&#202;&#200;&#199;&#209; &#227;&#221;&#202;&#199;&#205; &#202;&#212;&#219;&#237;&#225; &#199;&#225;&#200;&#209;&#228;&#199;&#227;&#204;-----------------------------------//
 
           D4
          loop:
         for(;;){
   if(portc.f5==1){D3  goto start;
 }
 }
 
//-----------------------------------------------------------------------------------//
/*for(x=0;x<15;x++){porte.f1=1;delay_ms(30); porte.f1=0;delay_ms(30); }*/
          start:
           D4
         porta.f0=1;
//-----  &#221;&#228;&#223;&#212;&#228; &#218;&#207;&#199;&#207; &#202;&#213;&#199;&#218;&#207;&#236; &#227;&#218; &#218;&#221;&#217;  &#222;&#237;&#227; &#199;&#225;&#227;&#202;&#219;&#237;&#209;&#199;&#202; &#221;&#236; &#208;&#199;&#223;&#209;&#201; &#199;&#225;&#209;&#230;&#227;  --------------------//

         for(;;){
  if(portc.f4==1){D9 D8 while(1){if(portc.f4==0){ a1++; eeprom_write(0,a1);goto start; }}}
  if(a1==10){ m1++;eeprom_write(1,m1) ;a1=0;delay_ms(1);}   /*eeprom_write //&#199;&#227;&#209; &#199;&#225;&#223;&#202;&#199;&#237;&#201; &#218;&#225;&#236; &#199;&#225;&#209;&#230;&#227;*/
  if(m1==10){ e1++;eeprom_write(2,e1) ;delay_ms(1);m1=0;}
  if(e1==10){ w1++;eeprom_write(3,w1) ;delay_ms(1);e1=0;}   /*m1 = eeprom_read(0);//&#199;&#227;&#209; &#199;&#225;&#222;&#209;&#195;&#201; &#227;&#228; &#199;&#225;&#209;&#230;&#227;*/
  if(w1==10){ k1++;eeprom_write(4,k1) ;delay_ms(1);w1=0;}
  if(k1==10){   a1=0,    m1=0,    e1=0,    w1=0,   k1=0;}
//---------   &#202;&#213;&#221;&#237;&#209; &#208;&#199;&#223;&#209;&#201; &#199;&#225;&#209;&#230;&#227;   --------------------------------------------------//

  //if(a1==0,m1==5){D6;}
  if(portc.f6==1){D0 delay_ms(3000); goto test; test: if(portc.f6==1){ // &#202;&#213;&#221;&#237;&#209; &#199;&#225;&#218;&#207;&#199;&#207;&#199;&#202; &#225;&#200;&#207;&#193; &#199;&#225;&#218;&#207; &#227;&#228; &#204;&#207;&#237;&#207;
    a1=0,m1=0,w1=0,e1=0,k1=0;
   eeprom_write(2,0);         eeprom_write(3,0);
   eeprom_write(1,0);         eeprom_write(0,0);
   eeprom_write(4,0);  porta.f0=0;  goto loop; }}
//----------------------&#221;&#228;&#223;&#212;&#228; &#225;&#202;&#212;&#219;&#237;&#225; &#199;&#225;&#227;&#230;&#202;&#230;&#209; &#230;&#199;&#237;&#222;&#199;&#221;&#201;   -----------------------------//
  if(portc.f5==1){delay_ms(220);k++;}
  if(k==2){delay_ms(220);porta.f0=1;}
  if(k==1){delay_ms(220);porta.f0=0;}
  if(k==3){k=0;}
//----------------------------------------------------------------------------------//

}
}
unsigned short mask(unsigned short num){
switch (num){

case 0 : return 0xC0;
case 1 : return 0xF9;
case 2 : return 0xA4;
case 3 : return 0xB0;
case 4 : return 0x99;
case 5 : return 0x92;
case 6 : return 0x82;
case 7 : return 0xF8;
case 8 : return 0x80;
case 9 : return 0x90;

}
}

تحياتى وانا متابع لو فى أى استفسار..


ماجد عباس محمد
:: نائب المشرف العام
::
تاريخ التسجيل: Jun 2009
الدولة: القاهرة - مصر
المشاركات: 11,652
نشاط [ ماجد عباس محمد ]
قوة السمعة:
قديم 23-07-2016, 01:28 PM المشاركة 4   
افتراضي


هذا التطبيق يمكن عمله بأى شيء دوائر رقمية أو أى ميكرو سواء C51 أو AVR أو بيك
هذه المتكاملة
http://www.datasheetspdf.com/datasheet/icm7217.html
يعطى 4 أرقام و قابلة للبرمجة و تعد فى الإتجاهين و يمكن تغيير الرقم فى اثناء العد


الصورة الرمزية soofeljean
soofeljean
:: مهندس متميز ::
تاريخ التسجيل: Jul 2004
المشاركات: 711
نشاط [ soofeljean ]
قوة السمعة:
قديم 23-07-2016, 07:54 PM المشاركة 5   
افتراضي


الاخ ماجد والاخ عبد الله
حياكما الله
في الحقيقة انا موديل قديم في الاليكترونيات ولقد تركت هذه المهنة منذ زمن وانا اعود اليها كهاوي أحيانا . واستطيع تركيب أي دائرة لو توفرت القطع وكذالك البحث عن الاعطال وتصليحها .


ولكن تعاملي مع الأيسيهات التي تتم برمجتها قبل التركيب هذه عندي فيها ضعف فلست ملما بها كثيرا ولذالك اطلب منكم توجيهي الى أي شروحات في الموقع بهذا الخصوص .


الصورة الرمزية soofeljean
soofeljean
:: مهندس متميز ::
تاريخ التسجيل: Jul 2004
المشاركات: 711
نشاط [ soofeljean ]
قوة السمعة:
قديم 23-07-2016, 07:58 PM المشاركة 6   
افتراضي


هذا التطبيق يمكن عمله بأى شيء دوائر رقمية أو أى ميكرو سواء C51 أو AVR أو بيك
هذه المتكاملة
http://www.datasheetspdf.com/datasheet/icm7217.html
يعطى 4 أرقام و قابلة للبرمجة و تعد فى الإتجاهين و يمكن تغيير الرقم فى اثناء العد
ياريت لو فيه شروحات عن الملون بالأحمر


هذه المتكاملة التي بالداتا شيت هل يتم تركيبها بالدائرة مباشرة
أم تحتاج لوضعها في مبرمجة ثم برمجتها ثم بعد ذالك تركيبها


ماجد عباس محمد
:: نائب المشرف العام
::
تاريخ التسجيل: Jun 2009
الدولة: القاهرة - مصر
المشاركات: 11,652
نشاط [ ماجد عباس محمد ]
قوة السمعة:
قديم 23-07-2016, 08:06 PM المشاركة 7   
افتراضي


ياريت لو فيه شروحات عن الملون بالأحمر
هذه المتكاملة التي بالداتا شيت هل يتم تركيبها بالدائرة مباشرة
أم تحتاج لوضعها في مبرمجة ثم برمجتها ثم بعد ذالك تركيبها
تركب بالدائرة و توصل بالسويتشات و هى تحمل دوما هذا العد من السويتشات و تعد بالزيادة أو النقصان
الدائرة فى الداتا شيت


الصورة الرمزية soofeljean
soofeljean
:: مهندس متميز ::
تاريخ التسجيل: Jul 2004
المشاركات: 711
نشاط [ soofeljean ]
قوة السمعة:
قديم 25-07-2016, 11:28 AM المشاركة 8   
افتراضي


تركب بالدائرة و توصل بالسويتشات و هى تحمل دوما هذا العد من السويتشات و تعد بالزيادة أو النقصان
الدائرة فى الداتا شيت
شكرا ياباش مهندس هذه هي الدائرة التي ابحث عنها



الساعة معتمدة بتوقيت جرينتش +3 الساعة الآن: 06:42 AM
موقع القرية الالكترونية غير مسؤول عن أي اتفاق تجاري أو تعاوني بين الأعضاء
فعلى كل شخص تحمل مسئولية نفسه إتجاه مايقوم به من بيع وشراء وإتفاق وأعطاء معلومات موقعه
التعليقات المنشورة لا تعبر عن رأي موقع القرية الالكترونية ولايتحمل الموقع أي مسؤولية قانونية حيال ذلك (ويتحمل كاتبها مسؤولية النشر)