Programovanie PIC procesora

Podobné dokumenty
Automatický timer pre DX7 návod na inštaláciu a manuál

Programové prostredie mikrokontrolérov PIC

MANUÁL K TVORBE CVIČENÍ NA ÚLOHY S POROZUMENÍM

ALGORITMY A PROGRAMOVANIE VO VÝVOJOVOM PROSTREDÍ LAZARUS. Vývojové prostredie Lazarus, prvý program

Konfigurácia IP Bell 02C Dverný vrátnik a FIBARO Home Center 2

MIKROKONTROLERY PIC16F84

Pracovné prostredie MS EXCEL 2003.

Strojový kód, assembler, emulátor počítača

Vývojová doska "ATMIA" pre ATMEGA8/16/32 - Update 05

Import cenových akcií FRESH

Súťaž MLADÝ ELEKTROTECHNIK 2010 Peter Kopecký 9.A, ZŠ Duklianska 1. Bánovce nad Bebravou Nastaviteľný zdroj

Import Excel Univerzál

Programování PICAXE18M2 v Assembleru

Vážení používatelia programu WISP.

Imagine. Popis prostredia:

To bolo ľahké. Dokážete nakresliť kúsok od prvého stromčeka rovnaký? Asi áno, veď môžete použiť tie isté príkazy.

VYSPORIADANIE PREHRADENÝCH ZÁVÄZKOV A POHĽADÁVOK

Total Commander. Základné nastavenia

Užívateľská príručka. Vytvorte 1 medzi stránkami v niekoľkých jednoduchých krokoch

VECIT 2006 Tento materiál vznikol v rámci projektu, ktorý je spolufinancovaný Európskou úniou. 1/4

TomTom Referenčná príručka

Postup pri aktivácii elektronickej schránky na doručovanie pre fyzické osoby

PLA-401 v3 Ethernetový adaptér PowerLine (prenos dát cez silové elektrické káble)

MATLAB (1) - úvod do programovania vedeckých problémov. LS 2017, 8.predn.

nastavenie a realizácia vzájomných zápočtov v Money S4 / Money S5

I.CA Securestore. Inštalačná príručka. Verzia 2.16 a vyššia

Základy algoritmizácie a programovania

Je to voľne dostupný programový balík (free software), ktorý sa používa na meraniach.

Stiga Autoclip 200 Series

Užívateľská príručka systému CEHZ. Základné zostavy Farmy podľa druhu činnosti

OBOZNÁMTE SA S VAŠÍM TELEFÓNOM

Multiplexor a demultiplexor

D.Viewer2 Používateľská príručka

Návod k servisnému programu pre fiskálny modul FM2000. manuál. (c)varos

Návod na nastavenie oprávnení pre oprávnené osoby s udeleným čiastočným prístupom

1. Word 4. ročník Formát odseku Tabulátory. Word tabulátory Odseky naformátujte podľa vzoru Predvolené zarážky tabulátora

Textový editor WORD. Práca s obrázkami a automatickými tvarmi vo Worde

Vytvorenie používateľov a nastavenie prístupov

Tvorba logického a fyzického dátového modelu relačnej databázy pomocou nástrojov od firmy Oracle výukový tutoriál

Univerzálne dia kové ovládanie TV SAT DVD AUX

Návod na udelenie oprávnenia na prístup a disponovanie s elektronickou schránkou a jeho zneplatnenie

ONLINE POBOČKA. pre zamestnávateľov MANUÁL

Návrh postupu pre stanovenie počtu odborných zástupcov na prevádzkovanie verejných vodovodov a verejných kanalizácií v správe vodárenských spoločnosti

Komunikácia a práca so systémom TIPES program TIPES dos.

Elektronická značka je k dispozícii na stránke etax v záložke Úvod, položka menu Správa Certifikátov.

Regulátor priestorovej teploty

TESTER-MS6811 Návod na obsluhovanie

