Obr. 1 - Hlavní okno prostředí MPLAB

Podobné dokumenty
ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE

Programování PICAXE18M2 v Assembleru

MIKROKONTROLERY PIC16F84

Práce v návrhovém prostředí Xilinx ISE WebPack 12 BDOM UMEL FEKT Šteffan Pavel

MPASM a IDE pro vývoj aplikací MCU (Microchip)

Činnost CPU. IMTEE Přednáška č. 2. Několik úrovní abstrakce od obvodů CPU: Hodinový cyklus fáze strojový cyklus instrukční cyklus

Microchip. PICmicro Microcontrollers

Popis instrukční sady - procesory PIC Aritmetické a logické operace

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

Práce v návrhovém prostředí Xilinx ISE WebPack 10.1 BDOM UMEL FEKT Šteffan Pavel

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

PVKpro vývojový kit s programátorem pro mikrokontrolér PIC16F84 Připojení k PC: paralelní port Uživatelská příručka

Návod na práci s přípravkem a programy uscope a FLIP na cvičeních

Práce v návrhovém prostředí Xilinx ISE WebPack 9.2i

Návod ke cvičení předmětu BPGA SLC 500


Příloha č. I: Schéma zapojení vývojové desky PVK-PRO

MIKROPROCESORY PRO VÝKONOVÉ SYSTÉMY

8. Laboratoř: Aritmetika a řídicí struktury programu

Návod ke cvičení předmětu BPGA ControlLogix

NÁVOD K OBSLUZE konfigurační SW CS-484

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ /14

DIODOVÉ HODINY. Dominik Roček. Středisko Vyšší odborná škola a Středisko technických a uměleckých oborů Mariánská ulice 1100, Varnsdorf

MIKROPROCESORY PRO VÝKONOVÉ SYSTÉMY

PROGRAMOVÁNÍ MIKROPOČÍTAČŮ CVIČENÍ 7

Mikrokontroléry. Doplňující text pro POS K. D. 2001

První kroky s METEL IEC IDE

Strojový kód. Instrukce počítače

Strojový kód k d a asembler procesoru MIPS SPIM. MIPS - prostředí NMS NMS. 32 ks 32bitových registrů ( adresa registru = 5 bitů).


K8048 DESKA PROGRAMÁTORU PIC

Stručný postup k použití programu PL7 Junior (programování TSX Micro)

PŘÍLOHY. PRESTO USB programátor

Logické operace. Datový typ bool. Relační operátory. Logické operátory. IAJCE Přednáška č. 3. může nabýt hodnot: o true o false

LabView jako programovací jazyk II

Střední průmyslová škola a Vyšší odborná škola, Hrabákova 271, Příbram. III / 2 = Inovace a zkvalitnění výuky prostřednictvím ICT

PIC PROGRAMÁTOR Milan Obrtlílk 4. ročník SŠPH Uh. Hradiště

PIC krok za krokem. Komentované příklady programů pro PIC

SW24x3 programovatelné relé

Střední průmyslová škola a Vyšší odborná škola, Hrabákova 271, Příbram. III / 2 = Inovace a zkvalitnění výuky prostřednictvím ICT

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Univerzální software pro programátory ASIX. Uživatelská příručka

Monolitické mikropoèítaèe II

MIDAM Simulátor Verze 1.5

Programátor PICPGR3 pod Windows XP. Martin Kákona, Petr Borsodi, Milan Horkel

SEKVENČNÍ LOGICKÉ OBVODY

Opakování programování

Princip funkce počítače

Střední průmyslová škola a Vyšší odborná škola, Hrabákova 271, Příbram. III / 2 = Inovace a zkvalitnění výuky prostřednictvím ICT

Klimatizace. Třída: 4.C. Střední Průmyslová Škola Elektrotechnická Havířov Protokol do MIT. Skupina: 3. Zpráva číslo: 3

MIDAM Verze 1.1. Hlavní okno :

Paměti Flash. Paměti Flash. Základní charakteristiky

Tlačítka. Konektor programování

Střední průmyslová škola a Vyšší odborná škola, Hrabákova 271, Příbram. III / 2 = Inovace a zkvalitnění výuky prostřednictvím ICT

