اطلاعیه

Collapse
No announcement yet.

simple calculator

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

    simple calculator

    سلام .این برنامه باید به طور پیش فرض دو عدد را با هم جمع کند اگر دکمه زده شد تفریق و با هر بار زدن دکمه بین این دو حالت سوییچ کند. اعداد با دیپ سوییچ گرفته می شود .این برنامه کاملا آسونه ولی مشکل من اجرای برنامه روی برده.گاهی با زدن دکمه حالتش یک لحظه عوش می شه ولی دوباره به حالت قبلی بر میگرده در حالی که من میخوام تو حالت جدید بمونه،از نطر زمانی این برنامه رو چه طوری اصلاح کنم؟
    کد:
    [left]
    
    #include <mega32.h>
    #include <delay.h>
    
    int x=0;
    void main(void)
    {
    
    PORTA=0x00;
    DDRA=0xFF;
    
    
    PORTB=0xFF;
    DDRB=0x00;
    
    
    PORTC=0xFF;
    DDRC=0x00;
    PORTD=0xFF;
    DDRD=0x00;
    
    
    
    
    while (1)
       { if(!PINC.0)
          x=~x;
         if(!x)
          { PORTA=PINB+PIND;
          delay_ms(2000);
           }
        else if(x)
        {
           PORTA=PINB-PIND;
           delay_ms(2000);
           }
       
    
       };
    }
    [/left]

    #2
    پاسخ : simple calculator

    سلام
    هیچ وقت مستقیما پورتهای میکرو را در عملیاتهای ریاضی استفاده نمیکنند شما اول اون متغیرهایی را که روی پورت D و روی پورت B دارید را ابتدا در دو متغیر قرار بدهید و عملیات ریاضی را روی ان دو متغیر انجام دهید و سپس حاصل عملیات را هم در یک متغیر واسطه قرار دهید بعد آن را به پورت خروجی ببرید.
    par1=pind
    par2=pinb
    result=par1+par2
    portA=result

    دیدگاه

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