اطلاعیه

Collapse
No announcement yet.

pic18f4431

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

    pic18f4431

    دوستان نیاز به اطلاعات کاملی از این میکرو دارم،در مورد A/D , interrupt, serial port لطفا کمکم کنید.راستی کدوم سایت این نوع میکرو رو داره؟؟؟
    صبرت که تمام شد نرو!
    "معرفت"
    تازه از آن لحظه آغاز می شود...

    #2
    پاسخ : pic18f4431

    دیتا شیتش مشخصاتش را نوشته از اینجا دانلود کن
    http://www.datasheetcatalog.com/datasheets_pdf/P/I/C/1/PIC18F4431.shtml

    هر قطعه ایی خواستید جهان کیت و جوان الکترونیک وارد میکنه اما جهان کیت قیمت مناسب تری میده نگران نبود قطعه ایی تو بازار نباشید
    High-Speed, 200 Ksps 10-bit A/D Converter:
    • Up to 9 channels

    • High current sink/source 25 mA/25 mA
    • Three external interrupts
    • Two Capture/Compare/PWM (CCP) modules:
    - Capture is 16-bit, max. resolution 6.25 ns (TCY/16)
    - Compare is 16-bit, max. resolution 100 ns (TCY)
    - PWM output: PWM resolution is 1 to 10 bits
    • Enhanced USART module:
    - Supports RS-485, RS-232 and LIN 1.2

    rs232 ,458 هم از اکثر پایه ههای میکرو میشه استفاده کرد نرم افزاریه
    همه دوست دارند به بهشت بروند اما جالب اینجاست کسی دوست ندارد بمیرد
    کانت

    دیدگاه


      #3
      پاسخ : pic18f4431

      ممنون از پاسختون شما برنامه نوشته شده و پروتئوس A/Dرو دارید؟یا یکی از برنامه های مرتبط با موضوعاتی که قبلا اشاره کردم؟ممنون میشم لطف کنید راهنمایی کنید
      صبرت که تمام شد نرو!
      "معرفت"
      تازه از آن لحظه آغاز می شود...

      دیدگاه


        #4
        پاسخ : pic18f4431

        نه متاسفانه با این میکرو کار نکردم
        همه دوست دارند به بهشت بروند اما جالب اینجاست کسی دوست ندارد بمیرد
        کانت

        دیدگاه


          #5
          پاسخ : pic18f4431

          نوشته اصلی توسط eshgh_namordeh
          هر قطعه ایی خواستید جهان کیت و جوان الکترونیک وارد میکنه اما جهان کیت قیمت مناسب تری میده نگران نبود قطعه ایی تو بازار نباشید
          دوست عزیز اطلاع دارید اگر اونجوری سفارش بدیم چند درصد به قیمت اصلی اضافه میشه؟
          چقدر طول میکشه قطعه رو بیارن؟
          دونه ای هم میشه سفارش داد؟

          دیدگاه


            #6
            پاسخ : pic18f4431

            نوشته اصلی توسط RoboRazi
            لطفا راهنمایییی کنید،خیلییییییی نیاز دارم
            میخوای چیکار کنی؟

            دیدگاه


              #7
              پاسخ : pic18f4431

              واسه یه پروژه س،باید این سه موردی A/D , interrupt, serial port رو روی بردبورد ببندم ونشون استادم بدم نیاز به برنامه ی MPLAB و Proteusدارم،لطف اگه ممکنه راهنمایی کنید
              صبرت که تمام شد نرو!
              "معرفت"
              تازه از آن لحظه آغاز می شود...

              دیدگاه


                #8
                پاسخ : pic18f4431

                اگر اصرار بر کامپایلر میکروچیپ داشته باشین،آموزش MPLAB تو بالای صفحه ی PIC هست.میتونه راهنمای خوبی باشه.

                اگر نه، هر کامپایلری میتونه باشه، میکروسی از همه ی کامپایلرهای موجود ساده تر و دارای Help قوی تری هست.

                CCS هم گزینه ی دیگه ای هست که در صورت لزوم میتونین برین سراغش.

                من با میکروسی بیشتر کار کردم،اگه کمکی لازم بود،بفرمایین.تا حد توانم راهنمایی تون میکنم.

                دیدگاه


                  #9
                  پاسخ : pic18f4431

                  دوستان من هم نیاز به این مدل دارم
                  اگر کسی خواست وارد کنه بنده 5 عدد میخوام
                  در بازارم موجود نیست
                  هرچه سعی کنیم لایه های نرم افزاری زیاد کرده و از سخت افزار دور کنیم مشکلات(باگ ها) کمتر خواهد شد(امنیت بیشتری خواهید داشت)
                  بهترین جواب دهنده برای سوال شما، خود شما هستید البته بعد تلاش،پشتکار و مطالعه بیشتر
                  میدونی مشکل ما کجاست؟سرمایه و مغز ها رو نمیتونیم یکجا جمع کنیم...

                  تعدادی ماژول GPS GP5MX1513F1 با بالاتریت حساسیت -170db به قیمت خرید بفروش میرسد

                  دیدگاه


                    #10
                    پاسخ : pic18f4431

                    من هم میخوام قیمتش حدودا چقدره ؟

                    دیدگاه


                      #11
                      پاسخ : pic18f4431

                      سلام

                      برنامه زیر تایمر 0 و وقفه مربوطه رو فعال میکنه و هر 100ms مقدار A/D رو میخونه و روی LCD نشون میده :


                      کد:
                      /*************************************************************
                      *           be name KHODA             *
                      *                              *
                      * 1391.6.25                         *
                      * s.ramezani.t@gmail.com                   *
                      *                              *
                      *                              *
                      * OSC = 20Mhz                        *
                      *                              *
                      **************************************************************/
                      
                      #include <p18f452.h>
                      #include <delays.h>
                      #include <stdio.h>
                      #include "XLCD/xlcd.h"
                      #include <adc.h>
                      #include <timers.h>
                      
                      
                      #pragma config OSC   = HS
                      #pragma config OSCS  = OFF
                      #pragma config PWRT  = ON
                      #pragma config BOR   = OFF
                      //#pragma config BORV  =
                      #pragma config WDT   = OFF
                      //#pragma config VDTPS  =
                      //#pragma config CCP2MUX =
                      //#pragma config STVR  =
                      #pragma config LVP   = OFF
                      #pragma config DEBUG  = OFF
                      
                      
                      #define LED     PORTEbits.RE0
                      #define LED_tris  TRISEbits.TRISE0
                      
                      #define clear_DIS 0x01
                      
                      #define LINE_1   0x80
                      #define LINE_2   0xC0
                      #define LINE_3   0x94
                      #define LINE_4   0xD4
                      
                      void high_isr (void) ;
                      
                      
                      unsigned int ADC_RD = 0 ;
                      char buf[20];
                      
                      /*============================*/
                      
                      #pragma code high_vector = 0x08
                      void interrupt_at_high_vector(void)
                      {
                      _asm GOTO high_isr _endasm
                      }
                      #pragma code /* return to the default code section */
                      
                      
                      
                      //#pragma code low_vector=0x18
                      //void interrupt_at_low_vector(void)
                      //{
                      //_asm GOTO low_isr _endasm
                      //}
                      //#pragma code /* return to the default code section */
                      
                      
                      /*============================*/
                      
                      
                      #pragma interrupt high_isr
                      void high_isr (void)
                      {
                        //if(INTCONbits.TMR0IF == 1){
                          LED =~ LED ;
                          T0CONbits.TMR0ON = 0;  // STOP TMR0  <<<<<<
                          ConvertADC();    // Start conversion
                          while( BusyADC() ); // Wait for completion
                          ADC_RD = ReadADC(); // Read result
                          WriteTimer0( 3036 ); // FOR 100ms -> 62500 CLK
                          T0CONbits.TMR0ON = 1;  // START TMR0  <<<<<<
                          INTCONbits.TMR0IF = 0 ; // interrupt EN
                        //}
                      }
                      
                      //#pragma interruptlow low_isr
                      //void low_isr (void)
                      //{
                      ///* ... */
                      //}
                      
                      
                      /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
                      
                      
                      
                      void main( void )
                      {
                      
                       TRISA = 0b00000001 ;
                       //TRISB = 0b00000000 ;
                       //TRISC = 0b00000000 ;
                       //TRISD = 0b00000000 ;
                       //TRISE = 0b00000000 ;
                       LED_tris = 0 ;
                      
                       Delay10KTCYx(250) ;
                      
                       /*-------------------*/
                      
                       OpenXLCD( FOUR_BIT & LINES_5X7 );
                      
                       OpenADC( ADC_FOSC_2 &
                            ADC_RIGHT_JUST &
                            ADC_1ANA_0REF,
                            ADC_CH0 &
                            ADC_INT_OFF );
                       
                       OpenTimer0( TIMER_INT_ON &
                             T0_16BIT &
                             T0_SOURCE_INT &
                             T0_PS_1_8 );
                      
                       T0CONbits.TMR0ON = 0;
                      
                      
                      
                       while( BusyXLCD() );
                       WriteCmdXLCD( DON & BLINK_OFF & CURSOR_OFF);
                       while( BusyXLCD() );
                       WriteCmdXLCD( clear_DIS ); //clear display
                      
                       Delay10KTCYx(250) ;
                      
                       while( BusyXLCD() );
                       WriteCmdXLCD( LINE_1 + 2 );
                       putrsXLCD( "be name KHODA" );
                      
                      
                       /*-------------------*/
                      
                       INTCONbits.GIE = 1 ;
                      
                       WriteTimer0( 3036 ); // FOR 100ms -> 62500 CLK
                       T0CONbits.TMR0ON = 1;
                      
                      
                       while(1)
                       {
                      
                        sprintf(buf,"ADC = %4d V", ADC_RD);
                      
                        while( BusyXLCD() );
                        WriteCmdXLCD( LINE_2 );
                        putsXLCD( buf );
                      
                       }
                      
                      }

                      اطلاعات بیشتر در :
                      http://www.eca.ir/forum2/index.php?topic=59815.0
                      نا اميدي يه دروغ بزرگه که آدما به خودشون ميگن
                      تلاش يه حقيقت بزرگه که با صبر به ثمر ميرسه

                      دیدگاه

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