+ Reply to Thread
Results 1 to 9 of 9
  1. #1
    Join Date
    Sep 2004
    Location
    montreal, canada
    Posts
    6,896

    Default [Beginner Tutorial] How to get started with PICBASIC PRO Demo, MPLAB & PICKIT 2

    So you're new to PBP and want a simple step-by-step guide? This one will show how how to get started with
    • PICBASIC PRO Demo
    • MPLAB
    • PICKIT 2 programmer
    • PICKIT 2 Low Pin Count Demo Board (DM164120-1) PIC16F690
    • Windows 7 64 bits.
    This tutorial assume a "next to none knowledge" level. Sorry for the "more advanced" user.
    1. Go on Microchip website and download the latest MPLAB version (As of June 22, 2011, Latest Version is 8.70)
    2. Extract and run the Setup file
      If you're running Vista of Win 7, you want to raise your privilege, right click on the file then, click on "run as administrator"
    3. Accept the agreement
    4. If you want to install only the minimum, when prompted for the Setup Type, choose Custom and follow the instructions bellow. Unless, jump to step 7
    5. Use the default Destination Folder
    6. Check the following when you'll be prompted to select the features to install
      • Microchip Device Support
        8 Bit MCU
      • Microchip Application
        MPASM Suite
      • MPLAB IDE
        MPLAB SIM
        PICKIT 2
    7. Continue the installation normally, wait 'till the end
    8. Go on Melabs Website and download PBPDemo
    9. Run the install file
      If you're running Vista of Win 7, you want to raise your privilege, right click on the file then, click on "run as administrator"
      • Accept the agreement
      • Use the default installation folders
      • Continue the installation and decide if you want to Install Microcode Studio... or not. I suggest you do so, it's a pretty nice tool.
    10. I also suggest you to download and install the PICKIT 2 standalone application, there's quite a few interesting feature included in. Just Install it in the default folder.
    11. Create a new folder to store & test our new code. It's a good idea to create one close to the root.
      Let's use C:\PBP_Prog
    That's it for the installation phase


    Hi, we are pleased to see that you are using our forum.

    We'd like you to become a member of our community. Membership is FREE, please REGISTER and view our forums without these annoying reminders!

    Once registered you may post on the forums, download from the file areas and use the WIKI without interruption.




    Steve

    It's not a bug, it's a random feature.
    There's no problem, only learning opportunities.

  2. #2
    Join Date
    Sep 2004
    Location
    montreal, canada
    Posts
    6,896

    Default Re: [Beginner Tutorial] How to get started with PICBASIC PRO Demo, MPLAB & PICKIT 2

    Now it's time to configure the programming environment. First thing to do is to add PBP Language Toolsuite to MPLAB
    1. Open C:\PBPDEMO\MPLAB_Plugin folder
    2. Run setup_PBPSUITE
      If you're running Vista of Win 7, you want to raise your privilege, right click on the file then, click on "run as administrator"
    As simple as that!

    Time to configure PBP within MPLAB
    • Start MPLAB
    • On the top menu, Click on Project
    • From this menu select Set Language Toolsuite Locations
    • in the Registered Tools list, click on the little + on the left side of microEngineering PICBASIC PRO Toolsuite
    • Then again on the little + on the left side of Executables
    • Finally click on microEngineering PICBASIC PRO Compiler (PBPMPLAB.BAT
    • The Location field should indicate C:\PBPDEMO\PBPMPLAB.BAT)
    • Click on OK
    In theory we're done with it... let's try tro start a new project.
    Steve

    It's not a bug, it's a random feature.
    There's no problem, only learning opportunities.

  3. #3
    Join Date
    Sep 2004
    Location
    montreal, canada
    Posts
    6,896

    Default Re: [Beginner Tutorial] How to get started with PICBASIC PRO Demo, MPLAB & PICKIT 2

    There's quite different way to start a new project within MPLAB. Here I'll show how to start a new PicBasic project using a PIC16F690 with the Project Wizard.
    1. On the top menu, Click on Project
    2. Select Project Wizard
    3. Click on Next
    4. Choose PIC16F690 from the Device drop down list
    5. Click on Next
    6. Time to tell MPLAB we'll be using PICBASIC PRO
      From the Active Toolsuite drop down list, choose microEngineering PICBASIC PRO Toolsuite... obvious I know.
    7. Click on Next
    8. On the right side of Create New Project File field, Click on Browse
    9. Choose the folder we created to store our codes & project C:\PBP_Prog
    10. In the Filename Field type LedBlinky
    11. Click on Save
    12. Click on Next
    13. You'll be prompted to add some source code and files... click on Skip
    14. We're done, Click on Finish

    Name:  EmptyWorkSpace.jpg
