skraceni kurs ucenja picbasica

Rasprava o PIC mikrokontrolerima, PIC projekti i drugo vezano za PIC-eve...

Moderators: pedja089, stojke369, [eDo], trax

Post Reply
nemanjans
Penjem se :)
Penjem se :)
Posts: 67
Joined: 08-12-2012, 15:52

Re: skraceni kurs ucenja picbasica

Post by nemanjans »

opet lupeta brojeve jojjjjjjjjjjjjjjjjjjjjjjjjjj
kako je moguce da se simulacija razlikuje od projekta realnog?????
Maki
Odlično uznapredovao
Odlično uznapredovao
Posts: 766
Joined: 02-07-2012, 12:54

Re: skraceni kurs ucenja picbasica

Post by Maki »

Sigurno ti nestno oscilira . Jesu li ti ulazi stabilni ? Je li si stavio pull down ili pull up otpor na ulaz ? Provjeri sve konekcije i sve napone. U krajnjem slucaju je program .
nemanjans
Penjem se :)
Penjem se :)
Posts: 67
Joined: 08-12-2012, 15:52

Re: skraceni kurs ucenja picbasica

Post by nemanjans »

Program sam zezno ito momacki a skontao sam i gde tako malo da moram sve nanovo a 8k skoro je bio hex.al tako proteus da me zezne neverujem
code_service
Posts: 11
Joined: 15-01-2013, 09:44

Re: skraceni kurs ucenja picbasica

Post by code_service »

Evo mene opet.
Sada sam sa PIC-em povezao 16 LED dioda i 16 tastera. Logika je ista kao u prethodnom pitanju. Svaki prekidač pali i gasi svoju diodu i zadržavanje bilo kojeg prekidača na 5 sec. gasi sve diode. Još sam dodao da taster T16 pali i gasi zajedno D1, D2 i D3, uz uvjet da ih ne gasi ako su iste upaljene tasteriam T1 ili T2 ili T3. Tasteri su spojeni matrično 4x4 na PORTB. Ovo sve radi na proteusu. Kod i shema su u prilogu. Već mi dolazi inspiracija upravljanja kućnom rasvjetom i drugim potrošačima na ovaj način, pa da postavim par pitanja:
1. Bi li ovako izvedena matrična tipkovnica pouzdano radila u praksi kad bi tasteri bili raspoređeni svugdje po kući kao prekidači svjetala. Bi li kapacitet između vodova ometao multipleksiranje?
2. Može li netko dati primjer upravljanja ovim LED diodama spojenim samo na PORTE preko 2 x 74HC595 i korištenjem komande SHIFTOUT ? Ovim bi oslobodio PORTC i PORTD, koje bi mogao kasnije iskoristit za druge dodatke kao npr LCD display i slično ...
3. Postoji li nekakav mini web server koji bi se mogao povezati naprimjer na PORTD i programirati da prikazuje parametre dobivene preko PORTD? Ovo bi dalo mogućnost upravljanja čitavim sistemom preko pametnog telefona. (ovo je pitanje iz čiste znatiželje i inspiracije :) )
Image

Code: Select all

ADCON1 = 7 'Turn off ADC
CMCON = 7 'Turn off comparator
define button_pause 30
trisb=%11110000
trisc=$00
trisd=$00
portb=0
portc=0
portd=0

symbol t1=portb.7
symbol t2=portb.7
symbol t3=portb.7
symbol t4=portb.7
symbol t5=portb.6
symbol t6=portb.6
symbol t7=portb.6
symbol t8=portb.6
symbol t9=portb.5
symbol t10=portb.5
symbol t11=portb.5
symbol t12=portb.5
symbol t13=portb.4
symbol t14=portb.4
symbol t15=portb.4
symbol t16=portb.4
symbol led1=portc.0
symbol led2=portc.1
symbol led3=portc.2
symbol led4=portc.3
symbol led5=portc.4
symbol led6=portc.5
symbol led7=portc.6
symbol led8=portc.7
symbol led9=portd.0
symbol led10=portd.1
symbol led11=portd.2
symbol led12=portd.3
symbol led13=portd.4
symbol led14=portd.5
symbol led15=portd.6
symbol led16=portd.7
bu var byte
b var byte
c var bit
d var bit
e var bit
s var bit
s1 var bit
s2 var bit
s3 var bit
d=0
c=0
e=0
s=0
s1=0
s2=0
s3=0
start:
portb=%0001000
pause 5
b=0
bu=0
button t1,0,255,0,bu,0,led1on
bu=0
button t5,0,255,0,bu,0,led5on
bu=0
button t9,0,255,0,bu,0,led9on
bu=0
button t13,0,255,0,bu,0,led13on

portb=%00000100
pause 5
bu=0
button t2,0,255,0,bu,0,led2on
bu=0
button t6,0,255,0,bu,0,led6on
bu=0
button t10,0,255,0,bu,0,led10on
bu=0
button t14,0,255,0,bu,0,led14on

portb=%00000010
pause 5
bu=0
button t3,0,255,0,bu,0,led3on
bu=0
button t7,0,255,0,bu,0,led7on
bu=0
button t11,0,255,0,bu,0,led11on
bu=0
button t15,0,255,0,bu,0,led15on

portb=%00000001
pause 5
bu=0
button t4,0,255,0,bu,0,led4on
bu=0
button t8,0,255,0,bu,0,led8on
bu=0
button t12,0,255,0,bu,0,led12on
bu=0
button t16,0,255,0,bu,0,led16on
goto start

led1on:
toggle led1
s1=led1
if s=1 then
s1=0
endif
goto test



led5on:
toggle led5
goto test

led9on:
toggle led9
goto test

led13on:
toggle led13
goto test

led2on:
toggle led2
s2=led2
if s=1 then
s2=0
endif
goto test


led6on:
toggle led6
goto test

led10on:
toggle led10
goto test

led14on:
toggle led14
goto test

led3on:
toggle led3
s3=led3
if s=1 then
s1=0
endif
goto test


led7on:
toggle led7
goto test

led11on:
toggle led11
goto test

led15on:
toggle led15
goto test

led4on:
toggle led4
goto test

led8on:
toggle led8
goto test

led12on:
toggle led12
goto test

led16on:
toggle s
if (s1=0) and (s=1) then
high led1
endif
if (s1=0) and (s=0) then
low led1
endif

if (s2=0) and (s=1) then
high led2
endif
if (s2=0) and (s=0) then
low led2
endif

if (s3=0) and (s=1) then
high led3
endif
if (s3=0) and (s=0) then
low led3
endif
goto test

gasisve:
PORTc=0
portd=0
pause 2000
GOTO start

test:
if (t1=1) or (t2=1) or (t3=1) or (t4=1) or (t5=1) or (t6=1) _
or (t7=1) or (t8=1) or (t9=1) or (t10=1) or (t11=1) or (t12=1) _
or (t13=1) or (t14=1) or (t15=1) or (t16=1) and (b<50) then
b=b+1
pause 100
goto test
endif
if b=>50 then
goto gasisve
else
goto start
endif
end
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7877
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: skraceni kurs ucenja picbasica

Post by pedja089 »

Da, je odgovor na sve...
Web server mozes napraviti sa picem,i za to ti preporucujem mikrobasic od mikroelektronike.
Nije preterano komplikovano, jer su oni ubacili ceo tcpip stack od microchipa u svoje programske jezike.
A da radis web server u picbasicu, mozes... Ali sa nekim externim tcp/ip-om. Ima od rowing network(ili tako nesto) wifi modula koji imaju serisku komunikaciju, i implementiran tcp/ip stack i gomila opcija.
User avatar
Kukinjos
Pravi forumaš
Pravi forumaš
Posts: 1724
Joined: 28-03-2012, 18:01
Location: Split

Re: skraceni kurs ucenja picbasica

Post by Kukinjos »

Nadopunit ću Peđu, koji je sve rekao u jednoj riječi
Da, je odgovor na sve...
1. Ako misliš koristit prekidače po kući, moraš koristit neke filtere u najmanju ruku, a preporuka je svakako stavit optocouplere. Tu imaš još mogućnost multipleksiranja ulaza, i možeš koristiti 74xx595! Razmisli kako to izvesti, shiftout je opet u igri.
2. Isto kao i pod 1.
3. Peđa je na ovo opširnije odgovorio, pa se ja neću zamarat ponavljanjem :)
Cezare, star sam i nemoćan, ali poslušaj moj savjet ....
User avatar
Kukinjos
Pravi forumaš
Pravi forumaš
Posts: 1724
Joined: 28-03-2012, 18:01
Location: Split

Re: skraceni kurs ucenja picbasica

Post by Kukinjos »

Evo slikica za razmišljanje:
Image
Cezare, star sam i nemoćan, ali poslušaj moj savjet ....
nemanjans
Penjem se :)
Penjem se :)
Posts: 67
Joined: 08-12-2012, 15:52

Re: skraceni kurs ucenja picbasica

Post by nemanjans »

Pozdrav svima moze mala pomoc uneo sam kod u pic al ima par gresaka kako da izbegnem ovo:
kad iz glavnog programa stisnem jedan taster program ode u pauzu i ceka nanovo stiskanje tastera pauza da bi izasao iz nje ili stiskanje tastera za vracanje da ode u labelu vracanje e sada meni to radi tako ali jedno neznam kako da prepravim
kad je program u pauzi kad stisnem taster za vracanje treba jednom da ode u labelu vracanje i da neide vise sve dok opet nestisnem taster vracanje a meni sad radi sve dok drzim stisnut taster vracanje on ide u labelu vracanje
evo tog dela koda:

Code: Select all

:zaustavi
do while Pauza = 0
loop
do
'************
 if Test=0 then portb.4=1
 if test=1 then portb.4=0

  portb.6=1

