NOTICE توجه: این یک موضوع قدیمی است که آخرین پست ارسالی آن مربوط به 3767 روز قبل است . لطفا فقط پاسخ ها ، سوالات و درخواست های 100 درصد مرتبط را به آن ارسال کنید و برای درخواست ها و سوالات جدید موضوع جدیدی را ایجاد کنید
نمایش نتایج: از 1 به 15 از 15

موضوع: ارتباط میکرو با کامپیوتر با rs232

  1. #1
    تازه وارد
    تاریخ عضویت
    Apr 2012
    نوشته ها
    1
    تشکر
    0
    تشکر شده 0 بار در 0 پست

    پیش فرض ارتباط میکرو با کامپیوتر با rs232

    سلام

    من برنامه ی زیر را برای میکرو نوشتم تا یک کاراکتر را به کامپیوتر ارسال کند
    در پروتئوس هم جواب داد ولی در عمل چرت و پرت می فرستد.
    ضمناً baud rate و stopbit و parity را هم دقیقاً تنظیم کردم.

    /************************************************** ***
    This program was produced by the
    CodeWizardAVR V1.25.8 Standard
    Automatic Program Generator
    © Copyright 1998-2007 Pavel Haiduc, HP InfoTech s.r.l.
    Object moved

    Project :
    Version :
    Date : 4/5/2012
    Author : F4CG
    Company : F4CG
    Comments:


    Chip type : ATmega16
    Program type : Application
    Clock frequency : 1.000000 MHz
    Memory model : Small
    External SRAM size : 0
    Data Stack size : 256
    ************************************************** ***/

    #include <mega16.h>
    #include <delay.h>
    // Standard Input/Output functions
    #include <stdio.h>

    // Declare your global variables here

    void main(void)
    {
    // Declare your local variables here

    // Input/Output Ports initialization
    // Port A initialization
    // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
    // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
    PORTA=0x00;
    DDRA=0x00;

    // Port B initialization
    // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
    // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
    PORTB=0x00;
    DDRB=0x00;

    // Port C initialization
    // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
    // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
    PORTC=0x00;
    DDRC=0x00;

    // Port D initialization
    // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
    // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
    PORTD=0x00;
    DDRD=0x00;

    // Timer/Counter 0 initialization
    // Clock source: System Clock
    // Clock value: Timer 0 Stopped
    // Mode: Normal top=FFh
    // OC0 output: Disconnected
    TCCR0=0x00;
    TCNT0=0x00;
    OCR0=0x00;

    // Timer/Counter 1 initialization
    // Clock source: System Clock
    // Clock value: Timer 1 Stopped
    // Mode: Normal top=FFFFh
    // OC1A output: Discon.
    // OC1B output: Discon.
    // Noise Canceler: Off
    // Input Capture on Falling Edge
    // Timer 1 Overflow Interrupt: Off
    // Input Capture Interrupt: Off
    // Compare A Match Interrupt: Off
    // Compare B Match Interrupt: Off
    TCCR1A=0x00;
    TCCR1B=0x00;
    TCNT1H=0x00;
    TCNT1L=0x00;
    ICR1H=0x00;
    ICR1L=0x00;
    OCR1AH=0x00;
    OCR1AL=0x00;
    OCR1BH=0x00;
    OCR1BL=0x00;

    // Timer/Counter 2 initialization
    // Clock source: System Clock
    // Clock value: Timer 2 Stopped
    // Mode: Normal top=FFh
    // OC2 output: Disconnected
    ASSR=0x00;
    TCCR2=0x00;
    TCNT2=0x00;
    OCR2=0x00;

    // External Interrupt(s) initialization
    // INT0: Off
    // INT1: Off
    // INT2: Off
    MCUCR=0x00;
    MCUCSR=0x00;

    // Timer(s)/Counter(s) Interrupt(s) initialization
    TIMSK=0x00;

    // USART initialization
    // Communication Parameters: 8 Data, 1 Stop, No Parity
    // USART Receiver: Off
    // USART Transmitter: On
    // USART Mode: Asynchronous
    // USART Baud Rate: 2400
    UCSRA=0x00;
    UCSRB=0x08;
    UCSRC=0x86;
    UBRRH=0x00;
    UBRRL=0x19;

    // Analog Comparator initialization
    // Analog Comparator: Off
    // Analog Comparator Input Capture by Timer/Counter 1: Off
    ACSR=0x80;
    SFIOR=0x00;

    while (1)
    {
    // Place your code here

    putchar('a');
    delay_ms(100);
    };
    }
    [/LEFT]

  2. # ADS
    Circuit advertisement
    تاریخ عضویت
    Always
    نوشته ها
    Many
     

  3. #2
    ناظم انجمن Ma3ood آواتار ها
    تاریخ عضویت
    Aug 2011
    نام
    مسعود
    نوشته ها
    2,248
    تشکر
    1,912
    تشکر شده 3,087 بار در 1,509 پست

    پیش فرض

    دوست عزیز برنامه ظاهرا درسته
    شما با چه برنامه ای در عمل در کامپیوتر کار میکنید!

  4. #3
    مدیر بخش STM32 sigma-mx آواتار ها
    تاریخ عضویت
    Nov 2009
    نام
    سعید شریفیان
    نوشته ها
    1,421
    تشکر
    804
    تشکر شده 2,520 بار در 978 پست

    پیش فرض

    پایه gnd یا گراند مشترک رو وصل کردین ؟؟ برای تغییر سطح ولتاژ از max اسستفاده کردین ؟

  5. #4
    مدیر باز نشسته armstk آواتار ها
    تاریخ عضویت
    Mar 2009
    نوشته ها
    926
    تشکر
    839
    تشکر شده 1,198 بار در 573 پست

    پیش فرض

    سلام
    باود ریت رو بیار روی 1200 , کلاک رو هم بزار رویه 11.0592 مگ درست میشه

    این چرت و پرت هایی که میفرسته دلیلیش اینه که یوزارتت تلورانس بالایی در ارتباط داره


    میکروکنترلر STM32103-RBT6 بطور کامل راه اندازی شد !!!
    مرحله بعدی اتصال TFT 3.2 به میکرو و بوت کردن UC-OS II + GUI !!!

    .

  6. #5
    ناظم انجمن Ma3ood آواتار ها
    تاریخ عضویت
    Aug 2011
    نام
    مسعود
    نوشته ها
    2,248
    تشکر
    1,912
    تشکر شده 3,087 بار در 1,509 پست

    پیش فرض

    نقل قول نوشته اصلی توسط armstk نمایش پست ها
    سلام
    باود ریت رو بیار روی 1200 , کلاک رو هم بزار رویه 11.0592 مگ درست میشه

    این چرت و پرت هایی که میفرسته دلیلیش اینه که یوزارتت تلورانس بالایی در ارتباط داره
    سلام مهندس
    اینقدر هم حساس نیست که شما میگینا
    من با بود ریت 4800 کلاک 1 مگ داخلی جواب گرفتم متراژ سیم هم بالای یه متر بود
    در کل بهتره دوست عزیزمون نقشه شماتیکشون را اینجا بگذارند!

  7. #6
    عضو جدید
    تاریخ عضویت
    Dec 2013
    نوشته ها
    6
    تشکر
    2
    تشکر شده 0 بار در 0 پست

    پیش فرض

    سلام دوستان
    واسه من یه مشکلی پیش اومده که اگه راهنمایی کنید خیلی ممنون میشم.
    بنده یه پروژه (پایان نامه) دارم که کار اصلی ارتباط یه سخت افزار با پورت سریال کامپیوتر هست از نوع پروژه و چگونگی و .... بگذریم مشکلی که دارم مربوط به ارتباط میکرو با rs232 هست. اول از همه بگم که کلی تو این سایت و اینترنت و گوگل و ... تحقیق کردم و با کلیات اشناشدم و از max 232 و مدار و .... اشناشدم
    الان max 232 رو روی برد برد بستم با خازن و تغذیه و ...، میکرو هم یه گوشه دیگه از برد برد بستم و تغذیه و کریستال و ... هم متصله. برنامه ای هم که پروگرام شده روی میکرو خیلی ساده است و با بسکام نوشته شده
    کد:
    $regfile = "M16def.dat"
    $crystal = 1000000
    $baud = 9600
    
    Config Pind.6 = Output
    
    Dim Firstnumber As Integer
    Dim Secondnumber As Integer
    Dim Sum As Integer
    
    Do
    Set Portd.6
    Firstnumber = 0
    Secondnumber = 0
    Input "Enter first number : " , Firstnumber
    Input "Enter second number: " , Secondnumber
    Sum = Firstnumber + Secondnumber
    Print "Sum: " ; Sum
    Reset Portd.6
    Waitms 100
    Loop
    
    End
    ای سی استفاده شده هم atmega 16 هست
    خب پایه های rx , tx هم به درستی وصل شدن. پورت سریال کامپیوتر هم تست شده
    حالا با توجه به برنامه ای که بالا نوشته شده و پروگرام شده با کریستال خارجی و مدار ماکس 232 که طبق نقشه هایی که تو اینترنت هست و خازن های جانبیش و .... بسته شده توی هایپر ترمینال به جای اینکه نوشته ببینم و مدام از اول تا اخر شروع میکنه به چرت و پرت نوشتن و کارکتر و و از این چیزا و اصلا معلومه که هیچی از میکرو به ماکس ارسال نمیشه یا اگه میشه به خروجی درست نمیفرسته. بارها تست کردم و با baud ریت های مختلف. 10 بار میکرو رو پروگرام کردم، پایه های ماکس 232 رو جابجا کردم و .... و هنوز جواب نگرفتم. نه تو ترمینال بسکام و نه تو هایپرترمینال و نه با یه برنامه دیگه که سریال پورت رو تست میکنه همشون چرت و پرت برمیگردونن؟
    حالا نمیدونم کار خاصی باید انجام بدم. روی برد برد جواب نمیده؟ یا اینکه کلا برنامم مشکل داره یا مشکل از جای دیگه است. چند تا ماکس هم جایگزین کردم ولی فرقی نمیکنه. هر دفعه هم یه چرت و پرتی برمیگردونه و اصلا معلوم نیست اینها چی هست و ای کاش بین اینها اون جمله ای که باید برگردونه هم بود یا چیزی که باید ارسال میشد میشد. حالا دوستان خواهشا هر کی میتونه کمک کنه

  8. #7
    عضو جدید
    تاریخ عضویت
    Dec 2013
    نوشته ها
    6
    تشکر
    2
    تشکر شده 0 بار در 0 پست

    پیش فرض

    این هم یادم رفت بگم که راه تستی اگه هست که مطمئن بشیم مدار ماکسمون درست عمل میکنه و مدار میکرو هم درست هست و خروجی tx داریم که به ماکس ارسال میشه هم بگید؟ با هایپرترمینال فقط چرت و پرت برمیگردونه و عشقی هست یه وقت میبینید کل صفحه با چرت و پرت پر میشه و یه وقت دیگه نه دو خط چرت و پرت مینویسه و اصلا معلوم نیست اینها چی هست
    برنامه، ترفند یا اگه راه حلی هست که بشه اینا رو تست کرد ممنون میشم کمک کنید

  9. #8
    عضو جدید
    تاریخ عضویت
    Dec 2013
    نوشته ها
    6
    تشکر
    2
    تشکر شده 0 بار در 0 پست

    پیش فرض

    سلام
    کسی پاسخگو نیست. اگه ممکنه به این تاپیک هم پاسخ بدید

  10. #9
    ناظم سایت KHM آواتار ها
    تاریخ عضویت
    Jul 2010
    نوشته ها
    1,047
    تشکر
    2,895
    تشکر شده 2,131 بار در 905 پست

    پیش فرض

    راه تستش اینه که پایه های rx , tx رو بهم وصل کنین ببینین چیزی که مینویسین برمیگرده یا نه..
    اینجور که اول میکرو رو جدا کنین و پایه های rx, tx سمت میکروی mux رو بهم وصل کنین و تو هایپر ترمینال تایپ کنین ببینین چیزی میبینین..1بارم جدا کنین و دوباره تایپ کنین...فرقی کرد؟
    احتمالآ زمین رو مشترک نکردین

  11. کاربران : 3 تشکر کرده اند از شما KHM برای ارسال این پست سودمند:


  12. #10
    کاربر فعال Hesam1984 آواتار ها
    تاریخ عضویت
    Sep 2007
    نام
    مهره مار
    نوشته ها
    315
    تشکر
    45
    تشکر شده 108 بار در 77 پست

    پیش فرض

    شما اول یک پرینت ساده بنویس ببین درست دریافتش می کنی
    بعد input ساده، شاید هم inkey یا waitkey
    اونوقت می فهمی سخت افزارت سالمه
    بعد برو برنامه کاملت رو بنویس
    اینها رو تست کن بیا نتیجه رو بگو
    هیچ نیازی هم به کریستال خارجی فقط با اون مقدار نیست. خطای زیر 3 درصد همه اوکی هستش.

  13. کاربران : 2 تشکر کرده اند از شما Hesam1984 برای ارسال این پست سودمند:


  14. #11
    عضو جدید
    تاریخ عضویت
    Dec 2013
    نوشته ها
    6
    تشکر
    2
    تشکر شده 0 بار در 0 پست

    پیش فرض

    سلام
    ممنون از پاسخ ها
    یه توضیح میدم ببینید مشکل از سخت افزاره یا مشکل از جای دیگست. بنده سریال پورت کامپیوتر رو همونطور که دوستان گفتن و تو اینترنت تحقیق کردم تست کردم و دو سر rx , tx پورت کامپیوتر رو به هم وصل کردم و تو هایپرترمینال هر چی بنویسم برمیگردونه (تا اینجا پورت سریال کامپیوتر تست شد و سالمه) ولی خب وقتی مدار ماکس رو میبندم و پایه های خروجی rx و tx میکرو که به ورودی های 10 , 12 ماکس میره رو به هم وصل میکنم گاهی بین چرت و پرتایی که خودش مینویسه میشه با کیبورد نوشت و گاهی نه نمیشه نوشت. اصلا سیما رو دارم تکون میدم چرت و پرت تو هایپرترمینال و ترمینال بسکام مینویسه و هر نرم افزار مانیتورینک پورت سریال بگید که من تست کردم همون چرت و پرتا رو برمیگردونه، حتی دستمو نزدیک ای سی میبرم چرت و پرت برمیگردونه.
    نمیدونم به خاطر بستن روی برد برد هست که نویز میگیره یا .... لازمه بگم ده بار این مدار رو روی نقاط مختلف برد برد بستم و اتصالات رو چک کردم
    ضمنا gnd میکرو و اصلا بهتره بگم کلا تغذیه میکرو با ماکس یکی هست
    سه تا ای سی ماکس هم عوض کردم و گفتم شاید مشکل از ای سی هست ولی فرقی نکرد.
    دوستان کسی مدار ماکس رو روی برد برد بسته و تست کرده و جواب گرفته؟ ایا روی فیبر مدارچاپی منتاژ کنم قراره جواب بگیرم؟
    حالا مشکل نویز که ایشالا راهنمایی میکنید. سوال دیگه اینه که بین این چرت و پرتا نباید خروجی میکرو هم نمایش داده بشه؟ چجوری بفهمم میکرو خروجی tx داره و سالم عمل میکنه
    ضمنا بغیر از بود ریت و توابعی مثل پرینت و اینپوت برای راه اندازی rx و tx مدار avr کار دیگه ای باید انجام بشه
    چون من دقیقا برنامه بالا که قبلا گذاشتم رو پروگرام کردم رو ای سی و میخوام خروجی بگیرم. برنامم مشکل داره؟
    ممنون میشم اگه کامل جواب بدید و بنده رو راهنمایی کنید. بخدا ترم اخرم و پروژه یه جورایی تو حلقم گیر کرده و باید جواب بگیرم و سخت افزار رو تحویل بدم تا پاس بشم

  15. #12
    ناظم سایت KHM آواتار ها
    تاریخ عضویت
    Jul 2010
    نوشته ها
    1,047
    تشکر
    2,895
    تشکر شده 2,131 بار در 905 پست

    پیش فرض

    رو برد بورد هم جواب میده..
    زمین ماکس و پورت سریال منظورم بود...یعنی پایه 5 کانکتور سریال

  16. #13
    عضو جدید
    تاریخ عضویت
    Dec 2013
    نوشته ها
    6
    تشکر
    2
    تشکر شده 0 بار در 0 پست

    پیش فرض

    نقل قول نوشته اصلی توسط khm نمایش پست ها
    رو برد بورد هم جواب میده..
    زمین ماکس و پورت سریال منظورم بود...یعنی پایه 5 کانکتور سریال
    سلام
    پایه منفی پورت سریال(شماره 5) به پایه 15 ماکس (زمین ماکس) و خط زمین برد برد که منفی میکرو هم هست وصله. کلا سیم ها و ارتباطات وصله
    اقا کسی این سوال رو جواب نداد که چطور بفهمم میکرو خروجی میده؟

  17. #14
    Banned
    تاریخ عضویت
    Apr 2013
    نام
    صادق علی بخشی
    نوشته ها
    1,148
    تشکر
    1,183
    تشکر شده 1,276 بار در 702 پست

    پیش فرض

    شما اگر یه ال ای دی به پایه ی tx میکرو و زمین وصل کنید معلوم میشه که اطلاعاتی ارسال
    میشه یا نه
    ولی با این کار نمی تونید چیزی از کاراکترهای ارسال شده بفهمید
    اگر امکانش هست دقیقا همون مداری که بستید رو آپلود کنید
    چون دیدم که بعضی ها جای پایه های 232 رو اشتباه میزنن
    یعنی ورودی و خروجی و برعکس میزنن
    توجه کنید که هر ورودی یه خروجی داره و برعکسش امکان پذیر نیست چون این یک آی سی اینورتور هست

  18. تشکرها از این نوشته :


  19. #15
    عضو جدید
    تاریخ عضویت
    Dec 2013
    نوشته ها
    6
    تشکر
    2
    تشکر شده 0 بار در 0 پست

    پیش فرض

    سلام دوستان
    ممنون از پاسخ ها. مشکل بنده هم دیشب حل شد ولی وقت نکردم بیام و توضیح بدم. به هر حال مشکل نه از برد برد بود و نه از ای سی و نه از جابجا بودن پایه ها و نه ..... مشکل از کریستال و پروگرام ای سی بود. کریستال انتخابی در برنامه 1 مگاهرتز انتخاب شده بود و کریستال روی برد 8 مگاهرتز بود و هنگام پروگرام هم کرستال 1 مگاهرتز خارجی انتخاب شده بود. به هر حال با تغیر مقدار کریستال داخل برنامه از 1 به هشت مگاهرتز و بدون هیچ تغیر دیگه ای مشکل حل شد. بازم برای اینکه مطمئن بشم مشکل از همینجا بوده مقدار کریستال رو باز تغیر دادم و خروجی دچار مشکل شد و فهمیدم این کریستال دوست داشتنی و تنظیم فیوزبیت ها چقدر مهمه. به هر حال ممنون از همه دوستان که راهنمایی کردن. بنده خوشبختانه جواب گرفتم و در حال منتاژ کردن مدار هستم که تو جابجایی و ... قطع و وصل نشه و برنامه اصلی رو پیاده کنم. اگه باز مشکلی بود یه تاپیک مجزا میزنم و در مورد برنامه مشکلم رو میگم.
    امیدوارم همگی موفق باشید

موضوعات مشابه

  1. پاسخ: 14
    آخرين نوشته: 03-09-2014, 21:53
  2. کنترل هوشمند دما و رله بصورت آنلاین با کامپیوتر از طریق rs232
    توسط abb_saleh در انجمن برنامه نویسی کامپیوتر/کنترل با کامپیوتر
    پاسخ: 1
    آخرين نوشته: 19-08-2013, 13:00
  3. RS232 to LAN
    توسط ramin_kent در انجمن گفت و گوي آزاد
    پاسخ: 4
    آخرين نوشته: 10-02-2013, 13:29
  4. rs232
    توسط ariyn در انجمن AVR
    پاسخ: 1
    آخرين نوشته: 26-06-2012, 16:10
  5. rs232
    توسط safavism در انجمن AVR
    پاسخ: 4
    آخرين نوشته: 25-06-2011, 00:33

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •