اطلاعیه

Collapse
No announcement yet.

مشکل با آی سی 74c922 + عکس + پروتئوس و فایلهای پروژه

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

    مشکل با آی سی 74c922 + عکس + پروتئوس و فایلهای پروژه

    ُلام به همگی...

    چند روزی هست که بدلیل داشتن کمی وقت آزاد قصد داشتم پروژه ماشین حساب مهندسی رو طراحی کنم و خودتون هم میدونید که این دستگاه دکمه های زیادی داره و برای اینکار یکی از دوستان در همین انجمن یک آی سی به اسم 74C922 رو بمن معرفی کرد و منم در پروژه ام ازش استفاده کردم ولی مشکلی که دارم اینه که خروجی این آی سی مثل خروجی پوش باتن بطور لحظه ای نیست...یعنی اگر با زدن یک دکمه خروجی به مقداری مثل 0xf3 تغییر پیدا کنه تا زمانی که دکمه دیگری رو نزدیم این خروجی ثابت میمونه و مشکل منم دقیقا همینجاست...با ثابت موندن این مقدار نمایش اعداد روی GLCD بطور متوالی انجام میشه و اصلا متوقف نمیشه...

    ببینید...مشکل از دو جا میتونه باشه...یا از آی سی هست که من بلد نیستم خروجی اش رو مثل پوش باتن (( لحظه ای )) بکنم...

    یا از برنامه نویسی و حلقه While هست که باعث میشه اون خروجی تا بینهایت خونده بشه و باعث چاپ اعداد به مدت نامحدود بشه

    عکسی از پروتئوس پروژه رو میذارم تا بهتر ملتفت بشید:




    برنامه هم اینه:
    کد:
    #include <mega32.h>
    #include <delay.h>
    #include <math.h>
    #include <stdio.h>
    #include <glcd.h>
    #include <font5x7.h>
    
    unsigned char temp,result;
    char str;
    unsigned char keyreader(void);
    void main (void)
    {
    GLCDINIT_t glcd_init_data;
    
    PORTA=0x00;
    DDRA=0x00;
    PORTB=0x00;
    DDRB=0x00;
    PORTC=0xf0;
    DDRC=0x00;
    PORTD=0x00;
    DDRD=0x00;
    
    glcd_init_data.font=font5x7;
    
    glcd_init(&glcd_init_data);
    glcd_outtextxy(0,28,"SCIENTIFIC CALCULATOR"); 
    delay_ms(100);                        
    glcd_clear(); 
    while(1){ 
    keyreader();
    }
    }
    /////////////////////////////////////////
    ////////////////////////////////////////
    unsigned char keyreader(void)
    {
    temp = PINC;
    switch(temp)
    {
    case 0xff:
    result=1;
    sprintf(&str,"%d",result);
    delay_ms(5); 
    glcd_outtext(&str);
    break;
    ////////////////////////////////////////////////
    case 0xfb:
    result=2;
    sprintf(&str,"%d",result);
    delay_ms(5); 
    glcd_outtext(&str);
    break;
    ///////////////////////////////////////////////
    case 0xf7:
    result=3;
    sprintf(&str,"%d",result);
    delay_ms(5); 
    glcd_outtext(&str);
    break;
    ///////////////////////////////////////////////
    case 0xf3:
    result=4;
    sprintf(&str,"%d",result);
    delay_ms(5); 
    glcd_outtext(&str);
    break;
    //////////////////////////////////////////////
    case 0xfe:
    result=5;
    sprintf(&str,"%d",result);
    delay_ms(5); 
    glcd_outtext(&str);
    break;
    //////////////////////////////////////////////
    case 0xfa:
    result=6;
    sprintf(&str,"%d",result); 
    delay_ms(5);
    glcd_outtext(&str);
    break;
    /////////////////////////////////////////////
    case 0xf6:
    result=7;
    sprintf(&str,"%d",result); 
    delay_ms(5);
    glcd_outtext(&str);
    break;
    /////////////////////////////////////////////
    case 0xf2:
    result=8;
    sprintf(&str,"%d",result);
    delay_ms(5); 
    glcd_outtext(&str);
    break;
    ////////////////////////////////////////////
    case 0xfd:
    result=9;
    sprintf(&str,"%d",result); 
    delay_ms(5);
    glcd_outtext(&str);
    break;
    ////////////////////////////////////////////
    case 0xf9:
    result=0;
    sprintf(&str,"%d",result);
    delay_ms(5); 
    glcd_outtext(&str);
    break;
    ////////////////////////////////////////////
    }
    return result;
    }
    اینم کل فایلهای پروژه:

    http://uplod.ir/bh02av92cir5/scientific_calculator_avr.rar.htm

    امیدوارم مشکل من رو فهمیده باشید و یه کمکی هم بکنید....

    ممنون

    #2
    پاسخ : مشکل با آی سی 74c922 + عکس + پروتئوس و فایلهای پروژه

    منتظر پاسخ هستم....

    دیدگاه


      #3
      پاسخ : مشکل با آی سی 74c922 + عکس + پروتئوس و فایلهای پروژه

      فایل پروتئوستون را هم پلود کنید تا تستش کنم
      امام علي (عليه السلام) : الزکات العلم نشرهُ/ زکات علم نشر آن است

      دیدگاه


        #4
        پاسخ : مشکل با آی سی 74c922 + عکس + پروتئوس و فایلهای پروژه

        سلام
        برای استفاده درست از این آی سی باید پایه DA رو به اینتراپت میکرو وصل کنید. هر موقع که کلیدی فشرده بشه یه پالس به پایه DA ارسال میشه و تو زیربرنامه میتونید مقدار رو بخونید

        دیدگاه


          #5
          پاسخ : مشکل با آی سی 74c922 + عکس + پروتئوس و فایلهای پروژه

          بله دوستمون درست گفتن ، شما باید پایه DA رو به وفقه میکرو بدی و .... :nice:
          تیم کاوش در مسابقات بین المللی ایران اپن 2016.نمایشی.مین یاب.
          علم را باید در آزمایشگاه یاد گرفت نه در دانشگاه!

          دیدگاه


            #6
            پاسخ : مشکل با آی سی 74c922 + عکس + پروتئوس و فایلهای پروژه

            عذرخواهی میکنم، فایل پروتئوس را دیدم :mrgreen:

            اگه نمیخواهی به وقفه هم بدی مشکلی نیست
            پایه DA را بده به PC.4 (چرا زمینش کردی؟ ) و در حلقه while اصلی برنامه اینطوری بنویس
            کد:
            if(PINC.4)
            {
             keyreader();
            while(PINC.4);
            }
            موفق باشید
            امام علي (عليه السلام) : الزکات العلم نشرهُ/ زکات علم نشر آن است

            دیدگاه

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