Kotisivu  Elektroniikka sivulle Takaisin Takaisin käskyihin

PORTA rekisteri osoitteessa 05H
PORTB rekisteri osoitteessa 06H
TRISA rekisteri osoitteessa 85H
TRISB rekisteri osoitteessa 86H

PORTA / PORTB  Rekisterit vastaavat piirin I/O portteja, joihin voidaan ohjelmassa kirjoittaa tai joita voidaan ohjelmassa lukea.
PORTA rekisterissä on käytössä vain 5bittiä joita voidaan ohjelmassa käsitellä, bitit 0...4.
PORTB rekisterissä on käytössä kaikki 8 bittiä bitit 0...7.
Rekisterit sijaitsevat kontrollerin muistialueella BANK0,  PORTA osoitteessa 0x05 ja  PORTB osoitteessa 0x06

 

PORT pin   PORT pin
PORTA,0 17 PORTB,0 6
PORTA,1 18 PORTB,1 7
PORTA,2 1 PORTB,2 8
PORTA,3 2 PORTB,3 9
PORTA,4 3 PORTB,4 10
    PORTB,5 11
    PORTB,6 12
    PORTB,7 13

TRISA / TRISB  rekisterien sisältö määrää portin ominaisuuden, toimiiko portti tulona tai lähtönä.
Rekisterin kirjoitettavalla tiedolla asetetaan kontrollerin PORTA ja PORTB  I/O portit joko tuloiksi tai lähdöiksi.
Rekisterit sijaitsevat kontrollerin muistialueella BANK1, TRISA osoitteessa 0x85 ja TRISB osoitteessa 0x86

  Takaisin käskyihin

7

6 5 4 3 2 1 0
T T T T T T T T
T = 1   Piirin nasta INPUT  tulo. (oletusarvo kun piirille kytketään jännite)
T = 0   Piirin nasta OUTPUT  lähtö

 

Ohjelmoitaessa portteja, täytyy ensin määrittää minkä portin ja mikä bitti toimii tulona ja mikä lähtönä.
Jos esimerkiksi halutaan piirin jalka 9 tuloksi ja jalka 10 lähdöksi.
Määritetään ensin STATUS rekisterin bit 5:llä että halutaan käsitellä TRIS rekisteriä BANK1:ssä
    BSF                STATUS,5            ; Käsky asettaa STATUS rekisterin bit 5:n 1:ksi
    MOVLW        B'00001000'         ; Käsky asettaa W rekisterin sisällöksi 00001000  binäärisenä eli bit 3 asetetaan 1:ksi
    MOVWF        TRISB                  ; Käsky siirtää W rekisterin sisällön TRISB rekisteriin.
    BCF                STATUS,5            ; Käsky asettaa STATUS rekisterin bit 5:n 0:ksi

Tämän jälkeen voidaan mikä tahansa muu, PORTB:n bitti asettaa ohjelmassa 0:aan tai 1:een, paitsi bit3, josta ohjelmassa voidaan vain lukea siihen tuleva tieto, 0 tai 1.

Porttiin kirjoitus, piirin jalan asettaminen tilaan 1 tai 0
    BSF                PORTB,0              ; Asettaa PORTB:n bitin 0, 1:ksi. Piirin jalka 6
    BCF                PORTB,1              ; Asettaa PORTB:n bitin 1, 0:ksi. Piirin jalka 7
    BSF                PORTB,4              ; Asettaa PORTB:n bitin 4, 1:ksi. Piirin jalka 10
Käskyn jälkeen tila pysyy asetettuna, kunnes se uudella käskyllä asetetaan toiseen tilaan.
Samaa käskyä voidaan käyttää useamman kerran peräkkäin, portin tila pysyy käskystä huolimatta ensimmäisellä kerralla asetetussa tilassa .

Portin lukeminen PORTB bit3
    BTFSC            PORTB,3            ; Tarkistaa PORTB bit3:n tilan, jos tila on 0 ohitetaan seuraava käsky
    GOTO            OSOITE                ; Hyppy paikkaan OSOITE, jos tila on 1
    Ohjelma jatkuu tästä eteenpäin jos tila on alhaalla, piirin jalka 9.

Ja vastaava tilanne toisin päin
    BTFSS            PORTB,3            ; Tarkistaa PORTB bit3:n tilan, jos tila on 1 ohitetaan seuraava käsky
    GOTO            OSOITE               ; Hyppy paikkaan OSOITE, jos tila on 0
    Ohjelma jatkuu tästä eteenpäin jos tila on ylhäällä, piirin jalka 9

Kotisivu  Elektroniikka sivulle Takaisin Takaisin käskyihin