Views: 6572
Size:  71.3 KB

    Looks familiar? Great. Now what we need to do, is to create, and add a source code to it.
    1. On the top menu click on File
    2. Choose New, this will open a new window called Untitled. Our source code will go there
    3. Let's give our source code a name.
      On the top menu click on File
    4. Choose Save As
    5. In the Filename field, type LedBlinky.bas
    6. Click on Save

    Project is created, Source Code file is created, but have a look at the project explorer windows on the left... there's no source code included...yet. There's two way to add/include your source code to it.
    1. In the project explorer, right click on Source Files and then on Add Files
    2. On the top menu, click on Project then choose Add Files to the project

    Both do the same job, I prefer the right click thing... it's up to you to decide.

    Name:  SourceCodeAdded.jpg
Views: 6516
Size:  85.0 KB

    Ok so now we should have everything setup up properly and we are now ready to jump on the dark side. BUT before we jump in, as we're going to use a PIC16F690 and Microchip LPC Demo board, it's a good idea to download some references to make friend with
    1. The PIC16F690 Datasheet
    2. Microchip's LPC Demo Board User Guide

    I assume you have ALL 5 JUMPER installed.

    Let's observe the board schematic (PDF page 41)

    Name:  LPC Schematic.jpg
Views: 7876
Size:  85.5 KB

    Is there some gotcha in it? Sure...
    1. There's no crystal attached to the PIC.
      Q. And then?
      A. We will need to configure the PIC to work with it's own internal OSC. If we don't do it, the PIC will never run...
    2. LEDs are attached to some pin who have some enabled by default analog peripheral.
      Q. How do you know that?
      A. The PIC pinout gives some hints, but It's always a good to have a look in the datasheet,
      Section 4.5 PORTC and TRISC Registers (pdf page 78-82)
      Table 4-3 resume it really well, you want to dig the datasheet to see how to set them.

      Q. What if I don't care about the datasheet and just go ahead typing some code for...what kind problem it may cause?
      A. You'll be the really first one on earth Your milleage may vary, but usually a LED connected to an analog pin doesn't work at all. Have a good look at This thread for more infos.

    While we're at it, bookmark This thread in your internet browser. It contains a heap of good info.
    Steve

    It's not a bug, it's a random feature.
    There's no problem, only learning opportunities.

  4. #4
    Join Date
    Sep 2004
    Location
    montreal, canada
    Posts
    6,896

    Default Re: [Beginner Tutorial] How to get started with PICBASIC PRO Demo, MPLAB & PICKIT 2

    Code Example #1: Led Blinky

    Time to get dirty. Copy/Paste the following code in the source code windows
    Code:
            '-------------------------------< LED Blinky >------------------------------------
            '
            '    File name  : LedBlinky.bas
            '    Version    : 1.0
            '    Company    : Mister E 
            '    Programmer : Steve Monfette
            '    Date       : June 22, 2011
            '    Device     : PIC16F690
            '
            '---------------------------------------------------------------------------------                    
            
            '---------------------------< Project description >-------------------------------
            '
            '   Beginner code example to blink a Led on PORTc.0 using:
            '       1) PBPDEMO version
            '       2) MPLAB
            '       3) PICKIT 2 Programmer
            '
            '---------------------------------------------------------------------------------                
    
            '----------------------------< Hardware listing >---------------------------------
            '
            '   - Microchip Low Pin Count Demo Board
            '   - PIC16F690 installed
            '   - *** All jumper have to be installed ***
            '   - Target board will be powered by the PICKIT 2
            '
            '---------------------------------------------------------------------------------                                        
          
            '
            '       Pic Configuration
            '       =================
                    '   All PIC configuration fuses (Configuration bits) are listed in the 
                    '   C:\PBPDEMO\p16f690.inc file.  Also see datasheet section 14.1
                    '
            @  __config _INTRC_OSC_NOCLKOUT & _WDT_ON & _MCLRE_ON & _CP_OFF & _CPD_OFF & _FCMEN_OFF & _IESO_OFF & _BOR_ON & _PWRTE_ON
                    '   _INTRC_OSC_NOCLKOUT: Using Internal Oscillator
                    '   _WDT_ON: Enable Watch Dog Timer
                    '   _MCLRE_ON: Enable MCLR 
                    '   _CP_OFF: Disable Code Protection
                    '   _CPD_OFF: Disable Data Code Protection
                    '   _FCMEN_OFF: Disable Fail Safe Clock Monitor
                    '   _IESO_OFF: Disable Internal/External switchover
                    '   _BOR_ON: Enable Brown out detect
                    '   _PWRTE_ON: Enable Power up Timer
                    '
            OSCCON  = %01110000  ' datasheet section 3
                    ' -x-------- n/a
                    ' --111----- IRCF<2:0> Internal Oscillator Frequency Select Bits (8MHz)
                    ' -----xxxx- Read Only
                    '
            DEFINE OSC 8    ' tells PBP we use a 8 MHZ clock        
                    
            '                      
            '       Hardware assignment
            '       ===================
                    '   Here we assign Aliases to PORT pin
                    '   this makes the code easier to read
                    '   I'll use the Aliases name as written on the schematic
                    '
                    '   LEDs
                    '   ----
                    DS1     VAR PORTC.0 
                    DS2     VAR PORTC.1 
                    DS3     VAR PORTC.2 
                    DS4     VAR PORTC.3
                     
            '
            '       Hardware configuration
            '       ======================
                    '   
                    '       I/Os (Datasheet section 4.0 & above)
                    '       ------------------------------------
                    TRISA = 0   ' All PORTA I/O set as Output (When capable of)
                    TRISB = 0   ' All PORTB I/O set as Output
                    TRISC = 0   ' All PORTC I/O set as Output
                    '
                    '       ADCs (datasheet section 9)
                    '       --------------------------
                    ANSEL = 0   ' Disable all 
                    ANSELH = 0  '     ADCs 
                    '
                    '       Comparator (datasheet section 8)
                    '       --------------------------------
                            '   At Power On, the comparator are already disabled
                            '   but let's play safe.
                            '
                    CM1CON0 = 0 ' Disable comparator 1
                    CM2CON0 = 0 ' Disable comparator 2
                    
            '
            '       Software/Hardware initialisation
            '       ================================
            PORTA = 0   ' clear PORTA output pins (0v)
            PORTB = 0   ' clear PORTB output pins (0v)
            PORTC = 0   ' clear PORTC output pins (0v)
            
            WHILE !OSCCON.2 : Wend  ' Wait untill the internal OSC get stable 
            
            '------------------------------< Main program >-----------------------------------
            '
    Start:
            ds1 = 1     ' turn ON LED DS1
            PAUSE 500   ' wait 500 mSec
            ds1 = 0     ' turn OFF LED DS1
            PAUSE 500   ' wait 500 mSec
            GOTO Start  ' do it again
            '
            '---------------------------------------------------------------------------------
    Let's compile it.
    1. From the top menu, click on Project
    2. Choose Compile (F10 also work but that's your job to find some shortcuts )

    Oh noes...
    ERROR: Unable to execute mpasmwin.Error[118] C:\PBP_PROG\LEDBLINKY.ASM 63 : Overwriting previous address contents (2007)

    Welcome in real life! Compilation error happen! Deal with it now!

    First of, have a good reading at this thread, at least POST #1 & POST #5. Post #5 explain how to fix it. Once you've fixed the 16F690.inc file, hit F10, and it will compile fine.

    Loaded C:\PBP_Prog\LedBlinky.COF.
    BUILD SUCCEEDED: ...


    Aaaaahhhh, feel better now. Now let's program the PIC and do some light show.
    1. On the top menu, click on Programmer
    2. Click on Select Programmer and choose PICKIT 2
    3. The Output window should show you a message like
      Initializing PICkit 2 version 0.0.3.63
      Found PICkit 2 - Operating System Version 2.32.0
      Target power not detected - Powering from PICkit 2 ( 5.00V)
      PIC16F690 found (Rev 0x5)
      PICkit 2 Ready


      There's no real problem with the above message, in fact, it confirm we have the right PIC installed, and the PICKIT 2 WILL provide the 5Volt to our target board. Fabulous!
    4. On the top menu, click on Programmer
    5. Click on Program
      OutPut
      Programming Target (2011-06-23 01:35:20)
      PIC16F690 found (Rev 0x5)
      Erasing Target
      Programming Program Memory (0x0 - 0x4F)
      Verifying Program Memory (0x0 - 0x4F)
      Programming Configuration Memory
      Verifying Configuration Memory
      PICkit 2 Ready

    AND we have a really fabulous... not working light show. Why? Use you multimeter and measure the voltage across Vdd & Vss... there's something there. How about MCLR pin? Duh... 0V.. That mean the PICKIT 2 is holding MCLR to GND... now we need to fix it.

    How to?
    1. On the top menu, click on Programmer
    2. Click on Settings
    3. Check Run after a sucessful program option
    4. Click on Apply
    5. Click on OK
    6. Still nothing there, just program your PIC again and see what happen

    Yeah! LedBlinky rocks!
    Steve

    It's not a bug, it's a random feature.
    There's no problem, only learning opportunities.

  5. #5
    Join Date
    Sep 2004
    Location
    montreal, canada
    Posts
    6,896

    Default Re: [Beginner Tutorial] How to get started with PICBASIC PRO Demo, MPLAB & PICKIT 2

    Code Example 2: ADC Reading
    • Start a new project in MPLAB, name it ADCToLed
    • Create a new source code file, name it ADCToLed
    • Add the source code to the project
    • Copy/Paste the following code to the source code windows

    Code:
            '--------------------------------< ADCToLed >------------------------------------
            '
            '    File name  : ADCToLed.bas
            '    Version    : 1.0
            '    Company    : Mister E 
            '    Programmer : Steve Monfette
            '    Date       : June 22, 2011
            '    Device     : PIC16F690
            '
            '---------------------------------------------------------------------------------                    
            
            '---------------------------< Project description >-------------------------------
            '
            '   Beginner code example to display the ADC reading from channel AN0 to 4 LEDs
            '   attached on PORTC<3:0>
            '       1) PBPDEMO version
            '       2) MPLAB
            '       3) PICKIT 2 Programmer
            '
            '---------------------------------------------------------------------------------                
    
            '----------------------------< Hardware listing >---------------------------------
            '
            '   - Microchip Low Pin Count Demo Board
            '   - PIC16F690 installed
            '   - *** All jumper have to be installed ***
            '   - Target board will be powered by the PICKIT 2
            '
            '---------------------------------------------------------------------------------                                        
          
            '
            '       Pic Configuration
            '       =================
                    '   All PIC configuration fuses (Configuration bits) are listed in the 
                    '   C:\PBPDEMO\p16f690.inc file.  Also see datasheet section 14.1
                    '
            @  __config _INTRC_OSC_NOCLKOUT & _WDT_ON & _MCLRE_ON & _CP_OFF & _CPD_OFF & _FCMEN_OFF & _IESO_OFF & _BOR_ON & _PWRTE_ON
                    '   _INTRC_OSC_NOCLKOUT: Using Internal Oscillator
                    '   _WDT_ON: Enable Watch Dog Timer
                    '   _MCLRE_ON: Enable MCLR 
                    '   _CP_OFF: Disable Code Protection
                    '   _CPD_OFF: Disable Data Code Protection
                    '   _FCMEN_OFF: Disable Fail Safe Clock Monitor
                    '   _IESO_OFF: Disable Internal/External switchover
                    '   _BOR_ON: Enable Brown out detect
                    '   _PWRTE_ON: Enable Power up Timer
                    '
            OSCCON  = %01110000  ' datasheet section 3
                    ' -x-------- n/a
                    ' --111----- IRCF<2:0> Internal Oscillator Frequency Select Bits (8MHz)
                    ' -----xxxx- Read Only
                    '
            DEFINE OSC 8    ' tells PBP we use a 8 MHZ clock        
                    
            '                      
            '       Hardware assignment
            '       ===================
                    '   Here we assign Aliases to PORT pin
                    '   this makes the code easier to read
                    '   I'll use the Aliases name as written on the schematic
                    '
                    '   LEDs
                    '   ----
                    DS1     VAR PORTC.0 
                    DS2     VAR PORTC.1 
                    DS3     VAR PORTC.2 
                    DS4     VAR PORTC.3
                    LED     VAR PORTC
                     
            '
            '       Hardware configuration
            '       ======================
                    '   
                    '       I/Os (Datasheet section 4.0 & above)
                    '       ------------------------------------
                    TRISA = %00000001   
                          ' -xx------- n/a
                          ' ---00000-- Output: When capable of
                          ' --------1- Input: AN0, ADC input
                          
                    TRISB = 0   ' All PORTB I/O set as Output
                    TRISC = 0   ' All PORTC I/O set as Output
                    '
                    '       ADCs (datasheet section 9)
                    '       --------------------------
                    ANSEL  = %00000001 
                           ' -0000000-- AN<7:1> = Digital I/O
                           ' --------1- AN0 = Analog
                           
                    ANSELH = 0  ' AN<11:8> = Digital I/O
                    
                    DEFINE ADC_BITS 8       ' Set number of bits in result
                    DEFINE ADC_CLOCK 3      ' Set clock source (rc = 3)
                    DEFINE ADC_SAMPLEUS 50  ' Set sampling time in   
                    '
                    '       Comparator (datasheet section 8)
                    '       --------------------------------
                            '   At Power On, the comparator are already disabled
                            '   but let's play safe.
                            '
                    CM1CON0 = 0 ' Disable comparator 1
                    CM2CON0 = 0 ' Disable comparator 2
             
            '
            '       Software variable
            '       =================
            bADC    VAR BYTE    ' Hold the ADC reading
            
            '
            '       Software/Hardware initialisation
            '       ================================
            PORTA = 0   ' clear PORTA output pins (0v)
            PORTB = 0   ' clear PORTB output pins (0v)
            PORTC = 0   ' clear PORTC output pins (0v)
            
            WHILE !OSCCON.2 : Wend  ' Wait untill the internal OSC get stable 
            
            '------------------------------< Main program >-----------------------------------
            '
    Start:
            ADCIN 0, bADC   ' read AN0 and store it to bADC variable
            '
            '       Since we use only 4 LED and the ADC is a 8 Bit result, we
            '       need to adjust it so the ADC range will fit a 4 BITs LED reading
            '       To do so we will shift the ADC by 4 bits
            bADC = bADC>>4
            LED = bADC ' show the result
            PAUSE 100   ' wait 100 mSec
            GOTO Start  ' do it again
            '
            '---------------------------------------------------------------
    • Compile
    • Program

    Now see what happen when you play with the pot attached to AN0 input.

    Soon you'll discover you can't turn on the 4 LED together. The reason is simple. Inside the PICKIT 2, both PGD & PGC (ICSPDAT & ICSPCLK) pins are pulled down with 4.7K resistor. Now leaving the PICKIT 2 connected to your board, R7 make a voltage divider with those internal internal pull-down. So the voltage never go up to 5 volt on the ADC input...

    To solve this problem you could disconnect your PICKIT 2 and use an external power supply OR modify your code to use another ADC channel OR just lift the pin 4 of the ICSP header. Still plausible to trick the ADC by using anothe Vref... oh well it's up to you now.

    Enjoy, be creative, have fun!

    I know I know, it's almost a copy/paste thread from the MicroCode studio one... so?
    Steve

    It's not a bug, it's a random feature.
    There's no problem, only learning opportunities.

  6. #6
    Join Date
    Jan 2012
    Posts
    1

    Default Re: [Beginner Tutorial] How to get started with PICBASIC PRO Demo, MPLAB & PICKIT 2

    Hi
    I have reached the point of lesson 11and have created a file C:\PBP_Prog,
    where do I go to continue the tutorial

    Regards Bigabbs

  7. #7
    rkotheslayer's Avatar
    rkotheslayer Guest

    Default Re: [Beginner Tutorial] How to get started with PICBASIC PRO Demo, MPLAB & PICKIT 2

    From the Active Toolsuite drop down list, choose microEngineering PICBASIC PRO Toolsuite... obvious I know.
    Hi friend, I have few question:

    Is that all source code can be edit,compile and upload into PIC16f877A thru MPlab?
    As I know in order to do process that I mentioned above, I need to install MPLAB & PICKIT 2 to complete the process that I mentioned above right?

    Note:
    If not mistaken, I am using Basic language as my source code for the project

  8. #8
    Join Date
    Nov 2003
    Location
    Wellton, U.S.A.
    Posts
    5,841

    Default Re: [Beginner Tutorial] How to get started with PICBASIC PRO Demo, MPLAB & PICKIT 2

    Have you purchased and installed PicBasicPro yet?
    Dave
    Always wear safety glasses while programming.

  9. #9
    Join Date
    Aug 2006
    Location
    Look behind you.
    Posts
    2,610

    Default Re: [Beginner Tutorial] How to get started with PICBASIC PRO Demo, MPLAB & PICKIT 2

    PicBasicPro turns English like mnemonics into assembly code. MPLAB turns assembly code into an Intel hex file and the PICKit2 loads that hex into the PIC Micro.
    Anti virus software seems a little like hiring the Mafia to protect you.

    Moderators are just regular members empowered to drop the hammer on a SPAMMER



Members who have read this thread : 27

You do not have permission to view the list of names.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts