Saturday, September 15, 2012

Create new Project MPLAB

New Project

Today I am going to show you how to create a new project using the MPLAB IDE.
For you to create a new project you have to follow these simple steps:

  1. Under Project menu select Project Wizard.
  2. A new window will appear, press button Next.
  3. Now you have to select from a list your PIC (you can find on the PIC IC, the exactly name of it), when you find you PIC, select it and hit Next.
  4. This is Step Two of the Project Wizard.  In the Active Toolsuite list box, select Microchip MPASM Toolsuite. Below you can see three files mpasmwin.exe, mplink.exe, mplib.exe. These files are going to be used from the program in order to translate your code and send it to the pic. Press Next.
  5. Now you are at Step Three, where you can name your project and browse for the folder which is going to be stored into. When your sure about the location, and the name hit Next.
  6. At Step four you are going to select files for your project. First of all you should select a template for your code. For example I am going to use PIC16f690, so I should select this file: C:\Program Files\Microchip\MPASM Suite\Template\Object\16F690TMPO.ASM, and press Add>>, then select the linker file following this path: C:\Program Files\Microchip\MPASM Suite\LKR\16f690_g.lkr and again press Add>>. There is a letter at the left side of the file you have just added. Click on the letter until it becomes C (it means that it will copy these files into the project folder, recommended). When you are ready hit Next again.
  7. Final Step, hit Finish. Congratulations! You have just created your first project.
At the left side of the screen is the Project Window. Inside this window you can find all the files of your project. Inside Source Files is the template you have selected at Step Six. Double click on it and the template will open in a new window where you can write/edit some code. You are going to see something like this:

  1. ;**********************************************************************
  2. ;   This file is a basic code template for object module code         *
  3. ;   generation on the PIC16F690. This file contains the               *
  4. ;   basic code building blocks to build upon.                         *
  5. ;                                                                     *
  6. ;   Refer to the MPASM User's Guide for additional information on     *
  7. ;   features of the assembler and linker (Document DS33014).          *
  8. ;                                                                     *
  9. ;   Refer to the respective PIC data sheet for additional             *
  10. ;   information on the instruction set.                               *
  11. ;                                                                     *
  12. ;**********************************************************************
  13. ;                                                                     *
  14. ;    Filename:      xxx.asm                                           *
  15. ;    Date:                                                            *
  16. ;    File Version:                                                    *
  17. ;                                                                     *
  18. ;    Author:                                                          *
  19. ;    Company:                                                         *
  20. ;                                                                     *
  21. ;                                                                     *
  22. ;**********************************************************************
  23. ;                                                                     *
  24. ;    Files required: P16F690.INC                                      *
  25. ;                                                                     *
  26. ;                                                                     *
  27. ;                                                                     *
  28. ;**********************************************************************
  29. ;                                                                     *
  30. ;    Notes:                                                           *
  31. ;                                                                     *
  32. ;                                                                     *
  33. ;                                                                     *
  34. ;                                                                     *
  35. ;**********************************************************************

  36.     list      p=16F690           ; list directive to define processor
  37.     #include <p16F690.inc>        ; processor specific variable definitions

  38.     errorlevel  -302              ; suppress message 302 from list file

  39.     __CONFIG   _CP_OFF & _CPD_OFF & _BOR_OFF & _MCLRE_ON & _WDT_OFF & _PWRTE_ON & _INTRC_OSC_NOCLKOUT & _FCMEN_OFF & _IESO_OFF 

  40. ; '__CONFIG' directive is used to embed configuration word within .asm file.
  41. ; The lables following the directive are located in the respective .inc file.
  42. ; See data sheet for additional information on configuration word settings.

  43. ;***** VARIABLE DEFINITIONS (examples)

  44. ; example of using Shared Uninitialized Data Section
  45. INT_VAR     UDATA_SHR     
  46. w_temp      RES     1       ; variable used for context saving 
  47. status_temp RES     1       ; variable used for context saving
  48. pclath_temp RES     1       ; variable used for context saving

  49. ;**********************************************************************
  50. RESET_VECTOR    CODE    0x0000       ; processor reset vector
  51.         goto    start                ; go to beginning of program

  52. INT_VECTOR      CODE    0x0004       ; interrupt vector location

  53. INTERRUPT

  54.         movwf   w_temp            ; save off current W register contents
  55.         movf    STATUS,w          ; move status register into W register
  56.         movwf   status_temp       ; save off contents of STATUS register
  57.         movf    PCLATH,w          ; move pclath register into W register
  58.         movwf   pclath_temp       ; save off contents of PCLATH register



  59. ; isr code can go here or be located as a call subroutine elsewhere


  60.         movf    pclath_temp,w     ; retrieve copy of PCLATH register
  61.         movwf   PCLATH            ; restore pre-isr PCLATH register contents
  62.         movf    status_temp,w     ; retrieve copy of STATUS register
  63.         movwf   STATUS            ; restore pre-isr STATUS register contents
  64.         swapf   w_temp,f
  65.         swapf   w_temp,w          ; restore pre-isr W register contents
  66.         retfie                    ; return from interrupt

  67. MAIN_PROG       CODE

  68. start

  69. ; remaining code goes here

  70.         goto    start             ; loop forever

  71. ; initialize eeprom locations

  72. EE      CODE    0x2100
  73.         DE  0x00, 0x01, 0x02, 0x03

  74.         END                       ; directive 'end of program'
There is a lot of coding done for you (that is why we use a template). You can start writing you first program from the line 86 below tag start.
That's all for today. Next time we are going to light up a LED using a PIC.

No comments:

Post a Comment