Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
Na igen!
![]() Igazából én arra volnék kiváncsi hogy lehet-e egy F877A-val 12db-ot. A port persze elég lenne rá, csak azt nem tudom hogy lehetne-e olyan gyorsan váltani hogy ne vibráljon és a számok ne "csúsznak össze"--ennél jobb kifejezést nem találtam.
A szegmensek számát összeadod a digitek számával és megkapod hogy hány I/O láb kell. A multiplexálás frekvenciája már nem igazán probléma mert a PIC igen gyors.
100Hz-en már nem villódzanak a kijelzők. Ha mondjuk 8db digitet szeretnél akkor ez 800Hz-et jelent.
Lehet. Nem a PIC sebessége a korlát a ráakasztható kijelzők számának, hanem a lábak száma. Digitek vagy szegmensek száma (amelyikből több van) plusz 1 láb kell legalább a meghajtásra. Ha másodpercenként 100-szor kapcsolsz egy kijelzőt, akkor 12 kijelzőnél 1200-szor kell egy másodperc alatt arrébbkapcsolni. Az arrébbkapcsolás meg mondjuk a megszakítás lekezelésével együtt 25-30 utasításciklust foglal el, vagyis 4MHz-es órajelnél is 5% alatti processzoridőt visz el a 12 kijelző kezelése.
Akkor sem értem, miért megy asm-ban és miért nem c-ben. Minden esetre akkor berakok valami lat regiszter szerűséget c-ben.
A bank váltás kódja benne volt a késleltetésben, így azt is töröltem véletlen mikor kiszedtem a komplett késleltető rutint, hogy ne legyen átláthatatlan a program.
Adatlap TABLE 5 táblázatának RB4 sorában az Analog oszlopban látsz-e valamit?
4543-as kombinációra gondoltam, és akkor elég 4db láb a szegmensekre. Illetve marad +12 láb a digitre.
hmm! Sajnos a 7 szegmenses 12db kijelző feltétel. Ráadásul ezek mellé még valami gombot/érzékelőt is akanak rakni.
![]()
Igen, akkor három lábat megspórolsz. Cserébe egy IC-vel nagyobb lesz a nyák/többe fog kerülni/bonyolultabb lesz stb. Mérlegelni kell hogy mi a fontosabb. Illetve ha a PIC kezeli a szegmenseket közvetlen, akkor lehet más karaktereket is kijelezni. Nekem például szerencsém van mert PA a monogramom...
![]()
Felesleges a 4543, önmaga nem elég egy szegmens meghajtására áram szempontjából, ha akarod, hogy világítson is a kijelző. Akkor már inkább TPIC 6595N, de nyolc apró bipoláris tranzisztor is tökéletesen megfelelő. A digitek meghajtására ugyanígy kell valami, arra is bipoláris tranzisztor tökéletes. Lábból elég 13 is, ha kicsivel bonyolultabb nyáktól nem ijedsz meg. A 16F877-nek van 33 IO célra használható lába, a maradék 20 csak elég lesz gomboknak meg érzékelőnek. De ha csak a klasszikus multiplexelést csinálod, akkor is 20 láb kell a kijelzőnek, marad 13 a gomboknak meg szenzornak.
Én is ilyen multiplexeres kijelzős cuccal kezdtem a PIC-es pályafutásomat, de még ma is itt vannak a fiókban az akkor vásárolt valami hasonló 4xxx-es IC-k, mert nem volt rájuk szükség.
Igaz!
Közben beugrott hogy az kevés. Van egy kapcsolásom még technikusi korszakomból, amiben a 4543 után ULN2003 van. De így már lényegesen nagy nyák lenne, ami nem előnyös. Egyelőre parkolópályára teszem a dolgot, mert még nem bólintottak rá véglegesen. Ez valami számláló lenne, amire valami érzékelő és reset kapcsoló kerül. Mondjuk azt nem értem minek ennyi digit...
Oh, tényleg! Ezt eléggé benéztem.. ANSELH = 0; után már megy RB4 = !RB4; utasítás is.
Más: MPLAB- ot hogyan lehet rábírni hogy szimpla buildnál a config bitek is kerüljenek bele a hexbe? Most ez a legfrissebb nem teszi bele, csak ha file-exportal csinálom a hexet a fordítás után. Régebbi (8.15 volt fent ezelőtt) beletette szimpla buildnál is. (PK2 őt akarom használni a külső programjával)
Rakd a konfig beállítást is a kódba, akkor benne lesz a kapott hex-ben is elvileg. Bár ezzel az utóbbi MPLAB-al még nem csináltam semmit, nem értem rá mostanában picezni.
Sok digitnél az lehet az akadály, hogy az 1 egységre jutó időben akkora árammal kellene megpumpálni a kijelzőt, amit már adatlap szerint nem lehet.
Pl. lehet olyasmiket látni adatlapokban, hogy a folyamatos áram a szegmenseken maximum 30mA (üzemszerűen 20mA), impulzusszerűen pedig maximum 100mA (mondjuk 100us-os impulzusra megadva). Ha 12 digitre osztjuk el, akkor a 100mA-es csúcsáram az 1/12-ed résszel, azaz 8.3mA DC-vel ekvivalens. Lehet, hogy az adott kijelzőnél ez már kevés fényerőt fog eredményezni. Ilyenkor nincs mit tenni, mint legalább két félre szétbontani a kijelzősort. Valószínűleg a 12 nem olyan sok, hogy ez az eset fennálljon, főleg, hogy a szemünk fényerőérzékelését a multiplexelt kijelzők átverik. Azaz nem olyan fényesnek fogjuk látni a 100mA-es, 1/12 idejű multiplexelt kijelzőt, mintha DC 8.3mA-rel hajtanánk a szegmenseket, hanem attól sokkal fényesebbnek. Én egy hatos kijelzősort építettem nemrég, abban Kingbright SA52-es zöld kijelzők vannak, a közös anódokat tranzisztorokkal hajtom, de a szegmenseket közvetlenül a PIC hajtja 33 ohm-os ellenállásokkal (elvileg 10mA körüli áram). Ennek ellenére nagyon fényesnem látszik, nappal is látható. Itt egy fotó róla, pedig a fotózás miatt az asztali lámpa szinte telibe világítja, mégis olvasható (kéne elé ablak is, hogy a kijelző "arca" ne legyen ennyire zavaró): Bővebben: Link
Nekem is pont az jutott eszembe, hogy a szegmenseket is tranyókkal, vagy maghajtó IC-vel kell meghajtani egy bizonyos digitszám felett... Meg az is, hogy egy ilyen kapcsolást elég óvatosan szabad csak debuggolni!
![]()
Belinkeltem egy képet! Tehát 12db kijelző esetén ez nem lenne jó? Mármint az hogy egy az egyben a portra kössem a szegmensek lábait. Gondolom a driver IC vagy tranyó az esetembe nem maradhat el. Jól gondoltam akkor tegnap, a nyák nagyobbacska lesz.
Sziasztok
Tudna valaki olyanba segiteni a MCS8051 hez keresek programot amivel irni olvasni tudnám. Halottam A KELI nevü progirol üdv ![]()
Willem EPROM programmer!
De ehez kell az égető áramkör is! http://mpu51.tripod.com/eprom/eprom.html
Próbáld ki egy szegmenssel! Ha jól világít, akkor nem kell meghajtó. De biztos, hogy kisebb ellenállás kell, mint 270ohm. De próbáld ki!
Oké! Majd egy próbanyákon megnézem.
Köszi!
Kicsit konkrétabban kellene kérdezni, mert az MCS51 egy család. Van MCS51-es kontrollere az Intelnek, a Dallasnak és az Atmelnek is (meg még ki tudja, hány gyártónak), és mindet máshogy kell programozásilag megszólítani.
Abból is van sok, EPROM-os, egyszer programozható, meg hasonlók.
Mondjuk, hogy jó, de a meghajtó tranzisztoroknál a bázisellenállásokat meg lehet spórolni, ha közös kollektoros (másnéven emitterkövető) kapcsolásban hajtod. Az említett rajzon ez úgy nézne ki, hogy a 2N3906 helyett valami NPN tranzisztor (pl. BC546), aminek a bázisa direktben megy a PIC lábára, kollektora megy az 5V-ra, és az emittere megy a kijelző közös anódjára. Ugyanezt az alsó oldalon is, csak ott PNP tranzisztorral (BC556), kollektor megy a GND-re, és az emitterek mennek egy-egy soros ellenállással a szegmensvezetékekre, bázis meg szintén direktben a PIC-re. Nálad így 20db bázisellenállást spórolhatsz meg. Közös katódos kijelzőnél meg értelemszerűen megcseréled a két oldalt.
Szia !
A 33 ohm nem kicsi ( 330 ohm akart lenni vagy nem 5V-ról dolgozol?) ![]() Steve
Ha jól értettem 6 felé osztja és a LED-ek nyitófeszét ki kell még vonni, akkor marad 3,6V ami LED-enként így 18mA effektív, 100mA impulzus.
De lehet, hogy tényleg elírta! ![]()
Üdv mindenkinek!
Meg szeretném építeni Ezt Az égetőt,DE újfajta az alaplapom és nem tudom elég-e neki annyi amennyit ez kiad,vagy inkább csináljak neki külső pl:dugasztápot?Alaplapom típusa:ASUS P5P41D. Várom a válaszokat!
Nem írtam el, ha jól emlékszem, tényleg 33 ohm-okat tettem be (de maximum 75 ohm). Az eredeti PICkit2-ből vettem az ötletet, a merészséget (ott talán 10 ohm van a kapcsolásban!).
Ezeknek a LED-eknek 2V körüli nyitófeszültségeket szoktak megadni, a digitkapcsoló tranzisztorokon is esik legalább fél volt, így maximum 2.5V-ra kell számolni a 33 ohm-ot, ami elvileg ~75mA, de a kimenet karakterisztikája miatt sokkal kevesebb. Annak idején itt a fórumon is volt róla szó, találtunk is olyan áram-feszültség grafikonokat, amik alapján a 33 ohm-os terhelésnél még a PIC 25mA-ében is benne van a kimenő áram. Ha sikerül, megnézem szkóppal a 33 ohm-okon, hogy a valóságban mennyi az annyi, de tippem szerint 20mA sincs. Persze lehetne elegánsabban is csinálni, főleg, ha 16F-fel dolgozik az ember, mert ott az ennyire terhelt kimenetnél felléphetnek az RMW hibák is. Én 18F-fel dolgozom, és a szegmensekre épp ezért egy teljes portot használtam fel, amit mindig csak teljes byte-tal írok. |
Bejelentkezés
Hirdetés |