Programování mikrokontrolerů PIC 16F84A

Slides:



Advertisements
Podobné prezentace
CIT Paměti Díl X.
Advertisements

ProBot © Ondřej Staněk.
Projekt Anglicky v odborných předmětech, CZ.1.07/1.3.09/
Na velikosti (ne)záleží aneb Úvod do programování jednočipů
Programování v C jazyku - SEMINÁŘ
Digitální učební materiál
Autor:Ing. Peter Podoba Předmět/vzdělávací oblast:Digitální technika Tematická oblast:Mikroprocesorová technika Téma:Obsluha více tlačítek – drát PIC 16F84A.
Autor:Ing. Peter Podoba Předmět/vzdělávací oblast:Digitální technika Tematická oblast:Mikroprocesorová technika Téma:Obsluha více tlačítek – start/stop.
Zásobník (LiFo) Fronta (FiFo)
Preprocess Úvod do tvorby funkcí Princip preprocesoringu Direktivy preprocesoru Podmíněný překlad Základy tvorby funkcí Zjednodušený popis principu předávaní.
Výukový program: Mechanik - elektrotechnik Název programu: Číslicová technika - mikroprocesory III. ročník Mikrořadiče Vypracoval : Vlastimil Vlček Projekt.
Program Programátorský model procesoru Instrukční soubor
Výukový program: Mechanik - elektrotechnik Název programu: Číslicová technika - mikroprocesory III. ročník Mikrořadiče Vypracoval : Vlastimil Vlček Projekt.
Digitální učební materiál
Vyučovací hodina 1 vyučovací hodina: Opakování z minulé hodiny 5 min Nová látka 20 min Procvičení nové látky 15 min Shrnutí 5 min 2 vyučovací hodiny: Opakování.
Výukový program: Mechanik - elektrotechnik Název programu: Číslicová technika - mikroprocesory III. ročník Mikrořadiče Vypracoval : Vlastimil Vlček Projekt.
Výukový program: Mechanik - elektrotechnik Název programu: Číslicová technika - mikroprocesory III. ročník Mikrořadiče Vypracoval : Vlastimil Vlček Projekt.
AVR Assembler Symboly Návěští
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Výukový program: Mechanik - elektrotechnik Název programu: Číslicová technika - mikroprocesory III. ročník Mikrořadiče Vypracoval : Vlastimil Vlček Projekt.
Autor:Ing. Peter Podoba Předmět/vzdělávací oblast:Digitální technika Tematická oblast:Mikroprocesorová technika Téma:Vnořená časová smyčka Ročník:4. Datum.
= monolitický integrovaný obvod obsahující kompletní mikropočítač
Digitální učební materiál
Programování mikrokontrolerů PIC 16F84A
TEP Přerušení č.7. Přerušení Téma Přerušení TEP Předmět TEP Juránek Leoš Ing. Autor Juránek Leoš Ing. TEP.
Popis mikroprocesoru David Rozlílek ME4B.
Adresy a adresování Střední odborná škola Otrokovice Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Miloš Zatloukal.
Výukový program: Mechanik - elektrotechnik Název programu: Číslicová technika - mikroprocesory III. ročník Mikrořadiče Vypracoval : Vlastimil Vlček Projekt.
Autor:Ing. Peter Podoba Předmět/vzdělávací oblast:Digitální technika Tematická oblast:Mikroprocesorová technika Téma:Obsluha tlačítek PIC 16F84A Ročník:4.
Výukový program: Mechanik - elektrotechnik Název programu: Číslicová technika - mikroprocesory III. ročník Mikrořadiče Vypracoval : Vlastimil Vlček Projekt.
Digitální učební materiál
P ROGRAMOVÁNÍ V JSA David Rozlílek. P ROGRAMOVÁNÍ V JSA Co to je zkratka JSA - ………….? Je tvořen z jednotlivých - s……. i…….? a k……… ? Jaký program používáme.
Popis obvodu 8051.
Srovnání mikrokontrolerů
Vstupně-výstupní porty
Programování v JSA.
Programování v JSA. Co je to JSA? FORMÁT ZDROJOVÉHO PROGRAMU JSA Z jakých 4 částí se skládá řádek?
Roman Nasadil – ME4C PROGRAMOVÁNÍ V JSA. CO TO JE JSA?
Instrukce procesoru.
Základy programování mikropočítačů První program v jazyce symbolických adres.
CZ.1.07/1.5.00/ Využití ICT pro rozvoj klíčových kompetencí CZ.1.07/1.5.00/ Střední odborná škola elektrotechnická, Centrum odborné přípravy.
Programování KONSTANTY, ČTENÍ PO JEDNOM ZNAKU GETCHAR() FORMÁTOVANÝ VÝSTUP POMOCÍ PRINTF, VÝVOJOVÉ DIAGRAMY, CYKLY.
Odborný výcvik ve 3. tisíciletí Tato prezentace byla vytvořena v rámci projektu.
Orbis pictus 21. století Tento projekt je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky Interkomunikační adresní systém.
Programování mikropočítačů Programování HCS08 v C Obsluha vstupů a výstupů, displej.
CZ.1.07/1.5.00/ Využití ICT pro rozvoj klíčových kompetencí CZ.1.07/1.5.00/ Střední odborná škola elektrotechnická, Centrum odborné přípravy.
Odborný výcvik ve 3. tisíciletí Tato prezentace byla vytvořena v rámci projektu.
MIKROPROCESOROVÁ TECHNIKA
Cvičení s mikrokontrolery 8051
Inicializace portů mikrokontroléru
Programování ENUM, SWITCH,pole jednorozměrná a vícerozměrná, deklarace, inicializace, kopírování, porovnání Erik Král.
Využití ICT pro rozvoj klíčových kompetencí CZ.1.07/1.5.00/
Výukový materiál zpracován v rámci projektu
Využití ICT pro rozvoj klíčových kompetencí CZ.1.07/1.5.00/
Využití ICT pro rozvoj klíčových kompetencí CZ.1.07/1.5.00/
Výukový materiál zpracován v rámci projektu
Mikropočítač Soubor instrukcí
Programování mikropočítačů
Výukový materiál zpracován v rámci projektu
Výukový materiál zpracován v rámci projektu
Výukový materiál zpracován v rámci projektu
Využití ICT pro rozvoj klíčových kompetencí CZ.1.07/1.5.00/
Výukový materiál zpracován v rámci projektu
Výukový materiál zpracován v rámci projektu
Programování mikrokontrolerů PIC 16F84A
Využití ICT pro rozvoj klíčových kompetencí CZ.1.07/1.5.00/
Využití ICT pro rozvoj klíčových kompetencí CZ.1.07/1.5.00/
Projekt Anglicky v odborných předmětech, CZ.1.07/1.3.09/
Projekt Anglicky v odborných předmětech, CZ.1.07/1.3.09/
Projekt Anglicky v odborných předmětech, CZ.1.07/1.3.09/
Transkript prezentace:

