Potrebna pomoc oko pisanja koda za led displej bez dekodera
Moderators: pedja089, stojke369, [eDo], trax
Potrebna pomoc oko pisanja koda za led displej bez dekodera
Do sada sam uvek pisao kod sa dekoderom gde je u upotrebi sdmosegmentni displej jer se koristi manji broj pinova ali sada sam probao bez dekodera i nikako da mi proradi.Gledao sam ovde na forumu ali sve sto sam pronasao bilo je sa dekoderom pa bih zamolio ako neko ima da postavi bilo kakav kod (dovoljno i sa tri cifre) gde je u upotrebi sedmosegmenti displej,nesto kao brojac ili merac frekvencije gde je u upotrebi samo pic.Dovoljan mi je samo jedan primer i snacicu se.Skinuo sam sa interneta u pdf-u 'BASIC for PIC microcontrollers" gde ima nekoliko primera ali nije htelo ni sa njima da proradi.Ako neko ima nesto u vezi toga zamolio bih za pomoc.Svejedno za koji je pic pisano.
-
- Napredujem
- Posts: 118
- Joined: 11-09-2014, 04:03
Re: Potrebna pomoc oko pisanja koda za led displej bez dekod
Ja sam se s tim prije igrao pisao programe za ispis na sedmosegmentnim displayima ali u assembleru. Nije ti neki problem to napisati nego sta treba da ispisuje, sta da mijeri, to vec zahtijeva vise vremena...
[url=https://www.viagrasansordonnancefr.com/ ... -ligne-or/]www.viagrasansordonnancefr.com sildenafil 100 mg ligne or[/url]
Re: Potrebna pomoc oko pisanja koda za led displej bez dekod
Meni treba kao frekvencmetar do nekoliko KHz,moze i sa naredbom COUNT ili sa upotrbom TMR0,svejedno mi je ali nikako mi neide da te brojeve posaljem na led displej dok sa lcd displejem mi ne pretstavlja nikakav problem da to napisem pa mi je zato potreban samo neki primer na tom fazonu gde se nesto broji (pritisak tastera ili neki drugi spoljni inpuls) i broj se salje na led displej.Dovoljan je i primer sa dve cifre a ostalo cu lako da dodam.Na pr ovako ali bez dekodera.
TRISB=0
TRISA=255
BROJ VAR WORD
BROJ1 VAR BYTE
BROJ2 VAR BYTE
BROJ3 VAR BYTE
BROJ4 VAR BYTE
I VAR BYTE
POCETAK:
COUNT PORTA.0,1000,BROJ
REZULTAT = BROJ * 60
BROJ1 = BROJ DIG 3 'izdvajamo hiljde
BROJ2 = BROJ DIG 2' izdvajamo stotine
BROJ3 = BROJ DIG 1'desetice
BROJ4 = BROJ DIG 0'jedinice
FOR I = 1 TO 100
PORTB=BROJ1
HIGH PORTB.7
PAUSE 5
LOW PORTB.7
PORTB=BROJ2
HIGH PORTB.6
PAUSE 5
LOW PORTB.6
PORTB=BROJ3
HIGH PORTB.5
PAUSE 5
LOW PORTB.5
PORTB=BROJ4
HIGH PORTB.4
PAUSE 5
LOW PORTB.4
NEXT I
GOTO POCETAK
TRISB=0
TRISA=255
BROJ VAR WORD
BROJ1 VAR BYTE
BROJ2 VAR BYTE
BROJ3 VAR BYTE
BROJ4 VAR BYTE
I VAR BYTE
POCETAK:
COUNT PORTA.0,1000,BROJ
REZULTAT = BROJ * 60
BROJ1 = BROJ DIG 3 'izdvajamo hiljde
BROJ2 = BROJ DIG 2' izdvajamo stotine
BROJ3 = BROJ DIG 1'desetice
BROJ4 = BROJ DIG 0'jedinice
FOR I = 1 TO 100
PORTB=BROJ1
HIGH PORTB.7
PAUSE 5
LOW PORTB.7
PORTB=BROJ2
HIGH PORTB.6
PAUSE 5
LOW PORTB.6
PORTB=BROJ3
HIGH PORTB.5
PAUSE 5
LOW PORTB.5
PORTB=BROJ4
HIGH PORTB.4
PAUSE 5
LOW PORTB.4
NEXT I
GOTO POCETAK
-
- Napredujem
- Posts: 118
- Joined: 11-09-2014, 04:03
Re: Potrebna pomoc oko pisanja koda za led displej bez dekod
Jesi li ti taj sklop spojio na matadoru i povezao sedmosegmentne brojace sa kontrolerom?
[url=https://www.viagrasansordonnancefr.com/ ... -ligne-or/]www.viagrasansordonnancefr.com sildenafil 100 mg ligne or[/url]
Re: Potrebna pomoc oko pisanja koda za led displej bez dekod
Nisam jos nista pravio.Kako da kazem,znam da neznam to da napisem i za sad sam probao iz proteusa pa ako proradi onda bih napravio.Ne sumnjam da me zeza proteus jer mi slicne stvari rade sa lcd displejem a inace imam sklopljenu plocicu sa cetvorocifrenim led displejem,cetiri tranzistora pnp za displej i 16f628A i ostalo vezano za pic a porta mi je slobodan.To sam pravio za probu bilo cega vezanog za pic sa 18 pinova,tj to mi je kao probna plocica
-
- Napredujem
- Posts: 118
- Joined: 11-09-2014, 04:03
Re: Potrebna pomoc oko pisanja koda za led displej bez dekod
Ti pnp tranzistori koje spominjes su za pojedino ukljucivanje cifri, tj. ispis je multipleksirajuci. Ja stvarno nemam toliko vremena za pisanje koda. Ako ti se neko javi da ti uradi moras mu predloziti sve podatke i semu tog sklopa. Bilo ko da bi pisao softver mora znati kako su pojedini pinovi kontrolera spojeni sa pojedinim segmentima.
[url=https://www.viagrasansordonnancefr.com/ ... -ligne-or/]www.viagrasansordonnancefr.com sildenafil 100 mg ligne or[/url]
Re: Potrebna pomoc oko pisanja koda za led displej bez dekod
Nemora niko da se muci sa pisanjem koda,meni je dovoljan samo bilo kakav primer nekog brojaca gde se na displeju ispisuju brojevi,na pr pocinje nesto da broji pa ispise br 1 pa 2 i td. Samo me interesuje kako se pisu komande da se ukljicuju cifre-multiplex jedna za drugom i iz naredbe "Lookup" da se izvuce i pojavi broj na displeju,takodje svejedno da li je kod za pnp ili npn tranzistore.Meni traba samo neki primer ako neko vec nesto ima pa da se ne muci sa pisanjem jer nenalazim nista konkretno na internetu a ostalo cu sam da prilagodim.Hardver mi je najmanji problem,radim elektroniku preko dvadeset godina i sa tim cu lako ali sam sa pisanjem programa bas na staklenim nogama.Znaci bilo sta slicno ako neko ima a da se niko ne maltretira da zbog mene pise ceo kod
Re: Potrebna pomoc oko pisanja koda za led displej bez dekod
Evo jednog koda koji sam sada nabrzinu prekucao i koji neradi.On je za interni brojac ali mislim da mogu da ga prepravim za externi ra4 tocki pin.Samo neznam sta da izmenim da uopste proradi.Nezamerite ako ima neka greska u kucanju jer sam to sada kucao nabrzinu,inace ako ovo proradi bilo bi mi i vise nego dovoljno.
Digit var byte
Mask var byte
W var byte
I var byte
Led1 var porta.1
Led2 var porta.2
Trisa=%00000000
Trisb=%00000000
Led1=0
Led2=0
Intcon=%00100000
Option_reg=%10000000
On interrupt goto ISR:
Intcon=%10100000
W=0
Main
For I = 1 to 99
w=w+1
gosub prepare
pause 500
next i
goto main
prepare
digit=w dig 1
gosub bin2seg
mask=digit
digit = w dig 0
gosub bin2seg
mask=digit
return
bin2seg
lookup digit,[$3f,$06,$5b,$4f,$66,$6d,$7d,$07,$7f,$6f],mask
return
disable
isr:
portb=mask
Led2=1
Pause 1
Led2=0
Portb=mask
Led1=1
Pause 1
Led1=0
Intcon.2=0
Resume
Enable
end
Digit var byte
Mask var byte
W var byte
I var byte
Led1 var porta.1
Led2 var porta.2
Trisa=%00000000
Trisb=%00000000
Led1=0
Led2=0
Intcon=%00100000
Option_reg=%10000000
On interrupt goto ISR:
Intcon=%10100000
W=0
Main
For I = 1 to 99
w=w+1
gosub prepare
pause 500
next i
goto main
prepare
digit=w dig 1
gosub bin2seg
mask=digit
digit = w dig 0
gosub bin2seg
mask=digit
return
bin2seg
lookup digit,[$3f,$06,$5b,$4f,$66,$6d,$7d,$07,$7f,$6f],mask
return
disable
isr:
portb=mask
Led2=1
Pause 1
Led2=0
Portb=mask
Led1=1
Pause 1
Led1=0
Intcon.2=0
Resume
Enable
end
-
- Napredujem
- Posts: 118
- Joined: 11-09-2014, 04:03
Re: Potrebna pomoc oko pisanja koda za led displej bez dekod
Imam nekih primjera u assembleru sto ti vijerujem me odgovara. Ja nisam ljubitelj Basic-a a jos manje C-a tako da ti mogu dati samo ideju na koji nacin da napises te algoritme. Ukoliko ti Basic u kojem pises nije toliko stran i znas osnovnu sintaksu mogu ti pomoci...
[url=https://www.viagrasansordonnancefr.com/ ... -ligne-or/]www.viagrasansordonnancefr.com sildenafil 100 mg ligne or[/url]
Re: Potrebna pomoc oko pisanja koda za led displej bez dekod
Asembler uopste ne poznajem ali ako mozete u nekoliko recenica da napisete sta i kako pa da probam,nemojte previse da se mucite zbog mene,ukratko pa valjda cu da se snadjem.
Re: Potrebna pomoc oko pisanja koda za led displej bez dekod
Vec ima na forumu napisano u pic basicu...
Re: Potrebna pomoc oko pisanja koda za led displej bez dekod
Trazio sam i nikako da nadjem,napisite mi bar u kojoj je temi pa da nadjem jer mozda malo i od umora pa da sam samo presao preko toga a da nisam ni video
-
- Napredujem
- Posts: 118
- Joined: 11-09-2014, 04:03
Re: Potrebna pomoc oko pisanja koda za led displej bez dekod
Evo ovako da probam... Trebas imati jednu petlju koja ce se osvijezavati svako nekoliko ms. to mozes izvesti sa TMR0 i njegovim interaptom. U toj petlji prvu promijenljivu koja treba da se ispise, nakon BCD konverzije, kopiras na port na kojem su ti povezani sedmosegmentni dekoderi. Ponovnim ulaskom u tu petlju trebas imati i jednu promijenljivu koja odredzuje koji segment je trenutno aktivan za ispis. Ona govori koja decimalna tezina, hiljade, stotine, desetine ili jedinice je aktivna. Tu promijenljivu uvecavas za 1 svakim ulaskom u petlju sve dok neispises zadnju cifru tj. jedinice nakon kojeg je resetujes. Naravno trebas imati i podprogram u kojem ces vrsiti BCD konverziju sto dodatno komplikuje program. Ovo je samo u kratkim crtama ispisano i tesko je razumljivo. Ako ipak ne uspijes najbolje bi bilo kako kaze pedja da pogledas temu o PicBasic-u gdje je vec pisano o tome, i gdje su postavljani konkretni primjeri Basic koda koje bi vijerovatno trebao malo modifikovati za svoj sklop. Pozz
[url=https://www.viagrasansordonnancefr.com/ ... -ligne-or/]www.viagrasansordonnancefr.com sildenafil 100 mg ligne or[/url]
Re: Potrebna pomoc oko pisanja koda za led displej bez dekod
http://www.elektronika.ba/forum/viewtop ... 9&start=33
Samo spoji umesto na dekoder direktno pinove displeja na pic. I iskoristi primer za jedan displej, i ovo za multipleks. Ovo je objasnjeno na najjednostavniji moguci nacin, bez tajmera, interapta itd...
Samo spoji umesto na dekoder direktno pinove displeja na pic. I iskoristi primer za jedan displej, i ovo za multipleks. Ovo je objasnjeno na najjednostavniji moguci nacin, bez tajmera, interapta itd...
Re: Potrebna pomoc oko pisanja koda za led displej bez dekod
Ok.Probacu veceras kad dodjem sposla,trebalo bi da se snadjem.
Re: Potrebna pomoc oko pisanja koda za led displej bez dekod
Probao sam ovih nekoliko dana sve sto sam znao ali ne ide nikako ni na plocici ni u proteusu pa sad sta je tu je,bice ponovo sa lcd displejem.U svakom slucaju hvala vam svima na savetima i na pomoc.Nedavno sam kupio knjigu od Voje Milanovica i za nepoverovati da o led displeju skoro da nema nista osim nekog primera sa kolom SAA1064.Hvala vam jos jednom.
Re: Potrebna pomoc oko pisanja koda za led displej bez dekod
Evo točno ono što ti treba
Link: http://melabs.com/samples/PBP-mixed/7segment.htm
Shema za taj primjer izvedena na PIC16F84
Link: http://melabs.com/samples/PBP-mixed/7segment.htm
Shema za taj primjer izvedena na PIC16F84
Re: Potrebna pomoc oko pisanja koda za led displej bez dekod
Hvala Maki,taj kod radi i broji do 9999 a u proteusu nece tako da za sada koristim samo probnu plocicu na kojoj radi bez greske.Pokusavam sada da to preradim da bude na pritisak tastera,savki pritisak tastera da uveca za 1 pa sam koristio isti primer kao iz prethodne teme koju sam postavio u vezi upisa u eeprom jer tu je lepo odradjeno da se nepojavljuje lazno brojenje zbog otskakanja tastera.Evo u prilogu "proba" kako sam to probao i na displeju su samo osmice pa ako moze neko bar ukratko da mi kaze gde gresim a u drugom prilogu je kod sa lcd koji radi i gde bih umesto lcd stavio led displej.Iskren da budem nebih davio ali mnogo puta sam stavljao pic u programator pa na plocicu i otanjio sam mu pinove tako da ce uskoro neki da se otkine.Ustvari probao sam da iz koda koji mi je dao Maki prebacim komande za led displej u ovom drugom kodu.
Re: Potrebna pomoc oko pisanja koda za led displej bez dekod
Nije mi se pojavio prilog u text document pa da postavljam ovako ovo sto sam probao da napisem.
Code: Select all
cmcon=7
brojac var byte
petlja var byte
taster_uk var bit
TRISA = %11110000
TRISB = $80
brojac=0
Segments Var PORTB
Digits Var PORTA
i Var Byte
n Var Byte
Value Var Word
cekaj_log0:
gosub proveri_ulaz
if taster_uk=0 then cekaj_log0
cekaj_log1:
gosub proveri_ulaz
if taster_uk=1 then cekaj_log1
brojac = brojac + 1
goto cekaj_log0
Value=brojac
For i = 0 To 3
n = Value Dig i
GoSub display1
Pause 1
Next i
Return
display1:
Digits = $ff
Lookup n, [$40, $79, $24, $30, $19, $12, $02, $78, $00, $18], Segments
Digits = ~Dcd i
proveri_ulaz:
taster_uk=0
for petlja=0 to 100
if PORTA.4=1 then return
pauseus 100
next petlja
taster_uk=1
return
end
Re: Potrebna pomoc oko pisanja koda za led displej bez dekod
Probaj ovako:
Code: Select all
cmcon=7
brojac var byte
petlja var byte
TRISA = %11110000
TRISB = $80
brojac=0
Segments Var PORTB
Digits Var PORTA
i Var Byte
n Var Byte
Value Var Word
Pocetak:
IF porta.4 =1 then
brojac = brojac +1
pause 100
end if
Value=brojac
For i = 0 To 3
n = Value Dig i
GoSub display1
Pause 1
Next i
Return
display1:
Digits = $ff
Lookup n, [$40, $79, $24, $30, $19, $12, $02, $78, $00, $18], Segments
Digits = ~Dcd i
return