1. Úvod, návrhový systém MPLAB, úvod do programování v C

1. MIKROPROCESOR ATMEGA A/D PŘEVODNÍK MÓDY PŘEVODNÍKU Single Conversion Mode Auto Triggering Start...

Modul LCD displeje se čtyřmi tlačítky. Milan Horkel

9. Rozšiřující desky Evb_Display a Evb_keyboard

Deska sběru chyb a událostí

Architektura jednočipových mikropočítačů PIC 16F84 a PIC 16F877. Tato prezentace vznikla jako součást řešení projektu FRVŠ 2008/566.

Jazyk symbolických adres

Návod na práci s přípravkem a programem uscope na cvičeních

Assembler RISC RISC MIPS. T.Mainzer, kiv.zcu.cz

Mikrokontrolery. Úvod do obvodů Atmega 328 a PIC16F88

DIGI Timer 8 8 kanálové stopky se záznamem dat

Návod na použití programu 8051 IDE

Aplikace Embedded systémů v Mechatronice. Michal Bastl A2/713a

2.4 Cykly 2. ZÁKLADY JAZYKA C

Program "Světla" pro mikropočítač PMI-80

Programátor AVRProg USB v3 MK II Eco Manuál

LOGICKÉ ŘÍZENÍ. Matematický základ logického řízení

Překladač a jeho struktura

Mikrořadiče. Ing. Jaroslav Bernkopf

tohoto systému. Můžeme propojit Mathcad s dalšími aplikacemi, jako je Excel, MATLAB, Axum, nebo dokumenty jedné aplikace navzájem.

MSP 430F1611. Jiří Kašpar. Charakteristika

Jednočipové mikropočítače (mikrokontroléry)

Střední průmyslová škola a Vyšší odborná škola, Hrabákova 271, Příbram. III / 2 = Inovace a zkvalitnění výuky prostřednictvím ICT

Jako pomůcka jsou v pravém dolním rohu vypsány binární kódy čísel od 0 do 15 a binární kódy příkazů, které máme dispozici (obr.21). Obr.

Psaní programu pro PLC SIMATIC S7-300 pomocí STEP 7

David Urban Podpora předmětu APP. Blokové schéma

Základy digitální techniky

Pohled do nitra mikroprocesoru Josef Horálek

Návod k obsluze výukové desky CPLD

Nejčastěji pokládané dotazy

MIKROKONTROLÉRY. Jednočipový počítač nebo také angl. Microcontroller (Mikrokontrolér, MCU, µc)

Jízda po čáře pro reklamní robot

Vstupní jednotka E10 Návod na použití

Vzdálené ovládání dotykového displeje IDEC HG3G pomocí routeru VIPA TM-C VPN

Operační systémy. Cvičení 3: Programování v C pod Unixem

Architektury počítačů a procesorů

K8048 PIC PROGRAMMER BOARD

Komunikační protokol pro Fotometr 2008

UniLog-D. v1.01 návod k obsluze software. Strana 1

Popis vývodů desek, jejich zapojování a spárování robota

Panel IPP. Ovladač řídící jednotka

PROGRAMOVÁNÍ MIKROPOČÍTAČŮ CVIČENÍ 6

Semestrální práce z předmětu. Jan Bařtipán / A03043 bartipan@studentes.zcu.cz

EduKitBeta Uživatelská příručka

EVROPSKÝ SOCIÁLNÍ FOND. Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI

Struktura a architektura počítačů (BI-SAP) 7

Transkript:

BDOM Cvičení 1 1. Prostředí MPLAB Pro práci s obvody MICROCHIP PIC budeme používat vývojové prostředí MPLAB a programátor MPLAB ICD 2. Tento programátor je připojen k vývojové desce PICkit 2. Po spuštění prostředí MPLAB se otevře hlavní okno programu (Obr. 1) kde se nahoře nachází ovládací menu a na ploše okna s výpisem (Output) a součásti projektu (Workspace). Obr. 1 - Hlavní okno prostředí MPLAB Průvodce založením nového projektu spustíme kliknutím na položku hlavního menu Project -> Project Wizard... Pak vybereme následující nastavení: 1. Typ obvodu (Device) PIC16F690 2. Programovací jazyk (Active Toolsuite) Microchip MPASM Toolsuite 3. Hlavní soubor projektu (Create New Project File) a vytvoříme adresář projektu 4. Na další záložce nepřidáváme zdrojové soubory, protože žádné ještě nemáme 5. A na poslední záložce zkontrolujeme nastavení projektu Vznikne prázdný projekt do kterého je nutné přidat soubor se zdrojovým kódem: 1. Vytvoříme nový prázdný soubor File -> New 2. Uložíme ho s příponou.asm File -> Save As... 3. A přidáme ho do projektu Project -> Add Files to Project Posledním krokem je výběr programátoru: Programmer -> Select Programmer -> MPLAB ICD 2

