اطلاعیه

Collapse
No announcement yet.

ارتباط RS-232

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

    ارتباط RS-232

    سلام
    من یک برنامه ساده نوشتم که عددی را از کامپیوتر به میکرو از طریق RS-232 بفرسته
    و میکرو روی ال سی دی نشون بده

    ولی عددی که من میفرستم با عددی نمایش داده شده فرق میکنه :eek:
    به نظرم باید تبدیل بشه
    ولی من هیچ رابطه منطقی ای نتونستم پیدا کنم
    مثلا عدد یک رو با کامپیوتر میفرسم و میکرو هر دفعه یک چیز نشون میده مثل 125 - 255 و ...
    میکرو 877 هست و نرم افزار بیسک پرو
    کسی میتونه کمک کنه؟؟
    من نبودم آنکه از من در خیالت ساختی ...
    پس تو هم چون دیگران چندان مرا نشناختی

    #2
    پاسخ : ارتباط RS-232

    سلام.
    سورس برنامه و سخت افزارتون رو لطفا بذارین تا شاید بتونیم کمکی بکنیم. :nerd:

    دیدگاه


      #3
      پاسخ : ارتباط RS-232

      نوشته اصلی توسط _shokrii_
      سلام
      من یک برنامه ساده نوشتم که عددی را از کامپیوتر به میکرو از طریق RS-232 بفرسته
      و میکرو روی ال سی دی نشون بده

      ولی عددی که من میفرستم با عددی نمایش داده شده فرق میکنه :eek:
      به نظرم باید تبدیل بشه
      ولی من هیچ رابطه منطقی ای نتونستم پیدا کنم
      مثلا عدد یک رو با کامپیوتر میفرسم و میکرو هر دفعه یک چیز نشون میده مثل 125 - 255 و ...
      میکرو 877 هست و نرم افزار بیسک پرو
      کسی میتونه کمک کنه؟؟

      دوستمون شاهرخ خان درست مگن شما سورس برنامه و مداره بسته شده تون رو بزارین تا متوجه شیم مشکل از کجاس
      من فک کنم سرعت انتقال گیرنده با فرستنده یکی نباشه...
      اگريك فلج مادر زاد در مسابقه دو ماراتون نفراول نشود مقصر فقط وفقط خودش است...

      دیدگاه


        #4
        پاسخ : ارتباط RS-232

        سلام
        این هم کد برنامه
        به نظر من از نظر سخت افزاری مشکلی نداره چون از روی کتاب میرزا کوچکی بستم
        این رو هم بگم که من برنامه رو به دو روش نوشتم با هم با دستور serin و هم با usart که در هر دو این مشکل وجود داشت
        اتصال به کامپیوتر در پنجره ارتباط سریال نرم افزار بیسیک پرو هست
        وقتی روی دکمه send موس رو نگه میدارم مینویسه send transmit text
        وقتی حروف هم ارسال میکنم عدد عجیب غریب نشون میده.......
        تبدیل نباید بشه؟؟

        @ device hs_osc
        INCLUDE "MODEDEFS.BAS"
        SYMBOL SI=PORTC.7

        define osc 4
        DEFINE LCD_DREG PORTB '''
        DEFINE LCD_DBIT 4 '''
        DEFINE LCD_RSREG PORTB '''
        DEFINE LCD_RSBIT 2 '''
        DEFINE LCD_EREG PORTB '''
        DEFINE LCD_EBIT 3 '''
        DEFINE LCD_BITS 4 '''
        DEFINE LCD_LINES 2 '''

        B0 VAR BYTE
        B0=0
        main:
        '-------------------------------------------------------------
        B0=0
        LCDOUT $fe,1 '''
        lcdout $fe,$0e
        LCDOUT "hi =" '''
        LCDOUT $fe, $c0 '''
        LCDOUT "wait..."
        SERIN SI,T2400,500,MAIN,B0
        LCDOUT $fe, $c0 '''
        LCDOUT "RECIVE ="
        lcdout #B0
        PAUSE 500 '''
        GOTO MAIN
        END
        من نبودم آنکه از من در خیالت ساختی ...
        پس تو هم چون دیگران چندان مرا نشناختی

        دیدگاه


          #5
          پاسخ : ارتباط RS-232

          جناب شکری عزیز....چرا PIC Basic pro استفاده میکنین؟ بخدا اصلا به درد نمیخوره.درسته که ظاهر تر و تمیز و ساده ای داره اما دستورات کار با LCD و ارسال سریال که اصلا برام قابل فهم نبود!
          کامپایلر MikroC به این قشنگی و سادگی رو ول کردین اومدین با کامپایلر عهدبوق برنامه مینوسین؟ لااقل Mikro basic استفاده بکنین. کرک هم دارم واسشون. بخدا از PBP خیلی راحت تره.... :nerd:

          دیدگاه


            #6
            پاسخ : ارتباط RS-232

            نوشته اصلی توسط _shokrii_
            سلام
            این هم کد برنامه
            به نظر من از نظر سخت افزاری مشکلی نداره چون از روی کتاب میرزا کوچکی بستم
            این رو هم بگم که من برنامه رو به دو روش نوشتم با هم با دستور serin و هم با usart که در هر دو این مشکل وجود داشت
            اتصال به کامپیوتر در پنجره ارتباط سریال نرم افزار بیسیک پرو هست
            وقتی روی دکمه send موس رو نگه میدارم مینویسه send transmit text
            وقتی حروف هم ارسال میکنم عدد عجیب غریب نشون میده.......
            تبدیل نباید بشه؟؟

            @ device hs_osc
            INCLUDE "MODEDEFS.BAS"
            SYMBOL SI=PORTC.7

            define osc 4
            DEFINE LCD_DREG PORTB '''
            DEFINE LCD_DBIT 4 '''
            DEFINE LCD_RSREG PORTB '''
            DEFINE LCD_RSBIT 2 '''
            DEFINE LCD_EREG PORTB '''
            DEFINE LCD_EBIT 3 '''
            DEFINE LCD_BITS 4 '''
            DEFINE LCD_LINES 2 '''

            B0 VAR BYTE
            B0=0
            main:
            '-------------------------------------------------------------
            B0=0
            LCDOUT $fe,1 '''
            lcdout $fe,$0e
            LCDOUT "hi =" '''
            LCDOUT $fe, $c0 '''
            LCDOUT "wait..."
            SERIN SI,T2400,500,MAIN,B0
            LCDOUT $fe, $c0 '''
            LCDOUT "RECIVE ="
            lcdout #B0
            PAUSE 500 '''
            GOTO MAIN
            END
            سلام دادا
            عددT2400تودستورserinمطمنی درسته؟سرعت انتقال rs-232چقده؟سرعت دریافت گیرنده هم باید همون قدر باشه
            شایدN2400باید بزاری؟خلاصه هرچی هست اینه که سرعت دریافت با سرعت ارسال یکی نیست
            چون برنامه ات درسته ومشکلی نداره
            میشه برنامه ایی که باusartنوشتی رو هم بزاری؟
            راستی برا دستور ال سی دی از این دستور استفاده lcdout 254,128,"salam ",dec b,"hello",dec bببین چقد ساده ترشد
            اگريك فلج مادر زاد در مسابقه دو ماراتون نفراول نشود مقصر فقط وفقط خودش است...

            دیدگاه


              #7
              پاسخ : ارتباط RS-232


              '-------------------------------------------------------------
              B0=0
              LCDOUT $fe,1 '''
              lcdout $fe,$0e
              LCDOUT "hi =" '''
              LCDOUT $fe, $c0 '''
              LCDOUT "wait..."
              SERIN SI,T2400,500,MAIN,B0
              LCDOUT $fe, $c0 '''
              LCDOUT "RECIVE ="
              lcdout #B0

              GOTO MAIN
              END
              1 - شما پورت های uart رو تعریف نکردین .
              2 - شما پورت های ورودی و خروجی رو تعریف نکردین . trisa - trisb
              3 - آیا تنظیمات سریال نرم افزار بیسیک پرو رو مطابق برنامه تنظیم کردید ؟
              4 - serin درسته و برای این کار هستش ولی به صورت نرم افزاری و کار باهش خیلی راحتتره . usart مخصوص سخت افزاری هستش .
              5 - الان که داری شروع میکنید به یادگیری ، کامپایلرتون رو عوض کنید ! مال عهد دوقه !!
              if all men are the same
              then
              why do women take so long to choose one ?

              دیدگاه


                #8
                پاسخ : ارتباط RS-232

                نوشته اصلی توسط josef2600
                '-------------------------------------------------------------
                B0=0
                LCDOUT $fe,1 '''
                lcdout $fe,$0e
                LCDOUT "hi =" '''
                LCDOUT $fe, $c0 '''
                LCDOUT "wait..."
                SERIN SI,T2400,500,MAIN,B0
                LCDOUT $fe, $c0 '''
                LCDOUT "RECIVE ="
                lcdout #B0

                GOTO MAIN
                END
                1 - شما پورت های uart رو تعریف نکردین .
                2 - شما پورت های ورودی و خروجی رو تعریف نکردین . trisa - trisb
                3 - آیا تنظیمات سریال نرم افزار بیسیک پرو رو مطابق برنامه تنظیم کردید ؟
                4 - serin درسته و برای این کار هستش ولی به صورت نرم افزاری و کار باهش خیلی راحتتره . usart مخصوص سخت افزاری هستش .
                5 - الان که داری شروع میکنید به یادگیری ، کامپایلرتون رو عوض کنید ! مال عهد دوقه!![size=18pt]دوق؟ :eek:
                شوخی کردم.....
                بادستور serinکامایل خودش پایه ی مذکور رو ورودی در نظر میگیره
                البته خب برااطمینان ورودی و خروجی پایه ها رو تعیین کن
                اگريك فلج مادر زاد در مسابقه دو ماراتون نفراول نشود مقصر فقط وفقط خودش است...

                دیدگاه


                  #9
                  پاسخ : ارتباط RS-232

                  نوشته اصلی توسط شاهرخ
                  جناب شکری عزیز....چرا PIC Basic pro استفاده میکنین؟ بخدا اصلا به درد نمیخوره.درسته که ظاهر تر و تمیز و ساده ای داره اما دستورات کار با LCD و ارسال سریال که اصلا برام قابل فهم نبود!
                  کامپایلر MikroC به این قشنگی و سادگی رو ول کردین اومدین با کامپایلر عهدبوق برنامه مینوسین؟ لااقل Mikro basic استفاده بکنین. کرک هم دارم واسشون. بخدا از PBP خیلی راحت تره.... :nerd:
                  شاهرخ جان
                  من قبل خدمت دنبال نرم افزار های زبان C بودم و اتفاقا اول سراغ MikroC رفتم
                  تو سایت اکثرا CCS کار میکردن و میگفتن میکرو سی کرک نداره و ...
                  بعد رفتم ccs و یکم باهاش کار کردم بعد سراغ Mplab رفتم و در حد مبتدی برنامه هم نوشتم.
                  ولی چون با بیسیک برنامه مشابه نوشته بودم (4 تا میکرو رو با RS-485 به هم وصل کردم) گفتم این برنامه رو هم میشه راحت نوشت :eek: ولی نشد :mrgreen:
                  الان هم وقت ندارم C یاد بگیرم شاید در آینده...........
                  من نبودم آنکه از من در خیالت ساختی ...
                  پس تو هم چون دیگران چندان مرا نشناختی

                  دیدگاه


                    #10
                    پاسخ : ارتباط RS-232

                    نوشته اصلی توسط milad066
                    سلام دادا
                    عددT2400تودستورserinمطمنی درسته؟سرعت انتقال rs-232چقده؟سرعت دریافت گیرنده هم باید همون قدر باشه
                    شایدN2400باید بزاری؟خلاصه هرچی هست اینه که سرعت دریافت با سرعت ارسال یکی نیست
                    ممنون از شما
                    N2400 گذاشتم اصلا کار نکرد سرعت در میکرو و نرم افزار 2400 هست و سایر تنظیماتش (stop bit , parity , ...) رو هم چک کردم مشکلی نداشت
                    پورت ورودی و خروجی رو هم تعیین کردم :angry:
                    آی سی max232 هم طبق نقشه گذاشتم

                    فقط یه سوال؟
                    SERIN SI,t2400,500,MAIN,B0
                    مقداری که از کامپیوتر میاد در B0 ذخیره میشه. حالا این چی هست؟؟ دسیمال ؟ اسکی ؟ رشته؟؟؟؟؟؟؟
                    من نبودم آنکه از من در خیالت ساختی ...
                    پس تو هم چون دیگران چندان مرا نشناختی

                    دیدگاه


                      #11
                      پاسخ : ارتباط RS-232

                      نوشته اصلی توسط _shokrii_
                      ه سرعت دریافت با سرعت ارسال یکی نیست


                      ممنون از شما
                      N2400 گذاشتم اصلا کار نکرد سرعت در میکرو و نرم افزار 2400 هست و سایر تنظیماتش (stop bit , parity , ...) رو هم چک کردم مشکلی نداشت
                      پورت ورودی و خروجی رو هم تعیین کردم :angry:
                      آی سی max232 هم طبق نقشه گذاشتم

                      فقط یه سوال؟
                      SERIN SI,t2400,500,MAIN,B0
                      مقداری که از کامپیوتر میاد در B0 ذخیره میشه. حالا این چی هست؟؟ دسیمال ؟ اسکی ؟ رشته؟؟؟؟؟؟؟
                      اگه تو دستورLCDOUT 254,128,DEC b از dec bاستفاده کنی عد رو به صورت ده دهی(واقعی)نشون میده اگه ازhex bاستفاداونو به صورت دسیمال نشون میده واگه از bin bاستفاده کنی عدد رو به صورت بیت ه بیت نشون میده :wow:
                      اگريك فلج مادر زاد در مسابقه دو ماراتون نفراول نشود مقصر فقط وفقط خودش است...

                      دیدگاه


                        #12
                        پاسخ : ارتباط RS-232

                        سلام مجدد
                        خوشبختانه موفق شدم اعداد و حروف را ارسال کنم و اونطرف روی ال سی دی نشون بده :wow:
                        ولی اعداد دو رقمی هنوز مشکل داره و میکرو فقط عدد اول رو نشون میده
                        اگه متغیر را به صورت word تعریف کنم
                        بعد بایت بالا و پایین رو روی ال سی دی به صورت عدد واحدی نشون بده میشه؟؟
                        اصلا این الگوریتم درسته؟؟

                        دو سال رفتم خدمت همون یک ذره ای هم که یاد داشتم یادم رفت. فقط وقتم تلف شد :cry2: :cry2:

                        :read: :read:
                        من نبودم آنکه از من در خیالت ساختی ...
                        پس تو هم چون دیگران چندان مرا نشناختی

                        دیدگاه

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