Kotisivu  Elektroniikka sivulle Ohjelmointilaite sivu 

PIC16F84  8-Bit CMOS EEPROM mikrokontrolleri.

PIC piirisarja sisältää ohjelmoitavia piirejä, pienistä 8-jalkaisista piireistä melko suuriin 64-jalkaisiin piireihin. 
Piirityyppejä on saatavissa eri ominaisuuksilla, joihin lukeutuu niin kerran ohjelmoitavat, UV-purettavat, kuin FLASH muistilla varustetut piirit. Ominaisuuksissakin on melko paljon valinnan varaa. 
Joillain piirityypeillä kuuluu mukaan myös AD muuntimet 8 - 12 bittisenä. ym. 
Ohjelma muistin määrä myös vaihtelee piirin mukaan 1k - 8k.

Kaikille PIC piireille on yhteinen ohjelmointikieli ja kehitys alusta jotka ovat saatavissa valmistajan kotisivulta. Ainoastaan ohjelmointilaite on sellainen joka harrastajalle maksaa. Ohjelmointilaitteenkin voi vaikka rakentaa itse muutamalla eurolla, jos kiinnostusta vain riittää.

Valmistajan kotisivulla olevalla olevalla MPLAB ohjelmalla voidaan suoraan kirjoittaa ohjelma PIC piireille. Ohjelmointi ja testausohjelma MPLAB sisältää Assembler kääntäjän. Varsinainen ohjelma kirjoitetaan Microchipin makroassemblerilla. Tämä ohjelmointikieli ei ole varsinainen Assembler, vaan Microchipin muokkaama PIC piirien ohjelmointiin soveltuva ylemmän tason ohjelmointikieli. 
MPLAB sisältää myös PIC simulaattorin, jolla voidaan testata itse kirjoitettu ohjelma, ja etsiä siitä virheitä ja korjata niitä. Sen jälkeen taas testata. Kun ohjelma on saatu toimivaksi simulaattori tasolla, voidaan kirjoitettu ohjelma siirtää, esimerkiksi jonkin muun ohjelmointilaitteen kautta, piiriin ja kokeilla ohjelman toimivuus piiritasolla. Jos sitten sattuu että ohjelma ei toimi ihan toivotulla tavalla, niin kuin yleensä tuppaa käymään, sen voi ohjelmoida aina uudestaan, ilman mitään erityisempiä ohjelman purkuoperaatioita. 
MPLAB ohjelmaan on myös mahdollista liittää PICSTART plus ohjelmointilaite, jolloin ohjelman voi siirtää suoraan MPLAB ohjelmasta PIC piiriin. PIC piireille löytyy myös kääntäjät muutamille muille ohjelmointikielille kuten BASIC ja C. 
Tämän yksinkertaisemmaksi mikrokontrollerin käyttöönotto tuskin enää voi tulla.

Tässä toistaiseksi keskitytään vain PIC16F84 piiriin. Piiri on ehkä hieman vanhahtava, mutta siinä on myöskin etunsa. Esimerkiksi juuri tuo ettei valmistaja ole käyttänyt mitään rajoituksia ohjelmointiohjelman saatavuuden suhteen. Siitä syystä varmaankin PIC piiri on suhteellisen yleinen, sekä myös saatavilla useimmista komponentteja myyvistä liikkeistä, kohtuulliseen hintaan. Myös muiden PIC piirien ohjelmointi onnistuu ihan vastaavalla tavalla, MPLAB ohjelmalla. 

Lisää tietoja Microchip PIC valmistajan kotisivulta. 
Sieltä löytyy myös valmis ohjelmointi ohjelma MPLAB, jolla voi kirjoittaa PIC piirille ohjelman, ja myös testata ohjelman toimivuuden.

PIC16F84
Piirin ominaisuuksia
Piirin lohkokaavio
Kontrollerin kantakytkentä.
Kello-oskillaattorin kytkentänastat.
Ohjelmointi ja resetointi nastat.
I / O portin nastat portti RA.
I / O portin nastat portti RB.