Príručka Mobility Tool + pre príjemcov grantu

STRUČNÝ NÁVOD NA OBSLUHU DATALOGERA KIMO KT110 / 150

Postup pri aktivácii elektronickej schránky na doručovanie pre právnické osoby, ktoré nie sú zapísané do obchodného registra

DOBROPISY. Dobropisy je potrebné rozlišovať podľa základného rozlíšenia: 1. dodavateľské 2. odberateľské

Manuál na prácu s databázou zmlúv, faktúr a objednávok Mesta Martin.

Stavba OGN Tracker Lite

Návod na používanie Centrálnej úradnej elektronickej tabule (CUET)

Mgr. Stanislav Fila, psychológ CPPPaP Banská Bystrica Centrum pedagogicko-psychologického poradenstva a prevencie (bývalá KPPP) Banská Bystrica

OBOZNÁMTE SA S VAŠÍM TELEFÓNOM

Automatické pohony na brány

Manuál pripojenia sa k IP zariadeniu HikVision (videorekordéra, IP kamery, videoservera..) pomocou DDNS servera HikVision.

UČEBNÉ TEXTY. Pracovný zošit č.3. Moderné vzdelávanie pre vedomostnú spoločnosť Elektrotechnické merania

Základné dosky. Na nej sú priamo alebo nepriamo umiestnené všetky komponenty počítača.

Q71A Inštalačný manuál

Modul HD44780.inc. [ c. Niki 6/2004 rev. 6/2016]

Formulár Oznámenie funkcií, zamestnaní, činností a majetkových pomerov verejných funkcionárov

Kontrola väzieb výkazu Súvaha a Výkaz ziskov a strát Príručka používateľa

Program pre prípravu hromadných príkazov na import do e-banky Prima banka Slovensko, a.s. (ďalej len Prima banka ) Užívateľská príručka

Príručka pre prostredie Digitálnej autoškoly pre inštruktorov časť elearning

PODPROGRAMY. Vyčlenenie podprogramu a jeho pomenovanie robíme v deklarácii programu a aktiváciu vykonáme volaním podprogramu.

Programovanie.NET, C++ - najbližšie termíny:

Metóda vetiev a hraníc (Branch and Bound Method)

Cez tlačidlo Vyhľadať zvolíte miesto v PC, kde sa HW kľúč nainštaluje. Štandardne je prednastavená inštalácia do priečinka, kde je nainštalovaný progr

7.1 Návrhové zobrazenie dotazu

Microsoft POWERPOINT XP

Stručný návod na inštaláciu Wi-Fi routra pre T-Mobile mobilný internet

Názov kvalifikácie: Konštruktér elektronických zariadení a systémov

MONTÁŽNY NÁVOD NÁVOD K LADENIU A OBSLUHE DIAĽKOVÉHO OVLÁDANIA TXM G / GX KPA2

Inštalácia modemu Huawei E220 pre OS MAC

Kreslenie vo Worde Chceme napríklad nakresliť čiaru priamku. V paneli ponúk klikneme na Vložiť a v paneli nástrojov klikneme na Tvary.

Zapojenie set-top boxu

Manuál obrábania frézovanie CATIA V5R19

Hromadná korešpondencia v programe Word Lektor: Ing. Jaroslav Mišovych

REŽIM PRENESENIA DAŇOVEJ POVINNOSTI

Popis kontrol vykonávaných pri OVEROVANÍ zúčtovacích dávok na Elektronickej pobočke

Návod na postúpenie podania orgánom verejnej moci

Funkcia - priradenie (predpis), ktoré každému prvku z množiny D priraďuje práve jeden prvok množiny H.

Postup pri deaktivácii elektronickej schránky na doručovanie pre fyzické osoby

Manuál Elektronická návratka

CM WiFi-Box. Technické inštrukcie. (pre kotly PelTec/PelTec-lambda) VYKUROVACIA TECHNIKA. Domáci wifi router.

