Project: HAL9!

A PIC

"Egy újszülöttnek minden vicc új"

Nyilván itt a PH!-n számtalan olyan emberke van, akik profi módon művelik a "PIC-műfajt". Ez a cikk csak annyiban szól nekik, hogy lektorálják, segítséget nyújtsanak az olyan kezdőknek, mint én.
Igazából azoknak szól a cikk, akik még csak nem is hallottak róla, vagy csak tervezgetik, hogy nekiinduljanak a PIC-kezésnek.

Kis kedvcsinálónak....

Mi is a PIC?
A PIC processzorcsalád a Microchip által gyártott olcsó egylapos komplett számítógép, elsősorban vezérlési feladatokra. Ilyen - és ehhez hasonló - vezérlők találhatók a háztartási gépekben, riasztókban, kaputelefonokban, audió berendezésekben és még sorolhatnám.
Rendkívül széles választékban kapható a 8 lábú mini verziótól a 100 lábú óriásig.
A PIC RISC processzor, vagyis csökkentett utasítás készletű. Ezért általában igaz rá, hogy egy utasítást 1 ciklusidő alatt végez el. De itt van egy kis csalás: a beállított órajelet 4-gyel osztja. Így egy 4MHz-en járó PIC valójában 1us alatt végez el egy utasítást.
Órajelük 0Hz-től 20MHz-ig beállítható. Tápfeszültségük 2-5,5V-ig lehetséges, miközben áramfelvételük uA...mA nagyságrendű. Így 2db ceruzaelemről akár hónapokig működőképesek:
Lásd:
- PIC16F627 - 3.0V to 5.5V
- PIC16LF627 - 2.0V to 5.5V
• Low power consumption
- < 2.0 mA @ 5.0V, 4.0 MHz
- 15 µA typical @ 3.0V, 32 kHz
- < 1.0 µA typical standby current @ 3.0V

Mivel komplett számítógépekről van szó, található bennük (általában) néhányszor 10...100Byte ram, FlashROM a program tárolására (típustól függően 0,5k, vagy több), de vannak egyszer programozható típusok is (OTP), esetleg további Flash a változók mentésére.

Én a 16F627-et választottam - kb. 600Ft -, ezért inkább ezen keresztül mutatnám be a főbb képességeit.

A Vss, VDD a két tápfeszültség.
Az RA, RB lábak szabadon konfigurálhatók kimenetként ill. bemenetként. Ha bemenetként állítjuk be, akkor szoftverből bekapcsolhatók felhúzó ellenállások, így külső kiegészítés nélkül köthetünk rá nyomógombokat. Kimenetként 5-10mA-rel terhelhetők.
(1-2 kivételtől eltekintve a konfigurációt a megírt szoftverben kell beállítani.)
Ha "beáldozunk" digitális I/O-kat, akkor analóg komparátor bemeneteket is kaphatunk: AN.
Csak felsorolom: lehetséges még Vref-et kivezetni, van Timer bemenet, megszakítás (INT) bemenet, USART (Tx,Rx), komparátor kimenet (CMP), PWM kimenet, órajel kimenet szinkronizáláshoz (CK).
Az MCLR (RA5) alaphelyzetben a processzor reset bemenete.

Az órajel előállítása széles tartományban lehetséges, mint fentebb írtam: DC-20MHz. Ez több módon történhet:
-kapcsolhatunk hozzá kvarc-kristályt
-lehetséges kerámia-rezonátort is használni
-vagy csak egy egyszerű R-C tagot, ha nincs szükség nagy pontosságra
-vagy külső órajel generátort kapcsolunk rá
-a legegyszerűbb viszont az, hogy az IC-ben található egy 4MHz-es oszcillátor, ezt aktiváljuk és ekkor ezek a lábak is felszabadulnak I/O-nak
Azt, hogy melyiket választottuk, a programunk feltöltésekor kell beállítani, hiszen értelemszerűen, amíg nem megy az órajel, nem fut a program sem, így hiába is konfigurálhatnánk szoftverből.

Ami belül van:
-35db utasítás
-1k Flash a programnak
-224Byte RAM a változóknak
-128Byte EEPROM a változók tárolásának
-3db Timer
-néhány speciális regiszter a hardware beállításoknak
-Watchdog timer
-stand by üzemmód
-és még néhány speciális funkció

A végén kezdem.
Lássuk előbb a program feltöltésének módját:

A cikk még nem ért véget, kérlek, lapozz!

Hirdetés

3 pénzügyi döntés, amit minden kisvállalkozónak érdemes átgondolnia az év végéig

PR Ahogy az év vége közeledik, itt az ideje, hogy egy pillanatra megálljunk és áttekintsük vállalkozásunk pénzügyi helyzetét. Ne hagyjuk, hogy az év utolsó hónapjai elússzanak a sürgető feladatok és elfeledett határidők között!

Azóta történt