قسم الميكروكنترولر والروبوت ودوائر الاتصال بالحاسب الالي قسم المتحكمات الـ microcontroller و المعالجات microprocessor و التحكم الرقمي بالكمبيوتر CNC والانظمة الآلية والروبوت Robots

أدوات الموضوع

محمد_على
:: مهندس متواجد ::
تاريخ التسجيل: Nov 2013
المشاركات: 97
نشاط [ محمد_على ]
قوة السمعة:0
قديم 08-01-2018, 06:43 PM المشاركة 1   
افتراضي برجاء مساعدتى Twitter FaceBook Google+



برجاء مساعدتى ic pic 16f628a
انا عاوز اول ما اضغط على المفتاح rort a.f0
port b.f0 يشتغل 5 دقائق مع تشغيل الليد رقم.port b.f1
ولو ضغط تانى الزمن يزيد 5 دقائق مع تشغيل الليد الاول والثانىport b .f1,f2
ولو ضغطت ثالث مره الزمن يزيد ويبقى 15 دقيقه مع تشغيل الليد الاول والثانى والثالث port b .f1,f2,f3
ولو ضغت رابع مره يرجع لليد رقم واحد واول زمن 5 دقائق

اعلانات

محمد_على
:: مهندس متواجد ::
تاريخ التسجيل: Nov 2013
المشاركات: 97
نشاط [ محمد_على ]
قوة السمعة:0
قديم 09-01-2018, 06:22 PM المشاركة 2   
افتراضي


حتى الان لم يتم الرد

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

محمد إلياس
:: مهندس جيد ::
تاريخ التسجيل: Jan 2017
المشاركات: 230
نشاط [ محمد إلياس ]
قوة السمعة:0
قديم 11-01-2018, 07:20 AM المشاركة 3   
افتراضي


برجاء مساعدتى ic pic 16f628a
انا عاوز اول ما اضغط على المفتاح rort a.f0
port b.f0 يشتغل 5 دقائق مع تشغيل الليد رقم.port b.f1
ولو ضغط تانى الزمن يزيد 5 دقائق مع تشغيل الليد الاول والثانىport b .f1,f2
ولو ضغطت ثالث مره الزمن يزيد ويبقى 15 دقيقه مع تشغيل الليد الاول والثانى والثالث port b .f1,f2,f3
ولو ضغت رابع مره يرجع لليد رقم واحد واول زمن 5 دقائق
ربما لو وضعت محاولتك في كتابة الكود تحصل على استجابة أفضل من الأعضاء لمساعدتك.

احصائية الشكر والاعجاب - 1 شكراً, 0 عدم اعجاب, 1 اعجاب
شكراً ماجد عباس محمد ( شكر العضو على هذه المشاركة )
اعجاب ماجد عباس محمد ( أعجبته المشاركة )

magdy_3
:: مهندس متميز ::
تاريخ التسجيل: Aug 2006
الدولة: Philippines
المشاركات: 343
نشاط [ magdy_3 ]
قوة السمعة:0
قديم 12-01-2018, 12:36 AM المشاركة 4   
افتراضي


السلام عليكم ورحمة الله وبركاته
تفضل اخى العزيز



كود:
#define  led1    portb.f1
#define  led2    portb.f2
#define  led3    portb.f3
////////////////////////////
int i,x;
////////////////////////////
void interrupt(){
x+=1200;
if(x>3600)x=0;
if(x==1200)led1=1;
if(x==2400)led2=1;
if(x==3600)led3=1;
delay_ms(250);
intcon.f1=0;
                 }
/////////////////////////////
void main() {
portb=0;
trisb=1;
intcon=144;
option_reg=63;
while(1){x=0;
         delay_ms(250);
         for(i=0;i<x;i++)
             delay_ms(250);
         led1=0;
         led2=0;
         led3=0;
         }
             }
//////////////////////////////


التعديل الأخير تم بواسطة : magdy_3 بتاريخ 12-01-2018 الساعة 01:00 AM

borda
:: مهندس متواجد ::
تاريخ التسجيل: Mar 2007
المشاركات: 85
نشاط [ borda ]
قوة السمعة:0
قديم 12-01-2018, 06:29 AM المشاركة 5   
افتراضي



كود:
/*****************************************************************
PIC16f628A
Externally CRYSTAL 4000.000HZ
timer0

*******************************************************************/
unsigned short  Counter , minute, led=0 ;

//Timer0
//Prescaler 1:256; TMR0 Preload = 60; Actual Interrupt Time : 49.92 ms

//Place/Copy this part in declaration section
void InitTimer0(){
  OPTION_REG	 = 0x87;
  TMR0		 = 60;
  INTCON	 = 0xA0;
}


void Interrupt(){   //ISR
  if (TMR0IF_bit){
    TMR0IF_bit	 = 0;
    TMR0		 = 60;
  Counter++;  //  increment count
  }
}