MULTICOMM PRE PARROT CK UNIVERZÁLNY adaptér pre ovládanie hands-free sady PARROT CK3100 prostredníctvom odporového OEM ovládania na volante

Solárna nabíjačka na dobíjanie automobilových akumulátorov Battery SAVER SE. Obj.č.:

Skákalka. Otvoríme si program Zoner Callisto, cesta je Programy Aplikácie Grafika Zoner Callisto.

NA POUŽITIE ŠABLÓNY PRE PÍSANIE ZÁVEREČNEJ PRÁCE

Test. Ktorý valec by ste použili? A. Jednočinný valec B. Dvojčinný valec. Odpoveď:

Návod na inštaláciu sieťovej tlačiarne KONICA MINOLTA C20P pre Windows XP a Vista

KOMISNÝ PREDAJ. Obr. 1

Prístroj strážiaci teplotu TS-01

Úroveň strojového kódu procesor Intel Pentium. Adresovanie pamäte

Aktualizácia operačného systému Android tabletu Samsung Note 10.1 model N8010

Naformátuj to. Naformátuj to. pre samoukov

JCDwin - prechod na EURO

Krížovka. Hot Potatoes JCross ( červená farba) = vytvorenie krížovky, do ktorej vpisujeme odpovede na zadané otázky. Priradenie

Transkript:

Programovanie PIC procesora Vypracoval: Ing. Jaroslav Janoušek Tento edukačný materiál vznikol v rámci projektu Programu celoživotného vzdelávania Leonardo da Vinci č. 11323 1208 Európske skúsenosti a zručnosti v elektrotechnických školách

Vzorová hodina na tému Ako programovať PIC + vzorový príklad Najprv sa zoznámime s mikropočítačom Mikropočítače PIC sú programovateľné polovodičové súčiastky (jedno čipové mikropočítače) celý počítač je integrovaný do jedného čipu (viď. bloková schéma príloha 3) vyrábané firmou Microchip Technology. Stačí zapojiť príslušné vstupy a výstupy, napájanie prípadne taktovacie impulzy a zložité zapojenie s mnohými súčiastkami za nás urobí príslušný program. Každý procesor má dve alebo tri brány s príslušným počtom pinov. Každý z týchto pinov môžeme používať buď ako vstupné, alebo ako výstupné. Pokiaľ je používaný ako vstupní(ra0) tak má veľký vstupný odpor, preto musíme odporom R definovať logickú 1 (+5V). U niektorých procesorov sa tento odpor dá nastaviť programovo (fyzicky to nie je potrebné). Log. 0 získame pripojením tohto vstupu na zem. Pokiaľ PIN príslušnej brány (RB0) nastavíme na výstup potom program na tento PIN posiela logickú 0 (0V), resp. logickú 1 (5V). Toto napätie priamo môžeme priviesť na LED diódu, zosilniť tranzistorom, nebo ním spínať relé. Nastavení pinu ako vstupný, alebo výstupný vykonáme programovo (register TRISA, TRISB, ). Ako každý procesor i PIC potrebuje hodinový impulzy. Ten môžeme vytvoriť RC článkom, u niektorého procesora (627) môžeme použiť interní oscilátor. V prípade, že potrebujeme presnú frekvenciu oscilátora na vstupy OSC1 a OSC2, pripojíme kryštál (kondenzátor, ktorý umožní kmitať len na jeho prípustné hodnoty). Z toho môžeme odvodiť doby časových cyklov. Vlastnosti procesorov sú popísané v prílohe 2. Tieto programovateľné súčiastky sú určené pre najrôznejšie kontrolné a riadiace úlohy v priemyselných oboroch, pre realizáciu meracích a riadiacich systémov atď. Vďaka svojej univerzálnosti, malej veľkosti, nízkej cene a spotrebe nachádzajú uplatnenie vo veľkom množstve aplikácií. Môžete ich nájsť v mnohých súčasných elektronických zariadeniach. Zapojení vstupu a výstupu mikroprocesorov.

