اطلاعیه

Collapse
No announcement yet.

آموزش میکروکنترولر PIC با MPLAB C

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

    #16
    پاسخ : آموزش میکروکنترولر PIC با MPLAB C

    سلام
    خواهش می کنم آقای رمضانی
    همه در بخش PIC می دونن نخبه و استاد این میکرو با ادیتور و کامپایلر microchip شما هستین و خودم به شخصه سوالات و مشکلاتی بسیاریم رو با کمک شما حل کردم و الان قرار دادن این آموزش ها با همراهی شما و چک کردن بخش هاش برام امیدی هست که هر بخش رو تونسته باشم به خوبی بیان کنم و درستیش رو با تایید شما ادامه بدم.
    پیشنهادم این هست که سوالات دوستان رو مثل الان با همراهی شما پاسخ بدم تا به نحوی همچون استاد راهنما دست من رو در هدایت دیگرون به درستی هدایت کنین.
    بازم مثل همیشه از لطفتون ممنونم ramezani.t
    هیچ دانش آموزی نیست که به در خانۀ دانشمندی آمد و شد کند, مگر این که خداوند برای هر گامی که برمی دارد عبادت یک سال را برایش رقم زند.

    دیدگاه


      #17
      پاسخ : آموزش میکروکنترولر PIC با MPLAB C

      جلسه نهم:کار با مبدل آنالوگ به دیجیتال
      در بعضی از کاربردها که باید داده آنالوگ را دنبال و بر اساس آن دستورات منطقی رو صادر کنیم احساس به داشتن بخشی که داده آنالوگ به دیجیتال تبدیل می کند احساس می شود برای این منظور می توان از واحد ADC میکرو استفاده کرد.
      ورودی های آنالوگ با عبارت های AN0 , AN1 , …. بر روی تراشه مشخص شده است که بسته به کاربرد و آی سی انتخابی تعداد آنها تراشه تا تراشه متفاوت هست.برای کار با واحد ADC ابتدا باید ریجستر های کنترلی این قسمت رو راه اندازی کنیم و سپس با انتخاب کانال و خواندن ریجسترهای خروجی مقادیر تبدل حاصل از سیگنال آنالوگ به دیجیتال رو به دست آوریم
      ریجستر اول موردبررسی ریجستر ADCON0

      در این ریجستر ما می توانیم مشخص کنیم که واحد ADC از چه منبع نوسان سازی برای عملیات تبدیل خود استفاده کند ، از کدام کانال بخواند ، چه زمان تبدیل آنالوگ به دیجیتال پایان یافته هست و همچنین بخش ADC را فعال یا غیر فعال نمود.
      در این قسمت من سعی دارم کانال صفر یعنی AN0 رو انتخاب کنم و آن رو بخونیم و منبع نوسان ساز رو Fosc/2 نیز انتخاب کنم بنابراین شکل کلی انتخاب من به صورت زیر خواهد بود

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

      بیت هفتم بیان می کنه چون ADC میکرو 10 بیتی هست و نهایتا 10 بیت از آن استفاده می شود ، بیتهای بلااستفاده از سمت راست قرار بگیرند یا چپ، که ما این مقدار رو برابر یک فعال سازی می کنیم پس ریجسترمون به عبارت بالا تغییر پیدا می کنه
      4 بیت اول به این اشاره داره که از پورتهای دو وضعیتی (آنالوگ و دیجیتال) کدام یک دیجیتال و کدام یک آنالوگ باشن و رفرنس ولتاژی از کدام پین گرفته شود چون ما کانال صفر رو انتخاب کردیم و قصد داریم از ولتاژ خود میکرو جهت رفرنس ولتاژی استفاده کنیم مقدار 1110 رو با توجه به جدول در ریجستر مقداردهی می کنیم.

      پس این ریجستر هم برابر 8E هگزادسیمال خواهد بود.برای رویت مقادیر از lcd جهت نمایش مقادیر استفاده کردیم .تنها دو کار رو باید صورت بدیم
      1-فعال سازی بخش تبدیل در هر بار خواندن و چک کردن اتمام کار تبدیل
      2-خواندن ریجسترهای ADC و ریختن آن در متغییر
      پس در هر بار باید ابتدا بیت Go از ریجستر ADCON1 رو یک کنیم تا عملیات تبدیل شروع به کار کند و سپس همانند تایمرهای با تعریف یک متغییر دو بایت پر ارزش و کم ارزش رو به هم ارتباط بدیم
      پس برنامه به صورت زیر نوشته می شه


      #include<p18f452.h>
      #include <stdio.h>
      #include "delays.h"
      #include "LCD.h"

      #pragma config OSC=HS
      #pragma config DEBUG=OFF
      #pragma config WDT=OFF
      #pragma config BOR=OFF
      #pragma config LVP=OFF
      #pragma config PWRT=ON

      void main(){
      unsigned char msg[16];
      unsigned int i;
      lcdinit();
      ADCON0=0x05;
      ADCON1=0x8E;
      while(1){
      ADCON0bits.GO=1;
      while(ADCON0bits.DONE==1);
      i=ADRESH;
      i=i<<8;
      i=i | ADRESL;
      cls();locate(1,1);
      sprintf(msg,"Value:%d",i);
      lcdprint(msg);
      Delay10KTCYx(100);
      }
      }



      شکل مدار:می تونین با تغییر پتانسیومتر و تغییر ولتاژ بر روی پایانه AN0 مقادیر خوانده شده توسط میکرو رو تغییر بدین


      حالا بزارین محاسبات هم انجام بدین که اگر روزی خواستین بازه یا مقداری رو برای یک سیگنال آنالوگ پیدا کنین به راحتی و بدون دردسر باشین
      میکرو من pic18f452 مبدل دیجیتال 10 بیتی داره یعنی ولتاژ رفرنس رو بر 1024(که بیانگر 2 به توان 10 هست) تقسیم می کنه به عبارتی هر 4.8 میلی ولت رو برابر میران دقت ولتاژی در نظر می گیره یعنی اگر به میکرو ولتاژ 1 ولت رو به یکی از ورودیهای آنالوگ اعمال کنیم عدد تبدیل شده برابر با 1 ولت تقسیم بر .0048 یا 208 خواهد بود پس با این وضعیت اگر مقدار صفر دریافت کردین یعنی ورودی صفر ولت هست و اگر 1023 دریافت کردین یعنی 1023*.0048 ولت که می شه 4.91 ولت
      هیچ دانش آموزی نیست که به در خانۀ دانشمندی آمد و شد کند, مگر این که خداوند برای هر گامی که برمی دارد عبادت یک سال را برایش رقم زند.

      دیدگاه


        #18
        پاسخ : آموزش میکروکنترولر PIC با MPLAB C

        سلام دوستان
        امیدوارم تا اینجا تونسته باشم دید اولیه که اکثر دوستان نسبت به این میکرو و زبان برنامه نویسی C در ادیتور MPLAB به صورت خیلی ترسناک :rolleyes: داشتن رو به نحوی کم یا صفر کرده باشم.متاسفانه بابت پروژه دانشگاهی ، مشکلات درسی :nerd:و انجام پروژه های بیرونی برای معیشت زندگی :cry:کمتر می رسم ادامه این آموزشها رو دنبال کنم ان شالله باز اگر وقتی بود ادامه آموزش ها رو براتون باز می نوسیم و در همین جا قرار می دم

        مجددا از تمامی دوستان عذر می خوام

        نماز روزتون هم در این ماه مبارک ، قبول الله
        هیچ دانش آموزی نیست که به در خانۀ دانشمندی آمد و شد کند, مگر این که خداوند برای هر گامی که برمی دارد عبادت یک سال را برایش رقم زند.

        دیدگاه


          #19
          پاسخ : آموزش میکروکنترولر PIC با MPLAB C

          سلام من هم حدود چهار سال هست که پیک کار میکنم با سری های 16 بیتی و دیجیتال سیگنال کنترلر ها هم کار کردم با اکثر کامپایلر های معروف هم کار کردم حتی برد های تخصصی خود شرکت میکروچیپ و پروگرمر دیباگر اورجینال این شرکت ICD 3 رو هم از آمریکا برام آوردند.الان هم با کامپایلر های خود این شرکت کار میکنم اگه کمکی از دست من بر میاد خوشحال میشم کاری بکنم

          دیدگاه


            #20
            پاسخ : آموزش میکروکنترولر PIC با MPLAB C

            ببخشید یک سوال! از کجا باید مسیر کامپایلر رو به mplab بشناسونیم؟! برا من اون اولش که کامپایلر رو انتخاب میکنید c18 نوشته not found!

            دیدگاه


              #21
              پاسخ : آموزش میکروکنترولر PIC با MPLAB C

              سلام در MPLABX باید مسیر Tools-> option->Embedded->Add البته میتونید از Scan for Build Tools هم استفاده کنید.
              در MPLAB اگه دارین از Wizard استفاده میکنید همون جا مشخص هست اگه نه از قسمت view ->project تیک را فعال کنید (اگر نباشد) سپس بر روی نام پروژه مورد نظر راست کلیک کرده
              Select Language ToolSuite انتخاب کنید.

              دیدگاه


                #22
                پاسخ : آموزش میکروکنترولر PIC با MPLAB C

                سلام
                با سلام
                میخواستم نرم افزار mplab رو دانلود کنم ولی پیغام محدودیت دسترسی میده .اگه ممکنه این مشکل رو حل کنید.
                با تشکر از زحمات شما.
                برای دانلود این نرم افزار با توجه به تحریم شدن ایران باید از V...P...N یا Fil تر ش.کن استفاده کنین

                سلام من هم حدود چهار سال هست که پیک کار میکنم با سری های 16 بیتی و دیجیتال سیگنال کنترلر ها هم کار کردم با اکثر کامپایلر های معروف هم کار کردم حتی برد های تخصصی خود شرکت میکروچیپ و پروگرمر دیباگر اورجینال این شرکت ICD 3 رو هم از آمریکا برام آوردند.الان هم با کامپایلر های خود این شرکت کار میکنم اگه کمکی از دست من بر میاد خوشحال میشم کاری بکنم
                ان شالله که بتونیم از تجربیاتتون استفاده کنیم
                پیشنهادم این هست که اگر بتونین تراشه های 16 بیتی موجود در بازار رو که خودتون کار کردین و مزیت ها و برتری هاش رو به چشم دیدن تشریح کنین و قسمت های مختلف اون به همراه راه اندازیش رو توضیح بدین ان شالله که همه بتونیم از تجربیاتتون بیشتر استفاده کنیم.چون اکثر دوستان و الخصوص من با تراشه های 8 بیتی کار کردیم و تجربه ای از 16 بیتی ها نداریم
                هیچ دانش آموزی نیست که به در خانۀ دانشمندی آمد و شد کند, مگر این که خداوند برای هر گامی که برمی دارد عبادت یک سال را برایش رقم زند.

                دیدگاه


                  #23
                  پاسخ : آموزش میکروکنترولر PIC با MPLAB C

                  سلام

                  نوشته اصلی توسط rezarezaast
                  با سلام
                  میخواستم نرم افزار mplab رو دانلود کنم ولی پیغام محدودیت دسترسی میده .اگه ممکنه این مشکل رو حل کنید.
                  با تشکر از زحمات شما.
                  من قبلا ورژن 1.00 نرم افزار MPLAB X IDE رو پلود کردم که دوستان میتوانند اون رو از لینک زیر بدون محدودیت دانلود کنند

                  http://fadak-srt.persiangig.com/other/mplab-p/mplabx-ide-v1.00a-windows-installer.exe

                  همچنین کامپایلر MPLAB C18

                  http://fadak-srt.persiangig.com/other/mplab-p/mplabc18_v3.40_windows_lite.exe

                  موفق باشین :smile:


                  نا امیدی یه دروغ بزرگه که آدما به خودشون میگن
                  تلاش یه حقیقت بزرگه که با صبر به ثمر میرسه

                  دیدگاه


                    #24
                    پاسخ : آموزش میکروکنترولر PIC با MPLAB C

                    کسی با pic سری 24 کار کرده ؟ Pic24fj...

                    میخواستم ببینم درسته eeprom ندارند ؟ و یک مقداری آموزش براش بزارید ممنون میشم
                    همه دوست دارند به بهشت بروند اما جالب اینجاست کسی دوست ندارد بمیرد
                    کانت

                    دیدگاه


                      #25
                      پاسخ : آموزش میکروکنترولر PIC با MPLAB C

                      با سلام و خسته نباشید از زحمات شما دوستان .
                      خوشبختانه نرم افزار اول رو با فیلتر شکن دانلود کردم و کامپایلر رو هم به کمک دوستمان آقای رمضانی در حال دانلود هستم .
                      ولی برای کار با میکروهای سری 16F اگه ممکنه راهنمایی کنید چطور میتونم کامپایلرش رو دانلود کنم .
                      با تشکر.

                      دیدگاه


                        #26
                        پاسخ : آموزش میکروکنترولر PIC با MPLAB C

                        سلام
                        طبق سرچها و جستجوهایی که داشتم میکروچیپ کامپایلری همچون c18 یا c30 خروجی نداشته و برای این منظور باید از کامپایلر های دیگه مثل hi-tech یا picbasic و ... در محیط ادیتور mPLAB استفاده کنین.برای این منظور در ویزارد MPLABX در پنجره بعد از انتخاب میکرو کامپایلر مد نظر که رو کامپیوترتون نصب هست رو به عنوان کامپایلر انتخاب کنین (که من در اینجا از hi-tech استفاده کردم البته نوع مجانیش هست که نسبت به نوع تجاریش که فشردگی تا 40% تولید می کنه قابلیت انجام تمامی کارهای شما رو داراست)
                        هیچ دانش آموزی نیست که به در خانۀ دانشمندی آمد و شد کند, مگر این که خداوند برای هر گامی که برمی دارد عبادت یک سال را برایش رقم زند.

                        دیدگاه


                          #27
                          پاسخ : آموزش میکروکنترولر PIC با MPLAB C

                          سلام

                          نوشته اصلی توسط eshgh_namordeh
                          کسی با pic سری 24 کار کرده ؟ Pic24fj...

                          میخواستم ببینم درسته eeprom ندارند ؟ و یک مقداری آموزش براش بزارید ممنون میشم
                          متاسفانه در حال حاضر میکروهای بالاتر از 18f رو کار نکردم اما دقیقا درست هست که میکروهای 24fj حافظه eeprom ندارن و برای این منظور مطابق توضیحات میکروچیپ می یان از حافظه برنامه برای ایجاد یک بخش شبیه EEPROM استفاده می کنن که به جای استفاده از تراشه های eeprom یا نوشتن مداوم بر روی سکتورهایی از هر جای فلش ، قسمتی رو اختصاص به صفحه بندی و ... می دن و نهایتا کاری که قسمت eeprom در تراشه های دیگه رو انجام می ده رو شبیه سازی می کنن.برای مطالعه بیشتر و چگونگی این روش این applicatiion note رو بخونین

                          http://eca.ir/sharing/uploads/13443690301.rar
                          هیچ دانش آموزی نیست که به در خانۀ دانشمندی آمد و شد کند, مگر این که خداوند برای هر گامی که برمی دارد عبادت یک سال را برایش رقم زند.

                          دیدگاه


                            #28
                            پاسخ : آموزش میکروکنترولر PIC با MPLAB C

                            سلام


                            نوشته اصلی توسط rezarezaast
                            ولی برای کار با میکروهای سری 16F اگه ممکنه راهنمایی کنید چطور میتونم کامپایلرش رو دانلود کنم .
                            با تشکر.
                            کامپایلر جدید شرکت میکروچیپ توانایی کامپایل تمامی سری های 8 بیتی رو داره

                            این کامپایلر MPLAB XC8 نام داره

                            به لینک زیر دقت کنید

                            http://www.microchip.com/pagehandler/en_us/promo/mplabxc/

                            نا امیدی یه دروغ بزرگه که آدما به خودشون میگن
                            تلاش یه حقیقت بزرگه که با صبر به ثمر میرسه

                            دیدگاه


                              #29
                              پاسخ : آموزش میکروکنترولر PIC با MPLAB C

                              سلام آقا رمضانی ممنونم بابت اطلاعاتتون
                              یه سوال ازتون داشتم
                              فرق کامپایلر xc32 برای میکروهای 16 بیتی و 32 بیتی چی هست؟

                              اضافه شده در تاریخ :
                              سلام
                              متاسفانه چند وقت پیش دنبال تراشه های 32 بیتی بودم که هیچ یک رو در ایران پیدا نکردم ، نمونه ی حاضری در ایران دوستان سراغ دارن؟ممنون می شم اگر اطلاع دارین شماره آی سی ها رو همین جا قرار بدین
                              هیچ دانش آموزی نیست که به در خانۀ دانشمندی آمد و شد کند, مگر این که خداوند برای هر گامی که برمی دارد عبادت یک سال را برایش رقم زند.

                              دیدگاه


                                #30
                                پاسخ : آموزش میکروکنترولر PIC با MPLAB C

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

                                کامپایلر MPLAB XC8 برای تمامی سری های 8 بیتیه ( PIC 10, 12, 16, & 18 )
                                مثل :
                                16F877 و 18F4550

                                کامپایلر MPLAB XC16 برای تمامی میکرو های 16 بیتی و DSPIC ها هست ( PIC24 & dsPIC )
                                مثل :
                                DSPIC33FJ128MC708 و DSPIC30F4011 و DSPIC30F4013
                                یا PIC24FJ128GA006

                                کامپایلر MPLAB XC32 برای تمامی میکرو های 32 بیتیه
                                مثل :
                                PIC32MX460F512L و PIC32MX795F512L

                                من در بازار تهران تمامی این تراشه ها را به راختی تهیه میکنم

                                کامپایلر های سری hi-tech از تکنولوژی به نام Omniscient Code Generation™ (OCG) استفاده میکردند که باعث میشد حجم کد خروجی کمتر بشه , که ظاهرا کامپایلر های سری XC نیز به همین صورت عمل میکنند , یعنی حجم کد خروجی سری XC از مثلا C18 کمتره
                                نا امیدی یه دروغ بزرگه که آدما به خودشون میگن
                                تلاش یه حقیقت بزرگه که با صبر به ثمر میرسه

                                دیدگاه

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