اطلاعیه

Collapse
No announcement yet.

دستور آنالوگ به دیجیتال کردن 12F629 چیه؟

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

    دستور آنالوگ به دیجیتال کردن 12F629 چیه؟

    سلام و خسته نباشید

    توی آی سی 12F675 با دستور ANSEL پورت ها از حالت پیش فرض آنالوگ به دیجیتال تغییر میکنن ولی این برای 629 عمل نمیکنه و ظاهرا پورتهای 12F629 پیش فرض آنالوگن !

    از دوستانی که اطلاع دارن خواهش میکنم راهنماییم کنن ( اینم اضافه کنم که من تازه کارم . :redface

    #2
    پاسخ : دستور آنالوگ به دیجیتال کردن 12F629 چیه؟

    نوشته اصلی توسط ms1003
    توی آی سی 12F675 با دستور ANSEL پورت ها از حالت پیش فرض آنالوگ به دیجیتال تغییر میکنن ولی این برای 629 عمل نمیکنه و ظاهرا پورتهای 12F629 پیش فرض آنالوگن !
    در هر دو میکرو نام برده پین های GP0 و GP1 به مقایسه کننده آنالوگ اختصاص دارند. برای اینکه به حالت دیجیتال تغییر کنند باید عدد 7 رو در رجیستر CMCON قرار بدید تا سه بیت کم ارزش این رجیستر مقدار 1 بگیرند. به این ترتیب پین ها به ورودی خروجی دیجیتال اختصاص پیدا میکنند.
    برای PIC12F675 به غیر از مورد بالا باید هر کدام از چهار بیت کم ارزش رجیستر ANSEL که به پین مورد نظر شما مربوط است رو برابر صفر قرار بدید.

    دیدگاه


      #3
      پاسخ : دستور آنالوگ به دیجیتال کردن 12F629 چیه؟

      نوشته اصلی توسط e.fazli
      در هر دو میکرو نام برده پین های GP0 و GP1 به مقایسه کننده آنالوگ اختصاص دارند. برای اینکه به حالت دیجیتال تغییر کنند باید عدد 7 رو در رجیستر CMCON قرار بدید تا سه بیت کم ارزش این رجیستر مقدار 1 بگیرند. به این ترتیب پین ها به ورودی خروجی دیجیتال اختصاص پیدا میکنند.
      برای PIC12F675 به غیر از مورد بالا باید هر کدام از چهار بیت کم ارزش رجیستر ANSEL که به پین مورد نظر شما مربوط است رو برابر صفر قرار بدید.
      سلام و تشکر بابت پاسختون

      پس یعنی فقط پین های GP0 و GP1 پیش فرض آنالوگن؟

      اگه فرصت دارید برای یه برنامه تایمر با ورودی GP0 و خروجی GP1 یه مثال بزنید. زمان هم هر چی خواستید...
      باز هم ممنونم.

      دیدگاه


        #4
        پاسخ : دستور آنالوگ به دیجیتال کردن 12F629 چیه؟

        به صورت پیشفرض پین های GP0 و GP1 به عنوان ورودی های مقایسه کننده آنالوگ و GP2 به عنوان خروجی مقایسه کننده تعریف شده اند. در PIC12F629 چون مبدل آنالوگ به دیجیتال وجود ندارد بنابر این رجیستر ANSEL هم وجود ندارد ولی برای PIC12F675 باید این رجیستر را برابر 0 قرار بدید.
        یک مثال با تایمر1:
        کد:
        
        ///////////////////////////
        void interrupt isr(void)
        {
        
        
        if(TMR1IF)
        {
        GPIO1=1;
        TMR1IF=0;
        }
        
        
        }
        
        ///////////////////////////
        
        void main(void)
        {
        
        
        ANSEL=0xf0;// Digital I/O (PIC12F675 only.)
        CMCON=0x07; // Comparator Off
        
        GPIO=0x00;
        TRISIO=0xfd;// GPIO0=input , GPIO1=output
        WPU=0x01; // enable GPIO0 pin pull-up
        
        while(1)
        {
        
        if(!GPIO0) // if GPIO0=0 then run timer1
        {
        
        while(!GPIO0);
        
        TMR1IF=0; //clear timer1 interrupt flag 
        GIE=1;
        PEIE=1;
        TMR1IE=1; //enable timer1 interrupt 
        TMR1L=0x00;
        TMR1H=0x00;
        T1CON=0x31; // run timer1 with prescale=8
        
        }
        
        }
        
        }
        //////////////////////

        دیدگاه


          #5
          پاسخ : دستور آنالوگ به دیجیتال کردن 12F629 چیه؟

          یک دنیا ممنون از وقتی که گذاشتید بابت پاسخ به من :rolleyes:

          یه مقدار بررسی عملی بکنم تا حساب کار دستم بیاد ، بعدش اگه سوالی بود مزاحمتون میشم :redface:

          دیدگاه

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