اطلاعیه

Collapse
No announcement yet.

تحلیل برنامه تایمر صفر تا 999

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    تحلیل برنامه تایمر صفر تا 999

    دوستان سلام این برنامه یه قسمتیشو نمیتونم تحلیل کنم .
    چطوری کار می کنه؟خط های قرمز




    #include <mega8.h>
    #include <delay.h>
    void main(){
    int a;
    char n0,n1,n2,n3,n4,n5;
    DDRD.0=0;
    DDRD.1=0;
    DDRD.2=0;
    DDRB=0XFF; //
    DDRC=0X0F;
    //DDRB.0=1;
    //DDRB.1=1;

    while(1){

    if(PIND.1==0) a=0; //counter reset

    if(PIND.0==1){ //counter
    a++;
    n0=a%10;
    n1=a/10;
    n2=n1%10;
    n3=n1/10;
    n4=n2<<4;
    n5=n4|n0;
    PORTB=n5;
    PORTC=n3;

    delay_ms(80);

    while(a==999) {
    a=0;
    delay_ms(1000);

    while(PIND.2==1){
    break;
    }
    }
    }
    }
    }


    "زمان خط است نه دايره" چه ايده بدي بوده گرد ساختن ساعت. احساس ميکني هميشه فرصت تکرار است.
    ساعت دروغ ميگويد. دروغ. زمان بر گرد يک دايره نمي چرخد! زمان بر روي خطي مستقيم ميدود. و هيچگاه، هيچگاه، هيچگاه باز نميگردد.
    ساعت خوب، ساعت شني است! هر لحظه به تو يادآوري ميکند که دانه اي که افتاد ديگر باز نميگردد.
    پس بهتره يکم به ثانيه هايي که داريم فکر کنيم تا به راحتي از دستشون نديم....

    #2
    پاسخ : تحلیل برنامه تایمر صفر تا 999

    اگر منظور شما تحلیل برنامه هست که بحثش جداست ولی اگر همون چند خطو مخوای لازم هست که شما دستورات محاساتی و منطقی زبان c رو مطالعه کنی ولی در کل به این شکل هست:
    خط اول باقیمانده a تقسیم بر 10 رو در n0 ذخیره میکنه
    خط دوم خارج قسمت a تقسیم بر 10 رو در n1 ذخیره میکنه
    خط سوم و چهارم مثل خطهای اول و دوم هست
    خط پنجم n2 رو 4 بار به چپ شیفت میده و در n4 ذخیره میکنه
    خط ششم n0 و n4 با هم OR و در n5 ذخیره میکنه
    خط هفتم و هشتم مقادیری رو در پورت های مربوطه ذخیره میکنه

    دیدگاه

    لطفا صبر کنید...
    X