Pod hlavní nabídkou se objevil panel pro ovládání programátoru a v okně s výpisem informace o komunikaci programátoru s vývojovým prostředím. Okno Workspace osahuje název projektu a je v něm zobrazen i název zdrojového souboru (Obr. 2). Obr. 2 - Hlavní okno prostředí MPLAB s projektem a zdrojovým souborem Teď je možné v prostředí MPLAB psát program v Assembleru, kompilovat projekt a programovat cílový obvod. Projekt zkompilujeme kliknutím na ikonu Build All v horním panelu. V panelu pro ovládání jsou následující ikony: 1. Program target device Nahraje zkompilovaný program do obvodu 2. Read targer device Načte program z obvodu 3. Reads device EEPROM Načte obsah EEPROM z obvodu 4. Verify target device memory Zkontroluje zda je obvod správně naprogramován 5. Erase target device Vymaže obvod 6. Verify target device is erased Zkontroluje zda je obvod vymazán 7. Release from Reset Uvolní obvod ze stavu Reset 8. Hold in Reset Nastaví obvod do stavu Reset 9. Reset and Connect to ICD Připojí programátor a udělá jeho test

2. Assembler obvodu PIC16F690 Možnosti zápisu kódu V editoru v prostředí MPLAB je syntax barevně zvýrazněn. Kód je kvůli přehlednosti zapisován do sloupců. Sloupce jsou odděleny tabulátory V případě nedodržení tohoto zápisu oznámí překladač varování. V prvním sloupci jsou připojené soubory a návěstí. Do druhého sloupce se zapisují direktivy a instrukce. Komentáře je možné umisťovat libovolně, vždy začíná středníkem. Vše co následuje na daném řádku za středníkem je při překladu ignorováno. Příklad: #include <p16f690.inc> ; pripojeny soubor, prvni sloupec ; komentar, je jedno ve kterem sloupci ; dalsi komentar ; jeste jeden kometar ctyri equ 4 ; navest a direktiva, prvni sloupec navest ; navest, prvni sloupec goto navest ; instrukce skoku, druhy sloupec end ; direktiva ukoncujici preklad, ; druhy sloupec Číselné konstanty můžeme zapisovat v následujících formátech: 1. Binárně B'00001111' 2. Osmičková soustava O'0127' 3. Decimálně D'12'.12 4. Hexadecimálně 0x0f H'0f' 5. ASCII znaky 'n' A'n' Příklad: movlw 0x01 movlw b'00000010' movlw.32 movlw h'32' movlw 'a' V kódu je možné používat různé operátory. Nezapomeňte ale, že funkce operátorů jsou v jazyce Assembler platné pouze při překladu. Například součet dvou hodnot v paměti neuděláte operátorem + ale instrukcí ADDWF. Některé užitečné jsou popsány zde: 1. $ aktuální adresa v paměti programu 2. ( a ) závorky pro aritmetiku 3.! a ~ bitový doplněk, doplněk 4. + a - a * a / součet, rozdíl, násobení, dělení 5. % dělení modulo

