programov n mikrokontroler pic 16f84a n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Programování mikrokontrolerů PIC 16F84A PowerPoint Presentation
Download Presentation
Programování mikrokontrolerů PIC 16F84A

Loading in 2 Seconds...

play fullscreen
1 / 19

Programování mikrokontrolerů PIC 16F84A - PowerPoint PPT Presentation


  • 168 Views
  • Uploaded on

Programování mikrokontrolerů PIC 16F84A. NC řídící systémy. Vlastnosti PIC 16F84A. 13 vstupně výstupních pinů 5 + 8 (dva porty) PORT A RA0 – RA4 PORT B RB0 – RB7 MCLR – vstup resetovacího signálu Vss (+), Vdd (-) – Napájecí piny OSC1/CLKIN – pin pro vstup taktovacího oscilátoru

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 'Programování mikrokontrolerů PIC 16F84A' - eldora


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
vlastnosti pic 16f84a
Vlastnosti PIC 16F84A

13 vstupně výstupních pinů 5 + 8 (dva porty)

    • PORT A RA0 – RA4

PORT B RB0 – RB7

  • MCLR – vstup resetovacího

signálu

  • Vss (+), Vdd (-) – Napájecí piny
  • OSC1/CLKIN – pin pro vstup

taktovacího oscilátoru

  • OSC2/CLKOUT – výstup taktovacího

signálu (synchronizace)

RA1

RA0

OSC1/CLKIN

OSC2/CLKOUT

Vdd

RB7

RB6

RB5

RB4

RA2

RA3

RA4/T0CKI

MCLR

Vss

RB0/INT

RB1

RB2

RB3

vlastnosti pic 16f84a1
Vlastnosti PIC 16F84A
  • Pouze 35 instrukcí
  • Každá instrukce zabírá jeden strojový cyklus (instrukce přerušující běh programu - dva cykly)
  • doba strojového cyklu je rovna převrácené hodnotě kmitočtu oscilátoru, která je vydělena čtyřma. (běžně
  • krystaly 4MHz tedy 1/(4Mhz/4) = 1us.)
  • maximální frekvence 20MHz - doba strojového cyklu 200ns, 1/(20Mhz/4) = 200ns
  • programová paměť o velikosti 1024 slov
  • 68 bytů paměť Data RAM
  • 64 bytů paměť Data EEPROM
  • 15 speciálních hardwarových registrů
  • čtyři zdroje přerušení
popis programu konfig slovo
Popis programu - Konfig. slovo

INCLUDE "P16F84A.INC"

LIST P=16F84A, R=DEC

__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC

  • INCLUDE, která do kódu vkládá obsah souboru P16F84A.INC. Tento soubor v sobě obsahuje deklarace konstant.

PCL EQU H'0002‚

STATUS EQU H'0003‚

FSR EQU H'0004‚

PORTA EQU H'0005' …

PCL – název konstanty

EQU – direktiva pro přiřazení ekviv. názvu

H'0005‚ - adresa registru (HEX)

popis programu konfig slovo1
Popis programu - Konfig. slovo

INCLUDE "P16F84A.INC"

LIST P=16F84A, R=DEC

__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC

  • LIST - obsahuje informace pro překladač

- pro jaký uP překládá (P)

- jakou má použít výchozí číselnou soustavu (R)

DEC dekadická

HEX šestnáctková

OCT osmičková.

popis programu konfig slovo2
Popis programu - Konfig. slovo

INCLUDE "P16F84A.INC"

LIST P=16F84A, R=DEC

__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC

  • Konfigurační slovo
    • _CP_OFF - ochrana proti vyčtení programu (vypnutá) code protection
    • _WDT_OFF - Watchdog timer - ochrana proti "zacyklení" (vypnutá)
    • _PWRTE_ON - ochrana proti přepsání programu (protection write)
    • _XT_OSC - definice oscilátoru (XT - 4MHz)
popis programu deklarace konst
Popis programu - Deklarace konst.

vystup EQU h'06'

i1 EQU h'20'

i2 EQU h'21'

  • Direktiva EQU (podobně jako u INCLUDE, ale zde definujem vlastní proměnné)
  • Vystup - název konstanty
  • EQU - direktiva pro přiřazení ekvivalentního názvu

H'06' - adresa registru (HEX)

06 - PORTB - vstupně výstupní registr (stav je shodný se stavem na pinech pouzdra)

od 20+ prostor pro vlastní konstanty

popis programu hlavi ka
Popis programu - hlavička

BSF STATUS,RP0

MOVLW b'00000000'

MOVWF TRISB

BCF STATUS,RP0

  • BSF STATUS,RP0 - Přesun do BANK 1 (pro nastavování uP)
    • BSF - Bit Set F - nastavení bitu v paměti (F) do stavu 1
    • STATUS - označení bajtu (viz konfig. Slovo)
    • RPO - označení bitu v bajtu

(stejně by šlo napsat i BSF H'0003'.3)

popis programu hlavi ka1
Popis programu - hlavička

BSF STATUS,RP0

MOVLW b'00000000'

MOVWF TRISB

BCF STATUS,RP0

  • MOVLW b'00000000' - MOVe Literal to W - Přesun zapsaného čísla do registru W (něco jako RAM)
    • V tomto případě binární číslo, 8 bitů, hodnota 0 (výstupy)
    • Lze zapsat i jako DEC, HEX, ale není tak přehledné.
    • Při zadávání konstant v těle programu budeme využívat DEC
