radovi forumasa sa ubrzanog kursa pbp

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

Moderators: pedja089, stojke369, [eDo], trax

Post Reply
VFDisplay
Odlično uznapredovao
Odlično uznapredovao
Posts: 515
Joined: 01-08-2009, 20:18

Re: radovi forumasa sa ubrzanog kursa pbp

Post by VFDisplay »

dakle ovako...
da sad ne otvaram novu temu (samo radi jedne informacije) zanima me ovo:pošto mi je dosadio onaj pic16f84 odlučio sam si kupiti pic16f877 i naišao na problem! Zanima me pošto ja koristin RCD programator s kojim sam vrlo zadovoljan kako s njim isprogramirati taj 16f877 pošto on ima 40 pin-ova te da li je to uopće moguće??? Ovdje na shemama sam vidio da on može isprogramirati ga.
...i da pošto vidim da on ima 2 mase i dva + da li se one spajaju normalno (kao da je jedna masa i jedan +)?

EDIT:@pedja nemožeš vjerovati koliko sam ti zahvalan na tom kursu!!!
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7877
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: radovi forumasa sa ubrzanog kursa pbp

Post by pedja089 »

Za programiranje ti treba RB6,RB7,MCLR,Vcc i GND.
I to spajas bez obzira koji je pic u pitanju. I za 12XXX isti pinovi samo sto umesto RB6 i RB7 idu GP0 i GP1...
Ne znam kojim redom, lako se proveri u datasheetu...
VFDisplay
Odlično uznapredovao
Odlično uznapredovao
Posts: 515
Joined: 01-08-2009, 20:18

Re: radovi forumasa sa ubrzanog kursa pbp

Post by VFDisplay »

evo primjer jednog frekvencmetra s autorange-om:

Code: Select all

define OSC 16
DEFINE LCD_BITS 4
DEFINE LCD_DREG PORTA
DEFINE LCD_DBIT 0 
DEFINE LCD_RSREG PORTB
DEFINE LCD_RSBIT 3
DEFINE LCD_EREG PORTB
DEFINE LCD_EBIT 5 
DEFINE LCD_LINES 2
pause 250
lcdout $fe,1,"Frekvencmetar"
pause 1500
lcdout $FE,1,"Loading..."
pause 1000
hz var word
khz var word
deckhz var word
start:
count portb.2,1000,hz
if hz > 1000 then
khz = hz / 1000
deckhz = hz - khz * 1000
lcdout $fe,1,"CH1:", dec khz,".",dec3 deckhz,"kHz"
else
lcdout $fe,1,"CH1:", dec hz,"Hz"
endif
goto start
User avatar
sindja1204
Odlično uznapredovao
Odlično uznapredovao
Posts: 792
Joined: 03-05-2009, 11:57
Location: Beograd

Re: radovi forumasa sa ubrzanog kursa pbp

Post by sindja1204 »

Kod za 4_kanalni prekidac. Tasterom Up-Downe bira se jedan od cetiri kanala .Koji je kanal izabran, vidi se na led displeju. Tasterom On-Of menja se stanje na datom kanalu. Tasterom reset ponistava se programirano stanje. Svaki klik na taster pracen je zvucnom signalizacijom. Sklop rasdi i pomocu bilo kog daljinskog.

http://www.youtube.com/watch?v=V3zlIlTgb4k" onclick="window.open(this.href);return false;

Code: Select all

trisa=0
trisb=%11110000
symbol led1=portb.4
symbol led2=portb.5
symbol led3=portb.6
symbol led4=portb.7
symbol taster1=portb.3
symbol taster=portb.0
symbol tastera1=portb.1
symbol tastera= portb.2
symbol buzer=porta.4

output buzer
input taster1
input taster
input tastera1
input tastera

starostanje var bit
novostanje var bit 
starostanje= taster

starostanje1 var bit
novostanje1 var bit
starostanje1=taster1

starostanjea var bit
novostanjea var bit
starostanjea=tastera


starostanjea1 var bit
novostanjea1 var bit
starostanjea1=tastera1
i var byte
i=0
pocetak:

novostanjea=tastera
novostanjea1=tastera1
If novostanjea<starostanjea or novostanjea1<starostanjea1 then
i=i+1
sound buzer,[110,10]
endif
if i>4 then i=1
lookup i, [0,1,2,3,4],porta
pause 120
if i=0 then
 novostanje=taster
 novostanje1=taster1
 endif
if novostanje<starostanje or novostanje1<starostanje1 then
sound buzer,[110,10]
low led1
low led2
low led3
low led4
endif
starostanje=novostanje
starostanje1=novostanje1
 
if i=1 then
 novostanje=taster
 novostanje1=taster1
 endif
if novostanje<starostanje or novostanje1<starostanje1 then
sound buzer,[110,10]
toggle led1
pause 120
endif
starostanje=novostanje
starostanje1=novostanje1
 
