اطلاعیه

Collapse
No announcement yet.

کار با میکرو کنترلر های 8 پین

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

    کار با میکرو کنترلر های 8 پین

    سلام . همونطور که میدونید یکی از کارهای جالب میکرو انجام عملیات پیچیده با یک آیسی مناسب است. برای دستگاه کنترل نفوذ NO2 نیاز به کار کردن با میکرو 8 پین Pic12f675 داشتم اما مجبور شدم از 16F84 استفاده کنم. عجیب ترین نکته اینه که با 12F675 میتونم خروجی رو کنترل کنم اما در خواندن ورودی دیجیتال مشکل دارم. من از زبان بیسیک استفاده میکنم.
    دوستانی که میخوان بگن از یه میکرو سری 16 استفاده کن، مسافر پولو میگفت ما رفتیم به ماه تا جای جدیدی برای زندگی پیدا کنیم اما زمین را یافتیم، پس هدف فهمیدنه.
    حتی یک برنامه ی هیچی هم اجرا نمیشد...
    main:

    if porta.0=1 then
    porta.1=1
    else
    porta.1=0
    endif
    goto main
    end
    من آن آشفته ماشینم که تایر زیر تن دارم
    و از اسرار بازارم همان قدر زیر و بم دارم
    چنان خسته شدم از گردش چرخان چرخانم
    که امروزه تمنای دویدن بر دو پا دارم

    #2
    پاسخ : کار با میکرو کنترلر های 8 پین

    نوشته اصلی توسط dideh
    سلام . همونطور که میدونید یکی از کارهای جالب میکرو انجام عملیات پیچیده با یک آیسی مناسب است. برای دستگاه کنترل نفوذ NO2 نیاز به کار کردن با میکرو 8 پین Pic12f675 داشتم اما مجبور شدم از 16F84 استفاده کنم. عجیب ترین نکته اینه که با 12F675 میتونم خروجی رو کنترل کنم اما در خواندن ورودی دیجیتال مشکل دارم. من از زبان بیسیک استفاده میکنم.
    دوستانی که میخوان بگن از یه میکرو سری 16 استفاده کن، مسافر پولو میگفت ما رفتیم به ماه تا جای جدیدی برای زندگی پیدا کنیم اما زمین را یافتیم، پس هدف فهمیدنه.
    حتی یک برنامه ی هیچی هم اجرا نمیشد...
    main:

    if porta.0=1 then
    porta.1=1
    else
    porta.1=0
    endif
    goto main
    end
    سلام.
    شماتیک رو هم لطفا قرار بدین.

    دیدگاه


      #3
      پاسخ : کار با میکرو کنترلر های 8 پین

      :smile: سلام دوست عزیز و ممنون که توجه کردید. راستش مشکل من هم مسخره است هم عجیب با هیچ میکرو کنترلی به مشکل بر نخوردم مگر PIC هشت پایه. حتی آنالوگ به دیجیتال و PWM و ... مشکلی ندارم . اما ورودی دیجیتال نمیتونم بگیرم.حتی تو مثال ساده گفته شده.
      به نظر مسخره میاد اما جدی جواب نمیده... :cry2:
      من آن آشفته ماشینم که تایر زیر تن دارم
      و از اسرار بازارم همان قدر زیر و بم دارم
      چنان خسته شدم از گردش چرخان چرخانم
      که امروزه تمنای دویدن بر دو پا دارم

      دیدگاه


        #4
        پاسخ : کار با میکرو کنترلر های 8 پین

        با سلام

        شاید نیازی به یاد آوری نباشه که رجیستر های ansel و cmcon و trisio رو هم ابتدای برنامه باید مقدار دهی کنین. ضمنا تو 675 دیگه رجیستری بنام porta نداریم. کامپایلرتون خطا نمیگیره؟
        کمترین توقع از یک فرد تحصیلکرده، دانستن املای صحیح کلمات است.

        دیدگاه


          #5
          پاسخ : کار با میکرو کنترلر های 8 پین

          اینو تست کن:
          اوسیلاتور داخلی. با MCLR
          کد:
          :1000000000308A0004280000FF238316900000308F
          :100010008A000A2884011F3083051F1383161F10CE
          :100020009F101F119F110730831299001F13831611
          :100030001F109F101F119F11073083129900831604
          :100040000508850003308312A000A00B252819089D
          :100050008C11831605148312051C33288316851012
          :10006000831285143728831685108312851029285A
          :0200700063002B
          :02400E00E43F8D
          :00000001FF
          ;PIC12F675
          ;CRC=135F CREATED="05-Jun-14 22:05"

          دیدگاه


            #6
            پاسخ : کار با میکرو کنترلر های 8 پین

            :question: ببخشید من چیزی از هگز نمیفهمم. اما نو رسیده ی عزیز من فقط output , input رو دست زدم درمورد Porta کامپایلرم (microcode studio) خودش gpio رو اینجوری نامگذاری کرده . البته از میکرو بی هم استفاده کردم باز نتونستم بجز gpio5 بقیه رو به عنوان ورودی استفاده کنم. اما در مورد جیستر های ansel و cmcon و trisio من همونطور که گفتم فقط Trisio رو تغییر دادم، میشه درمورد Ansel و cmcon توضیح بدید؟ :redface:
            من آن آشفته ماشینم که تایر زیر تن دارم
            و از اسرار بازارم همان قدر زیر و بم دارم
            چنان خسته شدم از گردش چرخان چرخانم
            که امروزه تمنای دویدن بر دو پا دارم

            دیدگاه


              #7
              پاسخ : کار با میکرو کنترلر های 8 پین

              نوشته اصلی توسط dideh
              :question: ببخشید من چیزی از هگز نمیفهمم. اما نو رسیده ی عزیز من فقط output , input رو دست زدم درمورد Porta کامپایلرم (microcode studio) خودش gpio رو اینجوری نامگذاری کرده . البته از میکرو بی هم استفاده کردم باز نتونستم بجز gpio5 بقیه رو به عنوان ورودی استفاده کنم. اما در مورد جیستر های ansel و cmcon و trisio من همونطور که گفتم فقط Trisio رو تغییر دادم، میشه درمورد Ansel و cmcon توضیح بدید؟ :redface:
              همونطور که میدونین توی میکروها هر پایه ممکنه چند فانکشن داشته باشه که شما باید موقع بالا اومدن براش تعریف کنین که از چه فانکشنی میخواین استفاده کنین.

              ANSEL رجیستریه که وضعیت پایه های قابل استفاده به عنوان ورودی آنالوگ رو مشخص میکنه. توی حالت دیفالت، اونا آنالوگ هستن. شما باید برای استفاده به عنوان دیجیتال، ANSEL رو مقدار دهی کنین.

              CMCON هم مشابه ANSEL برای مقایسه کننده هاست. برای اطلاعات بیشتر به دیتا شیت مراجعه کنین.

              کمترین توقع از یک فرد تحصیلکرده، دانستن املای صحیح کلمات است.

              دیدگاه


                #8
                پاسخ : کار با میکرو کنترلر های 8 پین

                نوشته اصلی توسط dideh
                :question: ببخشید من چیزی از هگز نمیفهمم.
                اونو گذاشتم تست کنی.
                با CCS نوشتم و چون شما کامپایلرشو نداشتی برات کامپایل کردم. اگه خواستی تست کن یه وقت مشکل از میکرو یا مدارت نباشه.

                دیدگاه


                  #9
                  پاسخ : کار با میکرو کنترلر های 8 پین

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

                  ANSEL رجیستریه که وضعیت پایه های قابل استفاده به عنوان ورودی آنالوگ رو مشخص میکنه. توی حالت دیفالت، اونا آنالوگ هستن. شما باید برای استفاده به عنوان دیجیتال، ANSEL رو مقدار دهی کنین.

                  CMCON هم مشابه ANSEL برای مقایسه کننده هاست. برای اطلاعات بیشتر به دیتا شیت مراجعه کنین.

                  آهان حالا متوجه منظورتون شدم. ANSEL همون ADCON=X ورودی هام رو هم دیجیتال تعریف کردم اما چیز جدیدی که فهمیدم اینه که اگه MClr رو به صورت داخلی پال پ کنم که پایه ی چهارم IO بشه میتونم از اون هم به عنوان ورودی استفاده کنم. :redface: یعنی پایه هایی که به گفته ی دیتا شیت فقط ورودی هستند به عنوان ورودی خونده میشن اما اونایی که هم ورودی و هم خروجی هستند رو نمیشه به عنوان ورودی استفاده کرد. چیز دیگه که شاید عجیب باشه اینکه وقتی یه خروجی رو تغییر میدم اول سایر خروجی ها صفر میشن و بعد خروجی مورد نظر یک میشه :NO: یعنی اگه بخوام دو خروجی 0 و 1 همزمان های باشند باید بنویسم:
                  porta=3
                  یا به قول میکرو بی:
                  gpio=3
                  من آن آشفته ماشینم که تایر زیر تن دارم
                  و از اسرار بازارم همان قدر زیر و بم دارم
                  چنان خسته شدم از گردش چرخان چرخانم
                  که امروزه تمنای دویدن بر دو پا دارم

                  دیدگاه


                    #10
                    پاسخ : کار با میکرو کنترلر های 8 پین

                    نوشته اصلی توسط freedom_truth
                    اونو گذاشتم تست کنی.
                    با CCS نوشتم و چون شما کامپایلرشو نداشتی برات کامپایل کردم. اگه خواستی تست کن یه وقت مشکل از میکرو یا مدارت نباشه.
                    ممنون ، میشه برنامه رو بنویسید CCS هم دارم.
                    :rolleyes: هرچند تا حالا استفاده نکردم...
                    من آن آشفته ماشینم که تایر زیر تن دارم
                    و از اسرار بازارم همان قدر زیر و بم دارم
                    چنان خسته شدم از گردش چرخان چرخانم
                    که امروزه تمنای دویدن بر دو پا دارم

                    دیدگاه


                      #11
                      پاسخ : کار با میکرو کنترلر های 8 پین

                      این کد سی برای ccs :

                      کد:
                      #include <12F675.h>
                      #fuses INTRC_IO,NOWDT,NOPROTECT
                      #use delay(clock = 4000000)
                      
                      void main()
                      {
                      setup_adc_ports(NO_ANALOGS);
                      setup_comparator(NC_NC_NC_NC);
                      
                      while(true)
                      {
                       if (input(pin_a0))
                       {
                        output_high(PIN_a1);
                       }
                       else
                       {
                        output_low(PIN_a1);
                       }
                      }
                      }

                      دیدگاه


                        #12
                        پاسخ : کار با میکرو کنترلر های 8 پین

                        نوشته اصلی توسط freedom_truth
                        این کد سی برای ccs :

                        کد:
                        #include <12F675.h>
                        #fuses INTRC_IO,NOWDT,NOPROTECT
                        #use delay(clock = 4000000)
                        
                        void main()
                        {
                        setup_adc_ports(NO_ANALOGS);
                        setup_comparator(NC_NC_NC_NC);
                        
                        while(true)
                        {
                         if (input(pin_a0))
                         {
                          output_high(PIN_a1);
                         }
                         else
                         {
                          output_low(PIN_a1);
                         }
                        }
                        }
                        دست شما درد نکنه اما اینم نه تو پروتئوس و نه تو واقعیت جواب نداد...
                        من آن آشفته ماشینم که تایر زیر تن دارم
                        و از اسرار بازارم همان قدر زیر و بم دارم
                        چنان خسته شدم از گردش چرخان چرخانم
                        که امروزه تمنای دویدن بر دو پا دارم

                        دیدگاه


                          #13
                          پاسخ : کار با میکرو کنترلر های 8 پین

                          کد هگز رو امتحان کردی؟

                          من تو پروتیوس امتحان کرده بودم جواب داده بود ولی دیگه فایلاشو پاک کردم.

                          دیدگاه


                            #14
                            پاسخ : کار با میکرو کنترلر های 8 پین

                            نوشته اصلی توسط freedom_truth
                            کد هگز رو امتحان کردی؟

                            من تو پروتیوس امتحان کرده بودم جواب داده بود ولی دیگه فایلاشو پاک کردم.
                            :applause: دمت گرم جواب میده... اما علتش چیه؟! oo:من اون دستوراتی رو که داده بودی نوشتم کد هگزش شده بود:

                            :1000000000308A0004280000FF238316900000308F
                            :100010008A000A2884011F3083051F1383161F10CE
                            :100020009F101F119F110730831299001F13831611
                            :100030001F109F101F119F11073083129900831604
                            :100040000508850003308312A000A00B252819089D
                            :100050008C11831605148312051C33288316851012
                            :10006000831285143728831685108312851029285A
                            :0200700063002B
                            :02400E00E401CB
                            :00000001FF
                            ;PIC12F675
                            ;CRC=D387 CREATED="21-ژوئن-14 14:56"

                            :eek: تفاوتشون فقط تو این خط بود:
                            :02400E00E43F8D

                            کسی میدونه این خط مربوط به کجاست؟ یا چرا تو کامپایلر c به من یه کد دیگه داد؟
                            من آن آشفته ماشینم که تایر زیر تن دارم
                            و از اسرار بازارم همان قدر زیر و بم دارم
                            چنان خسته شدم از گردش چرخان چرخانم
                            که امروزه تمنای دویدن بر دو پا دارم

                            دیدگاه


                              #15
                              پاسخ : کار با میکرو کنترلر های 8 پین

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

                              دیدگاه

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