radovi forumasa sa ubrzanog kursa pbp
Moderators: pedja089, stojke369, [eDo], trax
radovi forumasa sa ubrzanog kursa pbp
evo ovako jos jedna tema vezana za kurs. neka tamo budu iskljucivo primeri za ucenje.
a ovde stvaljajte vase radove kodove, rasprave o kodovima, semama i td
zelim vam puno srece u radu i da ova tema bude puna radova
e jos da dodam da bi voleo da vidim i slike i snimke, zanima me na cega to lici
a ovde stvaljajte vase radove kodove, rasprave o kodovima, semama i td
zelim vam puno srece u radu i da ova tema bude puna radova
e jos da dodam da bi voleo da vidim i slike i snimke, zanima me na cega to lici
Last edited by pedja089 on 05-09-2008, 23:03, edited 2 times in total.
ova e kodot za so dve led diodi koj se gasat i palat najizmenicno
http://www.elektronika.ba/forum/uploadz ... int_63.GIF
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
eve eden primer za semafor
http://www.elektronika.ba/forum/uploadz ... emafor.GIF
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
- Dariolo
- Odlično uznapredovao
- Posts: 822
- Joined: 24-08-2006, 23:29
- Location: Žepče (BiH), Zagreb (HR)
evo od mene source za blinkajuće LED kada je pritisnut taster!
evo i videa kako to sve fercera
http://www.youtube.com/watch?v=Vf6tTcd-u90
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
http://www.youtube.com/watch?v=Vf6tTcd-u90
Last edited by Dariolo on 06-09-2008, 00:58, edited 1 time in total.
- Dariolo
- Odlično uznapredovao
- Posts: 822
- Joined: 24-08-2006, 23:29
- Location: Žepče (BiH), Zagreb (HR)
evo i programčića za 7 segmentni LED display!
program broji do 9 i stoji na 9 dok ne pritisnemo taster, kada pritisnemo taster počinje odbrojvanje unazad, i kad dođe do 0 automatski ponovo broji do 9
http://www.elektronika.ba/forum/uploadz ... disp_l.gif
to je shema samo što je dodan taster na RA3 sa otpornikom od 4,7K
evo i video:
http://www.youtube.com/watch?v=8zG7uCT76H4
program broji do 9 i stoji na 9 dok ne pritisnemo taster, kada pritisnemo taster počinje odbrojvanje unazad, i kad dođe do 0 automatski ponovo broji do 9
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
to je shema samo što je dodan taster na RA3 sa otpornikom od 4,7K
evo i video:
http://www.youtube.com/watch?v=8zG7uCT76H4
Last edited by Dariolo on 08-09-2008, 16:30, edited 1 time in total.
odlicno. ne moze bez onoga jer bi se program svaki put vracao na pocetak pa bi prvo broio pa gledao dali je taster stisnut
ali uz malo izmene moze
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
evo jos jedan zanimljiv primer. kockica za covece ne ljuti se
sema
http://www.elektronika.ba/forum/uploadz ... _kocka.gif
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
sema
http://www.elektronika.ba/forum/uploadz ... _kocka.gif
e svaka cast na temi evo jedan kod koji se koristi za pravljenje menija.
http://www.elektronika.ba/forum/uploadz ... ematic.GIF
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
ova e kodot koj sto pritiskanje na tasterot broi do 9 pocnuvajki od 0
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
a da se vratimo na pocetak. picevi(kao i ostali procesori)su glupi kao k..., stoga rade samo ono sto im se napise....
a ti si lepo ovom picu napisao da on upali ledicu u koliko je na portb.7 logicka jedinica. a nigde mu u kodu nisi rekao da je ugasi ako je logicka nula....
stoga moras dodati ili else, ili jos jedan red if naredbe ili jednostavno napisati
a ti si lepo ovom picu napisao da on upali ledicu u koliko je na portb.7 logicka jedinica. a nigde mu u kodu nisi rekao da je ugasi ako je logicka nula....
stoga moras dodati ili else, ili jos jedan red if naredbe ili jednostavno napisati
Code: Select all
.
.
.
.
.
led=sw
pause 1000
.
.
Probaj ovo:
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
-
- Napredujem
- Posts: 175
- Joined: 07-09-2006, 16:10
Nisam stavio da ako je nula na SW ali zato prvo postavi LED na 0 pa onda provjeri da li je SW 1 i stavi HIGH LED ako jeste.
UPDATE:
1.
Probao sam sve sto ste mi predlozili i jos uvijek ne radi. Pokusao sam samo staviti da blinka neovisno od ulaza i uredu je pa zato sumnjam na ovaj prekidac. Koji vi simbol koristite u proteusu za prekidac jer ima ih vise...
2.
Prikopcao sam gen. impulsa na ulaz rb7 i sve radi, znaci ipak je bilo do prekidaca... kako cu ubuduce rijesavati ovaj problem?
UPDATE:
1.
Probao sam sve sto ste mi predlozili i jos uvijek ne radi. Pokusao sam samo staviti da blinka neovisno od ulaza i uredu je pa zato sumnjam na ovaj prekidac. Koji vi simbol koristite u proteusu za prekidac jer ima ih vise...
2.
Prikopcao sam gen. impulsa na ulaz rb7 i sve radi, znaci ipak je bilo do prekidaca... kako cu ubuduce rijesavati ovaj problem?