اطلاعیه

Collapse
No announcement yet.

ماشین حساب

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

    ماشین حساب

    سلام خدمت دوستان
    من یه برنامه کی÷د دارم که میخوام تبدیل به ماشین حسابش کنم
    فعلا تنها کاری کردم اینه که قسمتی رو که اعداد رو میگیره درست کردم به این صورت که اعداد رو که یکی یکی وارد میکنیم عدد چند رقمی نمایش بده اما مشکل اینه که دونه دونه اعداد رو نمایش میده اما وقتی یه متغیر جدیدی تعریف کردم که بیاد اعداد رو توی توان 10شون ضرب کنه و با هم جمع کنه و عدد چند رقمی بهوم بده هیچی نشون نمیده این کد برناممه اگر میشه بهش یه نگاه بندازید قسمت کامنت دار قسمتیه که اجرا نمیشه
    unsigned int keys[4][4] = {{1,4,7,10},{2,5,8,0},{3,6,9,11},{12,13,14,15}} ;
    کد:
    while (1)
       {
       
       unsigned char data,h,a[40],temp;
       int i,power=-1,ent_num=0,num_key[40];
       //num_key[power] = 0xff ;
      
       do
        {
        power++;
        num_key[power] = 0xff ; 
        delay_ms(1000);
        while(num_key[power] == 0xff)
     {
     
     
        temp = 0x70;
        h = 0x80 ;
        for(i = 0 ; i < 4 ; i++)
        {
        PORTA = temp ;
        delay_ms(10) ;
        data =PINA & 0x0f ;
        if(data == 0x07)
         num_key[power] = keys[0][i] ;
        if(data == 0x0b)
         num_key[power] = keys[1][i] ;
        if(data == 0x0d)
         num_key[power] = keys[2][i] ;
        if(data == 0x0e)
         num_key[power] = keys[3][i] ;
        temp =(long) 255-(h/(pow(2,i+1))) ;
        }     
        
        
          
        /*if(num_key[power] != 0xff)
        { 
         break ;
         }*/
         
     }
     
        delay_ms(1000);
        lcd_clear();
        lcd_gotoxy(0,0);
        sprintf(a,"key=%d",num_key[power]);
        lcd_puts(a);
        
        
        } while(num_key[power]!= 10);
        //delay_ms(1000);
        for(i=0;i<power;i++) //az inja dige kar nemikone
        {
        ent_num+=num_key[i]*(pow(10,(power-1-i)));
        }
           delay_ms(300);
        lcd_clear();
        lcd_gotoxy(0,0);
        sprintf(a,"key=%d",ent_num);
        lcd_puts(a);
        delay_ms(3000);
         lcd_clear();

    #2
    پاسخ : ماشین حساب

    هیچ کس هیچ نظری نداره؟ ):

    دیدگاه


      #3
      پاسخ : ماشین حساب

      سلام
      بنظر میاد برنامه keypad مشکل داره.البته شاید هم درست باشه! اما این فایلی که شما اینجا گذاشتی.....
      بهتره کلش رو یذاری.
      در ضمن من اینجا یه LIB برای keypad گذاشتم که استفاده از اون کارت رو راحت تر میکنه.
      http://www.iranled.com/forum/showthread.php?tid=9744&pid=60522#pid60522
      تشکر لازم نیست!

      دیدگاه

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