Software projekti
 

PORTOVI

Bilo šta da radite sa mikrokontrolerom koristićete negove I/O (Input/output) portove bilo za prikupljanje podataka ili da preko njih upravljate nekim drugim uređajima, tj neke od pinova koristićete kao ulaze, a neke kao izlaze. Mikorčipov PIC16c84 poseduje dva I/O porta sa ukupno 13 I/O linija PortA (5 pinova) i PortB ( 8 pinova). Funkcija pojedinih I/O pinova određuje se dire-kcionim TrisA i TrisB registrima. Nakon reseta mikrokontrolera svi pinovi su konfigurisani kao ulazi tj. svi bitovi u Tris registru su setovani. U koliko želimo da neki pin na portu proglasimo za izlazni potrebno je da u Tris registru na tom mestu izbrišemo bit. U memoriskoj mapi I/O registri (PortA i PortB) nalaze se u nultoj banci (Bank0) na lokacijama 0x05 i 0x06, a direkcioni (TrisA i TrisB) u prvoj banci (Bank1) na lokacijama 0x85 i 0x86. Selektovanje banke kojoj želimo da pristupimo vrši se bitovima RP1 i RP0 u STATUS registru.

Primer:

; PortA je ulzni port, a PortB izlazni. U zavisnosti od
; stanja na PortuA na PortuB je podatak i lookup tabele.

#Include Pic.equ
org 0x00 ; Početak programa
Bsf status,rp0 ; bank1
Movlw 0x00 ; 0x00 u radni W registar
Movwf TrisB ; PortB je izlazni
Bcf status,rp1 ; bank0
Loop movf PortA,W ; Procitaj porta i stavi u W
Call lookup
Movwf PortB ; Iz W registra u PortB
Goto Loop ; beskonačna petlja
lookup addwf pc,w ; offset adresa je u W-u
Retlw 0x01 ; povratak iz podprograma
: ; sa 0x01 u W registru
:
Retlw 0x0A
:
:
:
:
Retlw 0x1F

End

Instrukcijom movf f,d se sadržaj f (file) registra smašta u W (working) radni registar ako je d=0 ili se vraća u f registar ako je d=1Instrukcijom Retlw k se vraćamo iz podprograma sa vrednošću k u radnom W registru.


Pročitajte više o ovoj temi
Povezivanje LCD-a 
Step motor i PIC 
Programator za PIC16F84 
PIP02 

C o p y r i g h t  1998 mikroElektronika. All Right Reserved. Za sva pitanja obratite se redakciji