if i=2 then 
novostanje=taster
novostanje1=taster1
endif

if novostanje<starostanje or novostanje1<starostanje1 then
sound buzer,[110,10]
toggle led2
pause 120
endif
starostanje=novostanje
starostanje1=novostanje1

if i=3 then
 novostanje=taster
 novostanje1=taster1
 endif
if novostanje<starostanje  or novostanje1<starostanje1 then
sound buzer,[110,10]
toggle led3
pause 120
endif
starostanje=novostanje
starostanje1=novostanje1
if i=4 then 
novostanje=taster
novostanje1=taster1
endif
if novostanje<starostanje or novostanje1<starostanje1 then
sound buzer,[110,10]
toggle led4
pause 120
endif
starostanje1=novostanje1
starostanje=novostanje
starostanjea=novostanjea
starostanjea1=novostanjea1
goto pocetak


end
VFDisplay
Odlično uznapredovao
Odlično uznapredovao
Posts: 515
Joined: 01-08-2009, 20:18

Re: radovi forumasa sa ubrzanog kursa pbp

Post by VFDisplay »

svaka čast! Bravo!
Zanima me kako si riješio ovo s daljinskim da ga kontroliraš. Možeš li mi objasniti?
Inače ovo može biti jako koristan sklop
User avatar
sindja1204
Odlično uznapredovao
Odlično uznapredovao
Posts: 792
Joined: 03-05-2009, 11:57
Location: Beograd

Re: radovi forumasa sa ubrzanog kursa pbp

Post by sindja1204 »

Iskoristio sam portb.1 i portb.3.Na njima se detektuje signal sa pic-a12f629. Komandom IF -OR -THen, ista komanda moze da se ucita rucno ili daljinskim.
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7877
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: radovi forumasa sa ubrzanog kursa pbp

Post by pedja089 »

Lepo odradjeno.
A sta je sa kodom za PIC12F629?
Kako si napisao da prepoznaje razlicite protokole, RC5, NEC itd...
Ili je mozda iskoriscen hex iz ovog sklopa :?:
User avatar
sindja1204
Odlično uznapredovao
Odlično uznapredovao
Posts: 792
Joined: 03-05-2009, 11:57
Location: Beograd

Re: radovi forumasa sa ubrzanog kursa pbp

Post by sindja1204 »

Na zalost kod za pic12f629 nisam ja pisao . Iskoristio sam postojeci.
http://www.ivica-novakovic.from.hr/IrOn ... m#IrOnOff2" onclick="window.open(this.href);return false;
User avatar
niho
Pravi forumaš
Pravi forumaš
Posts: 1895
Joined: 24-09-2009, 17:26
Location: Brcko, Bosnia and Herzegovina

Re: radovi forumasa sa ubrzanog kursa pbp

Post by niho »

Svaka cast, sindja1204, daj nam sad opisi cijeli projekat, shema, plocica, kodovi i sl! Kad si nas vec zagolicao sa ovim videom i kratkim opisom :)
User avatar
sindja1204
Odlično uznapredovao
Odlično uznapredovao
Posts: 792
Joined: 03-05-2009, 11:57
Location: Beograd

Re: radovi forumasa sa ubrzanog kursa pbp

Post by sindja1204 »

Postavljam Shemu i PCb u Gotove projekte...
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7877
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: radovi forumasa sa ubrzanog kursa pbp

Post by pedja089 »

@sindja1204 jako dobar nacin da iskoristis ir kontrolu, jer na ovaj nacin ne moraju samo 4 izlaza, vec moze koliko hoces.
Pokusaj napraviti kod za prijem ir signala, mislim da ne bi trebalo da bude neki problem, a ne bi bilo lose da ovde bude i primer za to u pic basicu.
User avatar
sindja1204
Odlično uznapredovao
Odlično uznapredovao
Posts: 792
Joined: 03-05-2009, 11:57
Location: Beograd

Re: radovi forumasa sa ubrzanog kursa pbp

Post by sindja1204 »

Nisam siguran da sam te bas najbolje razumeo. Po originalnoj shemi Pic 12f629 prepoznaje dva koda i menja stanje na svoja dva pina. Jedan sam iskoristio za up-downe, a drugi za on-of. sto je sasvim dovoljno. Ovim nacinom moguce je kontrolisati onoliko kanala koliko ima raspolozivih pinova na picu koji je upotrevljen (16f84a). Meni je bilo potrebno 4 kanala za cetiri grejaca.
Normalno,ako bi se izostavio pic 12f629 i kod ucitao direktno u pic koji kontrolise potrosace, povecao bi se i broj kanala.
User avatar
sindja1204
Odlično uznapredovao
Odlično uznapredovao
Posts: 792
Joined: 03-05-2009, 11:57
Location: Beograd