popis programu hlavi ka2
Popis programu - hlavička

BSF STATUS,RP0

MOVLW b'00000000'

MOVWF TRISB

BCF STATUS,RP0

  • MOVWF TRISB - MOVe W to F - Přesun čísla z registru W do paměti (F)
    • TRISB - adresa kam zapsat hodnotu z W (střadač)
      • TRISB - konfigutační HW registr pro nastavení vstupů a výstupů portu B (RB)
      • Bit 0 - RB0 .....bit 7 - RB7
      • 0 - výstup, 1 - Vstup
popis programu hlavi ka3
Popis programu - hlavička

BSF STATUS,RP0

MOVLW b'00000000'

MOVWF TRISB

BCF STATUS,RP0

  • BCF STATUS,RP0 - Přesun zpět do BANK 0
    • BCF - Bit Clear F - nastavení bitu do v paměti (F) do stavu 0
  • Stejné jako BSF, ale bit nuluje.
  • V hlavičce se nastavují i jiné registry, o nich ale až později.
popis programu t lo programu
Popis programu - tělo programu

zacatek BSF vystup,0

CALL casovac

BCF vystup,0

CALL casovac

GOTO zacatek

casovac MOVLW 255 MOVWF i2

pauza2 MOVLW 255 MOVWF i1

pauza1 DECFSZ i1,1

goto pauza1

DECFSZ i2,1

goto pauza2

return

end

  • Zacatek - Návěstí - Používá se při skocích v programu (GOTO, CALL)
popis programu t lo programu1
Popis programu - tělo programu

zacatek BSF vystup,0

CALL casovac

BCF vystup,0

CALL casovac

GOTO zacatek

casovac MOVLW 255 MOVWF i2

pauza2 MOVLW 255 MOVWF i1

pauza1 DECFSZ i1,1

goto pauza1

DECFSZ i2,1

goto pauza2

return

end

  • BSF vystup,0
    • Nastaví bit vystup,0 (ekviv. RB0 viz. deklarace konstant)

vystup EQU h'06'

    • Vystup - ekvivalent PORTB, ,0 - označení bitu v byte PORTB
popis programu t lo programu2
Popis programu - tělo programu

zacatek BSF vystup,0

CALL casovac

BCF vystup,0

CALL casovac

GOTO zacatek

casovac MOVLW 255 MOVWF i2

pauza2 MOVLW 255 MOVWF i1

pauza1 DECFSZ i1,1

goto pauza1

DECFSZ i2,1

goto pauza2

return

end

  • CALL - Volání podprogramu
    • Casovac - návěstí definované v programu
popis programu t lo programu3
Popis programu - tělo programu

zacatek BSF vystup,0

CALL casovac

BCF vystup,0

CALL casovac

GOTO zacatek

casovac MOVLW 255 MOVWF i2

pauza2 MOVLW 255 MOVWF i1

pauza1 DECFSZ i1,1

goto pauza1

DECFSZ i2,1

goto pauza2

return

end

  • Casovac, pauza2, pauza - návěstí (značka ukazující na pozici v programu na kterou se lze odvolávat)
  • MOVLW, MOVWF - zaplnění konstant pro podprogram zpoždění
popis programu t lo programu4
Popis programu - tělo programu

zacatek BSF vystup,0

CALL casovac

BCF vystup,0

CALL casovac

GOTO zacatek

casovac MOVLW 255 MOVWF i2

pauza2 MOVLW 255 MOVWF i1

pauza1 DECFSZ i1,1

goto pauza1

DECFSZ i2,1

goto pauza2

return

end

  • DECFSZ i1,1 - DECrement F Skip if Zero
    • Odečte od i1 jedničku a následně porovná s nulou
      • =0 - přeskočí následující instrukci (slovo)
      • ≠0 - pokračuje na další instrukci
popis programu t lo programu5
Popis programu - tělo programu

zacatek BSF vystup,0

CALL casovac

BCF vystup,0

CALL casovac

GOTO zacatek

casovac MOVLW 255 MOVWF i2

pauza2 MOVLW 255 MOVWF i1

pauza1 DECFSZ i1,1

goto pauza1

DECFSZ i2,1

goto pauza2

return

end

  • GOTO pauza1 - skok na návěstí
    • Lze zapsat i goto $-1 skok o 1 řádek zpět (lze záporná i kladná celá čísla)
popis programu t lo programu6
Popis programu - tělo programu

zacatek BSF vystup,0

CALL casovac

BCF vystup,0

CALL casovac

GOTO zacatek

casovac MOVLW 255 MOVWF i2

pauza2 MOVLW 255 MOVWF i1

pauza1 DECFSZ i1,1

goto pauza1

DECFSZ i2,1

goto pauza2

return

end

  • RETURN - návrat z podprogramu
    • Program se vrátí za instrukci CALL, která volala podprogram
  • END - konec programu
    • Musí být i tam, kde se program nikdy k této instrukci nedostane.
slide19
ÚKOL
  • Rozšířit program tak, aby byl vytvořen světelný "had"
  • Rozsvěcet postupně LED diody
  • 00000001 - 00000010 - 00000100 - 00001000 - 00010000 - 00100000 - 01000000 - 10000000 a znova 00000001..