اطلاعیه

Collapse
No announcement yet.

روشن کردن یک ال ای دس یا پورت میکرو از سی شارپ

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

    روشن کردن یک ال ای دس یا پورت میکرو از سی شارپ

    سلام
    من می خوام از سی شارپ پورت سی میکرو رو روشن کنم که یک ال ای دی گذاشتم اونجا .
    ارسال مقدار و ارتباط و این مسائل را نیاز ندارم فقط یک کدی چیزی که بشه از سی شارپ پورت های میکرو رو روشن و خاموش کرد .
    ممنون
    متشکر

    #2
    پاسخ : روشن کردن یک ال ای دس یا پورت میکرو از سی شارپ

    سلام
    برای اینکار شما باید از یک ارتباط استفاده کنید.
    LAN, LPT, COM, PCI, USB
    با COM هم که کار کردید، سریاله
    با LPT تعداد 8 پین در دسترس شماست.
    با USB CDC که تبدیل USB به COM مجازی هم مثل COM
    با USB HID هم میتونید که نیازی به آیسی واسط نیست و شما میتونیدمستقیم هر میکرویی رو به USB وصل کنید و رفتاری مانند رفتار کیبورد داشته باشید که نیازی به درایور نداره و یا درایورش هم به سادگی با نرم افزاری قابل تولیده.
    ابته من با سیستم بدون درایور کار نکردم.
    کدومش؟
    شبنم از سعی به سرچشمه خورشید رسید صائب تبریزی

    دیدگاه


      #3
      پاسخ : روشن کردن یک ال ای دس یا پورت میکرو از سی شارپ

      من ارتباطم با com هست .
      رشته و عدد می فرستم و می خونم .
      الان می خوام کنترل روشن و خاموش کردن پورت های میکرو رو از سی شارپ انجام بدم . یک ال ای دی توی یک پورت میکرو گذاشتم مثلا پورت سی می خوام از سی شارپ اونو روشن کنم .

      ممنون

      دیدگاه


        #4
        پاسخ : روشن کردن یک ال ای دس یا پورت میکرو از سی شارپ

        در اینصورت یک مقدار توسط #C به میکرو میفرستید مثلا 169 و سپس در میکرو اگر عدد داخل UDR برابر با 169 بود فلان پین رو روشن میکنید.
        شبنم از سعی به سرچشمه خورشید رسید صائب تبریزی

        دیدگاه


          #5
          پاسخ : روشن کردن یک ال ای دس یا پورت میکرو از سی شارپ

          سلام
          ممنون
          یک مثال گرفتن درکدویژن و روشن شده پین رو میشه بگید ؟
          در ضمن ارسال از سی شارپ همون دستور writeln هست دیگه ؟ همونی که برای ارسال استفاده می کنم ؟

          دیدگاه


            #6
            پاسخ : روشن کردن یک ال ای دس یا پورت میکرو از سی شارپ

            سلام
            خواهش میکنم.
            لطفا فایل زیر رو دانلود کنید
            http://s6.picofile.com/file/82076530..._port.rar.html



            #include <mega8.h>
            #include <stdio.h>


            void main(void)
            {
            // Port C initialization
            // Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out
            // State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0
            PORTC = 0x00;
            DDRC = 0x7F;


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


            while (1)
            {
            if ((UCSRA & (1<<RXC)))
            {
            UCSRA &= (1<<RXC);
            if (UDR == 169)
            PORTC |= (1<<PC0);
            else
            PORTC &= ~(1<<PC0);
            }
            }
            }
            شبنم از سعی به سرچشمه خورشید رسید صائب تبریزی

            دیدگاه


              #7
              پاسخ : روشن کردن یک ال ای دس یا پورت میکرو از سی شارپ

              این دوقسمت چیه

              کد:
                   if (UDR == 169)
                    PORTC |= (1<<PC0);
                   else
                    PORTC &= ~(1<<PC0);
              این قسمت رو ارور میده !
              اگه عدد دریافتی 169 بود پورت سی رو روشن می کنه ؟
              یعنی
              PORTC=1;
              در غیر این صورت
              PORTC=0;
              درسته ؟

              دیدگاه


                #8
                پاسخ : روشن کردن یک ال ای دس یا پورت میکرو از سی شارپ

                اینی که من نوشتم خیلی خلاصه هست و یه ترکیبی از Atmel Studio و CodeVision
                UDR که محل دیتای دریافتی از واحد سریاله.
                PORTC |= (1<<PC0); این یعنی پین صفر از PORTC رو صفر کن.
                PORTC &= ~(1<<PC0); این یعنی پین صفر از PORTC رو یک کن.
                هونطور که گفتی، میتونی از PORTC=1; و PORTC=0; استفاده کنی.
                یا از PORTC |= 0x01; و PORTC &= ~0x01; استفاده کنی.
                شبنم از سعی به سرچشمه خورشید رسید صائب تبریزی

                دیدگاه


                  #9
                  پاسخ : روشن کردن یک ال ای دس یا پورت میکرو از س&#17

                  تشکر
                  ولی کار نمیکنه .
                  ارور میده روی همون
                  کد:
                   PORTC |= (1<<PC0);
                  که من بجاش از
                  PORTC.0=1;
                  استفاده کردم . برنامه بیلد شد ولی در پروتئوس کار نمی کنه و ال ای دی روشن نمیشه ؟؟؟

                  دیدگاه


                    #10
                    پاسخ : روشن کردن یک ال ای دس یا پورت میکرو از سی شارپ

                    مطمئنی که اتباط سریال درسته. یعنی مقدار از C# APP به میکرو ارسال میشه؟
                    شبنم از سعی به سرچشمه خورشید رسید صائب تبریزی

                    دیدگاه


                      #11
                      پاسخ : روشن کردن یک ال ای دس یا پورت میکرو از س&#17

                      بله
                      ارسال سی شارپ مشکل نداره .

                      اگه امشب وقت داری اینو حل کن .
                      البته تو همون نمونه خودت که با مگا 8هست و همون نمونه کد .
                      ممنون

                      دیدگاه


                        #12
                        پاسخ : روشن کردن یک ال ای دس یا پورت میکرو از سی شارپ

                        پس اینو تست کن

                        #include <mega8.h>
                        #include <stdio.h>

                        void main(void)
                        {
                        unsigned char a = 0;
                        // Port C initialization
                        // Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out
                        // State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0
                        PORTC = 0x00;
                        DDRC = 0x7F;

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


                        while (1)
                        {
                        if ((UCSRA & (1<<RXC)))
                        {
                        a = getchar();
                        if (a == 169)
                        PORTC.0 = 1;
                        else
                        PORTC.0 = 0;
                        }
                        }
                        }


                        من بارها اینکارو انجام دادم و جواب گرفتم. کار خاصی نیست.
                        ولی پروتئوس از نظر من اصلا مطمئن نیست.
                        شبنم از سعی به سرچشمه خورشید رسید صائب تبریزی

                        دیدگاه


                          #13
                          پاسخ : روشن کردن یک ال ای دس یا پورت میکرو از س

                          نه متاسفانه کار نکرد .
                          کد سی شارپ من اینه البته تنطیمات باودریت و بازکردن پورت و این مسائل رو اولش انجام دادم و تو پورتئوس هم در compim میاد یعنی چراغ compim خاموش روشن میشه که یعنی اطلاعات رو گرفته ولی ال ای دی پورت سی روشن نمیشه !!!

                          کد:
                          serialPort1.WriteLine(textBox1.Text);

                          من وقتی در خط آخر
                          else
                          PORTC.1 = 1;

                          می کنم پورت c1 روشن میشه پس معلومه اطلاعات رو درست نمیخونه از سی شارپ چون در صورتی که 169 نباشه باید پورت سی یک روشن بشه که میشه ولی اگر همون 169 باشه روشن نمیشه . پس تو خوندن مشکل داره !!!

                          دیدگاه


                            #14
                            پاسخ : روشن کردن یک ال ای دس یا پورت میکرو از سی شارپ

                            وقتی شما Writelineرو استفاده میکنی یعنی ابتدا 169 رو میفرسته و بعد 13 دسیمال رو میخوای امتحان کن جای 169 در برنامه میکرو عدد 13 رو بذار و نتیجه رو بگو


                            اگر نشد بیا مقدار UDR رو روی LCD چیزی نمایش بده تا ببینی چی ارسال شده.
                            شبنم از سعی به سرچشمه خورشید رسید صائب تبریزی

                            دیدگاه


                              #15
                              پاسخ : روشن کردن یک ال ای دس یا پورت میکرو از سی شارپ

                              سلام
                              نشد !

                              ممنون

                              دیدگاه

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