Re: radovi forumasa sa ubrzanog kursa pbp

Post by sindja1204 »

Evo i dopune koda za ovaj IR prekidac. Svakim pritiskom na taster aktivira se (kumulativno) sledeci kanal [1/1+2/1+2+3/1+2+3+4] dok se na nuli vrsi reset. Broj aktivnih kanala pokazuje se na displeju.

Code: Select all

trisa=0
trisb=%11110000
symbol led1=portb.4
symbol led2=portb.5
symbol led3=portb.6
symbol led4=portb.7
symbol taster1=portb.3
symbol taster=portb.0
symbol tastera1=portb.1
symbol tastera= portb.2
symbol buzer=porta.4

output buzer
input taster1
input taster
input tastera1
input tastera

starostanje var bit
novostanje var bit 
starostanje= taster

starostanje1 var bit
novostanje1 var bit
starostanje1=taster1

starostanjea var bit
novostanjea var bit
starostanjea=tastera


starostanjea1 var bit
novostanjea1 var bit
starostanjea1=tastera1





i var byte
i=0
pocetak:


novostanjea=tastera
novostanjea1=tastera1
If novostanjea<starostanjea or novostanjea1<starostanjea1 then
i=i+1
sound buzer,[110,10]
endif
if i>4 then i=0
lookup i, [0,1,2,3,4],porta
pause 120
if i=0 then
 novostanje=taster
 novostanje1=taster1
 endif
if novostanje<starostanje or novostanje1<starostanje1 then
sound buzer,[110,10]
low led1
low led2
low led3
low led4
endif
starostanje=novostanje
starostanje1=novostanje1
if i=0 then low led1: low led2: low led3: low led4
if i=1 then high led1
if i=2 then high led1: high led2
if i=3 then high led1: high led2: high led3
if i=4 then high led1: high led2: high led3: high led4


starostanje1=novostanje1
starostanje=novostanje
starostanjea=novostanjea
starostanjea1=novostanjea1
goto pocetak


end
User avatar
niho
Pravi forumaš
Pravi forumaš
Posts: 1895
Joined: 24-09-2009, 17:26
Location: Brcko, Bosnia and Herzegovina

Re: radovi forumasa sa ubrzanog kursa pbp

Post by niho »

Imao sam mali nedostatak u programu dimer. Ako se pritisne taster (za pojacavanje ili smanjivanje svjetla) i zadrzi duze onda ce on pojacati (ili smanjiti) , nerijetko, do maksimuma tj. tesko je kontrolisati nivo -precizno podesavanje. Za prevazilazenje ovog problema iskoristio sam Pedjin fazon sa komparacijom staro stanje-novo stanje (hvala Pedja) i sad ovaj program ima 30 lvl preciznog podesavanja. Kod donosim u ovom postu a isti cu iskoristiti za "digitalni potenciometar" kojeg radim i uskoro se nadam da cu objaviti shemu, plocoicu i cio projekat u "gotovim projektima".

Code: Select all

'****************************************************************
'*  Name    : dimer1.BAS                                      *
'*  Author  : [niho]                    *
'*  Notice  : Copyright (c) 2010 [niho] *
'*          : All Rights Reserved                               *
'*  Date    : 21.01.2010                                        *
'*  Version : 1.1                                               *
'*  Notes   :                                                   *
'*          :                                                   *
'****************************************************************
@ DEVICE pic16f84a,XT_OSC,WDT_OFF,PROTECT_OFF 'definicija konfiguracije
DEFINE OSC 4  'definicija oscilatora
 i VAR BYTE    'postavka prvog brojaca (varijable)
 sstu var bit  'staro stanje pojacaj
 nstu var bit   'novo stanje pojacaj
 sstd var bit   'staro stanje smanji
 nstd var bit   'novo stanje smanji
 i=1
SYMBOL LED=portb.7         'postavka simbola  zamjene pinova
SYMBOL taster1=portb.0      
symbol taster2=portb.1      
OUTPUT LED
INPUT TASTER1                'postavke ulaza-pojacavanje int.svjetla
input taster2                 'smanjivanje intenziteta svjetla
sstu = taster1
sstd = taster2
pocetak:         'radni potprogram 
nstu = taster1
nstd = taster2
low led
pause i
high led
pause 30-i
if nstu < sstu then i=i+1      'pojacavanje svjetla
if nstd < sstd then i=i-1      'smanjivanje svjetla                    
if i>30 then i=30            'ogranicenje pauze
if i<1 then i=1
sstu = nstu
sstd = nstd
goto pocetak
end                 ' kraj
User avatar
mataya
Pravi forumaš
Pravi forumaš
Posts: 1715
Joined: 04-02-2008, 12:57
Location: HR, Varaždin
Contact:

Re: radovi forumasa sa ubrzanog kursa pbp

Post by mataya »

