اطلاعیه

Collapse
No announcement yet.

[آموزش] آشنایی با کامپایلر MPLAB C Compiler for PIC18 MCUs

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

    [آموزش] آشنایی با کامپایلر MPLAB C Compiler for PIC18 MCUs

    با سلام خدمت همه دوستان

    مقدمه :

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

    خوب چه کامپایلری معتبر تر ازکامپایلر های شرکت میکرو چیپ

    اما یه مشکلی وجود داشت , هیچ منبع فارسی برای این کامپایلر وجود نداشت به خصوص که من اون وقت به جای ادیتور mplab x ide از mplab ide استفاده میکردم که راه اندازیش یه سری قلقای خاص داشت .
    اما من مصمم تر از این حرفا بودم , مزیتای زیادی که این کامپایلر داشت به من اجازه نمیداد که از تصمیمم منصرف بشم

    مزیتایی مثل : Open source بودن این کامپایلر , کتابخونه های زیاد و پیشرفته ای که ازش تو اینترنت مجود داشت , مزیت دیگه این بود که این کامپایلر به زبان C استاندارد ( ANSI ) بود و من برای یاد گیری اون فقط باید با زبان C آشنا میشدم
    خوب اعتبار شرکت سازنده هم یه مزیت دیگه بود

    یه چیز خیلی عجیب دیگه این بود که تو این فروم و کلا تو تمام فروم های فارسی اطلاعات خیلی کمی وجود داشت , من متوجه نشدم چرا !
    اما تصمیم گرفتم این وضعیت رو تغییر بدم
    خوب من مسیر مشخصی رو برای یاد گیری این کامپایلر برای خودم برنامه ریزی کردم
    با خوندن یه کتاب آموزش زبان C شروع کردم , وخیلی زود پیشرفت ها شروع شد
    تصمیم گرفتم مسیر این آموزش ها رو تا جایی که که میتونم برای شما بنویسم تا دیگران سریع تر به جواب برسن .

    آموزشها رو با یک چشمک زن LED شروع میکنم
    آموزش راه اندازی یک LCD کاراکتری رو در آموزش شماره 2 میبینید
    در آموزش شماره 3 قصد دارم چگونگی استفاده از USART رو قرار بدم

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


    لطفا پیشنهادات خودتون رو به پست شخصی بنده بفرستبد


    لطفا سوالات خودتون در رابطه با mplab رو در فروم اصلی قرار بدین و فقط سوال در رابطه با آموزش ها رو اینجا قرار بدین


    یه سوال اساسی :

    آیا کامپایلرهای شرکت میکروچیپ رایگان هستن , آیا احتیاج به کرک ندارن ؟

    کامپایلر های شرکت میکروچیپ از لحاظ تجاری بودن دو نوع هستن

    نوع رایگان یا Lite

    نوع تجاری یا Eval
    ( Evaluation )


    به کلمه freeware در جمله زیر دقت کنید

    The Lite compilers are freeware compilers provided as a low-cost tool for all purposes. These compilers have no time or memory limitations, however most code optimizations will be restricted.

    این جمله در اواخر صفحه زیر قرار داره

    http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406& dDocName=en534868
    فرق این دوتا با هم چیه ؟

    کد هایی که نوع Lite ایجاد میکنن 35 درصد بیشتر از نوع Eval هستم
    برنامه ای که با Lite مینویسین کار میکنه و مشکلی نداره و فقط حجم بیشتری ایجاد میکنه
    درضمن نوع Eval بعد از 60 روز تبدیل به نوع Lite میشود

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

    http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406& dDocName=en010014
    خوب حالا برنامه چی هست ؟
    خوب ما میتونیم کار برنامه نویسی رو با Lite شروع کنیم , آموزش هامون رو ببینیم , کتابخونه هامون رو آماده کنیم و وقتی متوجه شدیم با کار کردن با این نرم افزار و انجام یک پروژه تجاری میتونیم کسب درآمد کنیم , خوب اون وقت ریسک خرید نرم افزار معقول هست
    خوب ما همیشه برای ابزار کارموون خرج میکنیم اینم یه جور ابزار کاره
    فقط باید ترک عادت کنیم و بی خیال کرک شیم , من که دیگه به کرک فکر نمیکنم ,چون به پروژه های تجاری و صنعتی فکر میکنم و نمیتونم به کرک اعتماد کنم

    کامپایکرهای میکروچیپ همچین قیمتای ترسناکی هم ندارن

    به لینک زیر دقت کنید
    http://www.microchipdirect.com/ProductDetails.aspx?Category=COMPILERS&mid=13& amp;treeid=6&Sort=PackageType&Error=Quanti ty

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

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



    نصب نرم افزار :

    ابتدا نرم افزار MPLAB X IDE رو از لینک زیر دانلود کرده ونصب کنید

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

    سپس کامپایلر MPLAB C Compiler for PIC18 MCUs نوع LITE رو از لینک زیر دانلود کرده و نصب کنید

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


    نوع eval رو هم میتونید از لینک زیر دانلود کنید ,اما وقتی پروژتون کامل شد نصبش کنید

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


    pdf زیر هنگام آموزش بدرد میخوره , هر جا که شماره صفحه خاصی رو آوردم منظور این PDF هست
    (getting_started_with_mplab-x)

    http://fadak-srt.persiangig.com/other/mplab-d/getting_started_with_mplab-x.pdf


    درضمن اشخاصی که با زبان C آشنا نیستن میتونن از لینک های زیر استفاده کنن


    http://www.learninweb.com/product.php?type=1
    http://www.cplusplus.com/reference/clibrary
    http://www.eca.ir/forum2/index.php?board=111.0
    http://fadak-srt.persiangig.com/other/mplab-d/C%26C%252B%252B.pdf
    http://fadak-srt.persiangig.com/other/mplab-d/part%201.pdf
    http://fadak-srt.persiangig.com/other/mplab-d/part%202.pdf
    http://fadak-srt.persiangig.com/other/mplab-d/part%203.pdf
    http://fadak-srt.persiangig.com/other/mplab-d/part%204.pdf
    http://fadak-srt.persiangig.com/other/mplab-d/part%205.pdf
    http://fadak-srt.persiangig.com/other/mplab-d/part%206.pdf
    http://fadak-srt.persiangig.com/other/mplab-d/part%207.pdf

    معرفی چند کتاب :

    کتاب راهنمای جامع برنامه نویسی C انتشارات کانون نشر علوم رو حتما مطالعه کنید , وقتی این کتاب رو میخونید براتون شبهه ای اتفاق میوفته اونم اینه که فکر میکنید نویسنده کتاب در حال آموزش کامپایلر MPLAM C18 هست این به این خاطر که این کامپایلر از قوانین زبان برنامه نویسی C استاندارد ( ANSI ) پیروی میکنه

    کتابروژه های پیشرفته میکروکنترلر های PIC به زبان C انتشارات پندارپارس رو هم داشته باشین تو انجام پروژه کمکتون میکنه
    البته این کتاب کامپایلر mikroC رو آموزش میده

    همچنین کتاب میکروکنترلر PIC انتشارات ادبستان نوشته مهندس حسین چهرقانی
    این کتاب هم کامپایلر CCS رو آموزش میره




    در ادامه آموزش راه اندازی یک چشمک زن LED رو میبینید

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

    #2
    آموزش شماره یک

    سلام

    آموزش شماره یک


    خوب ما هم مثل همه آموزش ها بایک چشمک زن LED شروع میکنیم
    ( LED blanking )


    بعد از باز کردن نرم افزار mplabx در نوار ابزار روی آیکن new project کلیک کنید ص28 PDF
    (getting_started_with_mplab-x)

    Standalone Project رو انتخاب کرده وبر روی next کلیک کنید ص29

    در مرحله بعد در قسمت Family خانواده PIC18 رو انتخاب کنین و در قسمت Device برای این پروژه PIC18F452 رو انتخاب کنید ص30

    در قسمت بعد پرمگرام خودتون رو انتخاب کنید ص31

    در مرحله بعد در پنجره Select Compiler کامپایلر C18 رو انتخاب کنید ص32

    در قسمت بعد نام و مکان زخیره سازی پروژه خودتون رو انتخاب کنید و بر روی finish کلیک کنید ص33

    در پنجره Project Window ( ص18 ) روی Source Files کلیک راست کنید ص35

    New را انتخاب کرده و بر روی C Source Files کلیک کنید ص41

    در پنجره New C Source File نام برنامتون رو انتخاب کنید و بر روی Finish کلیک کنید ص42


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


    کد:
    
    
    #include <p18f452.h>
    #include <delays.h>
    
    #pragma config OSC   = HS
    //#pragma config OSCS  =
    #pragma config PWRT  = ON
    #pragma config BOR   = OFF
    //#pragma config BORV  =
    #pragma config WDT   = OFF
    //#pragma config VDTPS  =
    //#pragma config CCP2MUX =
    //#pragma config STVR  =
    #pragma config LVP   = OFF
    //#pragma config DEBUG  =
    
    #define LED PORTDbits.RD3
    
    
    
    void main()
    {
    
     TRISA = 0b00000000 ;
     TRISB = 0b00000000 ;
     TRISC = 0b00000000 ;
     TRISD = 0b00000000 ;
     TRISE = 0b00000000 ;
    
     //ADCON0bits.ADON = 0 ;
     //ADCON1 = 0b00000110 ;
    
     while(1)
     {
    
      LED = 1 ;
      Delay10KTCYx(250) ;
    
      LED = 0 ;
      Delay10KTCYx(250) ;
    
    
     }
    }


    ( فرکانس اسیلاتور 20 مگاهرتز هست )

    در خط اول و دوم فایل های هدر مورد نیاز را به برنامه اضافه میکنیم

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


    برای به دست آوردن اسامی فیوزبیت هر میکرو به این صورت اقدام کنید

    در نوار ابزار

    Help >> Helpcontents

    در نوار سمت چپ

    c18 toolchain >> c18 configuration setting


    به وسیله دستور #define برای پورت d3 اسم LEDرو انتخاب میکنیم

    while(1) یک حلقه بی نهایت است

    به وسیله فرمول زیر تعداد سیکل مورد نیاز برای تاخیر مورد نیاز به دست می آید



    Cycles = (TimeDelay * Fosc) / 4

    ( 500ms * 20000000 ) / 4


    2500000 سیکل معادل نیم ثانیه برای فرکانس 20 مگاهرتز

    دقت کنید نهایت عددی که میتوانید در این تابع قرار بدین 256 میباشد , برای ایجاد تعخیر های زمانی بیشتر باید این تابع رو درون یک حلقه قرار بدین , در آموزش های بعدی توضیحات بیشتری در این رابطه میبینید .


    در آموزش بعد طریقه راه اندازی LCD کاراکتری رو قرار میدم


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

    دیدگاه


      #3
      آموزش شماره دو

      سلام

      آموزش شماره 2

      LCD کاراکتری

      فرکانس اسیلاتور 20 مگاهرتز است و از تراشه pic18f452 استفاده میشود

      لطفا کتاب خانه LCD رو از لینک زیر دانلود کنید

      http://www.embeddedcodesource.com/developer/microchip_technology/external_lcd

      مانند آموزش قبل یک پروژه ایجاد کنید و بر روی Source Files کلیک راست کنید

      سپس New Logical Folder رو انتخاب کنید ص35 PDF
      (getting_started_with_mplab-x)

      New Folder ایجاد شده رو کلیک راست کرده و Rename کنید ص36 مانند شکل نام LCD رو تایپ کنید

      سپس بر روی فلدر LCD راست کلیک کرده و Add Existing Item روانتخاب کنید ص37

      سپس فایل های کتاب خانه LCD رو که قبلا دانلود کردین مانند ص38 به پروژه اضافه کنید , فقط فایل هایی که با فرمت C. هستن

      سپس بر روی Header Files راست کلیک کرده و Add Existing Item رو انتخاب کنید ص39

      سپس فایل هدر که پسوند H. داره رو به پروژه اضافه کنید ص40


      به فایل های C که به پروژه اضافه کردین دقت کنید
      فایلی که درون اون دستور main وجود داره فایل اصلی شما هست

      کدهای اون فایل رو به کد های زیر تغییر دهید



      کد:
      /*************************************************************
      *           be name KHODA             *
      *                              *
      * 1391.6.25                         *
      * s.ramezani.t@gmail.com                   *
      *                              *
      *                              *
      * OSC = 20Mhz                        *
      *                              *
      **************************************************************/
      
      #include <p18f452.h>
      #include <delays.h>
      #include <stdio.h>
      #include "xlcd.h"
      
      
      #pragma config OSC   = HS
      #pragma config OSCS  = OFF
      #pragma config PWRT  = ON
      #pragma config BOR   = OFF
      //#pragma config BORV  =
      #pragma config WDT   = OFF
      //#pragma config VDTPS  =
      //#pragma config CCP2MUX =
      //#pragma config STVR  =
      #pragma config LVP   = OFF
      #pragma config DEBUG  = OFF
      
      
      #define LED   PORTEbits.RE0
      
      #define clear_DIS 0x01
      
      #define LINE_1   0x80
      #define LINE_2   0xC0
      #define LINE_3   0x94
      #define LINE_4   0xD4
      
      
      unsigned int cont = 0 ;
      char buf[20];
      
      
      void main( void )
      {
      
       TRISA = 0b00000000 ;
       TRISB = 0b00000000 ;
       TRISC = 0b00000000 ;
       TRISD = 0b00000000 ;
       TRISE = 0b00000000 ;
      
       ADCON0bits.ADON = 0 ;
       ADCON1 = 0b00000110 ;
      
       Delay10KTCYx(250) ;
      
       /*-------------------*/
      
       OpenXLCD( FOUR_BIT & LINES_5X7 );
      
       while( BusyXLCD() );
       WriteCmdXLCD( DON & BLINK_OFF & CURSOR_OFF);
       while( BusyXLCD() );
       WriteCmdXLCD( clear_DIS ); //clear display
      
       Delay10KTCYx(250) ;
      
       while( BusyXLCD() );
       WriteCmdXLCD( LINE_1 + 2 );
       putrsXLCD( "be name KHODA" );
      
       while( BusyXLCD() );
       WriteCmdXLCD( LINE_2 );
       putrsXLCD( "LINE_2" );
      
       while( BusyXLCD() );
       WriteCmdXLCD( LINE_3 );
       putrsXLCD( "LINE_3 1234567890" );
       
       
       while( BusyXLCD() );
       WriteCmdXLCD( LINE_4 );
       putrsXLCD( "LINE_4 1234567890" );
       
       /*-------------------*/
       
       cont = 0 ;
      
       while(1)
       {
      
        LED = 1 ;
        Delay10KTCYx(50) ;
      
        LED = 0 ;
        Delay10KTCYx(50) ;
      
        cont = cont + 1 ;
        sprintf(buf,"a+b = %4d srt", cont);
      
        while( BusyXLCD() );
        WriteCmdXLCD( LINE_2 );
        while( BusyXLCD() );
        putsXLCD( buf );
      
       }
      
      }

      تحلیل کد ها :

      در خط های 12 تا 15 هدر های مورد نیاز به پروژه اضافه شدن , دقت کنید که هدر xlcd.h به وسیله " " فراخانی شده است نه < > , این امر باعث میشود که کامپایلر برای پیدا کردن هدر درخاستی شما ابتدا فولدر پروژه شما رو جستجو کنه , دقت کنید که این هدر در تمامی فایل های c که به پروژه اضافه کردید فراخانی شده است , پس در تمامی این فایل ها باید از " " برای فراخانی هدر xlcd.h استفاده شود در غیر این صورت در تقییر پورت ها و یا حتی کار کرد صحیح برنامه دچار مشکل میشوید


      در خط خای 18 تا 28 فیوز بیت ها تنظیم شده اند


      پین RE0 در خط 31 به اسم LED تام گزاری شده است

      خطوط 33 تا 38 دستوراتی هستن که شما در پروژه به اون ها احتیاج دارید و چون در کتاب خانه میکروچیپ نبودن من آنها رو به این شکل تعریف کرده ام که برای اطلاعات بیشتر باید از دیتاشیت HD44780 استفاده کنید تا در صورت نیاز دستورات دیگری را نیز تعریف کنید

      cont و buf منقیر های مورد نیاز ما هستن که در خط های 41 و 42 تعریف شده اند


      و بالاخره main اصلی در خط 45 شروع میشود

      در خط های 48 تا 52 تمامی پین ها رو خروجی تعریف کرده ام

      a/d رو در خط 54 خاموش کردم و همه پین ها رو در خط 55 دیجیتال تعریف کردم


      بعضی از LCD ها هنگام روشن شدن به مقداری زمان نیاز دارن تا خودشون رو پیدا کنن , قرار دادن یک تاخیر زمانی در خط 57 برای احتیاط است

      خب از اینجا به بعد به پی دی اف MPLAB_C18_Libraries احتیاج دارید
      http://fadak-srt.persiangig.com/other/mplab-d/MPLAB_C18_Libraries_51297f.pdf

      باید به وسیله دستور OpenXLCD تایین کنید که از 4 خط برای ارتباط با LCD استفاده میکنید با 8 خط , FOUR_BIT یا EIGHT_BIT , همچنین به وسیله این دستور باید تایین کنید که دات ماتریس کاراکتر ها چه آرایشی دارن ( LINES_5X7 )

      به خط 63 دقت کنید , قبل از ارسال هر دستوری به LCD باید چک کنید که آیا LCD مشغول هست با نه

      برای ارسال دستور از WriteCmdXLCD استفاده میشود



      دستورات دیگر خیلی واضح هستن فقط درباره دستور( sprintf( buf,"a+b = %4d srt", contیک مقدار توزیح لازم است


      و اما دستور printf این دستور در زبان C برای نمایش اطلاعات بر روی نمایش گر استفاده میشود


      اما چرا در C18 ما از این دستور استفاده کردیم ؟

      اگر شما مستقیما یک متغیر که اعداد صحیح در اون هست رو روی نمایشگر بریزید LCD اون عدد رو به عنوان کد اسکی گرفته و کاراکتر متناظر با اون عدد رو نشان میدهد
      برای رفع این مشگل ما یک متغییر از نوع char که یک آرایه 20 تایی هست رو تعریف کردیم
      char buf[20];

      و بعد به وسیله دستور sprintf اعداد صحیحی که در متغیر cont هستن رو تبدیل به کد اسکی میکنیم

      برای آشنایی بیشتر با دستور printf از نرم افزار آموزشی یا pdf هایی که برای آموزش زبان C در مقدمه قرار دادم استفاده کنید


      یه نکته:

      به فایل هدرتون دقت کنید , آرایش پین های LCD در این فایل قرار داره
      اگه لازم دونستید تغییرش بدین

      دقت کنید که پورت D3 برای LED استفاده شده


      اگر در تغییر پورت های LCD دچار مشکل شدید حتما مطالبی که در صفحه 3 این آموزش ها وجود داره را مطالعه کنید



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



      از لینک های زیر برای دریافت کتاب خانه استفاده کنید




      http://www.embeddedcodesource.com/

      http://www.microchipc.com/

      http://www.brushelectronics.com/

      http://romux.com/

      http://www.techtoys.com.hk/

      http://www.microchip.com/TechDoc.aspx?type=CodeExamples

      http://www.microchip.com/SoftwareLib.aspx



      برای تکمیل این آموزش ها حتما آموزش شماره 3 را مطالعه کنید کنید


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

      دیدگاه


        #4
        پاسخ : آشنایی با کامپایلر MPLAB C Compiler for PIC18 MCUs

        سلام
        آقا من یه سوال دارم اونم اینه که تو این کامپایلر چطوری باید از اعداد ممیز شناور(float) استفاده کرد
        جایی توضیح خاصی داده نشده.
        اما من وقتی مثلا یه عدد تعریف می کنم و ضرب روش انجام میدم یا تقسیم توی پروتوس که می بینم انگار اصلا مقدار دهی نمی شه .
        مثلا:
        کد:
        float f,v;
        f=3.14;
        v=f*2;
        تو پروتوس هیچ کدوم از متغیر ها مقدار نگرفتن

        دیدگاه


          #5
          پاسخ : آشنایی با کامپایلر MPLAB C Compiler for PIC18 MCUs

          سلام

          اقا باید به خاطر این اموزشا ازتون تشکر کنم .

          من به یه مشکل برخوردم .یه پروژه با mplab x ide ساختم بعد موقع انتخاب پروگرامر باید کدوم گزینه رو انتخاب کنم ؟ من هیچ سخت افزاری ندارم . فقط فایل hex میخوام . به من فقط فایل cof رو میده .
          عامل کليدي تمام موفقيتها " عمل کردن" است

          دیدگاه


            #6
            پاسخ : آشنایی با کامپایلر MPLAB C Compiler for PIC18 MCUs

            سلام
            موقع انتخاب پروگرامر باید کدوم گزینه رو انتخاب کنم ؟
            وقتی پروگرامرتون تو لیست نیست دیگه فرقی نداره چی رو انتخاب کنید

            من هیچ سخت افزاری ندارم . فقط فایل hex میخوام . به من فقط فایل cof رو میده .
            برای مثال اسم پروژه من uzart_az2_rx بود که در مسیر زیر hex اون رو پیدا میکنم


            C:\My Tools\project\PIC\uzart_az2_rx.X\dist\default\prod uction
            نا اميدي يه دروغ بزرگه که آدما به خودشون ميگن
            تلاش يه حقيقت بزرگه که با صبر به ثمر ميرسه

            دیدگاه


              #7
              پاسخ : آشنایی با کامپایلر MPLAB C Compiler for PIC18 MCUs

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

              ولی واسه اون دوستانی که دانشجو هستن و می خوان برای کارهای دانشجویی استفاده کنند برای این برنامه KeyGen وجود داره
              که یک کلید قانونی براتون میسازه منبعشم اینجاست
              http://www.sonsivri.to/forum/index.php?topic=935.0

              موفق باشید

              ---------------------------------------------------------------------------------
              HI-TECH Universal RSA Keygen

              * HI-TECH Universal RSA Keygen generates real RSA signed activation data.
              * Replaces HI-TECH RSA public key with self-generated RSA key - different every time!
              * Generates permanent PRO key - no expiry date!
              * Tested with:


              •HI-TECH C Compiler for PIC10-12-16 MCUs
              •HI-TECH C PRO for the PIC18 MCU Family
              •HI-TECH C PRO for the PIC32 MCU Family
              •HI-TECH for dsPIC-PIC24
              •HI-TECH C PRO for the Silicon Labs 8051 MCU Family
              •HI-TECH C PRO for the PSoC Mixed-Signal Array
              •HI-TECH C for Holtek MCU
              •HI-TECH PICC-18 STD

              * New in version 2.2


              •Enhanced error detection & reporting.
              •64-bit version included.
              •Includes CLEAN.BAT to remove HI-TECH data from VirtualStore.
              See http://www.sonsivri.com/forum/index.php?topic=935.msg99989#msg99989

              * New in version 2.3


              •Updated to support HI-TECH C Compiler for PIC10-12-16 MCUs V9.71a.
              See http://www.sonsivri.com/forum/index.php?topic=935.msg101920#msg101920

              HI-TECH Universal RSA Keygen (v2.3)
              http://depositfiles.com/files/v6vup2azq

              دیدگاه


                #8
                پاسخ : آشنایی با کامپایلر MPLAB C Compiler for PIC18 MCUs

                سلام

                ببخشید یه سوال دیگه .

                داخل آموزش شماره یک ( چشمک زن ) نوشته فرکانس 20MHZ از کجا باید فهمید که فرکانس کاری چقدر هست ؟ یا ما خودمون تایین میکنیم ؟

                اگر خودمون تایین میکنیم باید چه طوری این کارو کرد؟

                ممنون
                عامل کليدي تمام موفقيتها " عمل کردن" است

                دیدگاه


                  #9
                  پاسخ : آشنایی با کامپایلر MPLAB C Compiler for PIC18 MCUs

                  سلام

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

                  برای مثال :
                  Delay10KTCYx(250) ;

                  2500000 سیکل صبر میکند که اگر فرکانس شما 20mhz باشد این تعداد سیکل معادل نیم ثانیه میشود

                  Cycles = (TimeDelay * Fosc) / 4

                  ( 500ms * 20000000 ) / 4


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

                  شما میتونید یه تابع بنویسید که خودش فرمول مودن نظر رو به کار ببره و عدد لازم رو برای تاخیر زمانی در دستور قرار بده

                  فایل delays.h رو باز کنید و یه اون دقت کنید


                  /* PIC18 cycle-count delay routines.
                  *
                  * Functions:
                  * Delay1TCY()
                  * Delay10TCY() // 17Cxx only
                  * Delay10TCYx()
                  * Delay100TCYx()
                  * Delay1KTCYx()
                  * Delay10KTCYx()
                  */

                  mplab c18 یه کامپایلر open source هست و آزادی عمل زیادی در اون دارید

                  به زودی آمورش استفاده از usart رو در این کامپایلر مینویسم


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

                  دیدگاه


                    #10
                    پاسخ : آشنایی با کامپایلر MPLAB C Compiler for PIC18 MCUs

                    دستتون درد نکنه - فوق العاده بود
                    ولی اگه میشه یه توضیح در رابطه با نحوه Compile کردن برنامه و استفاده تو Proteus و پروگرم کردنش هم بدید .
                    پروگرمر هم پروگرمر خود ECA هست
                    تشکر

                    دیدگاه


                      #11
                      پاسخ : آشنایی با کامپایلر MPLAB C Compiler for PIC18 MCUs

                      سلام
                      میشه بیشتر توضیح بدین مشکل دقیقا چیه
                      ببینید فرق pic18f452 با pic18f4550 فقط یک فیوز بیت نیست
                      تا اونجایی که میدونم pic18f452 دارای 29 فیوز بیته و pic18f4550 دارای 39 فیوز بیت
                      pic18f4550 سیستم کلاک پیچیده تری داره و خیلی فرق دیگه
                      در هر صورت من فکر میکنم شما باید به رجیستر های سیستم کلاک بیشتر دقت کنید :read:
                      نا اميدي يه دروغ بزرگه که آدما به خودشون ميگن
                      تلاش يه حقيقت بزرگه که با صبر به ثمر ميرسه

                      دیدگاه


                        #12
                        پاسخ : آشنایی با کامپایلر MPLAB C Compiler for PIC18 MCUs

                        نوشته اصلی توسط ramezani.t
                        سلام
                        میشه بیشتر توضیح بدین مشکل دقیقا چیه
                        ببینید فرق pic18f452 با pic18f4550 فقط یک فیوز بیت نیست
                        تا اونجایی که میدونم pic18f452 دارای 29 فیوز بیته و pic18f4550 دارای 39 فیوز بیت
                        pic18f4550 سیستم کلاک پیچیده تری داره و خیلی فرق دیگه
                        در هر صورت من فکر میکنم شما باید به رجیستر های سیستم کلاک بیشتر دقت کنید :read:
                        راستیتش من این برنامه رو می نویسم و پزوگرم می کنم - تمام پایه ها 1 میشن و led زو به هرکدوم که میزنم روشن میشه
                        کد:
                        #include <p18f4550.h>
                        #include <delays.h>
                        
                        #pragma config WDT=OFF, LVP=OFF, DEBUG=ON, MCLRE = ON
                        
                        //Internal oscillator, port function on RA6, EC used by USB
                        #pragma config FOSC = INTOSCIO_EC //1MHz oscillation
                        #define LED PORTDbits.RD1
                        
                        void main()
                        {
                          //Initialize PORTD
                          //PD0 as Output
                          TRISD=0b11111110;
                        
                          //Now loop forever blinking the LED.
                          while(1)
                          {
                           LATD=0B00000001; //PORTD0 = HIGH
                           Delay10KTCYx(100) ;
                           LATD=0B00000000; //PORTD0 = LOW
                           Delay10KTCYx(100) ;
                          }
                        }
                        و اگر میشه یه برنامه با MPLAB X برای pic18f4550 بذارید - قلقش دستم بیاد (همین Blinker هم عالیه)
                        با تشکر

                        دیدگاه


                          #13
                          پاسخ : آشنایی با کامپایلر MPLAB C Compiler for PIC18 MCUs

                          سلام
                          تو این برنامتون یه مشکلی هست
                          شما برای پرت d1 اسم led رو انتخاب کردین اما نوشتین LATD=0B00000001;
                          فقط کافیه بنویسید led = 1 یا led = 0
                          درضمن تریس مربوط رو حتما خروجی تعریف کنید TRISD=0b11111101
                          نا اميدي يه دروغ بزرگه که آدما به خودشون ميگن
                          تلاش يه حقيقت بزرگه که با صبر به ثمر ميرسه

                          دیدگاه


                            #14
                            پاسخ : آشنایی با کامپایلر MPLAB C Compiler for PIC18 MCUs

                            نوشته اصلی توسط ramezani.t
                            سلام
                            تو این برنامتون یه مشکلی هست
                            شما برای پرت d1 اسم led رو انتخاب کردین اما نوشتین LATD=0B00000001;
                            فقط کافیه بنویسید led = 1 یا led = 0
                            درضمن تریس مربوط رو حتما خروجی تعریف کنید TRISD=0b11111101
                            :angry: :cry:
                            من اینو نوشتم :
                            کد:
                            #include <p18f4550.h>
                            #include <delays.h>
                            
                            #pragma config WDT=OFF, LVP=OFF, DEBUG=ON, MCLRE = ON
                            
                            //Internal oscillator, port function on RA6, EC used by USB
                            #pragma config FOSC = INTOSCIO_EC //1MHz oscillation
                            #define LED PORTDbits.RD1
                            
                            void main()
                            {
                              //Initialize PORTD
                              //PD0 as Output
                              TRISD=0b11111101;
                            
                              //Now loop forever blinking the LED.
                              while(1)
                              {
                               LED=1; //PORTD0 = HIGH
                               Delay10KTCYx(500) ;
                               LED=0; //PORTD0 = LOW
                               Delay10KTCYx(500) ;
                              }
                            }
                            ولی چشمک نمیزنه

                            دیدگاه


                              #15
                              پاسخ : آشنایی با کامپایلر MPLAB C Compiler for PIC18 MCUs

                              سلام
                              کدهای شما مشکلی نداره و من هنوز فکر میکنم مشکل از سیستم کلاک شماست ( pic18f4550 )
                              دقت کنید هر پروگرامری کد های زیر رو تشخیص نمیدن
                              #pragma config WDT=OFF, LVP=OFF, DEBUG=ON, MCLRE = ON
                              و باید اونارو از نرم افزار پروگرامر مقدار دهی کنید
                              سعی کنید مانند TRISD رجیسترهای سیستم کلاک رو بعد از main مقدار دهی کنید
                              برای مثال به OSCCON دقت کنید
                              اگر pic رو تازه شروع کردین حتما با pic18f452 ادامه بدین
                              من در حال حاضر حضور ذهن روی pic18f4550 ندارم اما در آینده مثال هایی برای این تراشه مینویسم
                              نا اميدي يه دروغ بزرگه که آدما به خودشون ميگن
                              تلاش يه حقيقت بزرگه که با صبر به ثمر ميرسه

                              دیدگاه

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