void main() {


InitTimer0();

trisa.f0=1;    //pin input for button
trisb.f0=0;   // pin output for led_1
trisb.f1=0;   // pin output for led_2
trisb.f2=0;   // pin output for led_3
trisb.f3=0;   // pin output for led_4

portb.f0=0;   // led_1 is off
portb.f1=0;   // led_2 is off
portb.f2=0;   // led_3 is off
portb.f3=0;   // led_4 is off

while (1){



 if (Counter == 255)
 {
  Counter=0;minute++;  // 12.8  second
 }

 
       if (RA0_bit) {                    // button on RA0 pressed
      Delay_ms(600);
      Counter=0;
      minute=0;
      led++;
     }
      if (led == 1)

        {portb.f0=1;if(minute==24){led=0;}}   // led 1 on 5min
        
      if (led == 2)

        {portb.f0=1;portb.f1=1;if(minute==48){led=0;}}   // led 1&2 on 10min
        
      if (led == 3)

        {portb.f0=1;portb.f1=1;portb.f2=1;if(minute==72){led=0;}}   // led 1&2&3 on 15min
        
      if (led == 4)

        {portb.f0=1;portb.f1=1;portb.f2=1;portb.f3=1;if(minute==96){led=0;}}  // led 1&2&3&4 on 20min
        
      if (led == 5)
        {led = 1 ;portb.f1=0;portb.f2=0;portb.f3=0;}  // led 1 on 5min & led 2&3&4 off

       if(led==0)
       {portb.f0=0;portb.f1=0;portb.f2=0;portb.f3=0;} //  led 1&2&3&4 off
         


        }
}


التعديل الأخير تم بواسطة : borda بتاريخ 12-01-2018 الساعة 06:34 AM

محمد_على
:: مهندس متواجد ::
تاريخ التسجيل: Nov 2013
المشاركات: 97
نشاط [ محمد_على ]
قوة السمعة:0
قديم 12-01-2018, 03:10 PM المشاركة 6   
افتراضي


بارك الله فيك يا بشمهندس
borda


التعديل الأخير تم بواسطة : محمد_على بتاريخ 12-01-2018 الساعة 08:12 PM

محمد_على
:: مهندس متواجد ::
تاريخ التسجيل: Nov 2013
المشاركات: 97
نشاط [ محمد_على ]
قوة السمعة:0
قديم 12-01-2018, 03:13 PM المشاركة 7   
افتراضي


بارك اللف فيك يا بشمهندس مجدى بس انا اضفت التعديلات اللى انا كنت عاوزها بس انا مش عارف ارفع الصوره بس كتبت الكود المعدل وانا هقدر اغير الزمن ومستنتى راى حضرتك



#define led1 portb.f1
#define led2 portb.f2
#define led3 portb.f3
////////////////////////////
int i,x;
////////////////////////////
void interrupt(){
x+=100;
if(x>500)x=0;
if(x==100){led1=1;
portb.f2=1;
}

if(x==200){led1=1;
portb.f3=1;
}

if(x==300){led1=1;
portb.f3=1;
}

delay_ms(250);
intcon.f1=0;
}
/////////////////////////////
void main() {
portb=0;
trisb=1;
intcon=144;
option_reg=63;
while(1){x=0;
delay_ms(250);
for(i=0;i<x;i++)
delay_ms(250);
led1=0;
led2=0;
led3=0;
}
}


التعديل الأخير تم بواسطة : محمد_على بتاريخ 12-01-2018 الساعة 08:11 PM

magdy_3
:: مهندس متميز ::
تاريخ التسجيل: Aug 2006
الدولة: Philippines
المشاركات: 343
نشاط [ magdy_3 ]
قوة السمعة:0
قديم 12-01-2018, 08:11 PM المشاركة 8   
افتراضي


بارك اللف فيك يا بشمهندس بس انا اضفت التعديلات اللى انا كنت عاوزها بس انا مش عارف ارفع الصوره بس كتبت الكود المعدل وانا هقدر اغير الزمن ومستنتى راى حضرتك



#define led1 portb.f1
#define led2 portb.f2
#define led3 portb.f3
////////////////////////////
int i,x;
////////////////////////////
void interrupt(){
x+=100;
if(x>500)x=0;
if(x==100){led1=1;
portb.f2=1;
}

if(x==200){led1=1;
portb.f3=1;
}

if(x==300){led1=1;
portb.f3=1;
}

delay_ms(250);
intcon.f1=0;
}
/////////////////////////////
void main() {
portb=0;
trisb=1;
intcon=144;
option_reg=63;
while(1){x=0;
delay_ms(250);
for(i=0;i<x;i++)
delay_ms(250);
led1=0;
led2=0;
led3=0;
}
}
السلام عليكم
اخى العزيز انت عدلت فى قيمة x وده هيغير قيمة الوقت من 5 دقائق الى 25 ثانية
وانت طلبت ان الوقت يكون 5 دقائق فلماذا عدلته اذن

إضافة رد

العلامات المرجعية

«     الموضوع السابق       الموضوع التالي    »
أدوات الموضوع

الانتقال السريع إلى


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

Powered by vBulletin® Version 3.8.6, Copyright ©2000 - 2025