اطلاعیه

Collapse
هیچ اطلاعیه ای هنوز ایجاد نشده است .

آموزش pic ccs

Collapse
X
  • فیلتر
  • زمان
  • نمایش
پاک کردن همه
new posts

  • آموزش pic ccs

    سلام

    آموزش کامپایلر ccs بصورت کامل و قدم به قدم


    ساخت برنامه جدید

    انتخاب آیکون File Menu


    و انتخاب گزینه NEW


    و گزینه Source Files


    و انتخاب نام فایل




    می توانیم فایل جدیدی بسازیم

    یاحق

  • #2
    سلام

    وارد کردن اطلاعات Config

    اولین دستوری که باید وارد برنامه بشه مشخص کردن نوع میکرو که به دو شکل میشه اینکارو کرد

    1- استفاده از دستور INCLUDE

    کد:
    #include <16F877A.h>
    2- استفاده از دستور DEVICE

    کد:
    #DEVICE PIC16F877A
    بعد از مشخص کردن نوع میکرو باید دستورات Chip Option و Compilation mode selection کنیم که فعلا به آن نیاز نداریم و در قسمت های بعد که مورد نیاز بود توضیح میدم (این دستورات با استفاده از دستور DEVICE مقدار دهی میشوند)

    دستور بعدی FUSES

    با استفاده از این دستور فیوزبیت ها را تنظیم میکنیم

    مثال:
    کد:
    #fuses HS,NOWDT,NOPROTECT,NOLVP
    HS نوع اسیلاتور (LP, XT, HS, RC و .......)

    NOWDT روشن و خاموش کردن تایمر سگ نگهبان (WDT, NOWDT)

    NOPROTECT حفاظت در برابر کپی رایت (PROTECT, NOPROTECT)

    NOLVP پروگرام در حالت معمولی یا کم مصرف (LVP,NOLVP)

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

    دستور بعدی USE DELAY

    این دستور برای تنظیم دستور ها و قسمت هایی از میکرو که نیاز به TIMEING دارند میباشد مثل قسمت های SPI , UART و دستور های delay_ms و delay_us که برای ایجاد تاخیر می باشند.

    مثال
    کد:
    #use delay(clock=20MHZ)
    بعد از تنظیم دستورات بالا که اصولا در هر برنامه ایی مورد نیاز است وارد قسمت اصلی برنامه میشویم

    البته Config های بسیاری وجود داره که در طول برنامه مورده نیازه که هر کدام در قسمت مربوطه توضیح داده میشه

    یاحق

    نظر


    • #3
      سلام آقاي مدير

      آقا اجازه !
      راستش توي AVR ابتداي برنامه بايست رجيستر هاي ماژول هاي مورد استفاده رو مقدار دهي آغازين مي كرديم ، اينجا همچين چيزي نداريم ؟
      من يه برنامه ساده نوشتم با استفاده از سمپل خود كامپايلر كه بياد يه LEDرو روشن و خاموش كنه .
      LED روشن ميشه ولي ديگه خاموش نميشه و من فكر مي كنم برنامه كار نمي كنه!
      اصلا هم مطمئن نيستم فيوز ها رو درست پروگرم كرده باشم!
      _________________________________________________
      چگونه می توان قطعات فلز را هوشمند نمود اما خویشتن را نه ؟!

      نظر


      • #4
        سلام آقای کاربر جدید تالار

        به به از این طرف ها آقا صالح راه گم کردین

        راستش توي AVR ابتداي برنامه بايست رجيستر هاي ماژول هاي مورد استفاده رو مقدار دهي آغازين مي كرديم ، اينجا همچين چيزي نداريم ؟
        چرا ولی بستگی به برنامه ات داره لزوما نباید باشه حالا توضیح میدم

        این برنامه را تست کن پین 7 از پورت B باید چشمک بزنه

        کد:
        #include <16F877A.h>
        
        #FUSES NOWDT                  
        #FUSES HS 
        #FUSES NOBROWNOUT              
        #FUSES NOLVP                   
        
        
        #use delay(clock=20000000)
        
        
        
        
        void main()
        {
        
        
           while(TRUE)
           {
           
           output_high(pin_b7);
              delay_ms(1000);
           output_low(pin_b7);
              delay_ms(1000);
              
           }
        
        
        }
        اینم کامپایل شده اش با کریستال 20 مگاهرتز (البته کریستالش زیاد فرق نمیکنه فقط سرعت چشمک زدنش کمو زیاد میشه) مثلا اگه 1 مگاهرتز بزاری بجایه 1 ثانیه خاموش و 1 ثانیه روشن میشه 20 ثانیه روشن و 20 تا هم خاموش


        یاحق
        فایل های پیوست شده

        کاربر عزیز ، شما مجاز به دانلود فایل پیوست نمی باشید ؛ برای دانلود و استفاده بهتر از انجمن ثبت نام نمائید. با تشکر

        نظر


        • #5
          صالح جان

          من فراموش کردم پروگرامرت lv بود یادت نره دستی فیوزشو تنظیم کنی وگرنه پروگرام نمیشه یا درست پروگرام نمیشه

          البته میتونی تو برنامه

          اینو

          کد:
          #fuses nolvp
          به اینهم

          کد:
          #fuses lvp
          تغییر بدهی

          یاحق

          نظر


          • #6
            سلام

            برای زبان سی کامپایلر میکرو سی چطوره ؟ کار کردید باهاش ؟
            من برای ای وی آر یکم باهاش کار کردم بدک نبود
            "سرم" را شاید دیگران در نبودنت گرم کنند، ولی "دلم" را هرگز.

            نظر


            • #7
              سلام
              عادل جان

              با میکرو سی کار کردم ولی فقط دستوراتش بر پایه سی هست و مثل CCS نمیشه باهاش مانور داد

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

              کلا کسی که با میکرو کار نکرده باشه و فقط با زبان سی کار کرده باشه میتونه به راحتی با CCS کار کنه

              اگه اشتباه میکنم بگید

              یاحق

              نظر


              • #8
                سلام
                اين فايل آموزشي رو ميزارم تا در كنار آموزش خوب امير خان رفقا هم استفاده كنند:
                آموزش CCS در سرور ابر ابونتو
                _________________________________________________
                چگونه می توان قطعات فلز را هوشمند نمود اما خویشتن را نه ؟!

                نظر


                • #9
                  سلام

                  صالح جان ممنون بابت فایل آموزشیت

                  شرمنده یه چند وقتی نبودم

                  خوب میرم سراغ آموزش

                  بعد از
                  وارد کردن اطلاعات Config

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

                  کد:
                  void main(){
                  
                  دستورات در این قسمت نوشته میشه
                  
                  }


                  د
                  ستورات باید بین این دو آکولاد {} نوشته شود

                  یاحق

                  نظر


                  • #10
                    با سلام .
                    استاد عزیز خیلی خوبه ، میشه آموزش رو ادامه بدین ؟
                    توی چشمک زن ، فکر کنم منظور آقا صالح با استفاده از وقفه و سرریز باشه ، ایشون قبل از هر چیز اول اینکارو میکنن واسه صحت مدار .

                    نظر


                    • #11
                      سلام

                      امیرجان به نظر من در محیط MPLAB و با کمپایلر high-tech برای میکروهای سری 16 و کامپایلر c18 برای سری 18 که مربوط به خود شرکت میکروچیپ هست آموزش ها ادامه پیدا کنه البته برای بعضی کامپایلرها مثل c18 یا xc18 سخت بشه نسخه پروفشنال رایگان پیدا کرد ولی ارزشش رو داره با برنامه هایی مثل micro c یا ccs که اومدن برای اینکه کاربر راحت باشه هدرهای زیادی رو تعریف کردن که هم یوزر رو تنبل بار میاره و نه آدم میتونه به راحتی به کد تولید شده اعتماد کنه!

                      البته در حد نظر هست . ببخشید جسارت کردیم
                      یاحق
                      خداوند لبخند را از جنس محبت آفرید؛
                      مومنان لبخند بزنید...

                      نظر


                      • #12
                        آقای یزدی آموزش هاتون را ادامه نمی دید؟
                        یکم پیشرفته تر

                        نظر


                        • #13
                          نوشته اصلی توسط javadkom نمایش پست ها
                          آقای یزدی آموزش هاتون را ادامه نمی دید؟
                          یکم پیشرفته ترflowerflower
                          سلام
                          دوست عزیز

                          متاسفانه بخاطر فوت پدر عزیزم و اتفاقاتی که در این مدت افتاد و بشدت مرا درگیر کرده بود نتونستم ادامه بدم ولی حتما آموزش را ادامه میدم

                          دو مورد فرمایش رامین عزیز اگر درخواستی در مورد آموزش mplab باشه به دیده منت آموزش اون هم بصورت جداگانه انجام میدم

                          یاحق

                          نظر


                          • #14
                            سلام

                            دستور شرطی if

                            دستور if شرط داخل پرانتز را چک میکند اگر شرط صحیح بود (true) خط بعد از دستور و قبل از ( ; ) را انجام میدهد در غیر اینصورت از آن رد میشود و در صورت وجود دستور else دستور بعد از آن را انجام میدهد

                            حالت اول

                            کد:
                            if(a==1)
                            
                            b =2;
                            حالت دوم


                            کد:
                            if(a==1)
                            
                            b=2;
                            
                            else
                            
                            b=3;
                            حالت سوم


                            کد:
                            if(a==1)
                            
                            b=2;
                            
                            else if(a==2)
                            
                            b=3;
                            
                            else if(a==3)
                            
                            b=4;
                            نکته: برای انجام چند دستور داخل شرط از {} استفاده میکنیم

                            کد:
                            if(a==1)
                            {
                            
                            b=1;
                            c=2;
                            d=3;
                            }
                            یاحق

                            نظر


                            • #15
                              یه پیشنهاد
                              خدمتتون تسلیت عرض می کنم
                              به نظرم اگه برید سراغ موضوعات اصلی بهتره باشه مثلا آموزش کار با ( i2c یا spi و...) چون کسانی که میکرو کار می کنند یه حداقل آشنایی با زبان c دارند.
                              با تشکر از شما

                              نظر

                              صبر کنید ..
                              X