27
Praktisk introduktion til PIC-kredse 23. februar 2006 Mads Pedersen, OZ6HR [email protected]

Praktisk introduktion til PIC-kredseoz6hr.dk/wp-content/uploads/PIC-kredse.pdf · { {Main board {LED board {LCD board {Switch board {ADC board {+ mange flere. Slide 26 Andre nyttige

Embed Size (px)

Citation preview

Page 1: Praktisk introduktion til PIC-kredseoz6hr.dk/wp-content/uploads/PIC-kredse.pdf · { {Main board {LED board {LCD board {Switch board {ADC board {+ mange flere. Slide 26 Andre nyttige

Praktisk introduktion til

PIC-kredse23. februar 2006

Mads Pedersen, [email protected]

Page 2: Praktisk introduktion til PIC-kredseoz6hr.dk/wp-content/uploads/PIC-kredse.pdf · { {Main board {LED board {LCD board {Switch board {ADC board {+ mange flere. Slide 26 Andre nyttige

Slide 2

Plan

Introduktion til PIC-kredseFamilierUdviklingsværktøjerProgrammeringssprogProgrammerProjekter

Page 3: Praktisk introduktion til PIC-kredseoz6hr.dk/wp-content/uploads/PIC-kredse.pdf · { {Main board {LED board {LCD board {Switch board {ADC board {+ mange flere. Slide 26 Andre nyttige

Slide 3

Introduktion

Til radioamatørformål anvendes microcontrollere ofteVi har tidligere haft et teoretisk foredragManglet praktisk indgangsvinkelAVR introduceret og brugt, men PIC bruges stadig mange steder

Page 4: Praktisk introduktion til PIC-kredseoz6hr.dk/wp-content/uploads/PIC-kredse.pdf · { {Main board {LED board {LCD board {Switch board {ADC board {+ mange flere. Slide 26 Andre nyttige

Slide 4

PIC-familien

Microchipwww.microchip.com

PIC10, PIC12, PIC14, PIC16, PIC17, PIC18, PIC246, 8, 14, 18, 20, 28, 40, 44, 64, 80, 100 pinswww.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=74

F.eks. Microchip PIC16-familienwww.microchip.com/ParamChartSearch/chart.aspx?branchID=1002&mid=10&lang=en&pageId=74

Page 5: Praktisk introduktion til PIC-kredseoz6hr.dk/wp-content/uploads/PIC-kredse.pdf · { {Main board {LED board {LCD board {Switch board {ADC board {+ mange flere. Slide 26 Andre nyttige

Slide 5

PIC16C84, PIC16F84

Features18 pins13 I/O pinsProgram memory: 1024 bytesRAM: 68 bytes

PIC16C84Meget brugtProduceres dog ikke længere

PIC16F84Minder om PIC16C84Produceres stadig, men er på vej udForholdsvis dyr

Page 6: Praktisk introduktion til PIC-kredseoz6hr.dk/wp-content/uploads/PIC-kredse.pdf · { {Main board {LED board {LCD board {Switch board {ADC board {+ mange flere. Slide 26 Andre nyttige

Slide 6

PIC16F628

Anbefalet frem for PIC16F84Features:

18 pins16 I/OIndbygget 4 MHz oscillatorProgram memory: 2048 bytesRAM: 128 bytes

Billigere og nyere end PIC16F84http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1335&dDocName=en010210

Page 7: Praktisk introduktion til PIC-kredseoz6hr.dk/wp-content/uploads/PIC-kredse.pdf · { {Main board {LED board {LCD board {Switch board {ADC board {+ mange flere. Slide 26 Andre nyttige

Slide 7

PIC16F628

Pin-layout

Page 8: Praktisk introduktion til PIC-kredseoz6hr.dk/wp-content/uploads/PIC-kredse.pdf · { {Main board {LED board {LCD board {Switch board {ADC board {+ mange flere. Slide 26 Andre nyttige

Slide 8

Blockdiagram

Page 9: Praktisk introduktion til PIC-kredseoz6hr.dk/wp-content/uploads/PIC-kredse.pdf · { {Main board {LED board {LCD board {Switch board {ADC board {+ mange flere. Slide 26 Andre nyttige

Slide 9

Udviklingsværktøjer

Mulighed 1:Ren tekst (Notepad kan bruges, eller færdige programmer hentes)Kræver compiler (MPASMWIN)

Mulighed 2:Integreret udviklingsmiljø (IDE): MPLABGratis (Microchip)Assembler og CCompiler, simulator, debuggerLink: www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en019469&part=SW007002

Page 10: Praktisk introduktion til PIC-kredseoz6hr.dk/wp-content/uploads/PIC-kredse.pdf · { {Main board {LED board {LCD board {Switch board {ADC board {+ mange flere. Slide 26 Andre nyttige

Slide 10

UdviklingsprocessenKodning i MPLAB

Programmering vha. PIC16PRO-boardet med PICALLW

Destinationsprint

Page 11: Praktisk introduktion til PIC-kredseoz6hr.dk/wp-content/uploads/PIC-kredse.pdf · { {Main board {LED board {LCD board {Switch board {ADC board {+ mange flere. Slide 26 Andre nyttige

Slide 11

Programmeringssprog

AssemblerCBasic

Page 12: Praktisk introduktion til PIC-kredseoz6hr.dk/wp-content/uploads/PIC-kredse.pdf · { {Main board {LED board {LCD board {Switch board {ADC board {+ mange flere. Slide 26 Andre nyttige

Slide 12

Assembler

35 instruktioner

FordeleEffektivt, hurtig eksekvering

UlemperLangsom udvikling, stor fejlrisiko

Page 13: Praktisk introduktion til PIC-kredseoz6hr.dk/wp-content/uploads/PIC-kredse.pdf · { {Main board {LED board {LCD board {Switch board {ADC board {+ mange flere. Slide 26 Andre nyttige

Slide 13

1. Skriv koden

Tekst-editor (.asm fil)

Page 14: Praktisk introduktion til PIC-kredseoz6hr.dk/wp-content/uploads/PIC-kredse.pdf · { {Main board {LED board {LCD board {Switch board {ADC board {+ mange flere. Slide 26 Andre nyttige

Slide 14

35instruk-tioner

Page 15: Praktisk introduktion til PIC-kredseoz6hr.dk/wp-content/uploads/PIC-kredse.pdf · { {Main board {LED board {LCD board {Switch board {ADC board {+ mange flere. Slide 26 Andre nyttige

Slide 15

Kode-strukturen

Label-felt

Instruktioner

Data-felt Kommentarer(startes med ;)

Page 16: Praktisk introduktion til PIC-kredseoz6hr.dk/wp-content/uploads/PIC-kredse.pdf · { {Main board {LED board {LCD board {Switch board {ADC board {+ mange flere. Slide 26 Andre nyttige

Slide 16

2. ”Assemble” (kompiler) koden

Page 17: Praktisk introduktion til PIC-kredseoz6hr.dk/wp-content/uploads/PIC-kredse.pdf · { {Main board {LED board {LCD board {Switch board {ADC board {+ mange flere. Slide 26 Andre nyttige

Slide 17

Objektfil

.lst (list) fil

Page 18: Praktisk introduktion til PIC-kredseoz6hr.dk/wp-content/uploads/PIC-kredse.pdf · { {Main board {LED board {LCD board {Switch board {ADC board {+ mange flere. Slide 26 Andre nyttige

Slide 18

Hex-fil (som senere overføres til kredsen)

.hex fil

Page 19: Praktisk introduktion til PIC-kredseoz6hr.dk/wp-content/uploads/PIC-kredse.pdf · { {Main board {LED board {LCD board {Switch board {ADC board {+ mange flere. Slide 26 Andre nyttige

Slide 19

3. Download til kredsen

Vha. PIC16PRO-boardet og PICALLW-softwaren

Valgt PIC-kreds

Hvor den skal sidde

Page 20: Praktisk introduktion til PIC-kredseoz6hr.dk/wp-content/uploads/PIC-kredse.pdf · { {Main board {LED board {LCD board {Switch board {ADC board {+ mange flere. Slide 26 Andre nyttige

Slide 20

C

FordeleHurtigere udvikling, mere overblik,kan struktureres mere logisk

UlempeLangsommere eksekvering

Page 21: Praktisk introduktion til PIC-kredseoz6hr.dk/wp-content/uploads/PIC-kredse.pdf · { {Main board {LED board {LCD board {Switch board {ADC board {+ mange flere. Slide 26 Andre nyttige

Slide 21

Eksempel på C-kode#include <pic.h>

#define PORTBIT(adr, bit) ((unsigned)(&adr)*8+(bit))

static bit button @ PORTBIT(PORTA, 1);

main(void){

unsigned i;unsigned char j;

TRISB = 0; /* all bits output */j = 0;for(;;){

PORTB = 0x00; /* turn all on */for (i = 16000 ; --i ;)

continue;PORTB = ~j; /* output value of j */for (i = 16000 ; --i ;)

continue;if (button == 0) /* if switch pressed, increment */

j++;}

}

Page 22: Praktisk introduktion til PIC-kredseoz6hr.dk/wp-content/uploads/PIC-kredse.pdf · { {Main board {LED board {LCD board {Switch board {ADC board {+ mange flere. Slide 26 Andre nyttige

Slide 22

Basic

Programmering af PIC i BASIC-sprogethttp://www.mikroelektronika.co.yu/english/product/books/picbasicbook/00.htm

Page 23: Praktisk introduktion til PIC-kredseoz6hr.dk/wp-content/uploads/PIC-kredse.pdf · { {Main board {LED board {LCD board {Switch board {ADC board {+ mange flere. Slide 26 Andre nyttige

Slide 23

Programmer

Mange mulighederOZ-programmer

Fordele: Simpel, billigUlemper: Afhængig af PC-hastighed,

kun PIC16C84/PIC16F84PIC16PRO

Fordele: AlsidigUlemper: Mere kompleksKlubben har en liggende til medlemmernes brug

Page 24: Praktisk introduktion til PIC-kredseoz6hr.dk/wp-content/uploads/PIC-kredse.pdf · { {Main board {LED board {LCD board {Switch board {ADC board {+ mange flere. Slide 26 Andre nyttige

Slide 24

PIC16PRO

Print og schematicswww.picallw.com/pdf/p16pro.pdf

Software (PICALLW)http://picallw.com/zip/paw016.zip

Page 25: Praktisk introduktion til PIC-kredseoz6hr.dk/wp-content/uploads/PIC-kredse.pdf · { {Main board {LED board {LCD board {Switch board {ADC board {+ mange flere. Slide 26 Andre nyttige

Slide 25

Projekter

PIC Tutorialhttp://www.winpicprog.co.uk/pic_tutorial.htm

Main boardLED boardLCD boardSwitch boardADC board+ mange flere

Page 26: Praktisk introduktion til PIC-kredseoz6hr.dk/wp-content/uploads/PIC-kredse.pdf · { {Main board {LED board {LCD board {Switch board {ADC board {+ mange flere. Slide 26 Andre nyttige

Slide 26

Andre nyttige links

Alt om microcontrollerewww.microcontroller.com

Demo-Tech (demo-boards mv.)www.demotech.dk

OZ6HR’s projektsidewww.oz6hr.dk

Page 27: Praktisk introduktion til PIC-kredseoz6hr.dk/wp-content/uploads/PIC-kredse.pdf · { {Main board {LED board {LCD board {Switch board {ADC board {+ mange flere. Slide 26 Andre nyttige

Slide 27

Demonstration!

MPLABNyt projektNy .asm-fil, kopier kode fra PIC TutorialKompilering (Build All)

Overførsel til PIC-kredsen vha. PIC16PRO-boardet og PICALLW-programmetDemo på ”PIC Tutorial Main Board”Simulation i MPLABMinimal udvikling

.asm-fil og MPASMWIN