Teade

Collapse

Foorumi reeglid.

Foorumi reeglistik on uuendatud. Palume tutvuda ja arvesse võtta.
See more
See less

Mure PIC16F84A-ga

Collapse
X
 
  • Filter
  • Kellaaeg
  • Show
Clear All
new posts

    Mure PIC16F84A-ga

    Tere,

    tegu on pic timeriga, mis töötab PIC16F84A peal.

    Mõte on nii et kasutan 7 segmendilisi displeisid ja igale displeile sean eraldi väärtuse. Mul on veel 2 vaba jalga mida kasutan sisenditena. Ühest annan impulssi peale et ta loendaks aktiivsele numbri kohale mingi väärtuse. Siis vajutaksin teist nuppu mis liigutaks aktiivse koha järgmise kohapeale.
    Probleem seisneb selles, kui ma kontrollin käsuga BTFSS sisendbitti, mis peaks liigutama edasi ühe koha võrra, aga see toimub kuskil maksimaalselt 5uS-iga. Sellepeale kui keegi selle nupu jõuab lahti lasta, siis on programm jõudnud viimase kohapeale juba.

    Kuidas saaks teha nii et ta kontrolliks sisend bitti, siis seaks kuskil registris lipu püsti ja hiljem kontrolliks selle biti suhtes sisendit.

    Sellisel juhul ei liiguks aktiivne numbri koht edasi enne seda kui on nupp lahti lastud ja siis uuesti vajutatud. Samas peab ta kuskil selles jadas kontrollima ka seda jalga kust annan peale signaali et loendada miskine väärtus displeile.

    Veel üks küsimus.
    Kas on võimalik kasutada 7 segmendilise displei korral mingit maatriks juhtimist et ma ei peaks vilgutama saaks kuvada otse.
    PS! ma ei kasuta punkti displeil

    Äitähh
    Goner
    Me elame vaid korra ja siis ka vaid iseendale.

    #2
    Vs: Mure PIC16F84A-ga

    Esmalt postitatud Goner poolt
    Probleem seisneb selles, kui ma kontrollin käsuga BTFSS sisendbitti, mis peaks liigutama edasi ühe koha võrra, aga see toimub kuskil maksimaalselt 5uS-iga. Sellepeale kui keegi selle nupu jõuab lahti lasta, siis on programm jõudnud viimase kohapeale juba.
    See on tuntud probleem, väljamaa keeles nimetatakse lahendust sõnaga debouncing. Ehk siis nupu vajutus annab tegelikult suvalise arvu vajutusi. Prose loeb need kõik kokku ja jõuab ka reageerida. Lahendus oleks:
    - testi kas nupp vajutet
    - kui jah,pane taimer käima ja testi aja lõppedes uuesti. kui siis vajutus puudub, oli häire, kui ikka olemas, loe vajutatuks ja säti mingi lipp.
    - nupu vabastamist testi samuti
    - lisaks kui oled täitnud nupu vajutamisele järgneva toimingu, ära enne uuele vajutusele reageei kui teatud aeg möödas või (veel parem) kui nupp pole lahti lastud.

    Otse loomulikult tasub 7-segmendi indikaatoreid multipleksida, muidu läheb juhtmeid liiga paljuks. Netist peaks piisavalt koodinäiteid leidma.
    Head PICutamist!
    - Vend Hieronymus tunneb Motorola toodete nimekirja kõige paremini, las tema ütleb.
    - Motorola poolt loodud kiipide hulgas ei ole teda üles tähendatud. - Tähendab: ta on Intelist!

    Comment


      #3
      Vs: Mure PIC16F84A-ga

      Esmalt postitatud felch poolt
      Otse loomulikult tasub 7-segmendi indikaatoreid multipleksida, muidu läheb juhtmeid liiga paljuks. Netist peaks piisavalt koodinäiteid leidma.
      Head PICutamist!
      Kui juba multipleksimisele läks, siis, kui mul neid 7 segmendilisis numbreid (koosnevad igayks 70st ledist, 20 cm kõrge nr) on kokku 25 tükki, kui ma nyyd neid numbreid järjest yhekaupa põleda lasen, kas siis silmale juba vilkumine näha ei jää ? 4 tükki toimis küll ilusti, aga 25 puhul tekib igal numbril juba oluliselt pikem "pime" aeg.

      Comment


        #4
        Vs: Mure PIC16F84A-ga

        Jah, võib hakata kül vilkuma. Aitab kui skaneerimise sagedust tõsta. Võimalik, et selle PICi 4MHz-ga ei mängi välja vaid peab võtma nt. PIC16F628 ja ta 20MHz peal tööle ajama. Oma displei prose lasin üldse 40MHzga käima, madalamal sagedusel tekkis oluline vilkumine.
        Skaneerimist on kasulik teha nt. taimeri katkestusega.
        - Vend Hieronymus tunneb Motorola toodete nimekirja kõige paremini, las tema ütleb.
        - Motorola poolt loodud kiipide hulgas ei ole teda üles tähendatud. - Tähendab: ta on Intelist!

        Comment


          #5
          Vs: Mure PIC16F84A-ga

          1/25 le on natuke suur harvendus , parem soovitaks neid grupeerida , 25 puhul see natuke raske ,aga vöikski 1/5 olla. peaksid ka arvestama et selline tabloo on väga suur elektromagnetlainete generaator. seega tasuks lülitusfronte aeglustada, kasvöi vötmetransistoridele kondensaatori lisamisega baasi ja kollektori vahele.

          Comment


            #6
            Vs: Mure PIC16F84A-ga

            Esmalt postitatud felch poolt
            Jah, võib hakata kül vilkuma. Aitab kui skaneerimise sagedust tõsta. Võimalik, et selle PICi 4MHz-ga ei mängi välja vaid peab võtma nt. PIC16F628 ja ta 20MHz peal tööle ajama. Oma displei prose lasin üldse 40MHzga käima, madalamal sagedusel tekkis oluline vilkumine.
            Skaneerimist on kasulik teha nt. taimeri katkestusega.
            noh, kuna mul on kogu selle krempli juhtimiseks vaja 32 IO porti numbrite käitemiseks, pluss veel 2 serialist info sisse lugmistks, siis sobivad enivei ainult siukesed vähe kabedamad isendid. Või annab neld 25 numbrit ka vähema, kui 32 otsaga juhtida mingi ime nipi läbi ?

            Comment


              #7
              Vs: Mure PIC16F84A-ga

              Dekoodriga saab pinne kokku hoida. On ka spets serialsisendiga registrid ja Maximil lausa erikivi (üsna kallis).
              - Vend Hieronymus tunneb Motorola toodete nimekirja kõige paremini, las tema ütleb.
              - Motorola poolt loodud kiipide hulgas ei ole teda üles tähendatud. - Tähendab: ta on Intelist!

              Comment


                #8
                Vs: Mure PIC16F84A-ga

                Aga mix sa oma display jaoks ei kasuta 74HC164 kivi, see on 8 bitti shift register, clkimise jalaks lylitad display välja ja kui data paiga siis lykkad sisse ja muudad alles siis ku vaja värskendada. Kui kividest puudus siis mul vedeleb neid mingi 20 tk DIP korpuses, sai kunagi ostetud a nyyd SMD peal ja vaevalt enam kasutan. SPI moodul picis olemas siis neid parem juhtida, paned kivi per display ja nii niipalju järjest kui tahad. Kui C-d kasutad siis teed lihtsalt for loop ja ok. Vastupidi saad 74HC165 ka neid vb leiaks sinna võid ka oma klaveri panna. Kasutan neid pidevalt kui pinnidest puudust tuleb.
                Modelleerimises ja tootmises kehtivad:
                1. Avariikindel vooluring lühistab kõik teised.
                2. Transistor, millel on kiiresti toimiv kaitse, säästab kaitset, sulades kõigepealt ise.

                Comment


                  #9
                  Vs: Mure PIC16F84A-ga

                  Need serialregistrid on nt. A6810 (annab +5 indikaatorile) ja A6275 (tõmbab maha). Eeltakisteid pole enam vaja, displei kustutus sees olemas! Tootja - Allegro aga annab asendada ka Toshiba kividega.
                  - Vend Hieronymus tunneb Motorola toodete nimekirja kõige paremini, las tema ütleb.
                  - Motorola poolt loodud kiipide hulgas ei ole teda üles tähendatud. - Tähendab: ta on Intelist!

                  Comment


                    #10
                    Vs: Mure PIC16F84A-ga

                    Esmalt postitatud murphy poolt
                    Aga mix sa oma display jaoks ei kasuta 74HC164 kivi, see on 8 bitti shift register, clkimise jalaks lylitad display välja ja kui data paiga siis lykkad sisse ja muudad alles siis ku vaja värskendada. Kui kividest puudus siis mul vedeleb neid mingi 20 tk DIP korpuses, sai kunagi ostetud a nyyd SMD peal ja vaevalt enam kasutan. SPI moodul picis olemas siis neid parem juhtida, paned kivi per display ja nii niipalju järjest kui tahad. Kui C-d kasutad siis teed lihtsalt for loop ja ok. Vastupidi saad 74HC165 ka neid vb leiaks sinna võid ka oma klaveri panna. Kasutan neid pidevalt kui pinnidest puudust tuleb.
                    põhimõtteliselt käiks siis asi selliset: http://home.clear.net.nz/pages/joeco.../2wireled.html

                    Igale numbri indikaatorile panen eraldi 74hc164 ?

                    iga 74hc164 läheb omaette pici väljundisse, või kuidagi järjest, nagu ma su tekstist loen ? saab neid miskitmoodi ühe liini peale mitu panna (aäla 1-wire bus asjad)

                    Saan ma õigesti ari, et pic ei pea sinna kivisse enne uut infot saatma, kui tolle konkreetse indikaatori number muutub ?

                    keegi hea adminn võiks selle lõime juppideks teha, ja teise teema alla tõsta, muidu rikume teise kodaniku teema ära.

                    Comment


                      #11
                      Vs: Mure PIC16F84A-ga

                      164 puudub eraldi väljundi hoideregister, seetöttu andmete saatmise aegu vöib väljundis määramata olekuid esineda, öigem on kasutada HC595 .
                      järjestikku ühendamise näide on siin: http://www.kronosrobotics.com/an114/SMAN114.htm

                      lisaks, on mitmetel tootjatel päris hulga nn LED draivereid, olen kasutanud M5450 ja M5451 - 34 ja 35 vooluväljundit vastavalt.
                      http://www.st.com/stonline/products/...e/ds/10411.pdf

                      kolmandaks on vöimalik teha programmeeritava loogika vöi mikrokontrolleri pealt LED draiver. siis saab sisendi teha sobiva - kas UART vöi I2C vöi SPI, hinna vahe mikrokontrolleri ja lihtloogika vahel hakkab kaduma , LED draiverist on PIC vöi AVR arvatavasti isegi odavam.

                      Comment


                        #12
                        Vs: Mure PIC16F84A-ga

                        mitte 1 wire vaid 2 juhet clk ja data e. SPI (Serial Peripheral Interface), iga kivi viimane bitt yhendatakse järgmise data in sisendisse, data sisendeid 2 ja võib kokku yhendada. CLK otsad kõikidel kividel paraleeli. vaata datasheeti www.alldatasheet.com.
                        74HC164 pole jh just parim lahendus a ma saaks ruumi juurde ja keegi oma skeemi tööle. ja kuna indikaatoril on 7 segmenti siis 8nda otsaga võib tüürida punkti otsa.
                        viimati muutis kasutaja murphy; 17 m 2007, 11:20.
                        Modelleerimises ja tootmises kehtivad:
                        1. Avariikindel vooluring lühistab kõik teised.
                        2. Transistor, millel on kiiresti toimiv kaitse, säästab kaitset, sulades kõigepealt ise.

                        Comment


                          #13
                          Vs: Mure PIC16F84A-ga

                          kalkuleerisin veidi ja leidsin, et võibolla tõesti on kõige lihtsam pista igale numbrile üks pic numbrit juhtima, ning lisals üks pic signaali dekodeerima ja teisi pic'e juhtima. Pole kyll ehk odavaim lahendus, kuid see eest kõige lihtsam. Samas 16 seeria pic'e saab kah juba suht soodsa hinnaga.

                          Comment


                            #14
                            Vs: Mure PIC16F84A-ga

                            Nii võib muidugi ka kuid...oma displeis oli üle 200 tulba ja 16 veergu. Kõigi nende kamandamisega sai hakkama PIC18F452 taktsagedusel 40MHz.
                            - Vend Hieronymus tunneb Motorola toodete nimekirja kõige paremini, las tema ütleb.
                            - Motorola poolt loodud kiipide hulgas ei ole teda üles tähendatud. - Tähendab: ta on Intelist!

                            Comment


                              #15
                              Vs: Mure PIC16F84A-ga

                              Esmalt postitatud felch poolt
                              Nii võib muidugi ka kuid...oma displeis oli üle 200 tulba ja 16 veergu. Kõigi nende kamandamisega sai hakkama PIC18F452 taktsagedusel 40MHz.
                              ja mida labor elektromagnetkompatiibluse kohta ütles ?
                              olen 100 prossa kindel et selline riistapuu ei läbi EMC teste.
                              kasutades väikeste LED gruppide juhtimiseks eraldi mikrokontrollereid tekib spread spectrum effekt ja probleeme arvatavasti ei tule ka rangemates testides.

                              Comment

                              Working...
                              X