a ovde stvaljajte vase radove kodove, rasprave o kodovima, semama i td
![Wink :wink:](./images/smilies/icon_wink.gif)
zelim vam puno srece u radu i da ova tema bude puna radova
![Very Happy :D](./images/smilies/icon_biggrin.gif)
e jos da dodam da bi voleo da vidim i slike i snimke, zanima me na cega to lici
![Very Happy :D](./images/smilies/icon_biggrin.gif)
Moderators: pedja089, stojke369, [eDo], trax
Code: Select all
output PORTB.7
OUTPUT PORTB.6
pocetok:
High PORTB.7
LOW PORTB.6
PAUSE 1000
LOW PORTB.7
HIGH PORTB.6
PAUSE 1000
GOTO pocetok
End
Code: Select all
SYMBOL CRVENALED = PORTB.7
SYMBOL ZOLTALED = PORTB.6
SYMBOL ZELENALED = PORTB.5
output CRVENALED
OUTPUT ZOLTALED
OUTPUT ZELENALED
PORTB=0 ' gi isklucuva site led
pocetok:
High CRVENALED ' se vklucuva crvenata led
LOW ZELENALED ' se isklucuva zelenata led
PAUSE 1000 ' pauza od 1 sekundi
LOW CRVENALED ' se isklucuva crvenata led
HIGH ZOLTALED ' se vklucuva zoltata led
PAUSE 3000 ' pauza od 3 sekundi
LOW ZOLTALED ' se isklucuva zoltata led
High ZELENALED ' se vklucuva zelenata led
PAUSE 5000 ' pauza od 5 sekunda
GOTO pocetok ' vrati se na pocetok
End
Code: Select all
LOW OPTION_REG.7
SYMBOL LED1 = PORTB.7 'preimenuj PORTB.7 u LED1
SYMBOL LED2 = PORTB.6 'preimenuj PORTB.6 u LED2
SYMBOL TASTER = PORTB.0 'preimenuj PORTB.0 u TASTER
OUTPUT LED1 'postavi LED1 kao izlazni
OUTPUT LED2 'postavi LED2 kao izlazni
INPUT TASTER 'postavi TASTER kao ulaz
pocetak: 'pocetak programa
LOW LED1 'ugasi obe LED
LOW LED2
tipkalo:
IF TASTER=0 THEN 'detektiranje stanja tastera(ako je pritisnut)
HIGH LED1 'upali LED1
LOW LED2 'ugasi LED2
PAUSE 1000 'pauza od 1s
LOW LED1 'ugasi LED1
HIGH LED2 'upali LED2
PAUSE 1000 'pauza 1s
else 'u suprotnom (ako nije pritisnut)
LOW LED1 'ugasi LED1
LOW LED2 'ugasi LED2
ENDIF
GOTO tipkalo 'vrati se na labelu tipkalo (petlja)
END
Code: Select all
symbol TASTER = PORTA.3
INPUT TASTER ' postavili smo TASTER kao ulazni
TRISB = 0 ' postavili smo sve pinove porta B kao izlazne
pocetak:
PORTB = %11000000 ' 0
PAUSE 1000 ' pauza 1s
PORTB = %11111001 ' 1
PAUSE 1000
PORTB = %10100100 ' 2
PAUSE 1000
PORTB = %10110000 ' 3
PAUSE 1000
PORTB = %10011001 ' 4
PAUSE 1000
PORTB = %10010010 ' 5
PAUSE 1000
PORTB = %10000010 ' 6
PAUSE 1000
PORTB = %11111000 ' 7
PAUSE 1000
PORTB = %10000000 ' 8
PAUSE 1000
PORTB = %10010000 ' 9
PAUSE 1000
unazad:
IF TASTER = 0 THEN ' ako je pritisnut taster broji unazad
PORTB = %10010000 ' 9
PAUSE 1000
PORTB = %10000000 ' 8
PAUSE 1000
PORTB = %11111000 ' 7
PAUSE 1000
PORTB = %10000010 ' 6
PAUSE 1000
PORTB = %10010010 ' 5
PAUSE 1000
PORTB = %10011001 ' 4
PAUSE 1000
PORTB = %10110000 ' 3
PAUSE 1000
PORTB = %10100100 ' 2
PAUSE 1000
PORTB = %11111001 ' 1
PAUSE 1000
PORTB = %11000000 ' 0
PAUSE 1000
ELSE ' ako nije pritisnu stoji na 9 (nisam probo možel bez ovog)
GOTO UNAZAD
ENDIF
GOTO POCETAK ' broji ponovo do 9
END
Code: Select all
PORTB = %11000000 ' 0
PAUSE 1000
ELSE ' ako nije pritisnu stoji na 9 (nisam probo možel bez ovog)
GOTO UNAZAD
ENDIF
GOTO POCETAK ' broji ponovo do 9
Code: Select all
PORTB = %11000000 ' 0
PAUSE 1000
ENDIF
GOTO UNAZAD
'sada ceka da se stisne taster. ako nije stisnut vraca se na ispitivanje dali je stisnut
Code: Select all
symbol TASTER=PORTA.3
INPUT TASTER
TRISB=0
pocetak:
if taster=0 then goto pocetak
PORTB=%11111001
PAUSE 200
IF taster=0 then
pause 2000
goto pocetak
endif
PORTB=%10100100
PAUSE 200
IF taster=0 then
pause 2000
goto pocetak
endif
PORTB=%10110000
PAUSE 200
IF taster=0 then
pause 2000
goto pocetak
endif
PORTB=%10011001
PAUSE 200
IF taster=0 then
pause 2000
goto pocetak
endif
PORTB=%10010010
PAUSE 200
IF taster=0 then
pause 2000
goto pocetak
endif
PORTB=%10000010
pause 200
IF taster=0 then
pause 2000
goto pocetak
endif
goto pocetak
End
Code: Select all
@ DEVICE HS_OSC,WDT_OFF,PROTECT_OFF
define OSC 4
'pic16f84
symbol ULAZ = portb.7 'imenuje pobtb.7 kao ULAZ
INPUT ULAZ 'Postavlja za ulaz pin portb.7
portb = 0
b0 var byte 'promenjiva
lcdout $fe,1, "Meni " '|Odmah ispisuje
lcdout $fe,$c0, "picbasic"
loop: 'pocetak petlje
if ULAZ = 0 then 'ceka da dodje 0 na pin ULAZ ako dodje 0, dodaje za 1 vrednost u promenjivu
b0 = b0+1 'i bira onaj CASE u zavisnosti koliko smo puta pritisnuli.
select case b0
case 1
pause 250
lcdout $fe,1, "11111111"
lcdout $fe,$c0, "22222222"
case 2
pause 250
lcdout $fe,1, "333333333"
lcdout $FE,$c0, "444444444"
case 3
pause 250
lcdout $fe,1, "555555555"
end select
endif
goto loop 'idi na pocetak
End
Code: Select all
SYMBOL TASTER=PORTA.2
INPUT TASTEr
novapolozba var bit
starapolozba var bit
i VAR BYTE
i=0
trisb=0
starapolozba=TASTER
pocetok:
novapolozba=taster
if starapolozba<novapolozba then
i=i+1
if i>9 then i=0
endif
lookup i, [192,249, 164,176,153, 146, 130, 248, 128, 152], portb
starapolozba=novapolozba
goto pocetok
end
premestio sam ti post ovde, jer mu tamo nije mestoAmir_Hadzic wrote:U proteusu imam ovu prikacenu semu.
Program:
Code:
TRISB = %10000000
SYMBOL LED = PORTB.6
SYMBOL SW = PORTB.7
start:
LOW LED
IF SW = 1 THEN HIGH LED
PAUSE 1000
goto start
Kada se prekidac zatvori LED ide na logicku jedinicu. Eh sada po ovom kodu bi nakon sto se prekidac otvori trebala biti logicka nula na LED. Problem je u tome sto i nakon otvaranja prekidaca na LED ostaje logicka jedinica....
http://www.elektronika.ba/forum/uploadz ... 8_sema.png
Code: Select all
.
.
.
.
.
led=sw
pause 1000
.
.
Code: Select all
Probaj ovo:
@ DEVICE pic16f84a,HS_OSC,WDT_OFF,PROTECT_OFF
SYMBOL LED = PORTB.6
SYMBOL SW = PORTB.7
input sw
output led
PORTB = 0
loop:
if sw = 1 then
led = 1
else
led = 0
endif
pause 1000
goto loop
end