Programování mikrokontrolerů PIC 16F84A Řízení výrobních strojů a zařízení

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) RA2 RA3 RA4/T0CKI MCLR Vss RB0/INT RB1 RB2 RB3 RA1 RA0 OSC1/CLKIN OSC2/CLKOUT Vdd RB7 RB6 RB5 RB4

Vlastnosti PIC 16F84A Pouze 35 instrukcí Každá instrukce zabírá jeden strojový cyklus (instrukce měnící přirozený běh programu - dva cykly) doba strojového cyklu je rovna převrácené hodnotě kmitočtu oscilátoru, která je vydělena čtyřmi (používáme 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 - konfigurace INCLUDE "P16F84A.INC" LIST P=16F84A, R=DEC __CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC INCLUDE = instrukce, která do kódu vkládá obsah souboru P16F84A.INC. Tento soubor v sobě obsahuje deklarace konstant, např. 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’ – hodnota 5, zadaná v šestnáctkové soustavě (HEX)

Popis programu - konfigurace 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 - konfigurace INCLUDE "P16F84A.INC" LIST P=16F84A, R=DEC __CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC __CONFIG = nastavení konfiguračního slova - _CP_OFF = code protection - ochrana proti vyčtení programu (vypnutá) - _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. vystup EQU h'06' i1 EQU h'20' i2 EQU h'21' Direktiva EQU (podobně jako u INCLUDE, ale zde definujeme vlastní proměnné) - vystup - název konstanty - EQU - direktiva pro přiřazení ekvivalentního názvu - H'06' - adresa registru (HEX) Na adrese 6 je umístěn vstupně výstupní registr PORTB - vystup je tedy jen další označení pro PORTB Počínaje adresou 12 (tj. 0C HEX) je paměť určená k použití programem, od pozice 20 HEX můžeme tedy umístit vlastní proměnné s názvy i1, i2

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. konfigurace) - RPO - označení bitu v bajtu (stejně by šlo napsat i BSF H'0003'.3)

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 (pracovní registr/střadač, něco jako RAM) V tomto případě je číslo zadané binárně, 8 bitů, hodnota 0 (výstupy) Lze zapsat i jako DEC, HEX, ale není to tak přehledné. Při zadávání konstant v těle programu budeme využívat DEC

Popis programu - hlavička BSF STATUS,RP0 MOVLW b'00000000' MOVWF TRISB BCF STATUS,RP0 MOVWF TRISB … MOVe W to F = kopírování hodnoty z registru W do paměti (F) na adresu TRISB (symbolické označení adresy, kam hodnotu zapsat) TRISB - konfigurační HW registr pro nastavení vstupů a výstupů portu B (bity označeny RB7 .. RB0) nastavení bitů … 0 - výstup, 1 - vstup

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 v paměti (F) do stavu 0 - obdobné jako BSF, ale bit se nuluje. V hlavičce se nastavují i jiné registry, o nich ale až později.

Popis programu - tělo programu zacatek BSF vystup,0 CALL casovac BCF vystup,0 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í (značka ukazující pozici v programu na kterou se lze odvolávat) Používá se při skocích v programu (GOTO, CALL)

Popis programu - tělo programu zacatek BSF vystup,0 CALL casovac BCF vystup,0 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 0 proměnné ‘vystup’ do 1 a jelikož máme vystup EQU h'06‚ nastaví se v PORTB bit RB0=1

Popis programu - tělo programu zacatek BSF vystup,0 CALL casovac BCF vystup,0 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 (název podprogramu)

Popis programu - tělo programu zacatek BSF vystup,0 CALL casovac BCF vystup,0 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, pauza1 - návěstí (značka) MOVLW, MOVWF - inicializace konstant podprogramu zpoždění

Popis programu - tělo programu zacatek BSF vystup,0 CALL casovac BCF vystup,0 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, ≠0 - pokračuje na další instrukci

Popis programu - tělo programu zacatek BSF vystup,0 CALL casovac BCF vystup,0 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 psát záporná i kladná celá čísla, přehledné pro krátké skoky)

Popis programu - tělo programu zacatek BSF vystup,0 CALL casovac BCF vystup,0 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 - pseudoinstrukce pro překladač, konec překládáného textu

Ú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..