MBLAB ohjelman kääntäjän käskyt. (makroassembler)   
Sivuilla on muutamia yksinkertaisia ohjelmaesimerkkejä käskyjen toiminnasta. Esimerkit ovat vain muutaman rivin pituisia, sisältävät ihan muutaman käskyn, vain käskyjen käytön esimerkin vuoksi. Käskyrivit ovat samassa muodossa mitä MPLAB ohjelmassa tulee käyttää.

Rekisterit
   PORTA / PORTB / TRISA / TRISB.  Porttien käsittely.
   STATUS. Rekisterien toiminnat.
   OPTION.
Ajastimen ominaisuudet.
   INTCON.
Keskeytysten liput.
   EECON1 / EECON2 / EEDATA / EEADR. Piirin EEPROM muistin käsittely.

Ohjelman kirjoitus voidaan tehdä esimerkiksi NOTEPAD ohjelmalla, ihan tekstimuodossa. Kun teksti on kirjoitettu valmiiksi, se kopioidaan MPLAB ohjelmaan, jossa se käännetään PICin ymmärtämään muotoon, ja ohjelmointilaitteella siirretään ohjelmatiedosto piirin Flash-muistiin. Tässä vaiheessa olisi hyvä olla piirilevykytkentä valmiina, ja testattuna. Piiri vain piirilevyllä olevaan kantaan ja käyttöjännitteen kytkentä. Sitten yleensä alkaa ihmettely miksei koko laite toimi. Jos piirilevyn kytkennät on testattu toimiviksi, vikaa voi sitten mietiskellä ohjelman puolelta, josta se yleensä löytyy... Kun vika on ohjelmaan korjattu ja käännetty uudelleen, piiri voidaan ohjelmoida uudestaan. Uusi kokeilu ja korjaus jne. kunnes toiminta on halutun mukainen. Näin yleensä ohjelmointi menee, riippuen ohjelmoijan taidoista. Ohjelmointia aloitettaessa näin se kuitenkin tapahtuu, ohjelmoi ja kokeile. Myös kokeneelle ohjelmoijalle sattuu virheitä, aloittelijan ei niitä kannata pelästyä, eikä luovuttaa jos ohjelma ei heti suostu toimimaan. Ohjelmointi on miettimistä, piirin toiminnan kannalta, mitä tapahtuu ohjelman aikana.

Tästä on hyvä aloittaa ohjelman kirjoitus. Mallipohja ohjelman aloittamiseen. Sisältää pakolliset määritykset kääntäjää varten ja kommentteja ohjelman kirjoitustavasta yms.

Esimerkkiohjelma 1. Vilkuttaa LEDiä piirin pinnissä 13. LED kytketty 470 ohm vastuksen kautta nollapisteeseen.

Esimerkkiohjelma 2. Käyttää porttia B, johon on liitetty ensimmäisiin bitteihin 0, 1, 2 ja 3, pinneihin 6, 7, 8 ja 9, painikkeet, ja bitteihin 4, 5, 6 ja 7 LEDit virranrajoitusvastusten kanssa pinneihin 10, 11, 12 ja 13. LEDit kytketään nollapisteeseen vastusten kautta n.470 ohm . Painikkeet kytketään niin että, pinnistä kytketään vastus n.2,7-4,7 kohm käyttöjännitteeseen ja painike kytkee pinnin suoraan nollaan. Painiketta painettaessa vain yksi LED vilkuttaa. Ohjelma on lähes sama kuin edellinenkin, vain painikkeitten valinta on lisätty, ja jokaiselle LEDille on kopioitu sama ohjelmanpätkä jota on sen verran muutettu että ohjaus menee oikeaan paikkaan. 

Kotisivu  Elektroniikka sivulle Ohjelmointilaite sivu