 |
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
California Član

Pridružen-a: Pet 26 Avg 2005 19:48 Prispevkov: 236 Aktiv.: 1.00 Kraj: Hrastnik
|
Objavljeno: Čet Nov 17, 2005 8:42 pm Naslov sporočila: Dve tipki in izhodni impulzi |
|
|
Pozdravljeni, dve tipki (RA0 in RB0) simulirata dva digitalna vhoda, na izhodih (RA1 in RB1) naj bi se z vsakim pritiskom tipke pojavil impulz in tu se pojavi problem, namreč ob istočasnem pritisku se pojavi impulz le na enem izhodu. Torej jasna stvar, kako narediti (če je mogoče) neodvisno odzivanje obeh izhodov na pritisk pripadajoče tipke (vhod RA0-izhod RA1, vhod RB0-izhod RB1)?
list p=16f84a
#include <p16f84a.inc>
__CONFIG _WDT_OFF & _PWRTE_ON & _CP_OFF & _HS_OSC
stevec1 equ 0x0C ;prvi stevec za pavzo
stevec2 equ 0x0D ;drugi stevec za pavzo
;...................................................................
;nastavitve PORTA (ov)
;...................................................................
program
bsf STATUS,5 ;GREMO v Bank 1
movlw 1 ;naložimo enko v reg. w
movwf TRISA ;nastavimo vse pine kot izhode razen prvega
movwf TRISB ; .."..
bcf STATUS,5 ;nazaj v Bank 0
btfss PORTA,0 ;testiraj vhod RA0
goto zacniB
goto zacni
zacniB
btfss PORTB,0 ;testiraj vhod RB0
goto program
goto zacni2
;...................................................................
;prižgimo LED
;...................................................................
zacni movlw 2 ;naložimo 2 v reg.w
movwf PORTA ;pin RA2 je visok, LED gori
call pavza
;.....................................................................
;konec pavze, ugasni LED
;.....................................................................
movlw 0 ;naloži 0 v w
movwf PORTA ;vsi biti PORTA nizko
call pavza
goto blokada
;.....................................................................
zacni2
movlw 2 ;naložimo 2 v reg.w
movwf PORTB ;pin RB2 je visok, LED gori
call pavza
;.....................................................................
;konec pavze, ugasni LED
;.....................................................................
movlw 0 ;naloži 0 v w
movwf PORTB ;vsi biti PORTB nizko
call pavza
goto blokada2
; Podprogrami
;.....................................................................
;pavza
;.....................................................................
pavza
movlw 255 ;v w naložimo vrednost 255
movwf stevec1 ;vpišemo v stevec1
movwf stevec2 ;vpisemo v stevec2
;ostane v w
;.....................................................................
;zanka
;.....................................................................
zanka
decfsz stevec1,1 ;odštej 1 od 255
goto zanka ;ce ni 0, nazaj na zanka1, drugače naprej
decfsz stevec2,1 ;odštej 1 od 255
goto zanka ;ce ni 0, nazaj na zanka1, drugače naprej
return
blokada
btfss PORTA,0 ;testira tipko in ne dovoli vklopa LED če je pritisnjena
goto program
goto blokada
blokada2
btfss PORTB,0
goto program
goto blokada2
end ;konec programa (za prevajalnik) _________________ California |
|
Nazaj na vrh |
|
 |
Djurodrljaca Član

Pridružen-a: Pet 19 Dec 2003 16:31 Prispevkov: 393 Aktiv.: 1.66 Kraj: Mengeš
|
Objavljeno: Čet Nov 17, 2005 8:54 pm Naslov sporočila: |
|
|
Priporočam ti, da po tem, ko zabeležiš, da je ena tipka pritisnjena, preveriš stanje druge tipke in primerno ukrepaš. |
|
Nazaj na vrh |
|
 |
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 492 dni
Powered by phpBB © 2001, 2005 phpBB Group
|