if Nazad = 0 then
 
 call vracanje
 
     
 do while Nazad=0 
 

   loop
endif

'***************
loop until Pauza = 0
do while Pauza = 0 
loop
portb.6=0
return 
 
 vracanje:


if x4>1 then x4=x4/2   'deli a4 
if x4=0 then x3=x3/2 'deli a3 ako je a4=0
goran00021
Posts: 7
Joined: 24-02-2013, 00:49

Re: skraceni kurs ucenja picbasica

Post by goran00021 »

Divna tema svaka cast Pedja,ja sam pocetnik procitao sam dosta tog i skoro ceo forum imam programator pickit2 i sad cu da krenem imam pbp i micro cod editor,ali imam jedan problem
zamolio bi nekog dali moze da mi pomogne sledece sta sve osim izlaznih ili ulaznih pinova treba definisati za pic12f683,znam za dataseet ali neide neide...Unapred hvala,za pocetak mi je cilj da palim i gasim ledicu to znam kako cu al neznam sta treba da definisem kristal....
goran00021
Posts: 7
Joined: 24-02-2013, 00:49

Re: skraceni kurs ucenja picbasica

Post by goran00021 »

jer moze neki primer za pic 12f683 koji pali i gasi ledicu
User avatar
Kukinjos
Pravi forumaš
Pravi forumaš
Posts: 1724
Joined: 28-03-2012, 18:01
Location: Split

Re: skraceni kurs ucenja picbasica

Post by Kukinjos »

Na stranici od ME Labs-a imaš sve, samo malo truda.... :wink:
http://melabs.com/samples/LABX4-12F68x/
i kod baš koji tražiš:

Code: Select all

' Name        : BLINKX4.pbp
' Compiler    : PICBASIC PRO Compiler 2.6
' Assembler   : PM or MPASM
' Target PIC  : PIC12F683
' Hardware    : LAB-X4 Experimenter Board
' Oscillator  : 4MHz internal
' Keywords    : 
' Description : PICBASIC PRO program to blink an LED connected
' to GPIO.0 about once a second.
'

LED Con 0        ' Alias GPIO.0 to LED

   ANSEL = 0     ' Set all digital
   CMCON0 = 7    ' Analog comparators off

mainloop:
   Low LED       ' Turn on LED connected to GPIO.0
   Pause 500     ' Delay for .5 seconds
   High LED      ' Turn off LED connected to GPIO.0
   Pause 500     ' Delay for .5 seconds
   Goto mainloop ' Go back to mainloop and blink LED forever

   End
Cezare, star sam i nemoćan, ali poslušaj moj savjet ....
goran00021
Posts: 7
Joined: 24-02-2013, 00:49

Re: skraceni kurs ucenja picbasica

Post by goran00021 »

Samo jedno pitanje ovo mi nije jasno sta je:
LED Con 0 ' Alias GPIO.0 to LED
buni me radi ovog jer moglo mesto ovog dase napise
simbol led=gpo.0
goran00021
Posts: 7
Joined: 24-02-2013, 00:49

Re: skraceni kurs ucenja picbasica

Post by goran00021 »

ili...
con0,con1,con2 su pinovi
ako bi napisao
taster con1
input taster definiso bi taster?
goran00021
Posts: 7
Joined: 24-02-2013, 00:49

Re: skraceni kurs ucenja picbasica

Post by goran00021 »

ukapirao sam za ledice samo kako bi taster definisao ili su svi pinovi izlazni
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7877
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: skraceni kurs ucenja picbasica

Post by pedja089 »

GPIO i TRISIO, menjas sa PORTx i TRISx u svim onim mojim primerima.
goran00021
Posts: 7
Joined: 24-02-2013, 00:49

Re: skraceni kurs ucenja picbasica

Post by goran00021 »

aha ukapiro sam te pedja samo zasto nema
trisi0 da odredi pin izlaznin
kako bi taster definisao
goran00021
Posts: 7
Joined: 24-02-2013, 00:49

Re: skraceni kurs ucenja picbasica

Post by goran00021 »

Sve mi jasno hvala
novak1
Posts: 6
Joined: 02-03-2013, 10:05

Re: skraceni kurs ucenja picbasica

Post by novak1 »

Pozdrav svima jedno pitanje treba mi pausa u trajanju od 10 minuta dali ima neka druga komanda sem pause
Maki
Odlično uznapredovao
Odlično uznapredovao
Posts: 766
Joined: 02-07-2012, 12:54

Re: skraceni kurs ucenja picbasica

Post by Maki »

Mozes sa petljom for . Npr.

Code: Select all

FOR i = 1 TO i = 600
pause 1000
next i 
On ce (program) 600 puta vrtiti petlju s pauzom od 1 sekunde. To znaci da ce ta sve ukupna pauza trajat 600 sekundi , 10 min.
novak1
Posts: 6
Joined: 02-03-2013, 10:05

Re: skraceni kurs ucenja picbasica

Post by novak1 »

E puno hvala
Post Reply