. : New eShop! - Mobilní verze - Pandatron.cz - Pandatron.sk - Diskuzní fórum - Zakázkový vývoj : .
 
Škola programování PIC-9 díl
Škola programování PIC 9

Škola programování PIC 9

Světelný had a ti další

Teď, když už umíme čekací smyčky, můžeme se pustit do světelné efekty. Jednoduchý blikač byl popsán v minulém díle tak teď padla volba na klasicky Světelný had. Má 8 LED diod připojených přes rezistory na PORTB. Níže je schéma zapojení, na kterém je ještě z minula používané tlačítko. To jsem tam nechal záměrně, uvidíte později, ale teď ho tam dávat nemusíte.

Program je již trochu větší, proto ho zde nebudu zobrazovat jako obrázek a jen text nemá smysl, protože by byl hrozně rozházený. Ale zrovna ho tu tedy rozeberu a podrobně popíšu.

LIST P=16F627
INCLUDE<P16F627.INC>
__CONFIG _PWRTE_ON & _WDT_OFF & _MCLRE_OFF & _BODEN_OFF & _LVP_OFF & _INTRC_OSC_NOCLKOUT

CISLO equ 20h
CISLOA equ 21h

#DEFINE TLAC PORTA,0

Takže začínáme více méně klasicky. Nejprve jsou informace pro programátor, poté se pojmenují používané registry a poté i samotné bity (TLAC zde sice není použito, ale později bude).

org 00h
goto START

V programu je použit takzvaný podprogram CEKEJ. Jde o to, že by jsme za každou LED museli dělat stejnou čekací smyčku. Tak se udělá jen jedna a ta se pak vždy zavolá příkazem CALL CEKEJ.
Mimochodem: Z podprogramu se můžete dalším příkazem CALL dostat do dalšího podprogramu (hlouběji). Tento typ procesoru umožňuje až osminásobné vnoření. Z jednotlivých podprogramů se však taky musíte vrátit zpět příkazy RETURN.
Podprogramy však musí být v programu uvedeny ze začátku, ještě před samotným programem, proto se tímto příkazem na první řádek programu (kde procesor začíná) vloží odkaz na záložku START, kde začíná vlastní program. Poté se uvedou všechny podprogramy a až po nich je vlastní program začínající právě záložkou START

CEKEJ CLRF CISLO
    MOVLW 150
    MOVWF CISLOA
    CEKEJ2 INCFSZ CISLO,1
    GOTO CEKEJ2
    DECFSZ CISLOA,1
    GOTO CEKEJ2
    RETURN

Již zmiňovaný a v minulém díle popsaný podprogram na zpoždění mezi jednotlivými kroky. Změnou čísla 150 můžete změnit rychlost blikání.

START MOVLW B'00000111'
    MOVWF CMCON
    BSF STATUS,RP0
    MOVLW B'00000001'
    MOVWF TRISA
    CLRF TRISB
    BCF STATUS,RP0

Zde začíná vlastní program. Nastaví se zde vstupy a výstupy.

ZNOVU MOVLW B'00000001'
    MOVWF PORTB
    CALL CEKEJ

    MOVLW B'00000010'
    MOVWF PORTB
    CALL CEKEJ

No a tohle je již část programu, který mění rozsvícené LED diody. Celý ho nejdete v souboru s tímto programem. Čísla, ukládaná do PORTB jsou pro lepší přehlednost v binárním tvaru. Požadovaná hodnota se uloží do PORTB a zavolá se podprogram CEKEJ.

Zde je celý program Světelný had ke stažení:

ASM
HEX

Samozřejmě si můžete libovolně měnit vkládané binární hodnoty, přidávat nebo ubírat počet kroků a tím měnit světelný efekt. Nevýhodou je nemožnost plynulé změny rychlosti blikání přímo za běhu. Co ale při programování místo interního oscilátoru nastavit externí RC člen (jeho vzhled je v lekci 5) a místo pevného odporu dát potenciometr.

Světelný had s tlačítkem

V úvodu jsem se zmínil o tlačítku co je ve schématu uvedeno, ale není použito. Co ale do programu dát několik světelných efektů najednou a tím tlačítkem je postupně přepínat. To není nic těžkého jen se tlačítko musí snímat za každým "světelným" krokem.
Je zde tedy ke stažení další ukázkový program, který má v sobě dva světelné programy přepínajícíse stiskem tlačítka.

ASM
HEX







GooglePlus1 FaceBook Twitter del.icio.us DiGG Google StumbleUpon Google Buzz Email RSS PDF Tisk

Komentáře (14):

Zobrazit starší 30 dnů (14)...

host
14. Dne 14. 01. 2015 v 15:39 zaslal host
Bez titulku
vedel by mi niekto prezradit, preco hned po naprogramovani 16F627A uz nedokaze PC najst ani programator, ani PIC ? V zapojeni PIC funguje ako ma, ale akonahle ho pripojim k PC nenajde mi ani PIC ani programator... skusal som novy 16F627A a ten naslo, a po naprogramovani sa stalo to iste...16F84A mi naslo aj ked som ho naprogramoval a potom skusal program zmenit....Dakujem


Název příspěvku: Vaše jméno: host
                 
  Zakázat formátování [Zakáže kódování a nahrazování smajlíky.]
Připojit soubory
reklama:
PRESTO - Rychlý a univerzální USB programátor
PRESTO je velmi rychlý programátor moderní koncepce. Programuje velké množství součástek - mikrokontroléry, CPLD, FPGA, sériové FLASH a EEPROM, apod.
Skladem od 2196 Kč

Informace uvedené v článcích jsou platné v době jejich vydání a samotné články jsou určeny pouze jako zdroj informací. Autor článku ani správce webu nenesou žádnou zodpovědnost za případné újmy na majetku a zdraví. Názvy společností a výrobků, loga a další multimediální materiál mohou být ochrannými známkami příslušných společností.
RSS kanály: | |
+420 723 846 377
info@pandatron.cz
Všechna práva vyhrazena | mobilní verze | © Copyright 2000 - 2016 ISSN 1803-6007