|
Svet elektronike Revija za prave elektronike
|
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
dkone Profesionalec
Pridružen/-a: Sob Dec 2005 17:03 Prispevkov: 176 Kraj: Krško
|
Objavljeno: Ned Apr 08, 2007 7:32 pm Naslov sporočila: Priklop LED displaya - bascom |
|
|
Pozdravljeni!
V knjigi BASCOM - LT je shema priključitev LED displayev brez multipleksiranja. Iz sheme ne morem razbrati na kaj je priključen tranzistor in katere LED displayi so uporabljeni. Za druge priključitve vem. Ali mi lahko pošlje oz nariše shemo brez tiste skupne "cevi" povezav,tako da lahko razločno vidim povezave na vsaki pin ?
Lp,denis _________________ Lp,Denis |
|
Nazaj na vrh |
|
|
dkone Profesionalec
Pridružen/-a: Sob Dec 2005 17:03 Prispevkov: 176 Kraj: Krško
|
Objavljeno: Ned Apr 08, 2007 7:41 pm Naslov sporočila: |
|
|
še shema iz priporočnika:
Malo slabo se vidi. _________________ Lp,Denis |
|
Nazaj na vrh |
|
|
Gustav Profesionalec
Pridružen/-a: Pon Jun 2005 17:19 Prispevkov: 768
|
Objavljeno: Ned Apr 08, 2007 8:52 pm Naslov sporočila: |
|
|
Ti si objavil shemo, na kateri sta ocitno (res se slabo vidi na tvoji sliki pa se shema je zmedeno narisana, ker se ocitno prekriva bus s signali za segmente in anoda displaya ?!) dva displaya prikljucena multipleksirano.
Ce imas izvorno kodo programa, potem jo objavi, pa bo jasno kako so prikljuceni segmenti (stevilke se morajo nnamrec izpisati v cloveku razumljivi obliki, pinout displayev pa je "standardiziran", kolikor je to potrosna elektronika le lahko ).
Aha, pa se to: displaycki so taki s skupno anodo.
Nazadnje urejal/a Gustav Ned Apr 08, 2007 8:56 pm; skupaj popravljeno 1 krat |
|
Nazaj na vrh |
|
|
igo Profesionalec
Pridružen/-a: Sre Okt 2006 17:57 Prispevkov: 85 Kraj: Krško
|
Objavljeno: Ned Apr 08, 2007 8:53 pm Naslov sporočila: |
|
|
Glede na PNP tranzistorje so uporabljeni LED displayi s skupno Anodo.
Bazo tranzistorja se "prizemlji", da tranzistor odpre. Tok steče skozi tiste segmente, ki so tudi "prizemljeni" preko uporov.
Tista skupna "cev" povezav je povsem enostavna.
Koda: |
(+)-------------------E------------------E
pinA-----[R]--------B pinB---[R]---B
C C
pin0-----[R]--0--|<|--| 0-------|<|--|
pin1-----[R]--1--|<|--| 1-------|<|--|
pin2-----[R]--2--|<|--| 2-------|<|--|
pin3-----[R]--3--|<|--| 3-------|<|--|
pin4-----[R]--4--|<|--| 4-------|<|--|
pin5-----[R]--5--|<|--| 5-------|<|--|
pin6-----[R]--6--|<|--| 6-------|<|--|
pin7-----[R]--7--|<|--' 7-------|<|--'
|
Točke 0...7 so Istoležne na vseh displajih. PinA krmili bazo TRa, pinB pa bazo TRb. Ker ima display 10 priključkov, ima najverjetneje 2 pina za (+) skupno Anodo.
Če uporabiš displaje s skupno katodo, uporabiš NPN tranzistorje in pozitivno logiko pri programiranju - "1" vklopi, "0" izklopi. Zdaj je namreč Negativna.
LP,
Igor _________________ Teoretično je praksa posledica teorije, praktično je pa ravno obratno. (igo 2001) |
|
Nazaj na vrh |
|
|
Gustav Profesionalec
Pridružen/-a: Pon Jun 2005 17:19 Prispevkov: 768
|
Objavljeno: Ned Apr 08, 2007 8:58 pm Naslov sporočila: |
|
|
Atmelovi kloni x51 imajo x51-kompatibilne (t.i. "quasi-bidirectional") I/O pine, ki ne zmorejo dati od sebe omembe vrednega toka, lahko pa pozrejo ~20 mA, kar je dovolj za priziganje LEDic. Pri njih je mozna samo taka vezava, kot je narisana na sliki (s skupno anodo). |
|
Nazaj na vrh |
|
|
dkone Profesionalec
Pridružen/-a: Sob Dec 2005 17:03 Prispevkov: 176 Kraj: Krško
|
Objavljeno: Ned Apr 08, 2007 9:05 pm Naslov sporočila: |
|
|
Gustav je napisal/a: | Ti si objavil shemo, na kateri sta ocitno (res se slabo vidi na tvoji sliki pa se shema je zmedeno narisana, ker se ocitno prekriva bus s signali za segmente in anoda displaya ?!) dva displaya prikljucena multipleksirano.
Ce imas izvorno kodo programa, potem jo objavi, pa bo jasno kako so prikljuceni segmenti (stevilke se morajo nnamrec izpisati v cloveku razumljivi obliki, pinout displayev pa je "standardiziran", kolikor je to potrosna elektronika le lahko ). |
Ja res je,tale BUS me moti in ne vidim na kaj je priključen tranzistor. Kot je izbrano je baza tranzistorja priključena na port 3 kontrolerja,to lahko razberem.
Koda iz priporočnika:
Koda: | 'Dolocanje tipa spremenljivk
Dim Clock As Byte , Clock1 As Byte , Mux As Byte , Sekunde As Byte , X As Byte
Dim Pomozna_v As Byte , Segmenti As Byte , Enice As Byte , Desetice As Byte
Dim Prikaz As Bit , Izracun As Bit
Config Timer0 = Timer , Gate = Internal , Mode = 2 'konfiguriramo Timer
'Timer0 uporabimo timer 0
'gate = Internal 'brez zunanje prekinitve(interupt)
'Mode = 2 8 bit auto reload
On Timer0 Timer_0_int 'prekinitvena rutina
Load Timer0 , 250 'nalozimo v timer0 vrednost 250 µsek
Priority Set Timer0 'prioriteta dolocena timerju0
Enable Interrupts 'omogocimo prekinitve
Enable Timer0 'omogocimo delovanje timerja0
Start Timer0 'startamo timer0
Clock = 0 'dolocimo zacetne vrednosti spremenljivk
Clock1 = 0 'dolocimo zacetne vrednosti spremenljivk
Sekunde = 0 'dolocimo zacetne vrednosti spremenljivk
Do 'zacetek DO-LOOP neskoncne zanke
If Izracun = 1 Then 'Izracun = vsako sekundo
Izracun = 0
'................................................................................
'.Rutina za dolocanje desetic in enic
Desetice = Sekunde / 10
Pomozna_v = Desetice * 10
Enice = Sekunde - Pomozna_v
'................................................................................
End If
If Prikaz = 1 Then 'prikaz na displeju samo, ko je Prikaz=1
Prikaz = 0
P1.0 = 1 'postavi P1.0 na 1, vklopi tranzistor
'................................................................................
'rutina za prikaz enic
Pomozna_v = Enice
Gosub Prikaz .pojdi na subrutino Prikaz
P1.0 = 0
'................................................................................
End If
Loop 'konec DO-LOOP zanke
End 'konec programa
'................................................................................
'prekinitvena rutina
Timer_0_int:
Incr Clock 'povecaj Clock za 1
If Clock > 19 Then 'ko bo Clock vecji od 19
Clock = 0 'ga resetiraj na 0
Prikaz = 1 'omogoci prikaz
Incr Clock1 'povecaj Clock1 za 1
If Clock1 > 199 Then 'ko bo Clock1 vecji od 199
Clock1 = 0 'ga resetiraj na 0
P1.7 = Not P1.7 'kontrolni bit
Izracun = 1 'postavi Izracun na 1
Incr Sekunde
If Sekunde > 59 Then
Sekunde = 0
End If
End If
End If
Return
'................................................................................
'rutina za prikaz na LED displeju
Prikaz: 'pazi na napako:dvopicje mora biti
'zraven brez presledka
Restore Tabela 'nalozi Tabelo v spomin
For X = 0 To 9 'od X = 0 do X = 9
Read Segmenti 'preberi iz Tabele vrednost in jo
'preslikaj v spremenljivko z imenom Segmenti
If X = Pomozna_v Then 'ce je X = pomozna_v potem
P3 = Segmenti 'prikazi Segmenti na portu P3
Exit For 'konec FOR zanke
End If
Next
Return
'... podatki za pravilen prikaz stevilk na LED displeju ...
Tabela:
Data 3, 159, 38, 14, 154, 74, 66, 31, 2, 10 |
Hvala za pomoč. _________________ Lp,Denis |
|
Nazaj na vrh |
|
|
dkone Profesionalec
Pridružen/-a: Sob Dec 2005 17:03 Prispevkov: 176 Kraj: Krško
|
Objavljeno: Ned Apr 08, 2007 9:12 pm Naslov sporočila: |
|
|
Potem, če prav razumem je kolektor priključen na anodi na display,ki ima dve anodi. v shemi je pnp tranzistor, se pravi da ga z "0" prižigam. _________________ Lp,Denis |
|
Nazaj na vrh |
|
|
dkone Profesionalec
Pridružen/-a: Sob Dec 2005 17:03 Prispevkov: 176 Kraj: Krško
|
Objavljeno: Ned Apr 08, 2007 9:17 pm Naslov sporočila: |
|
|
datasheet od display-ov:
http://www.rapidonline.com/netalogue/specs/57-0110e.pdf
Malo sem poštudiral datasheet in sicer pin 3 in 8 na displayu povežem z kolektrorjem ostale pine pa z kotrolerjem.Ali je tako prav?Seveda z predupori. _________________ Lp,Denis |
|
Nazaj na vrh |
|
|
Gustav Profesionalec
Pridružen/-a: Pon Jun 2005 17:19 Prispevkov: 768
|
Objavljeno: Ned Apr 08, 2007 9:37 pm Naslov sporočila: |
|
|
Napisal sem eno traparijo, zato popravljam sporocilo:
Tranzistor (njegov kolektor) je prikljucen na anodo 7-segmentnega displaya. Ja, to pomeni, da prikljucis kolektor na obe anodi, ce tako zahteva datasheet (proizvajalec tako stvar jasno napise oz. narise).
Na koncu programa se nahaja tabela z desetimi vrednostmi (za cifre od 0, 1, ... do 9). Vsak ugasnjen bit pomeni en prizgan segment. Ce je "3" (binarno 00000011) stevilka 0, potem morata biti 1. in 2. bit porta P1, na katerega se vrednost najbrz izpisuje, srednji vodoravni segment in pa pika, ki sta pri nicli ugasnjena. "159" (10011111b) je stevilka 1, torej sta 6. in 7. bit skrajna desna segmenta. "38" (00100110b) je stevilka 2, ta ima na desni strani prizgan samo zgornji segment, torej je to 7. bit, 6. je torej desni spodnji, 1. bit mora biti srednji, torej je 2. pika. "14" (00001110b) je stevilka 3, ki ima vkljucene vse segmente razen obeh levih in pike, torej sta 3. in 4. oba leva in ker je pri stevilki 2 prizgan spodnji levi, je to 4. bit, zgornji levi pa je 3. bit. Ostala sta samo se zgornji in spodnji segment in ker je stevilka 7 videti kot 1, le da ima prizgan se zgornji segment, to pa predstavlja v tabeli "31" (00011111b), je ocitno zgornji segment 8. bit, za spodnji segment pa ostane samo se 5. bit.
Povzetek:
P1.0 = srednji (v datasheetu oznacen z G)
P1.1 = pika (DP)
P1.2 = zgornji levi (F)
P1.3 = spodnji levi (E)
P1.4 = spodnji (D)
P1.5 = spodnji desni (C)
P1.6 = zgornji desni (B)
P1.7 = zgornji (A) |
|
Nazaj na vrh |
|
|
dkone Profesionalec
Pridružen/-a: Sob Dec 2005 17:03 Prispevkov: 176 Kraj: Krško
|
Objavljeno: Ned Apr 08, 2007 9:59 pm Naslov sporočila: |
|
|
Hvala za pomoč. To vem da moram gledati "0". Oprostite ker nisem že prej povedal da bom to naredil z attiny2313.
V programu PINe spremenim v portd in portb. Vse lepo in prav,samo pri prevajanju mi kaže napako za timer:
Koda: | Config Timer0 = Timer , Gate = Internal , Mode = 2 |
in sicer:
Koda: | invalid parameter for CONFIG parameter or value [gate = internal] |
Sice ne vem kaj naj bi tole z GATE = INTERNAL pomenilo, ampak me preverjanje ne spusti mimo. Ali kd0 ve kaj bi bilo narobe?
Še enkrat hvala za pomoč. _________________ Lp,Denis |
|
Nazaj na vrh |
|
|
Gustav Profesionalec
Pridružen/-a: Pon Jun 2005 17:19 Prispevkov: 768
|
Objavljeno: Ned Apr 08, 2007 10:15 pm Naslov sporočila: |
|
|
Na Bascom se ne spoznam, ampak vecina MCUjev ima moznost delovanja vsaj enega timerja z zunanjim gate signalom, ki prepreci delovanje, dokler ni gate signal v ustreznem stanju. Ce je ta funkcija izkljucena, je timer popolnoma pod softversko kontrolo in je torej gate "internal". |
|
Nazaj na vrh |
|
|
Jure Urednik
Pridružen/-a: Pon Jan 2004 12:51 Prispevkov: 2132 Kraj: Ljubljana
|
Objavljeno: Ned Apr 08, 2007 11:07 pm Naslov sporočila: |
|
|
Hoj,
Bascom AVR tega ukaza za timer sploh ne pozna, zato ti svetujem, da pogledaš v Help in prepiši primer nastavitve timerja. Mislim, da bo dovolj samo tole:
Config Timer0 = Timer , Prescale = 1
Jasno, moral boš spremeniti tudi vrednosti spremenjivk v prekinitveni rutini. AVR je precej hitrejši kot 8051...
Kako program iz Bascom-8051 "prevesti" v Bascom-AVR smo pisali v reviji Svet elektronike:
Naslov: Uvod v Bascom AVR
Številka: 73
Stran: 61
Leto: 2001
Avtor: Jure Mikeln
Pa tudi v Helpu prav na začetku piše, kako presedlati iz Bascom-8051 na Bascom AVR.
Če boš imel še težave, se spet oglasi.
Lp
Jure |
|
Nazaj na vrh |
|
|
dkone Profesionalec
Pridružen/-a: Sob Dec 2005 17:03 Prispevkov: 176 Kraj: Krško
|
Objavljeno: Pon Apr 09, 2007 1:23 pm Naslov sporočila: |
|
|
Jure je napisal/a: | Hoj,
Bascom AVR tega ukaza za timer sploh ne pozna, zato ti svetujem, da pogledaš v Help in prepiši primer nastavitve timerja. Mislim, da bo dovolj samo tole:
Config Timer0 = Timer , Prescale = 1
Jasno, moral boš spremeniti tudi vrednosti spremenjivk v prekinitveni rutini. AVR je precej hitrejši kot 8051...
Kako program iz Bascom-8051 "prevesti" v Bascom-AVR smo pisali v reviji Svet elektronike:
Naslov: Uvod v Bascom AVR
Številka: 73
Stran: 61
Leto: 2001
Avtor: Jure Mikeln
Pa tudi v Helpu prav na začetku piše, kako presedlati iz Bascom-8051 na Bascom AVR.
Če boš imel še težave, se spet oglasi.
Lp
Jure |
Hvala G.Jure za infromacijo in pomoč. Jutri si grem sposodit tole revijo in stvar začel bolj študirat.
No, da mi danes ni bilo dolgcačas, sem si sestavil tole vezje z displayem, v programu spremenil spremenljivke in program vnesel v kontroler,povezal pine z displayom in priklopil. Iz vezja oz. displaya se ni nič zasvetilo. No, da ne bom šel z glavo skozi zid, bom jaz rajši prebral tisti članek,ki je bil objavlen v SE.
Še enkrat se zahvaljujem vsem. _________________ Lp,Denis |
|
Nazaj na vrh |
|
|
Gustav Profesionalec
Pridružen/-a: Pon Jun 2005 17:19 Prispevkov: 768
|
Objavljeno: Pon Apr 09, 2007 4:32 pm Naslov sporočila: |
|
|
AVR najbrz potrebuje kaksno nastavitev porta, saj je bolj moderna iznajdba kot 8051, ki lahko (v objavljeni razlicici) deluje samo na en nacin. Programov ne mroes kar transplantirati 1:1 |
|
Nazaj na vrh |
|
|
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu You cannot attach files in this forum You cannot download files in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|