اطلاعیه

Collapse
No announcement yet.

راه اندازی پورت سریال در MPLAB

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

    راه اندازی پورت سریال در MPLAB

    سلام
    آقا برنامه رو به صورت زیر نوشتم میکرو هم PIC18f452 هست
    void main(void)
    {
    unsigned int i;
    ADCON1=6;
    /////timers
    TRISAbits.RA0=1;
    TRISAbits.RA1=1;
    TRISAbits.RA2=1;
    TRISAbits.RA3=1;
    TRISAbits.RA4=1;
    TRISCbits.RC0=1;
    ///// Outputs
    TRISB=0;
    TRISAbits.RA3=0;
    TRISAbits.RA5=0;
    TRISEbits.RE0=0;
    TRISEbits.RE1=0;
    TRISEbits.RE2=0;
    TRISCbits.RC3=0;
    TXSTA=0x20;
    SPBRG=5;
    TXSTAbits.TXEN=1;
    RCSTAbits.SPEN=1;
    d1=0;
    d2=0;
    d3=0;
    d4=0;
    d5=0;
    d6=0;
    lcdinit();
    i=0;

    sprintf(i1,"%d",strlen(" IDLE&quot);
    lcdprint(i1);
    //////////////////////////
    while(1)
    {
    cls();
    if(in3==1){
    d2=0;
    d1=1;
    sprintf(i1,"Hello Man"
    }
    else
    {
    d1=0;
    d2=1;
    sprintf(i1,"Hello Iran"}
    lcdprint(i1);
    TXREG='S';
    Delay10KTCYx(100);

    }
    }
    آقا با سرعت 9600 که حساب کردم مقدار SPBRG با فرکانس ورودی 4 مگاهرتز در مد HSPLL شد 5 تا اینجا درست هست؟
    روی کامپیوتر اینها رو دریافت دارم
    توی میکرو AVR هر وقت سرعت ها یکی نبود اینجوری دریافت می کردم حالا مشکل اینجا چی می تونه باشه؟
    هیچ دانش آموزی نیست که به در خانۀ دانشمندی آمد و شد کند, مگر این که خداوند برای هر گامی که برمی دارد عبادت یک سال را برایش رقم زند.

    #2
    پاسخ : راه اندازی پورت سریال در MPLAB

    سلام
    مشکل پیدا و رفع شد :wow:
    چون با مد HSPLL کار کردم باید عدد SPBRG رو برابر 25 قرار می دادم
    هیچ دانش آموزی نیست که به در خانۀ دانشمندی آمد و شد کند, مگر این که خداوند برای هر گامی که برمی دارد عبادت یک سال را برایش رقم زند.

    دیدگاه


      #3
      پاسخ : راه اندازی پورت سریال در MPLAB

      با سلام

      اقا من دوتا برنامه برای پرت سریال نوشتم یکی با رجیسترها یکی دیگه هم با هدر ولی هردوتاشون روی صفحه علامت سوال نشون میدن


      برنامه رو میزارم

      به نظر شما مشکلش چی هست ؟؟

      این با رجیستر ها هست


      #include<p18f4550.h>
      #pragma config WDT=OFF,FOSC=HS,LVP=OFF
      void main(){
      unsigned char i;
      unsigned char data[]="alimohammad";
      TXSTA=0x20;//low baud rate ,8bit
      TRISCbits.TRISC6=0;
      SPBRG=6;//9600 BAUD RATE with xtal=4mhz
      RCSTAbits.SPEN=1;//enable serial port
      TXSTAbits.TXEN=1;//Enable transmit

      //send data

      for(i=0;i<11;i++){

      while(PIR1bits.TXIF==0);
      TXREG=data[i];
      }
      while(1);
      }








      اینم با هدر فایل


      #include<p18f4550.h>
      #include <usart.h>
      #pragma config WDT=OFF,LVP=OFF,FOSC=HS
      void main(){
      TRISBbits.TRISB7=0;
      OpenUSART(
      USART_TX_INT_OFF &
      USART_RX_INT_OFF &
      USART_ASYNCH_MODE &
      USART_EIGHT_BIT &
      USART_CONT_RX &// ÇÑÓÇá ãÏÇæã
      USART_BRGH_HIGH,// baut rate=9600
      25 );

      while(!PORTBbits.RB7);
      putrsUSART( "alimohammad" );
      while (BusyUSART());
      CloseUSART();
      while(1);
      }
      عامل کليدي تمام موفقيتها " عمل کردن" است

      دیدگاه


        #4
        پاسخ : راه اندازی پورت سریال در MPLAB

        سلام
        این برنامه رو تست کنین و خبر از نتیجه رو بگین

        کد:
        #include<p18f4550.h>
        #include<delays.h>
        #pragma config WDT=OFF,FOSC=HS,LVP=OFF
        void main(){
        unsigned char i;
        unsigned char data[]="alimohammad";
        TXSTA=0x20;//low baud rate ,8bit
        TRISCbits.TRISC6=0;
        SPBRG=5;//9600 BAUD RATE with xtal=4mhz
        RCSTAbits.SPEN=1;//enable serial port
        TXSTAbits.TXEN=1;//Enable transmit
        
        //send data
        
        for(i=0;i<11;i++){
        
         while(PIR1bits.TXIF==0);
         TXREG=data[i];
        Delay1KTCYx(1);
        }
        while(1);
        هیچ دانش آموزی نیست که به در خانۀ دانشمندی آمد و شد کند, مگر این که خداوند برای هر گامی که برمی دارد عبادت یک سال را برایش رقم زند.

        دیدگاه


          #5
          پاسخ : راه اندازی پورت سریال در MPLAB

          تست کردم نشد :angry:
          عامل کليدي تمام موفقيتها " عمل کردن" است

          دیدگاه


            #6
            پاسخ : راه اندازی پورت سریال در MPLAB

            سلام
            من فرض کردم کریستال مدارتون 4 مگاهرتز هست و سرعت انتقال 9600 ، فرضم درست هست یا مشخصات مداری یا باد ریت متفاوت هست؟
            هیچ دانش آموزی نیست که به در خانۀ دانشمندی آمد و شد کند, مگر این که خداوند برای هر گامی که برمی دارد عبادت یک سال را برایش رقم زند.

            دیدگاه


              #7
              پاسخ : راه اندازی پورت سریال در MPLAB

              بله فرض درست هست


              اطلاعات فرستاده میشن ولی درست نیست حتی بدون max232 هم تست کردم نشد


              به نظر شما مشکل از چی هست ؟
              عامل کليدي تمام موفقيتها " عمل کردن" است

              دیدگاه


                #8
                پاسخ : راه اندازی پورت سریال در MPLAB

                سلام
                حتما باید بین کامپیوتر و میکرو max232 قرار بدین حذف نکنین
                اگر baudrate بین کامپیوتر و میکرو به درستی تنظیم شده باشه اکثر مواقع کارکترهای ناآشنا مربوط به برنامه نویسی و عدم تنظیم کلاک صحیح متغییر SPBRG هست.بزارین برنامه تون رو تست می گیرم ان شالله روی میکرو اگر تغییری لازم بود خدممتون عرض می کنم که از این جهت حتما از بابت برنامه مطمئن بشین
                هیچ دانش آموزی نیست که به در خانۀ دانشمندی آمد و شد کند, مگر این که خداوند برای هر گامی که برمی دارد عبادت یک سال را برایش رقم زند.

                دیدگاه


                  #9
                  پاسخ : راه اندازی پورت سریال در MPLAB

                  سلام
                  برنامتون رو چک کردم ، گویا با فرکانس 4 مگاهرتز و مد HS نمی شه 9600 بیت ریت رو داشت نرخ رو به 4800 رسوندم و برنامه به صورت زیر تغییر یافت
                  شما هم چک کنین و با baudrate 4800 در کامپیوتر تنظیم کنین و وضعیت مدار رو باز گزارش کنین

                  کد:
                  #include<p18f4550.h>
                  #pragma config WDT=OFF,FOSC=HS,LVP=OFF
                  void main(){
                  unsigned char i;
                  unsigned char data[]="alimohammad";
                  TXSTA=0x20;//low baud rate ,8bit
                  TRISCbits.TRISC6=0;
                  SPBRG=12;//9600 BAUD RATE with xtal=4mhz
                  RCSTAbits.SPEN=1;//enable serial port
                  TXSTAbits.TXEN=1;//Enable transmit
                  
                  //send data
                  while(1){
                  for(i=0;i<12;i++){
                  
                   while(PIR1bits.TXIF==0);
                   TXREG=data[i];
                   Delay1KTCYx(1);
                  }
                   TXREG=13;
                   Delay1KTCYx(100);
                  }
                  }
                  هیچ دانش آموزی نیست که به در خانۀ دانشمندی آمد و شد کند, مگر این که خداوند برای هر گامی که برمی دارد عبادت یک سال را برایش رقم زند.

                  دیدگاه


                    #10
                    پاسخ : راه اندازی پورت سریال در MPLAB

                    برنامه درست کار میکنه اون حاقه هم اجرا میشه ولی نوشته ها عجیب غریبه

                    چرا با 4mhz نمیشه نرخ 9600 رو گرفت ؟؟؟
                    عامل کليدي تمام موفقيتها " عمل کردن" است

                    دیدگاه


                      #11
                      پاسخ : راه اندازی پورت سریال در MPLAB

                      سلام
                      مشکلتون هنوز حل نشده ؟

                      مطابق دیتاشیت و دیگر رفرنس های اینترنتی ، دسترسی به 9600 با کریستال 4 مگاهرتز و مد کم سرعت امکان پذیر هست اما من با شبیه ساز چک کردم روی این بازه 4800 به پایین به خوبی مدار جواب می داد.
                      اگر اجازه بدین امروز یه میکرو PIC18F4550 رو تهیه کنم و دقیقا با هم مشکلات رو چک کنیم
                      هیچ دانش آموزی نیست که به در خانۀ دانشمندی آمد و شد کند, مگر این که خداوند برای هر گامی که برمی دارد عبادت یک سال را برایش رقم زند.

                      دیدگاه


                        #12
                        پاسخ : راه اندازی پورت سریال در MPLAB

                        نه حل نشد

                        البته وقت نکردم زیاد باهاش ور برم من با سیمولاتور mikro c تست میکنم فکر نکنم مشکلی از اون باشه
                        عامل کليدي تمام موفقيتها " عمل کردن" است

                        دیدگاه


                          #13
                          پاسخ : راه اندازی پورت سریال در MPLAB

                          سلام
                          این برنامه رو چک کنین (من در عمل هر کاری کردم با مد کم سرعت متاسفانه نتونستم 9600 رو راه اندازی کنم) در دیتاشیت هم خیلی مطالعه داشتم اما گویا جوابی در عمل نمی شه گرفت)
                          کد:
                          #include<p18f4550.h>
                          #include<delays.h>
                          
                          #pragma config OSC=HS
                          #pragma config DEBUG=OFF
                          #pragma config WDT=OFF
                          #pragma config BOR=OFF
                          #pragma config LVP=OFF
                          #pragma config PWRT=ON
                          
                           void main(){
                           unsigned char i;
                           unsigned char data[]="alimohammad";
                           TRISCbits.RC7=1;
                           TRISCbits.RC6=0;
                           TXSTA=0x20;//low baud rate ,8bit
                           TXSTAbits.BRGH=1;
                           SPBRG=25;//9600 BAUD RATE with xtal=4mhz
                           RCSTAbits.SPEN=1;//enable serial port
                           TXSTAbits.TXEN=1;//Enable transmit
                          
                           //send data
                           while(1){
                           for(i=0;i<12;i++){
                            TXREG=data[i];
                            Delay1KTCYx(1);
                           }
                            TXREG=13;
                            Delay1KTCYx(1);
                            TXREG=10;
                            Delay10KTCYx(100);
                           }
                           }
                          هیچ دانش آموزی نیست که به در خانۀ دانشمندی آمد و شد کند, مگر این که خداوند برای هر گامی که برمی دارد عبادت یک سال را برایش رقم زند.

                          دیدگاه


                            #14
                            پاسخ : راه اندازی پورت سریال در MPLAB

                            با سلام

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

                            یه سوال چند خط اخر برای چی هست ؟ فکر نکنم لازم باشه
                            عامل کليدي تمام موفقيتها " عمل کردن" است

                            دیدگاه


                              #15
                              پاسخ : راه اندازی پورت سریال در MPLAB

                              سلام
                              از متخصصین میکروچیپ پرسیدم گفتن در مد کم سرعت دسترسی به سرعت 9600 ممکن نیست(در فرکانس 4 مگاهرتز ورودی ) به جز در مد سرعت بالا
                              در دستور زیر
                              }
                              TXREG=13;
                              Delay1KTCYx(1);
                              TXREG=10;
                              Delay10KTCYx(100);
                              کارکتر Enter و New line برای چاپ کردن هر عبارت در خط جدید و ابتدای آن به کامپیوتر ارسال می شود

                              عدم کارکردن پورت سریال رو باید جستجو کنین ببینین به چه صورت هست
                              در آموزشهای MPlab پورت سریال رو نیز توضیح دادم ببینین مشکل رو می تونین پیدا کنین یا خیر؟
                              http://www.eca.ir/forum2/index.php?topic=65092.0
                              تراشه PIC18f4550 رو سفارش دادم که برام بیارن نهایتا به جواب نرسیدن من تست می گیرم و خدمتتون عرض می کنم توضیحات لازم رو
                              هیچ دانش آموزی نیست که به در خانۀ دانشمندی آمد و شد کند, مگر این که خداوند برای هر گامی که برمی دارد عبادت یک سال را برایش رقم زند.

                              دیدگاه

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