Hlavičkový soubor První věc kterou je nutné při psaní programu udělat je připojit k zdrojovému programu hlavičkový soubor obvodu, pro který píšeme program. Je vhodné si hlavičkový soubor prostudovat, jsou v něm mnemotechnicky definovány konstanty. Ty je pak možné používat místo adres a nastavení. Pak můžeme psát třeba místo 0x005 jen PORTA, protože PORTA má v paměti dat adresu 0x005. Soubor s hlavičkou připojíme následovně: #include <p16f690.inc> Konfigurační slovo Konfigurační slovo je důležitou součástí obvodu. Nastavuje chování některých periferií, chování pinů, oscilátor atd. Tyto nastavení není možně měnit softvérově, jsou uložena při programování. Konfigurační slovo je možné nastavit dvěma způsoby. První možnost je pomocí nabídky Configure -> Configuration bits. Tohle nastavení nedoporučujeme. Další možnost je přímo v kódu pomocí direktivy CONFIG. To je možné po připojení hlavičkového souboru, ve kterém jsou možnosti nastavení uložené. Podrobný popis konfiguračního slova je možné najít v katalogovém listu každého obvodu. Doporučené nastavení konfiguračního slova: CONFIG _FCMEN_OFF & _IESO_OFF & _BOR_OFF & _CPD_OFF & _CP_OFF & _MCLRE_OFF & _PWRTE_OFF & _WDT_OFF & _INTRC_OSC_NOCLKOUT Řídící direktivy Jsou to direktivy ovlivňující překlad programu. V tomhle cvičení budeme používat direktivu EQU. Tahle direktiva umožňuje nahradit číselnou hodnotu mnemotechnickým výrazem. Ten pak při překladu reprezentuje danou konstantu. Většina kódu v hlavičkovém souboru jsou právě tyto direktivy. Příklad: ctyri EQU 4 osum EQU ctyri + ctyri PORTA EQU 0x005 Instrukce Většina instrukcí je u procesorů PIC vykonávána v jediném instrukčním cyklu, kromě instrukcí rozhodujících o podmínce a instrukcí skokových. Podmínkové instrukce jsou v případě splnění podmínky vykonány v jednom instrukčním cyklu a pak je vykonána instrukce následující (obvykle skok) a v případě opačném je následující instrukce vyřazena a nahrazena instrukcí NOP. Podrobný popis všech instrukcí je možné najít v katalogovém listu a doporučené literatuře. Na dnešním cvičení budou potřebné následující instrukce (i s příkladem použití): 1. bcf nastaví bit registru do 0 bcf PORTA, 1 2. bsf nastaví bit registru do 1 bsf STATUS, RP0 3. decfsz dekrementuj registr, přeskoč decfsz CITAC ;zniz hodnotu o 1 následující instrukci v případě goto $-1 ;neni nula příznaku 0 goto hotovo ;vynulovano 4. goto nepodmíněný skok goto loop 5. movlw vlož hodnotu do registru W movlw 0xC7 6. movwf ulož W do pametoveho registru movwf TEMP

Registr STATUS Mikrokontroléry PIC obsahují více speciálních registrů. K těmto registrům se přistupuje přes datovou paměť stejně jako k normálním paměťovým registrům. Před psaním programu je vhodné si projít mapu paměti a nastudovat funkci jednotlivých registrů. Nejdůležitější registry jsou: 1. STATUS výsledky operací ALU, nastavování paměťové stránky 2. OPTION nastavení pull up, nastavení časovače a děliček 3. INTCON nastavení přerušení, nastavení časovače 4. PIE1 a PIE2 povolení a zakázání přerušení 5. PIR1 a PIR2 příznaky přerušení 6. PCON příznaky resetu 7. PCL a PCLATH Nejdůležitější registr mikrokontroléru PIC je registr STATUS, do kterého je ukládán stav jednotky ALU, stav Resetu a pomocí něj je taky nastavována paměťová stránka. Popis bitů registru STATUS: 7. IRP výběr paměťové stránky při nepřímém adresování 6. RP1 výběr pam. stránky RP<1:0> 00 str. 0 (00h - 7Fh) 01 stránka 1 (80h - FFh) 5. RP0 výběr pam. stránky 10 str. 2 (100h - 17Fh) 11 stránka 3 (180h - 1FFh) 4. TO time-out bit 1 - clrwdt, sleep 0 - watch-dog timer preteceni 3. PD power-down bit 1 - clrwdt, pripojeni napajeni 0 - sleep 2. Z příznak nuly když je výsledek logické nebo aritmetické operace 0 1. DC přetečení / podtečení znaku přetečení / podtečení na 4-tém bitu 0. C přetečení / podtečení přetečení / podtečení při sčítání nebo odčítání Používání proměnných Kromě pracovního registru W je možné využívat pro práci s daty taky paměťové registry. Paměťové registry je vhodné pojmenovat. Je možné použít direktivu cblok, která vytvoří posloupnost konstant od hodnoty zadané na začátku. Nebo je možné použít direktivu EQU, která přiřazuje názvu konstanty hodnotu. Příklad 1: cblock 0x20 temp:3 citac1 citac2 vysledek endc ;promenna temp bude mit rezervovane 3 bajty ;0x20, 0x21 a 0x22 - temp, temp+1 a temp+2 Příklad 2: RAM equ 0x20 temp equ RAM citac1 equ RAM + 1 citac2 equ RAM + 2 vysledek equ RAM + 3

