Title: PIC
1PICutame PICi
2Mida PICi ???
- Microchipi PIC-protsessorid on
- Kiired, mugavad kasutada, populaarsed
- Harwardi arhitektuur, RISC, vähe käske
- Hea rauasisaldusega
- A/D-muundid
- Komparaatorid
- PWM
- Ja palju muud
3Mis on karu kõhus?
PC
Programmimälu
RAM
ALU
Pordid
perifeeria
PIC(16F628) sisikonna blokkskeem
4FLASH
Pinumälu (STACK)
RESET ehk koodi algus
Katkestusvektor
Kasutaja kood, tabelid jne
5RAM
Jaotatud 4-ks pangaks
movlw 0x04 kirjutame arvu 4
registrisse W movwf 0x20 mällu
aadressile 0x20 bsf STATUS,RP0 siirdume panka
1 movwf 0xA0 nüüd aadressile 0xA0 bcf
STATUS,RP0 tagasi panka 0
Kaudne adresseerimine
movlw 0x20 viitame adr-le 0x20
movwf FSR see kaudse adr.
reg.-sse movlw A täht A movwf
INDF kirjutame mällu _at_ 0x20
6Pordid
2 porti A ja B Muudetav suund Muudetav otstarve
- Suuna juhtregister TRISA (TRISB)
- Pordi register PORTA (PORTB)
- movlw B'00001111' laeme registrisse
W konstandi 00001111 - movwf TRISA kirjutame
selle port A juhtregistrisse TRISA - movlw B'00000011 pordi viigud
kõrgeks (1) ja madalaks (0) - movwf PORTA läks
-
7Hällou, wörld
LED-ide vilgutamine
- Viited koodiga
- Viited taimeriga
8Taimerid
- 3 ja enam tükki, mõni ka 16-bitine
- Annab võimaluse täpseid viiteid tekitada
- Töötavad ka pulsiloenditena (sagedusmõõtja!)
- Eriti kasulikud katkestuste puhul
9Taimeri koodinäide
- aja viitmise alamprogramm
- viide movlw viiteaegH
laeme taimeri sobiva jagamisteguriga - movwf TMR1H
- movlw viiteaegL
- movwf TMR1L
- bcf PIR1,TMR1IF
igaks juhuks taimeri
ületäitumise lipp nulli - bsf T1CON,TMR1ON
paneme taimeri käima, ajaarvetus
algab sellest hetkest - viide_1 btfss PIR1,TMR1IF
ootame ületäitumist - goto viide_1
- bcf T1CON,TMR1ON
taimer seisma - return pöördume tagasi põhiprogrammi
- konfime viitetaimeri T1
- movlw B'00110000'
eeljagur 18, sisemine takt, taimer hetkel veel
seisab - movwf T1CON laeme
taimeri juhtregistrisse. - Eelpool arvutatud taimeri laadimise numbrid teeme
kompilaatorile ka teatavaks - define viiteaegH 0x0B määrab
ära LED'i vilkumise kestuse - define viiteaegL 0xDC
10Katkestused
- Tekivad nt. taimeri ületäitumisel, serial pordi
sümboli vastuvõtul jne - Vaikimisi keelatud
- Sisuliselt sama programmikood mis ülejäänugi
- Kutsutakse välja alati aadressilt 0x0004
- Seatud lippude järgi määra, mis oli katkestuse
põhjus - Võimaldavad prosel vabalt toimetada ja reageerida
sünmustele vaid siis kui need esinevad - Nõuavad ettevaatust koodi kirjutamisel (konteksti
seivimine)
11Koodist kivisse
- Tekst kõrgkeeles või assembleris
- Tulemus teisendatakse masinkoodi
(kompileeritakse) - Saadud .hex fail valmis kivisse siirdamiseks
- Kirjutab seade nimega programmaator
- Parem serial-porti mitte pruukida
- PPWIN IC-prog
- www.kitsrus.com oma soft
12Head PICutamist
/Felch