ZPĚT

PANDA ELEKTRONIK

Znak projektu "Panda ELEKTRONIK"


Škola programování PIC 1.

V tomto seriálu se pokusím vysvětlit funkci procesorů PIC (především se zaměřením na oblíbený typ 16F84) a jejich programování tak, aby to pochopili i úplní začátečníci.

Než začneme, je potřeba vysvětlit některé základní věci:

1) jaký je rozdíl mezi BITEM a BYTEM
1 BIT = jedna logická hodnota, tedy buď logická 0 (0V), nebo logická jednička 1 (5V)
1 BYT = [jeden bajt] 8 bitů, neboli osm logických hodnot. Například 10100101, nebo 00101101 atd.

2) základní číselné soustavy a jejich převod
Před programováním potřebujeme znát alespoň tři základní soustavy: binární, hexadecimální a dekadickou.

Tak nejprve dekadická, neboli desítková. To je ta, co běžně používáme (1, 5, 28, 247,…) a jistě ji všichni dobře známe.

Jako další bych popsal binární (dvojkovou) soustavu. S ní jsme se dnes již také setkali. Je to ta, která obsahuje pouze jedničky a nuly (například číslo "10011101b" (b=binární)). Její převod na běžnou dekadickou soustavu je jednoduchý a je naznačen na obrázku. Vezme se binární číslo a od zadu (zprava) se nad každý jeho znak napíše jeho hodnota. Začíná se číslem 1 a pokračuje se vždy násobky dvěma: 1, 2, 4, 8, 16,… Poté se již jen sečtou hodnoty čísel, pod kterými je jednička (na obrázku jsou pro jistotu podtrženy).

Poslední je hexadecimální (šestnáctková) soustava. Ta obsahuje jen tyto znaky: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F. Ano, obsahuje jen 16 znaků, načež dvouciferná čísla (10 a výše) jsou nahrazeny písmeny ze začátku abecedy. Tak například 9h a další je Ah, častěji ale dvouciferná jako třeba B5h (h=hexa). A její převod z binární soustavy se provádí podobně jako převod na dekadickou soustavu, jen s tím rozdílem, že se převádí binární čísla po čtyřech bitech (0000b). Opět se zprava nad každý bit napíše jeho hodnota (1,2,4,8) a opět se sečtou ty hodnoty, pod nimiž je jednička. Pokud vyjde číslo jako 5, 8 a podobně, je vše v pořádku. Pokud ale vyjde číslo 10 až 15, musí se ještě převést na jedno písmeno ze začátku abecedy (10=A, 11=B, 12=C…15=F).

3) Registr
Registr, jako samostatná součástka, slouží jako malá jednobitová (případně i větší) paměť. Hodnota, kterou do ní vložíme v ní zůstane tak dlouho, dokud ji dalším zápisem nezměníme.
Zde se registrem nazývá místo (část paměti nebo i samostatný blok), který obsahuje 8 bitů. Takže když má například paměť RAM kapacitu 64 bytů (64×8bitů), znamená to, že má 64 registrů. Takže je to vlastně jiný název na pro 1 byt.
Registry ale nejsou jen rozdělená paměť, ale jsou i jako samostatné bloky, které ale jako malá paměť slouží. Například obvody jako Výstupní registr (to je malá paměť, jejíž obsah je k dispozici na výstupech procesoru).

4) Přerušení
Nejprve co a k čemu to vlastně je.
Přerušení je podobné resetu a vykoná se vždy, když se NĚCO stane. Tím něco se dá nastavit například přetečení čítače, změna hodnoty na nějakém vývodu a podobně.
Při zapnutí nebo resetu procesoru se tedy začne číst z jeho programové paměti program od adresy 00h. Přerušení se od resetu odlišuje tím, že procesor neskočí zpět na první řádek programu, ale až na čtvrtý (adresa 04h) !!!
Jak to využít ? Jednoduše. Na první řádek programu se vloží příkaz, aby procesor skočil na nějaké jiné místo, kde začíná vlastní program. Na čtvrtý řádek se vloží jiný odkaz, který donutí procesor, který se dostal sem, aby skočil na místo, kde je jakýsi podprogram využívající toto přerušení.
Samozřejmě se neodpočítávají řádky, ale slouží k tomu přímo speciální příkazy. Vše bude později ještě podrobně popsáno.

5) Ostatní slova
Instrukce = jeden příkaz (řádek) v programu
Přetečení časovače = znamená jen to, že čítač dočítal do konce (celý se naplnil)

Druhý díl...

SPONZOR SERIÁLU:
Programátor procesorů PIC 12xxx, 16xxx


Článek pochází z adresy http://panda.unas.cz
ZPĚT
 

Zdeněk Novotný
nov_zden@seznam.cz