اطلاعیه

Collapse
No announcement yet.

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

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

    #16
    پاسخ : تو برنامه نویسی مشکل دارم...

    نوشته اصلی توسط حسام الدین
    سلام ...............

    ببینید این کاری که میخواید بکنید که زیاد به دیکود کردن مرتبط نمیشه؛ میشه؟ یه جور جمع دو ورودیه دیگه؟ مگه غیر از اینه؟
    دقیقا منظورم همون دیکود کردن ...
    ذکات علم یاد دادنه ....

    دیدگاه


      #17
      پاسخ : تو برنامه نویسی مشکل دارم...

      سلام ..................

      من متوجه نمیشم .. کجاش دیکود کردنه؟! دیکود یعنی کدگشایی انجام بده .. مثلا از دل یه کد چها ورودی 16 تا آدرس مختلف استخراج کنه .. حالا اینجا چیه قضیه؛ نمیدونم .. موفق باشید ..
      دوستان! مدتی کمتر به سایت میام ..

      دیدگاه


        #18
        پاسخ : تو برنامه نویسی مشکل دارم...

        منظورم جمع کردن نیست .
        می خوام ورودی باینری بدم خروجی دسیمال داشته باشم همین
        ذکات علم یاد دادنه ....

        دیدگاه


          #19
          پاسخ : تو برنامه نویسی مشکل دارم...

          #include <mega16.h>
          #include <math.h>
          #include <delay.h>

          long i;
          void main(void)
          {
          PORTA=0xFF;
          DDRA=0x00;
          PORTB=0x00;
          DDRB=0xFF;
          PORTC=0x00;
          DDRC=0xFF;
          PORTD=0x00;
          DDRD=0x00;
          while (1)
          {
          i=PINA&0x0f;
          if(i<9)PORTB=pow(2,i+1)-1;
          else PORTC.0=1;//for binary code 0 to 15 this line should be : PORTC=pow(2,i+1)-9;
          delay_ms(50);
          };
          }

          پایه های 0 تا 3 پورت A خونده میشه و توی i ذخیره میشه.
          اگر i صفر باشه که led ها خاموش هستن
          اگر 1 تا 8 باشه روی پورت b به تعداد i اled روشن میشه
          اگر 9 باشه led نهم روی پین c.0 روشن میشه
          یه مکث 50 میلی ثانیه

          pow(2,i+1)-1 یعنی 2 به توان i+1 منهای 1

          امید وارم متوجه شده باشید :question:
          در صورتی که برنامه متوجه شده باشید چند ایراد کوچیک داره که احتمالا اونا رو هم باید بفهمید. oo:
          اگر ایراد رو پیدا نکردید بگید تا من بگم کجاست. :biggrin: :job:
          خردمند به کار خویش تکیه میکند و نادان به آرزوی خویش . « حضرت علی (ع) »
          اگر همیشه همان کاری را که انجام داده اید تکرار کنید ، چیزی بیش از آنچه تا کنون به دست آورده اید، به دست نخواهید آورد
          مارک تواین می گوید: بهتر است دهان خود را ببندید و ابله به نظر برسید تا اینکه آن را باز کنید و همه تردیدها را از میان ببرید !!!

          دیدگاه


            #20
            پاسخ : تو برنامه نویسی مشکل دارم...

            سلام nimasaboor از کمکی که کردین ممنونم من که گفتم تو برنامه نویسی اماتورم :redface: تازه دارم شروع می کنم میشه لطف کنید خودتون بفرمایید
            در ضمن اگه میشه یه چنتا مثال ساده مثل همین بزارین تا روش کار کنم تا یکمی هم من به مخم فشار بیارم
            یه چیزه دیگه میشه مدارشو برام بکشید ببینم با اینی که من بستم درسته یا نه...
            ذکات علم یاد دادنه ....

            دیدگاه


              #21
              پاسخ : تو برنامه نویسی مشکل دارم...

              آقا مجید ببخشید دیر شد :icon_razz:. دیشب مهمان تقریبا رسمی داشتم نمی شد بشینم پای کامپیوتر.
              عکس مدار مورد نظر من پایینه البته من ادعایی ندارم و ممکنه مداری که کشیدم مثل برنامه ام چون دوتاشون عجله ای بودن دارای اشکالاتی باشه. در این صورت انشاءالله شما به بزرگی خودت می بخشی. فقط یه چیزی اونم اینکه به دلیل تنبلی مقاومت و led های روی پورت B رو نکشدیم (8 عدد led و مقاومت) مقاومت R1 تا R4 مقاومت های 10k هستن.(اسم شون رو توی این مدار نمی دونم اگر pull up نباشه)

              حالا برنامه :
              اونجای برنامه که شرط بررسی میشه (if) اگر کمتراز 9 باشه به همون تعداد led روشن میشه اگر 9 باشه فقط یه led روشن میشه اونم روی پین C.0 در صورتی که باید همه 9 led روین بشه.
              توی خطی که else نوشته شده بعد از // توضیح نوشته شده که از نظر عملی اشتباهه و نیازی بهش نیست.(اگر خواستی توضیح میدم)
              خط قرمز اطلاح شده برنامه قبله که شما خودت توی codecision باید اعمال کنی


              #include <mega16.h>
              #include <math.h>
              #include <delay.h>

              long i;
              void main(void)
              {
              PORTA=0xFF;
              DDRA=0x00;
              PORTB=0x00;
              DDRB=0xFF;
              PORTC=0x00;
              DDRC=0xFF;
              PORTD=0x00;
              DDRD=0x00;
              while (1)
              {
              i=PINA&0x0f;
              if(i<9)PORTB=pow(2,i+1)-1;
              else
              {
              PORTC.0=1;
              PORTB=255;
              }

              delay_ms(50);
              };
              }


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


              خردمند به کار خویش تکیه میکند و نادان به آرزوی خویش . « حضرت علی (ع) »
              اگر همیشه همان کاری را که انجام داده اید تکرار کنید ، چیزی بیش از آنچه تا کنون به دست آورده اید، به دست نخواهید آورد
              مارک تواین می گوید: بهتر است دهان خود را ببندید و ابله به نظر برسید تا اینکه آن را باز کنید و همه تردیدها را از میان ببرید !!!

              دیدگاه


                #22
                پاسخ : تو برنامه نویسی مشکل دارم...

                از راهنمایی که کردین ممنونم...

                شرمنده یه اشکال دیگه برام پیش اومده :redface:
                من می خوام یه فلاشر ساده با میکرو طراحی کنم که حالتهای مختلفی رو تو خروجی داشته باشم یه برنامه هم براش نوشتم ولی تو پروتئوس که تستش می کنم هیچ LED روشن نمی شه برنامم اینه اگه توش اشکالی هست راهنمایی کنید :cry2:

                #include<mega16.h>
                #include<delay.h>
                #define xtal 1000000

                flash unsigned char arry[9]={0X00,0X81,0XC3,0XE7,0XFF,0XFF,0XE7,0XC3,0X81};

                unsigned char i;


                void main(void)
                {

                DDRD=0XFF;


                while(1)
                {


                for(i=0;i<9;i++);
                {
                PORTD=arry[i];
                delay_ms(50);
                if (i==9)
                i=0;
                }


                ذکات علم یاد دادنه ....

                دیدگاه


                  #23
                  پاسخ : تو برنامه نویسی مشکل دارم...

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

                  flasher(nima_saboor2020@yahoo.com).rar
                  خردمند به کار خویش تکیه میکند و نادان به آرزوی خویش . « حضرت علی (ع) »
                  اگر همیشه همان کاری را که انجام داده اید تکرار کنید ، چیزی بیش از آنچه تا کنون به دست آورده اید، به دست نخواهید آورد
                  مارک تواین می گوید: بهتر است دهان خود را ببندید و ابله به نظر برسید تا اینکه آن را باز کنید و همه تردیدها را از میان ببرید !!!

                  دیدگاه


                    #24
                    پاسخ : تو برنامه نویسی مشکل دارم...

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

                    flasher(nima_saboor2020@yahoo.com).rar
                    سلام اقا نیما اول از همه خیلی ممنونم که وقت می زارین رو سوالای من :applause:
                    بالاخره تونستم مشکلشو حل کنم مشکل از برنامه نبود از پروتئوس بود :rolleyes:

                    یه سوال کوچولوی دیگه داشتم :redface:می خواستم اگه میشه یه توضیحی تو قسمت code wizard AVR اونجایی هست که پورت خروجی و ورودی
                    تعریف میکنیم .اصولا چه فرقی بین P ,T هست

                    ] [http://www.4shared.com/file/89110489/57b7bc76/avr.html]
                    [/url][/img]
                    ذکات علم یاد دادنه ....

                    دیدگاه


                      #25
                      پاسخ : تو برنامه نویسی مشکل دارم...

                      t به معنای tri-state و p به معنای pull-up ....
                      اگه روی p بزاری مقاومت پولپ یا همون بالاکش داخلی میکرو فعال میشه و اگه هیچ چیزی به پورت وصل نباشه هم مقدار 1 منطقی روی پایه وجود خواهد داشت ... این کار رو توی برنامه میتونی با 1 کردن رجیستر port و صفر کردن DDR انجام بدی ...به عنوان مثال میتونی با استفاده از این حالت یک کلید رو بدون هیچ مقاومتی به میکرو وصل کنید .....
                      ولی اگه T باشه هیچ پولپی در کار نیست و اگه به پایه چیزی وصل نباشه حالت tri-state داره و ممکنه توی پین مقدار یک یا شاید صفر وجود داشته باشه .
                      That`s It ...I`m out of here

                      دیدگاه


                        #26
                        پاسخ : تو برنامه نویسی مشکل دارم...

                        دقیقا همین چیزی که آقای عرفانی نوشتند منم نوشتم ولی یه دفعه اینترنتم مشکل پیدا کرد نتونستم بفرستم.
                        خلاصه دست ایشون درد نکنه چون منم نمی دونستم چیه یه سرچ کردم و وقتی اومدم جواب بدم دیدم ایشون نوشتن و از اوشون تشکر می نماید :rolleyes:
                        اینم نمونه کد :

                        * to make port a as input with pull-ups enabled and read data from port a

                        DDRA = 0x00; //make port a as input
                        PORTA = 0xFF; //enable all pull-ups
                        y = PINA; //read data from port a pins


                        * to make port b as tri stated input

                        DDRB = 0x00; //make port b as input
                        PORTB = 0x00; //disable pull-ups and make it tri state

                        * to make lower nibble of port a as output, higher nibble as input with pull-ups enabled

                        DDRA = 0x0F; //lower nib> output, higher nib> input
                        PORTA = 0xF0; //lower nib> set output pins to 0,
                        //higher nib> enable pull-ups



                        باتشکر
                        امیدوارم موفق باشید
                        خردمند به کار خویش تکیه میکند و نادان به آرزوی خویش . « حضرت علی (ع) »
                        اگر همیشه همان کاری را که انجام داده اید تکرار کنید ، چیزی بیش از آنچه تا کنون به دست آورده اید، به دست نخواهید آورد
                        مارک تواین می گوید: بهتر است دهان خود را ببندید و ابله به نظر برسید تا اینکه آن را باز کنید و همه تردیدها را از میان ببرید !!!

                        دیدگاه


                          #27
                          پاسخ : تو برنامه نویسی مشکل دارم...

                          اقا دسته همگیتون درد نکنه کاملا مفید و مختصر توضیح دادین دوستان :applause:
                          فعلا دیگه مشکلی نیست :redface:
                          :bye
                          ذکات علم یاد دادنه ....

                          دیدگاه

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