اطلاعیه

Collapse
No announcement yet.

مشکل در برنامه نویسی به زبان C (ساخت فرستنده گیرنده با ATMEGA32 & TX433)

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

    مشکل در برنامه نویسی به زبان C (ساخت فرستنده گیرنده با ATMEGA32 & TX433)

    سلام. دوستان یه پروژه فرستنده گیرنده دارم که خیلی هم سادست اما چون من اصلا به زبان سی آشنایی ندارم و این پروژه هم حتما باید به زبان سی باشه، یک هفتست خواب و خوراک از من گرفته!!
    عکس مدار در پروتئوس:
    http://cld.persiangig.com/preview/8gmBQcElnT/help.png

    -کیبورد حتما باید 3*4 باشه
    -نمایشگر 16*2 کاراکتری
    -میکرو ATMEGA 32
    -ماژول های tx 433MHz
    **** مدار باید به شکلی کار کنه که هر کدام از اعداد کیبورد رو که فشار بدیم همون عدد رو نمایشگر گیرنده ظاهر بشه و با رها کردن کلید ، نمایشگر پاک بشه. یعنی هربار فقط یه رقم رو نشون بده.
    من تمام سعیمو کردم و یک هفتست با کمک کتاب های مرجع و اینترنت نتونستم برنامه شو بنویسم.
    اگه کمک کنین لطف بزرگی کردین.

    #2
    پاسخ : مشکل در برنامه نویسی به زبان C (ساخت فرستنده گیرنده با ATMEGA32 & TX433)

    نبود؟؟؟؟؟؟ عجله ایی واقعا!!

    دیدگاه


      #3
      پاسخ : مشکل در برنامه نویسی به زبان C (ساخت فرستنده گیرنده با ATMEGA32 & TX433)

      چرا کسی جواب نمیده واقعا؟؟!! :cry2:
      بذارید سوالو خلاصه کنم. با چه دستوری در زبان سی میتونم اطلاعات کیبورد رو بفرستم به خروجی txd?
      و با چا دستوری اطلاعات rxd رو بفرستم واسه نمایشگر؟؟؟؟؟؟؟؟؟

      دیدگاه


        #4
        پاسخ : مشکل در برنامه نویسی به زبان C (ساخت فرستنده گیرنده با ATMEGA32 & TX433)

        سلام. چرا از 2 تا میکرو استفاده کردی؟ خب LCD رو به پایه D وصل کن.
        با کیبورد تاحالا کار نکردم.

        دیدگاه


          #5
          پاسخ : مشکل در برنامه نویسی به زبان C (ساخت فرستنده گیرنده با ATMEGA32 & TX433)

          برای فرستادن به پورت سریال فکر کنم باید اطلاعات رو توی رجیستر UDR بریزی.
          اینجوری:
          [code=c]
          UDR = data;
          [/code]

          دیدگاه


            #6
            پاسخ : مشکل در برنامه نویسی به زبان C (ساخت فرستنده گیرنده با ATMEGA32 & TX433)

            از دو میکرو استفاده شده مدار فرستنده و گیرنده بیسیم هست. اونی که در عکس میبینید به این خاطره که در پروتئوس امکان شبیه سازی ماژولهای رادیویی وجود نداره. هیچی از کدی که نوشتین نفهمیدم. کیپد 3*4 رو چطوری تو برنامه وارد کنم و اطلاعاتشو بفرستم به پایه txd )usart)

            دیدگاه


              #7
              پاسخ : مشکل در برنامه نویسی به زبان C (ساخت فرستنده گیرنده با ATMEGA32 & TX433)

              من زیاد وارد نیستم. ولی چون کس دیگه ای جواب نداده بود من جواب دادم.
              توی دیتا شیت قسمت USART رو بخون.
              اینا یه بافر ارسال و دریافت دارن به اسم UDR، که برای ارسال و دریافت از طریق ارتباط سریال باید توی این رجیستر اطلاعاتت رو بریزی. و موقع خوندن باید از این رجیستر اطلاعات رو بخونی. این رجیستر 8 بیتی هست.
              توی دیتا شیت ببین. باید با رجیستر های UCSRA و UCSRB و UCSRC کار کنی. ببین هر کدوم از بیت های این 3 تا رجیستر چه کاری رو انجام میدن.
              من فقط با دریافتش کار کردم. اینم یه نمونه کد برای دریافت که اطلاعات رو از پورت سریال دریافت میکنه و داخل یه متغیر به اسم receive میریزه:
              [code=c]
              #include <mega8.h>
              #include <delay.h>
              unsigned char receive[10],i=0;
              interrupt [USART_RXC] void usart_rxc_isr(void) // Enable USART, RX Complete
              {
              receive[i]=UDR;
              i++;
              }

              void main()
              {
              DDRB.0=1;
              PORTB.0=0;
              UCSRA=0X00;
              UCSRB=(1<<RXCIE)|(1<<RXEN) |(1<<TXEN);
              UCSRC=(1<<URSEL)|(1<<UCSZ1)|(1<< UCSZ0);
              UBRRH=0X00;
              UBRRL=0X47; // Boud Rate: 9600
              #asm("sei&quot
              delay_ms(2000) // delay for receive data
              for(i=0 ; i=10 ; i++)
              {
              if(receive[i]==5)
              PORTB.0=1;
              }

              }
              [/code]

              دیدگاه


                #8
                پاسخ : مشکل در برنامه نویسی به زبان C (ساخت فرستنده گیرنده با ATMEGA32 & TX433)

                خب در مورد گیرنده اگه کار رو به این روش که شما گفتید پیش ببریم، حالا چجوری اطلاعات متغیر recive رو بفرستم رو نمایشگر؟
                *مثال: روی فرستنده کلید 5 رو فشار دادیم و میخوام روی نمایشگر گیرنده عدد5 نشون داده باشه.

                *یه نگاه به پروژه زیر بندازید (مخصوصا برنامش):

                http://dmf313.ir/%d9%be%d8%b1%d9%88%da%98%d9%87-%d9%81%d8%b1%d8%b3%d8%aa%d9%86%d8%af%d9%87-%da%af%db%8c%d8%b1%d9%86%d8%af%d9%87-%d8%b1%d8%a7%d8%af%db%8c%d9%88%db%8c%db%8c-%d8%a8%d8%a7-%d9%85%d8%a7%da%98%d9%84-hmt-hmr/

                از نظر سخت افزاری تنها تفاوت کار من با پروژه بالا اینه که بجای یه کلید، یه کیپد به فرستنده وصل میشه

                دیدگاه


                  #9
                  پاسخ : مشکل در برنامه نویسی به زبان C (ساخت فرستنده گیرنده با ATMEGA32 & TX433)

                  خب با کی پد کار نکردم. این ماژوله بوردش چقدره؟ چند متر؟ قیمتش چنده؟

                  دیدگاه


                    #10
                    پاسخ : مشکل در برنامه نویسی به زبان C (ساخت فرستنده گیرنده با ATMEGA32 & TX433)

                    ماژول HMR فرکانس 433 مگاهرتر :
                    http://roboeq.ir/products/detail/%D9%85%D8%A7%DA%98%D9%88%D9%84%20HMR%20%D9%81%D8%B 1%DA%A9%D8%A7%D9%86%D8%B3%20433%20%D9%85%DA%AF%D8% A7%D9%87%D8%B1%D8%AA%D8%B1/

                    ماژول HMT فرکانس 433 مگاهرتز :
                    http://roboeq.ir/products/detail/%D9%85%D8%A7%DA%98%D9%88%D9%84%20HMT%20%20%D9%81%D 8%B1%DA%A9%D8%A7%D9%86%D8%B3%20433%20%D9%85%DA%AF% D8%A7%D9%87%D8%B1%D8%AA%D8%B2/

                    دیدگاه


                      #11
                      پاسخ : مشکل در برنامه نویسی به زبان C (ساخت فرستنده گیرنده با ATMEGA32 & TX433)

                      بالاخره خودم نوشتم برنامه شو.

                      مرسی که کمک نکردین.

                      دیدگاه


                        #12
                        پاسخ : مشکل در برنامه نویسی به زبان C (ساخت فرستنده گیرنده با ATMEGA32 & TX433)

                        نوشته اصلی توسط m-moradi
                        بالاخره خودم نوشتم برنامه شو.

                        مرسی که کمک نکردین.
                        اگه شد بذارش اینجا که استفاده کنیم.

                        دیدگاه


                          #13
                          پاسخ : مشکل در برنامه نویسی به زبان C (ساخت فرستنده گیرنده با ATMEGA32 & TX433)

                          نوشته اصلی توسط m-moradi
                          بالاخره خودم نوشتم برنامه شو.

                          مرسی که کمک نکردین.
                          من الان اتفاقی این پست رو دیدم. :biggrin: هرچند که جواب گرفتید و تبریک میگم. ولی کلا اگر از کدویژن استفاده میکنه کسی، از کدویزارد وقفه های ارسال و دریافت یوزارت رو فعال کنه و خیلییی راحت کارش پیش میره.
                          فقط کافیه دستور مثلا puts("sample" رو داخل بدنه برنامه بنویسید و آخر تابع ترنسفر که خود کدویژن عزیز زحمت کشیده و نوشته یه پیغام رو روی ال سی دی نمایش بدید. برای نمایش دریافت هم به همین روش با gets()

                          دیدگاه

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