electronics design lab tutorial pic microcontrollers l.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Electronics Design Lab TUTORIAL PIC Microcontrollers PowerPoint Presentation
Download Presentation
Electronics Design Lab TUTORIAL PIC Microcontrollers

Loading in 2 Seconds...

play fullscreen
1 / 19

Electronics Design Lab TUTORIAL PIC Microcontrollers - PowerPoint PPT Presentation


  • 225 Views
  • Uploaded on

Electronics Design Lab TUTORIAL PIC Microcontrollers Francesco Tenore 2/10/2006 The Microchip ® PIC ucontrollers http://www.microchip.com Characteristics types; speeds; I/O pins; Analog to Digital Converters; Capture/Compare modules Programming (MPLab) Instruction set

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Electronics Design Lab TUTORIAL PIC Microcontrollers' - bernad


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
the microchip pic ucontrollers
The Microchip ® PIC ucontrollers
  • http://www.microchip.com
  • Characteristics
    • types; speeds; I/O pins; Analog to Digital Converters; Capture/Compare modules
  • Programming (MPLab)
  • Instruction set
  • Implementations and Examples
characteristics
Characteristics
  • RISC CPUs
    • 8-bit
    • 16-bit
  • Number of I/O pins: 4-70
  • Memory types and sizes:
    • Flash; OTP; ROM
    • 0.5k – 256k
speeds
Speeds
  • All PICs require oscillators to execute instructions:
    • Internal* (low speeds, up to 8 MHz)
    • External (high speeds, up to 40 MHz)
  • Instructions are executed at least at ¼ oscillator speed (4 clocks/instruction)

(*Note: not all PICs have internal oscillators)

a d converters and c c modules
A/D converters and C/C modules
  • All PICs have between 0 and 16 A/D converters with 8/10-bit resolution
  • 8-16 bit Timers/Counters
  • Comparator Modules (0-2)
example pic16f877a
Example: PIC16F877A

5/6 Programming pins

8 A/D channels

2 Oscillator Inputs

2 RS-232 inputs

33 I/O ports

mplab
MPLab
  • Download @ http://microchip.com
  • Assembly compiler for programming PICs
  • Based on specific PIC instruction set
  • To upload the program:
    • Compile: ProjectBuild All (Ctrl+F10)
    • Erase the device: Programmer Erase Flash Device
    • Program: Programmer Program
instruction set
Instruction Set
  • 35 single word instructions
    • Byte oriented file register operations
    • Bit oriented file register operations
    • Literal and control operations
example 1

Example 1

Using the PIC12F683 as a 2-state switch

giving memory to a pushbutton12
Giving memory to a pushbutton
  • In this example we:
    • Store the state of the LED and
      • Turn off if on and
      • Turn on if off
example 2

Example 2

Using the PICs A/D converters for Pulse Width Modulation

pulse width modulation pwm
Pulse Width Modulation (PWM)
  • 1-2 ms pulse used to control servomotors
  • In this example, we:
    • ACQUIRE an analog 0-5V signal
    • CONVERT it into a 1-2 ms pulse that depends on the analog voltage and output the result on an output pin
    • REPEAT
steps for analog to digital conversion
Steps for Analog-to-Digital Conversion

1. Configure the A/D module:

• Configure analog pins/voltage reference and digital I/O (ADCON1)

• Select A/D input channel (ADCON0)

• Select A/D conversion clock (ADCON0)

• Turn on A/D module (ADCON0)

2. Configure A/D interrupt (if desired):

• Clear ADIF bit

• Set ADIE bit

• Set PEIE bit

• Set GIE bit

3. Wait the required acquisition time.

4. Start conversion:

• Set GO/DONE bit (ADCON0)

5. Wait for A/D conversion to complete, by either:

• Polling for the GO/DONE bit to be cleared

(with interrupts enabled); OR

• Waiting for the A/D interrupt

6. Read A/D result register pair

(ADRESH:ADRESL), clear bit ADIF if required.

7. For the next conversion, go to step 1 or step 2, as required. The A/D conversion time per bit is defined as TAD. A minimum wait of 2TAD is required before the next acquisition starts.

adc on pic 16f877
ADC on PIC 16F877
  • Configuration:
    • ADCON0, ADCON1
  • Result
    • ADRESH, ADRESL

(See handout)

samples
Samples
  • The microchip website: www.microchip.com

offers samples of PICs (maximum 5) that are sent to you for free.

Please e-mail me at fra@jhu.edu if you have any questions.

slide19

; EDL_test1.asm: blinks an LED when pushbutton is pressed.

#INCLUDE "P12F683.INC"

ORG 0x000000

bsf STATUS,RP0 ;Bank 1

movlw b'01110010' ; 0x00

movwf OSCCON ; 0x01

goto START ; 0x02

ORG 0x000020

START:

COUNTER EQU 0x21

TEMP EQU 0x22

BCF STATUS,RP0 ;Bank 0

CLRF GPIO ;Init GPIO

MOVLW 07h ;Set GP<2:0> to

MOVWF CMCON0 ;digital I/O

BSF STATUS,RP0 ;Bank 1

CLRF ANSEL ;digital I/O

MOVLW 28h ;Set GP<5> and GP<3> as inputs

MOVWF TRISIO ;and set GP<4,2:0> as outputs

BCF STATUS,RP0 ;Bank 0

BSF GPIO,0

LOOP:

BTFSS GPIO,5 ; skip if button NOT pressed

GOTO CLEAR_ROUTINE ; otherwise

GOTO LOOP

CLEAR_ROUTINE:

INCF COUNTER,1 ; increment the counter

MOVLW 0x01 ; w=1

ANDWF COUNTER,0 ; counter AND w => ; w = 0x01

MOVWF TEMP ; TEMP = 0x01

BTFSC TEMP,0 ; skip if TEMP is 0

BCF GPIO,0 ; otherwise, clear GPIO<0>

BTFSS TEMP,0

BSF GPIO,0 ; if it's 1, then set it.

LOOP2:

BTFSC GPIO,5

GOTO LOOP

GOTO LOOP2

END