اطلاعیه

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