Nasleduje ukážka programovania mikroprocesorov PIC. Každý mikroprocesor má svoju inštrukčnú sadu (viď. prílohy 6 a 7). Inštrukcie procesoru v strojovom kóde (nazývanej aj binárny kód ) sú zvyčajne uložené v hexadecimálnom tvare (súbor s príponou.hex). V tomto tvare by sa nám program veľmi ťažko program písal, preto sa miesto strojového kódu v hexadecimálnom tvare programuje v Asembleri, v ktorom sú inštrukcie v zrozumiteľnom tvare. Program sa píše v zvyčajne v textovom editore napr. poznámkovom bloku a ukladá sa v súbore s koncovkou.asm. Inštrukcie sa píšu do troch stĺpcov, ktoré sa oddeľujú znakom TAB. S výnimkou príkazov pre definovanie názvov sa do prvého stĺpca píšu návestia, do druhého príkazy a do tretieho stĺpca ich hodnoty. Všetko musíme písať veľkými písmenami. Každý správny programátor, by mal do programu vkladať poznámky (ich účelom je hlavne zrozumiteľnosť pre cudzích programátorov, po čase aj autora, ktorý na detaily zabudne). Poznámky sa píšu za bodkočiarku";" a malými písmenami. Písanie programu najlepšie ozrejmí príklad. Chceme vytvoriť program pre mikropočítačov, ktorý po stlačení tlačidla rozsvieti LED diódu a pri nasledovnom stlačení tlačidla LED diódu zhasne. Použijeme už uvedenú schému zapojenia. Program musí začínať Hlavičkou, v ktorej sa uvedie typ procesora a pridelenie knižnice LIST P=16F84 ; určuje pre aký typ procesora INCLUDE<P16F84.INC> ; priradenie knižnice procesora Ďalej musíme nakonfigurovať procesor, kde nastavíme jeho vlastnosti. Pre úplnosť uvádzam v prílohe konfiguráciu 16F627A (príloha 8) V príklade pre jednoduchosť uvádzam 16F84. Konfiguráciu ku každému procesoru nájdete v Datashetu. Konfiguráciu nemusíme písať pokiaľ vie nakonfigurovať procesor vývojové prostredie, alebo programátor. V ukážke uvádzam spozdenie po štarte je zapnuté, Watchdog timer je vypnutý, typ oscilátoru RC CONFIG_PWRTE_ON&_WDT_OFF&_RC_OSC ;konfigurácia procesora Aby sme nemuseli písať v programu PORTA, 0 a podobne môžeme nadefinovať promennú napríklad TLAC. #DEFINE TLAC PORTA, 0 ; nastavenie názvov používaných vývodov neskôr sa v ;programe môže používať už len tieto názvy a nie ich adresy Podobne definujeme výstup premennej LED. #DEFINE LED PORTB, 0

