;Listing 7.3 Testowanie stanu linii wejściowej
#define in gpio, x
;x=0,1, 2, 4, 5 - wybór linii portu
test_in ;sprawdza linie in, zwraca stan w rejestrze w
;w = 0 linia in podłączoną do Vss ;w = 1 linia in podłączoną do Vcc ;w = 2 linia in nie podłączoną
set in
set out
cali |
set_out | |
bcf |
in |
; wpisz 0 |
cali |
set_in | |
btfsc |
in |
;sprawdz czy in = 0 |
retlw |
.1 |
;nie, w = 1, linia in podłączona do Vcc |
;tak, sprawdzaj dalej | ||
cali |
set_out | |
bsf |
in |
;wpisz 1 |
cali |
set_in | |
btfss |
in |
;sprawdz czy in = 1 |
retlw |
.0 |
;nie, w=0, linia in podłączona do Vss |
retlw |
.2 |
;tak, w=2, linia in nie podłączona |
;ustaw in jako wejście | ||
bsf |
status, rpO |
;bank 1 |
bsf |
in |
;ustaw in jako wejście |
bcf |
status, rpO |
;bank 0 |
return |
;ustaw in jako wyjście | |
bsf |
status, rpO |
;bank 1 |
bcf |
in |
;ustaw in jako wyjście |
bcf |
status, rpO |
;bank 0 |
return