; Tässä ohjelmassa kätetään RA0-porttia ohjaamaan lähtöjä RB7...RB0. Jos ;RA0 = '1', portb = 0xAA [10101010] ja jos RA0 = '0' portb = 0x0F [00001111]. LIST P=16F84A include "p16f84a.inc" org 0x00 ;Suoritus alkaa AINA tästä resetin jälkeen goto MAIN_PROGRAM ;Hyppää pääohjelmaan MAIN_PROGRAM ; Alustetaan PORTB clrf PORTB ; Nollaa PORTB-rekisteri bsf STATUS, RP0 ; Vaihdetaan bankki (1) oikeaksi, jotta ; päästään käpistelemään TRISB-rekisteriä clrf TRISB ; Nollataan TRISB-rekisteri (eli määritetään ; jokainen B-portin bitti outputiksi (Nolla ; meinaa että out ja 1 = in)) ; Alustetaan PORTA movlw 0xFF ; Siiretään w-rekisteriin arvo 0xFFh movwf TRISA ; Siiretään w-rekisteri TRISA-rekisteriin ; Eli PORTA:n suuntarekisteriin jokainen ; bitti ykköseksi (kaikki PORTA:n I/O-pinnit ; ovat sisääntuloja) bcf STATUS, RP0 ; Nollataan bankinvalintabitti status- ; rekisteristä (Bankki 0 jälleen käytössä) READ_AND_WRITE movlw 0x0F ;siirretään w-rekisteriin 0x0F btfsc PORTA, 0 ;hyppää seuraavan komennon yli mikäli RA0 = 0 movlw 0xAA ;siirretään w-rekisteriin arvo 0xAA movwf PORTB ;siirretään w-rekisteri PORTB:n goto READ_AND_WRITE ;hypätään takaisin READ_AND_WRITE-kohtaan end