Teraz musíme prepnúť príslušné piny na vstupné, alebo výstupné, toto uskutočníme v registroch TRISA,TRISB. Nastavením na hodnotu log.1 sú vstupné, nastavením na log.0 sú výstupné. Skôr než budeme nastavovať musíme prepnúť do Banku 1. BSF STATUS, RP 0 ; nastavení vývodov vstupní/výstupní, musíme ; sa prepnúť do Banky 1 ; To sa stalo týmto príkazom, ktorý nám bit RP0 ; v registru STATUS, nastavil na hodnotu log.1 Teraz nastavíme bit 1 v registru TRISA na hodnotu log.1-prvý bit vstupný, ostatné výstupné. Informáciu najskôr pošleme do W registra (základný register vstupu/výstupu) a následne pošleme do TRISA, TRISB môžeme celý vynulovať, teda prepnúť na výstupný- MOVLW B'00000001' ; uložení binárnej hodnoty do pracovného registra MOVWF TRISA ;prepísanie z pracovného registra do registra TRISA ; nastavení vývodu RA0 ako vstupné/ostatné ;vývody ako výstupné. CLRF TRISB ;do TRISB zapíšeme samé 0 a tým celý prepneme ;ako výstupný Následne nazad prepneme register do Bank 0. A môžeme ho využiť ako vstupný, alebo výstupný. BCF STATUS, RP0 ; po nastavení sa vrátime späť do Banky 0 opäť ; zmenou bitu RP0 tentoraz však na log.0 Po tomto máme nastavené porty a môžeme začať vlastný program: Bit nastavíme na nulu. Nultý bit portu B (definovali sme mu premennú LED). BCF LED ; na log. 0 sme nastavili vývod s názvom LED Aby sme mohli vytvoriť programový cyklus, použijeme návästie START. Teraz budeme testovať stlačenie tlačidla inštrukcia BTFSS má skokovú funkciu, preto za ňu musíme dať inštrukciu, tým čakáme na stlačenie tlačidla. Po stlačení tlačidla preskočí inštrukciu a program pokračuje ďalej. START BTFSS TLAC ; Slovo START slúži ako záložka (pre neskoršie ; použitie stačí GOTO START ; Príkaz za záložkou testuje vývod označený TLAC ; Z tabuľky príkazov je vidieť, že ak je tento vývod v 0 ; pokračuje sa normálne ďalším príkazom. ; Ak má hodnotu 1, nasledujúci riadok sa vynechá a ; pokračuje sa až tým ďalším ;(v našom prípade je to BSF LED). ; príkaz spolu s jeho hodnotou spôsobí vrátenie procesora o ; jeden riadok vyššie ($-1) ; Spolu s minulým príkazom sme dosiahli to, že ; procesor tu stále opakuje cyklus a čaká, ; až bude mať vývod TLAC hodnotu 1 ; V tej chvíli sa tento príkaz preskočí a procesor sa dostane ; na nasledovný riadok

Následne chceme rozsvietiť LED diódu, preto na premennú LED nastavíme príslušný bit portu B na log.1 BSF LED ; nastavení hodnoty 1 na vývod LED a tým rozsvietenie ;pripojenej LED diódy Teraz čakáme na pustenie tlačidla, preto použijeme podobný cyklus ako v predchádzajúcom prípade, ale s obrátenou funkciou. BSFSC TLAC ; musíme priviesť na vývod TLAC log.0 GOTO Teraz budeme opäť testovať stlačenie tlačidla. BTFSS $-1 ; vrátenie procesoru o jeden riadok vyššie TLAC ; rovnaký princíp až na to, že sa tlačidlom LED vypne Následne chceme zhasnúť LED diódu, preto na premennú LED nastavíme príslušný bit portu B na log.0. BSF Opäť testujeme tlačidlo. BTFSC LED TLAC Aby sme vytvorili cyklus, vraciame sa na návestie START. GOTO START ; procesor sa vráti späť na záložku START a tým ; vytvoríme opakujúci sa cyklus rozsvietenia a zhasnutia LED Každý program je zakončený príkazom END pre prekladač. END ; indikuje koniec programu, musí sa písať! (Napriek tomu, že program ; na tento príkaz nikdy nedôjde) Tu uvádzam skrátenú verziu celého programu: ;Hlavičky programu LIST P=16F84 ; typ procesoru INCLUDE<P16F84.INC> ; knižnice CONFIG_PWRTE_ON&_WDT_OFF&_RC_OSC ;určenie vlastností #DEFINE TLAC PORTA, 0 #DEFINE LED PORTA, 1 BSF STATUS, RP 0 ; MOVLW B'00000001' MOVWF TRISA BCF STATUS, RP0 BCF LED START BTFSS TLAC BSF LED BSFSC TLAC BTFSS TLAC BSF LED BTFSC TLAC GOTO START END

Takto napísaný program uložíme s koncovkou.asm Pomocou prekladača - napríklad MPASMWIN, preložíme náš súbor do strojového kódu. Pokiaľ preklad prebehne správne, vznikne nám súbor s príponou.hex. Teraz už stačí k PC pripojiť programátor a vygenerovaný súbor naprogramovať do procesora a celé zapojenie odskúšať. Prekladač nám ukáže iba syntaktické chyby, ale logické chyby v programe neukáže. Nie je teda isté, že takto napísaný program bude fungovať. K odladeniu programu je preto vhodné použiť nejaké vývojové prostredie, kde môžeme nasimulovať funkciu programu. Ako jeden z vývojových programov je vhodný MPLAB.

Vzorová aplikácia Človeče nehnevaj sa! s PIC Ide o elektronickú verziu klasickej hracej kocky používanej hlavne na hru Človeče nehnevaj sa. Schéma zapojenia je na obr. Tlačidlo je pripojené na vývod RA0. Na vývodoch RB0 až RB3 sú proti zemi pripojené LED diódy, ktorých rozmiestnenie je vidieť na obr. 2. Ako oscilátor je tu použitý obyčajný RC člen (nie je potrebná presná frekvencia) a pracuje asi na 45 khz.

Človeče nehnevaj sa! s PIC súčiastky a plošné spoje R1-22k R2-10k R3-75R R4-22R R5-22R R6-22R C1-1n C2-100n D1 D6 Led dióda 20mA

Oživovanie elektronickej kocky

; Elektronická kocka určená pre hru Človeče nehnevaj sa!, vhodná aj pre iné hry ; ; ; Na RA0 je tlačidlo START prepojené voči plusu a na porte B sú LED. ; Po stlačení tlačidla START sa rozsvietia všetky LED ; a procesor "mieša" jednotlivé čísla. ; Po uvoľnení sa aktuálna hodnota zapíše na PORT B. ; LIST P=16F84, R=DEC INCLUDE<P16F84.INC> súčasťou označenia ; typ procesora a numerická dekadická sústava ; vzorový súbor s príkazmi pre prekladač (je ; prekladača ASM/HEX) ; Všetky tu používané registre majú už svoje ; a nie je ich potrebné tu nastavovať. ; Napr.: PORTA, PORTB,STATUS... BSF STATUS,RP0 ; vyber v registroch BANK 1 MOVLW B'00000001' ; do W zapíš tuto hodnotu MOVWF TRISA ; hodnotu z W zapíš do TRISA a tým nastav prvý vývod na IN CLRF TRISB ; do TRISB zapíš samé 0 a tým cely PORTB nastav ako OUT BCF STATUS,5 ; vyber naspäť BANK 0 MOVLW B'00001000' ; toto číslo ulož do W MOVWF PORTB ; W do PORTB START BTFSS PORTA,0 ; čaká na stlačenie tlačidla START na vývode RA0 GOTO START ; pokiaľ je stlačené, tento príkaz sa preskočí inak nazad MOVLW B'00001111' ; binárne číslo do W MOVWF PORTB ; W do PORTB - rozsvietia sa všetky LED MICH MOVLW B'00001000' ; do W hodnotu pre prvé číslo BTFSS PORTA,0 ; ak je ešte stlačene tl, nasledujúci riadok sa vynechá GOTO ZOBRAZ ; prejdi na ZOBRAZ MOVLW B'00000100' ; a opäť pre ďalšie číslo BTFSS PORTA,0 GOTO ZOBRAZ MOVLW BTFSS GOTO MOVLW BTFSS GOTO MOVLW BTFSS GOTO B'00001100' PORTA,0 ZOBRAZ B'00000101' PORTA,0 ZOBRAZ B'00001101' PORTA,0 ZOBRAZ MOVLW B'00000111' BTFSS PORTA,0 GOTO ZOBRAZ GOTO MICH ; a opäť miešať ZOBRAZ MOVWF PORTB ; hodnotu z W zapíš na PORTB GOTO START ; prejdi na START END