Zpožďovací cyklus Zpoždění je možné vytvořit vkládáním instrukce NOP (mikrosekundy). To ale zpozdí vykonávání programu jen o jeden instrukční cyklus. Větší zpoždění (milisekundy) můžeme docílit postupným nulováním registru tak, že do registru načteme požadovanou hodnotu a pomocí instrukce decfsz zmenšujeme jeho hodnotu. Ještě větší zpoždění (sekundy) vytvoříme zacyklením dvou zpožďovacích smyček do sebe. Příklad 1: movlw 0xa0 ;vytvorime zpozdeni 96 us @ 20MHz movwf citac ;nacteme hodnotu 160 do promenne citac decfsz citac, f ;znizuje hodnotu do nuly goto $-1 ;pak se zastavi opakovani Příklad 2: loop movlw 0x20 ;vytvorime zpozdeni 4,9 ms @ 20MHz movwf citac1 ;inicializace prvni smycky ;navest prvni smycky movlw 0xff ;inicializace druhe vnitrni smycky movwf citac2 decfsz citac2, f;znizi hodnotu druheho citace goto $-1 decfsz citac1, f;znizi hodnotu prvniho citace goto loop Ukončení překladu Překladač ukončuje překlad v momentě, kdy narazí na direktivu END. Tahle direktiva je povinná i když chceme přeložit celý program.

3. Úloha Vytvořte program který rozbliká LED diodu. Všechny řádky programu řádně okomentujte. 1. Nastavte konfigurační slovo obvodu pomocí direktivy CONFIG 2. Nastavte PORTC jako výstupní 3. Vytvořte zpožďovací smyčku 4. Pomocí zpožďovací smyčky rozblikejte LED diodu DS1 5. Výsledný program i jeho funkci na vývojové desce nechte zkontrolovat vyučujícímu 6. Program z obvodu vymažte

4. Vývojová deska PICkit 2 P1 ICSP RA4 RA3 RC5 RC3 C1 0,1µF +V 1 2 3 4 5 6 7 8 9 10 PIC16F690 VDD RA5 RA4 RA3/MCLR/VPP RC5 RC4 RC3 RC6 RC7 RB7 VSS AN5/RA0 RA1 RA2 RC0 RC1 RC2 RB4 RB5 RB6 20 19 18 17 16 15 14 13 12 11 RA0 RA1 RC0 RC1 RC2 VPP VDD GND ICSPDAT ICSPCLK T1G 1 2 3 4 5 6 +V RC0 RC1 RC2 RC3 DS1 DS2 DS3 DS4 R3 470R R4 470R R5 470R R6 470R RC5 +V RA0 R2 1k R7 1k R1 10k SW1 C2 0,1µF RP1 10k Obr.??? - Schéma zapojení PICkit 2 Vývojová deska PICkit 2 je osazena obvodem PIC16F690. Má konektor pro připojení k programátoru. Dále je osazena tlačidlem SW1 připojeným k pinu RC5, trimrem připojeným k pinu RA0 a čtyřmi LED diodami DS1 až DS4, které jsou připojeny k pinům RC0 až RC3.

5. Doporučená litertatura Vhodnou literaturou pro začátek s obvody PIC je knížka Učebnice programování PIC z vydavatelství BEN od Václava Vacka. Dále je vhodné si prostudovat manuály k překladači MPASM a prostředí MPLAB a taky katalogový list obvodu PIC16F690. Ty jsou volně k dispozici na internetových stránkách firmy MICROCHIP.