pozdrav svim clanovima aktivnim u ovoj temi.
imam instaliranu vistu, pa mi kompajler ne radi.
jel bi mogao netko uskocit da mi ovaj programcici pretvori u .hex?

Code: Select all

OUTPUT PORTB.7
OUTOUT PORTB.6

pocetak:
HIGH PORTB.7
LOW PORTB.6
PAUSE 600000
LOW PORTB.7
LOW PORTB.6
PAUSE 500
LOW PORTB.7
HIGH PORTB.6
PAUSE 500
GO TO pocetak
END
ovaj program bi trebao upaliti relej, drzati ga ukljucenim 10min,
onda ga iskljuciti i cekati 0,5s
nakon toga upaliti drugi i drzati ga ukljucenim 10min.
nakon 10min iskljuciti, pricekati 0,5s i krenuti ispocetka.

unaprjed hvala
Sačuvajte drveće => pojedite dabra.
User avatar
sindja1204
Odlično uznapredovao
Odlično uznapredovao
Posts: 792
Joined: 03-05-2009, 11:57
Location: Beograd

Re: radovi forumasa sa ubrzanog kursa pbp

Post by sindja1204 »

Imas male greske u kodu, i nece ti izvrsavati komande kako si zamislio

Code: Select all

OUTPUT PORTB.7
OUTPUT PORTB.6

pocetak:
HIGH PORTB.7
LOW PORTB.6
PAUSE 60000
LOW PORTB.7
LOW PORTB.6
PAUSE 500
LOW PORTB.7
HIGH PORTB.6
PAUSE 500
Goto pocetak
END

hex

Code: Select all

:1000000028288F018E00FF308E07031C8F07031CEA
:10001000232803308D00DF300F2003288D01E83EB8
:100020008C008D09FC30031C18288C070318152838
:100030008C0764008D0F15280C181E288C1C222894
:1000400000002228080083130313831264000800B1
:10005000831686130613831286178316861383125C
:100060000613831606138312EA308F0060300220D5
:1000700086138316861383120613831606138312C0
:1000800001308F00F430022086138316861383120A
:10009000061783160613831201308F00F4300220F6
:0600A0002C28630051282A
:02400E00F53F7C
:00000001FF
User avatar
sindja1204
Odlično uznapredovao
Odlično uznapredovao
Posts: 792
Joined: 03-05-2009, 11:57
Location: Beograd

Re: radovi forumasa sa ubrzanog kursa pbp

Post by sindja1204 »

Sa ovim kodom funkcionise

Code: Select all

OUTPUT PORTB.7
OUTPUT PORTB.6

pocetak: 
portb=0
HIGH PORTB.7
pause 60000
low PORTB.7
pause 500
high PORTB.6
pause 60000
low PORTB.6
pause 500



Goto pocetak
END
HEX

Code: Select all

:1000000028288F018E00FF308E07031C8F07031CEA
:10001000232803308D00DF300F2003288D01E83EB8
:100020008C008D09FC30031C18288C070318152838
:100030008C0764008D0F15280C181E288C1C222894
:1000400000002228080083130313831264000800B1
:10005000831686130613831286018617831686136A
:100060008312EA308F0060300220861383168613D5
:10007000831201308F00F430022006178316061316
:100080008312EA308F0060300220061383160613B5
:10009000831201308F00F43002202C2863004E2898
:02400E00F53F7C
:00000001FF
Ovo je vreme za min. Ubaci jos u kod naredbu For i=1 To 10 Da bi dobio pauzu od 10 min.
VFDisplay
Odlično uznapredovao
Odlično uznapredovao
Posts: 515
Joined: 01-08-2009, 20:18

Re: radovi forumasa sa ubrzanog kursa pbp

Post by VFDisplay »

pedja089 wrote:Za programiranje ti treba RB6,RB7,MCLR,Vcc i GND.
I to spajas bez obzira koji je pic u pitanju. I za 12XXX isti pinovi samo sto umesto RB6 i RB7 idu GP0 i GP1...
Ne znam kojim redom, lako se proveri u datasheetu...
nažalost neće da ga programira....
prepozna koji je pic (što znaći da je dobro spojeno) ali neće ga izprogramirati prikaže mi grešku!
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7877
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: radovi forumasa sa ubrzanog kursa pbp

Post by pedja089 »

Nesto nisi dobro spojio, ja to stalno radim. Proveri imas li 13V na mclr.
VFDisplay
Odlično uznapredovao
Odlično uznapredovao
Posts: 515
Joined: 01-08-2009, 20:18

Re: radovi forumasa sa ubrzanog kursa pbp

Post by VFDisplay »

napon mi varira ali maksimalni je samo 5v
kako da ga povećam?
koristim ovaj programator: http://www.elektronika.ba/118/pic-programator-v1/" onclick="window.open(this.href);return false;
Post Reply