Pic12f675 indikaator Nokia voltmeetrilt. Amper-voltmeeter pic12f675-l - mõõteseadmed - tööriistad. Suure suuruse indikaatorid

Täna räägin teile, kuidas teha odava mikrokontrolleri abil universaalset lihtsat mõõteseadet, mis suudab mõõta pinget, voolu, energiatarbimist ja ampertunde. PIC16F676 vastavalt järgmisele skeemile.

Voltapervattmeetri skemaatiline diagramm

Trükkplaat DIP osadel osutus 45x50 mm suuruseks. Samuti on arhiivis trükkplaat SMD osade jaoks.

Mikrokontrolleri jaoks PIC16F676 Püsivara on kaks: esimene - pinge, voolu ja võimsuse mõõtmise võimalus - vapDC.hex, ja teises - sama, mis esimeses, on lisatud ainult amprite/tundide mõõtmise võimalus (pole alati vaja) - vapcDC.hex.

Trükkplaadil halliga tähistatud takisti ühendatakse olenevalt indikaatorist: kui kasutame ühiskatoodidega indikaatorit, siis MK 11. jalalt tulev takisti (1K) on ühendatud +5-ga ja kui indikaatoril on ühine anood, siis ühendame takisti ühise juhtmega.

Minu puhul asus indikaator ja ühiskatood, takisti plaadi all, MK 11. jalast +5-ni.

Vajutage korraks nuppu " IN"aktiveerib töörežiimi näidu: pinge "-U-", vool "-I-", võimsus "-P-", amprite/tunniloendur "-C-". Mõned näited operatsioonivõimendist LM358 millel on väljundis positiivne nihe, saab seda kompenseerida digitaalne korrektsioon meeter. Selleks peate lülituma praegusele mõõtmisrežiimile "-I-". Hoidke nuppu " 7-8 sekundit all N" kuni indikaatorile ilmub kiri "-S.-". Seejärel kasutage nuppu " IN"Ja" N» reguleerige nihet "0". Kui nuppe vajutada, näitab indikaator otse konstanti, vajutamisel korrigeeritakse hetkenäidud. Väljuge režiimist - vajutage samaaegselt klahve " IN"Ja" N". Tulemuseks on näit "-3-", st salvestamine püsimällu. Amper/tunniloendur lähtestatakse, hoides all nuppu " N"3-4 sek.

Minu puhul panin ainult nupu " IN", töörežiimi vahetamiseks. Nupp " N"Ma ei pane seda, kuna op-võimendi puhul pole voolu korrigeerimine vajalik LM358 uus, siis sellel praktiliselt puudub nihe ja kui on, siis on see ebaoluline. Segmendi indikaatorit ma eraldi tahvlile ei pane, mille saab hõlpsasti seadme korpuse külge kinnitada näiteks konverteeritud ATX toiteploki sisse.

Ühendame kokkupandud seadmega toite, anname mõõdetud pinge ja voolu, reguleerides voltmeetri ja ampermeetri näitu trimmitakistite abil vastavalt multimeetri näitudele.

Selle tulemusena läks voltampervattmeetri kogu ehitus ilma fooliumiga klaaskiust maksma 150 rubla. Ponomarev Artjom oli sinuga ( stalker68), näeme jälle saidi lehtedel Raadioahelad !

Arutage artiklit VOLTAMPERWATTMETER

Voltmeeter PIC16F676-l - artikkel, milles räägin digitaalse alalisvoolu voltmeetri isemonteerimisest piiranguga 0–50 V. Artiklis on toodud PIC16F676 voltmeetri skeem, samuti trükkplaat ja püsivara. aastal kasutati väljapaneku korrastamiseks voltmeetrit.

Voltmeetri spetsifikatsioonid:

  • Mõõtmistulemuste kuva eraldusvõime 0,1V;
  • Viga 0,1…0,2V;
  • Voltmeetri toitepinge on 7…20V.
  • Keskmine voolutarve 20mA

Disain põhineb autori N. Zaetsi skeemil artiklist “Milivoltmeeter”. Autor ise on väga helde ja jagab meelsasti oma arendusi, nii tehnilisi kui ka tarkvaralisi. Üks selle disainide olulisi puudusi (minu arvates) on aga vananenud elemendibaas. Mille kasutamine, in praegune aeg, mitte päris mõistlik.

Joonis 1 näitab elektriskeem autori versioon.

Vaatan kiiresti läbi ahela põhikomponendid. kiip DA1 – reguleeritav stabilisaator pinge, mille väljundpinget reguleerib reguleeritud takisti R4. See lahendus ei ole väga hea, sest jaoks normaalne töö Voltmeeter nõuab eraldi 8V alalisvooluallikat. Ja see pinge peab jääma püsivaks. Kui Sisendpinge muutub, siis muutub väljundpinge ja see ei ole lubatud. Minu praktikas viis selline muudatus PIC16F676 mikrokontrolleri läbipõlemiseni.

Takistid R5-R6 on sisendpinge (mõõdetud) jagaja. DD1 on mikrokontroller, HG1-HG3 on kolm eraldiseisvat seitsmesegmendilist indikaatorit, mis on koondatud ühte infosiini. Eraldi seitsmesegmendiliste näitajate kasutamine muudab oluliselt keerulisemaks trükkplaat. See lahendus pole ka väga hea. Ja ALS324A tarbimine on korralik.

Joonisel 2 on kujutatud digitaalse voltmeetri modifitseeritud skeem.

Joonis 2 – DC voltmeetri skemaatiline diagramm.

Nüüd vaatame, milliseid muudatusi on diagrammil tehtud.

Reguleeritava integreeritud stabilisaatori KR142EN12A asemel otsustati kasutada integreeritud stabilisaatorit LM7805, mille väljundpinge on konstantne +5V. Seega oli võimalik mikrokontrolleri tööpinget usaldusväärselt stabiliseerida. Selle lahenduse eeliseks on ka võimalus kasutada vooluringi toiteks sisend- (mõõdetud) pinget. Kui see pinge pole muidugi üle 6V, aga alla 30V. Sisendpingega ühendamiseks peate lihtsalt hüppaja sulgema. Kui stabilisaator ise läheb väga kuumaks, tuleb see paigaldada radiaatorile.

ADC-sisendi kaitsmiseks ülepinge eest lisati vooluringile zeneri diood VD1.

Tootja soovitab mikrokontrolleri usaldusväärseks lähtestamiseks takistit R4 koos kondensaatoriga C3.

Kolme eraldi seitsme segmendi indikaatori asemel kasutati ühte ühist.

Mikrokontrolleri üksikute kontaktide mahalaadimiseks lisati kolm transistorit.

Tabelis 1 näete kogu osade loendit ja nende võimalikku asendamist analoogiga.

Tabel 1 – PIC16F676 voltmeetri osade loend
Positsiooni tähistus Nimi Analoog/asendus
C1 Elektrolüütkondensaator - 470μFx35V
C2 Elektrolüütkondensaator - 1000μFx10V
C3 Elektrolüütkondensaator - 10μFx25V
C4 Keraamiline kondensaator - 0,1 μFx50V
DA1 Integreeritud stabilisaator L7805
DD1 Mikrokontroller PIC16F676
HG1 7-segmendiline LED-indikaator KEM-5631-ASR (OK) Mis tahes muu väikese võimsusega dünaamilise näidu jaoks ja ühendamiseks sobiv.
R1* Takisti 0,125 W 91 kOhm SMD suurus 0805
R2* Takisti 0,125 W 4,7 kOhm SMD suurus 0805
R3 Takisti 0,125 W 5,1 Ohm SMD suurus 0805
R4 Takisti 0,125 W 10 kOhm SMD suurus 0805
R5-R12 Takisti 0,125 W 330 Ohm SMD suurus 0805
R13-R15 Takisti 0,125 W 4,3 kOhm SMD suurus 0805
VD1 Zeneri diood BZV85C5V1 1N4733
VT1-VT3 Transistor BC546B KT3102
XP1-XP2 Pin pistik plaadile
XT1 Klemmiplokk 4 kontaktile.

Joonis 3 – Voltmeetri trükkplaat PIC16F676 (juhi pool).

Joonisel 4 on näidatud trükkplaadi pool, kuhu osad on paigutatud.

Joonis 4 – tahvli prinditud pool detailide paigutamiseks (joonisel olev tahvel ei ole mõõtkavas).

Mis puutub püsivarasse, siis muudatused ei olnud olulised:

  • Lisatud keelavad väikesed numbrid;
  • Seitsmesegmendilisele LED-indikaatorile tulemuste väljastamise aega on pikenenud.

Teadaolevatest tööosadest kokku pandud voltmeeter hakkab kohe tööle ega vaja reguleerimist. Mõnel juhul on vaja mõõtmise täpsust reguleerida, valides takistid R1 ja R2.

Voltmeetri välimus on näidatud joonistel 5-6.

Joonis 5 – voltmeetri välimus.

Joonis 6 – voltmeetri välimus.

Artiklis käsitletud voltmeetrit testiti edukalt kodus, testiti jõuallikaga autos pardavõrk. Ebaõnnestumisi ei olnud. Võib olla suurepärane pikaajaliseks kasutamiseks.

Huvitav video

Lubage mul teha kokkuvõte. Pärast kõiki muudatusi selgus, et see pole üldse halb digitaalne voltmeeter DC mikrokontrolleril PIC16F676, mõõtepiiriga 0-50V. Soovin kõigile, kes seda voltmeetrit kordavad, head töökorras komponente ja edu tootmises!


Selles seadmes kasutas autor originaalset meetodit neljakohalise seitsme elemendi juhtimiseks LED indikaator signaale ainult neljalt mikrokontrolleri kontaktilt. Mikrokontrolleri programm pakub voltmeetrile automaatset kalibreerimisrežiimi.

Nüüdseks traditsiooniline LED-digitaalnäidiku ühendamine mikrokontrolleriga jada-paralleelkoodi muunduri 74HC595 kaudu nõuab kolme mikrokontrolleri viigu kasutamist koodimuunduri juhtimiseks ja veel ühte viiku indikaatori iga numbri jaoks. Seetõttu on neljakohalise indikaatori jaoks vaja seitset kontakti. See ei võimalda selliseid indikaatoreid kasutada väikese kontaktiga mikrokontrolleritega, näiteks PIC12F675-ga, millel on ainult kuus kontakti (toitekontakte arvestamata).

Teises etapis kirjutab 74HC595 tihvti 12 tõusev serv nihkeregistri nulli sisu hoidmisregistrisse. See lülitab indikaatori täielikult välja.

Kolmandas etapis laaditakse teave mikroskeemi 74HC595 nihkeregistrisse, kasutades jadakoodi, mille mikrokontroller genereerib mikroskeemi 14. kontaktis. Selle tihvt 11 võtab vastu taktimpulsse.

Neljandas etapis, 74HC595 mikroskeemi viigu 12 taseme erinevuse suurenemisega, siseneb selle nihkeregistri teave salvestusregistrisse ja katoodide kõrgete tasemete tõttu jäävad indikaatori bitid kustunud.

Viiendas etapis installib programm tühjenemise ühisele katoodile, mille jaoks on ette nähtud paralleelkoodi väljund mikroskeemi 74HC595 väljunditele. madal tase, sealhulgas selle elemendid vastavalt sellele koodile. Sel hetkel katkestuse töötlemine lõpeb ja indikaatori seatud olek jääb muutumatuks kuni järgmise katkestuseni.

Kaheksabitise indikaatori juhtimiseks on vaja kaheksat mikrokontrolleri väljundit. Sel juhul juhivad nelja täiendava kontakti signaalid lihtsalt tühjenemise katoodide tasemeid. Väärib märkimist, et sel juhul on võimalik kasutada nii ühiskatoodide kui ka ühisanoodidega indikaatoreid, ühenduselemente või tühjendeid vastavalt koodimuunduri väljunditesse. Allpool toodud põhjustel on eelistatav korraldada dünaamiline kuva esimesel juhul elemendi haaval ja teisel juhul bittide kaupa.

Nüüd räägime voltmeetrist, mis kasutab kirjeldatud põhimõtet.

Põhiline spetsifikatsioonid

Mõõdetud pinge, V............. 0...80

Mõõtmiseraldusvõime, V......0.1

Täpsus..............0,5% + ühikut. ml. resolutsioon

Toitepinge, V............7...15

Voolutarve, mA, mitte rohkem...................................30

Voltmeetri ahel on näidatud joonisel fig. 1. See kasutab elementide kaupa dünaamilist kuva. Igal ajahetkel kõrge tase paigaldatud HG1 indikaatori kõigi numbrite sama nimega elementide rühma anoodidele. Lahenduste ühistes katoodklemmides, milles need elemendid peaksid hõõguma, seatakse madal tase, vastasel juhul kõrge tase. Pange tähele, et sama nimega elemente saab lubada samaaegselt kõigis kategooriates, kuid igas kategoorias on hetkel lubatud ainult üks element. Seetõttu valisime elementide anoodide ühendamise DD2 mikroskeemi väljunditega, mille kandevõime on suurem kui mikrokontrolleri väljundid.

Riis. 1. Voltmeetri ahel

2 ms katkestusperioodiga on pildi värskendussagedus indikaatoril 64 Hz ja selle vilkumine on silmale nähtamatu. Valitud dünaamilise näidu meetod võimaldas ka poole võrra vähendada indikaator-LED-ide kaudu voolu piiravate takistite (R4-R7) arvu.

Mikrokontroller PIC12F675-I/P (DD1) jääb I/O liinide GP0 ja GP3 dünaamilise näidu puhul hõivamata. Esimest kasutatakse ADC-sisendina, mõõdetud pinge antakse sellele läbi jaguri R1R2. Liinil GP3 on hüppaja S1 puudumisel tänu takistile R3 seatud kõrge loogiline tase, mis toimib signaalina, mis lülitab voltmeetri kalibreerimisrežiimi. Kui hüppaja on paigaldatud, on selle kontakti tase madal ja voltmeeter töötab normaalselt.

Kui lülitate voltmeetri esimest korda sisse puuduva hüppajaga S1, kuvab indikaator HG1 parempoolseima märgi vilkumist. Selles olekus tuleks seadme sisendile rakendada võimalikult lähedast pinget 80 V, jälgides seda tavalise voltmeetriga. Hüppajale S1 mõeldud kontaktpatjade lühiajalise ühendamise korral arvutab ja jätab seade kalibreerimiskoefitsiendi meelde ning kasutab seda edaspidi.

80 V on aga üsna kõrge pinge ja selle saamisel on raskusi. Sel juhul tuleb võrdluspinge väärtuse näitamise ajal seade välja ja uuesti sisse lülitada. Näidikule ilmub , ning järgmisel välja- ja sisselülitamisel - , , uuesti ja edasi ringikujuliselt. Kalibreerimine tuleks läbi viia kõrgeima saadaoleva pingega. Mida kõrgem on võrdluspinge, seda täpsem on kalibreerimine. Kui kalibreerimise ajal erineb sisendpinge võrdluspingest liiga palju, siis koefitsienti ei arvutata ja indikaatoril ei kuvata

Pärast kalibreerimist lülitage voltmeeter välja ja lõpuks paigaldage hüppaja S1, muidu peate järgmisel sisselülitamisel kõike uuesti kordama. Voltmeeter võib töötada ilma kalibreerimiseta, kui hüppaja S1 on selle esmakordsel sisselülitamisel juba paigaldatud. Sel juhul kasutab programmis kirjutatud koefitsienti, kuid viga võib ületada 10%. Selle eest hoiatab indikaatori paremas servas olev punkt.

Analoog-digitaalmuundamine toimub mikrokontrolleri unerežiimis, et vähendada selle töökomponentide häireid. See väljub automaatselt sellest olekust pärast teisenduse lõppemist.

Seadme toiteallikaks on 5 V pinge, mis saadakse integreeritud pingestabilisaatori DA1 abil. Diagrammil näidatud stabilisaatorit 78L05 saate kasutada ainult viimase abinõuna, kuna selle väljundpinge stabiilsus on suurusjärgu võrra halvem. Ilma parameetreid halvendamata saate kasutada stabilisaatorit LP2951. Zeneri diood VD1 pingele 5,6 V koos mikrokontrolleri sisemise kaitsedioodiga kaitseb viimast kahjustuste eest, kui mõõdetud pinge ületab lubatud väärtuse. Ilma piirajata võib mikrokontrolleri toitepinge sellises olukorras kriitiliselt tõusta.

Seade on monteeritud trükkplaadile mõõtmetega 40x36 mm ühepoolsest fooliumiga kaetud klaaskiudlaminaadist paksusega 1,5 mm, näidatud joonisel fig. 2. Enamik takisteid ja kondensaatoreid on suuruses 0805 pindkinnitusega. Takisti R1 usaldusväärseks tööks kõrgendatud pingel kasutatakse 0,5 W väljundvõimsusega. Kondensaatorit C1 saab paigaldada kas keraamilise kondensaatorina või oksiidkondensaatorina, mille jaoks on tahvlil C1-ga iste." Näidiku FYQ-3641AHR-11 saab asendada mõne teise 3641A seeria või kolmekohalise indikaatoriga. 3631A seeria ilma plaati ümber tegemata Kokkupandud seadmeplaadi foto on näidatud joonisel 3.

Olen raadioelektroonikaga tegelenud juba mitu aastat, kuid häbiga tunnistan, et mul pole ikka veel tavalist toiteallikat. Toidan kokkupandud seadmeid sellega, mis käepärast tuleb. Kõikvõimalikest poolsurnud patareidest ja trafodest, millel on dioodsillaga pinge stabiliseerimine ja väljundvoolu piiramine. Sellised perverssused on nende jaoks üsna ohtlikud kokkupandud struktuur. Lõpuks otsustas kokku panna tavalise toiteallika. Ja alustasin monteerimist ampervoltmeetriga. Muidugi oli vaja teisest alustada, aga nagu see juba on. Kuna olen veidi programmeerimisega tegelenud, otsustasin ise displeimõõturi välja töötada. Ekraan on Nokia-1202 ekraan. Tõenäoliselt olen selle ekraaniga juba kõiki piinanud, kuid see on 3 korda odavam kui 2x16 HD44780 (vähemalt meie jaoks). Üsna joodetav pistik ja üldiselt head omadused. Lühidalt öeldes - hea variant pinge- ja voolumõõturi jaoks.

Toiteallika digitaalse ampervoltmeetri elektriahel

Digitaalse amper-voltmeetri plaadi joonis

Esimene ja teine ​​rida näitavad keskmisi pinge- ja vooluväärtusi 300 ADC mõõtmisel. Seda tehakse mõõtmistäpsuse suurendamiseks. Kolmas rida näitab Ohmi seaduse alusel arvutatud koormustakistust. Kõigepealt tahtsin veenduda, et voolutarve on väljundis, kuid tegin vastupanu. Võib-olla vahetan selle hiljem võimu vastu. Neljas rida kuvab anduri DS18B20 mõõdetud temperatuuri. See on programmeeritud mõõtma temperatuure vahemikus 0 kuni 99 kraadi Celsiuse järgi. See tuleb paigaldada väljundtransistori jahutusradiaatorile või mõnele muule vooluahela elemendile, kus on tugev kuumenemine.

Transistorradiaatori jahutamiseks saate mikrokontrolleriga ühendada ka jahuti. See muudab oma kiirust, kui DS18B20 anduri mõõdetud temperatuur muutub. Pin PB3 on PWM-signaal. Jahuti on selle väljundiga ühendatud toitelüliti kaudu. Parim on kasutada toitenuppu MOSFET transistor. Temperatuuril 90 kraadi on ventilaatoril maksimaalne kiirus. Temperatuuriandurit ei pruugita paigaldada. Sel juhul kuvatakse neljandal real lihtsalt VÄLJAS. Me ühendame jahuti otse. PB3 väljund on 0.

Arhiivis on kaks püsivara valikut. Üks maksimaalse mõõdetud voolutugevuse jaoks 5 amprit ja teine ​​kuni 10 amprit. Maksimaalne mõõdetud pinge on 30 volti. Arvutuste kohaselt valitakse op-amp LM358 võimendusteguriks 10. Erineva püsivara jaoks tuleb valida šunt. Kõigil ei ole võimalust mõõta sajandikuid ohmi ja täppistakisteid. Seetõttu on ahelas kaks trimmitakistit. Nad saavad mõõtetulemusi korrigeerida.

Arhiivis on ka trükkplaat. Pildil on väikesed erinevused - seal on seda veidi kohendatud. Üks džemper on eemaldatud ja suurus on kõrguselt 5 mm väiksem. Ampervoltmeetri näitude stabiilsus on kõrge. Mõnikord hõljub see vaid sajandiku kaupa. Kuigi ma võrdlesin seda ainult oma Hiina testriga. See on minu jaoks täiesti piisav.

Tänan teid kõiki tähelepanu eest.

ARHIIV:

Moderniseeritud versioon

Lisasin ekraanile vaid kümnendiku võimsusest.

Siin muutsin seda mõõtma kuni 50A. Šunt 0,01 oomi. Operatsioonivõimendi võimendus on ligikaudu 6 kuni 7. Takistid tuleb ümber arvutada. Kaitsmed on samad, mis enne.

Tahaksin teie tähelepanu juhtida moderniseeritud versioon näidiku arvesti jaoks laboriplokk toitumine. Lisatud on võimalus teatud eelseadistatud voolu ületamisel koormust välja lülitada. Täiustatud voltammeetri püsivara saab alla laadida allpool. Digitaalse voolu- ja pingemõõturi skeem.

Skeemile lisati ka mitmeid detaile. Juhtnuppudest on üks nupp ja muutuv takisti väärtusega 10 kilooomi kuni 47 kilooomi. Selle takistus ei ole vooluringi jaoks kriitiline ja nagu näete, võib see varieeruda üsna laias vahemikus. Muutus veidi ja välimus ekraanil. Lisatud võimsuse ja ampertundide näit.

Väljalülitusvoolu muutuja salvestatakse EEPROM-i. Seetõttu ei pea te pärast väljalülitamist kõike uuesti konfigureerima. Praegusesse seadistusmenüüsse sisenemiseks peate vajutama nuppu. Muutuva takisti nuppu keerates peate määrama voolu, mille juures relee välja lülitub. See on transistorlüliti kaudu ühendatud Atmega8 mikrokontrolleri viiguga PB5.

Väljalülitamise hetkel näitab ekraan, et maksimaalne seatud vool on ületatud. Pärast nupu vajutamist läheme tagasi maksimaalse praeguse seadistusmenüüsse. Mõõtmisrežiimi lülitumiseks peate nuppu uuesti vajutama. Logi 1 saadetakse mikrokontrolleri väljundisse PB5 ja relee lülitub sisse. Sellisel praegusel jälgimisel on ka omad miinused. Kaitse ei tööta koheselt. Käivitamine võib võtta mitukümmend millisekundit. Enamiku eksperimentaalsete seadmete jaoks see puudus ei ole kriitiline. See viivitus pole inimestele nähtav. Kõik juhtub korraga. Uut PCB-d ei välja töötatud. Kõik, kes soovivad seadet korrata, saavad eelmisest versioonist trükkplaati pisut redigeerida. Muudatused ei ole märkimisväärsed.

Kui teil on küsimusi, võtke ühendust foorumiga. Tänan tähelepanu eest. Boozer lõpetas ampervoltmeetri.

ARHIIV:
Foorum


Jätkuvalt mõistame mikroprotsessoril põhineva voltmeetri - ampermeetri rakendamise võimalusi.
Ärge unustage failidega arhiivi, meil läheb neid täna vaja.

Kui soovite paigaldada suuri indikaatoreid, peate lahendama voolutarbimise piiramise probleemi MK-portide kaudu. IN sel juhul Indikaatori igale numbrile on vaja paigaldada puhvertransistorid.

Suure suuruse indikaatorid


Niisiis, eelnevalt käsitletud vooluahel on joonisel fig. 2. Näidiku igale numbrile lisati kolm puhverastme transistorit VT1-VT3. Paigaldatud puhveraste inverteerib MK väljundsignaali. Seetõttu on VT2-l põhinev sisendpinge määratud transistori kollektori suhtes pöördvõrdeline ja sobib seetõttu väljundisse koma moodustava väljundi varustamiseks. See võimaldab eemaldada transistori VT1, mis oli varem joonisel fig. 1, asendades viimase lahtisidestustakistiga R12. Ärge unustage, et transistoride VT1-VT3 baasahelate takisti väärtused on samuti muutunud.
Kui soovite paigaldada ebatavaliselt suurte mõõtmetega indikaatoreid, peate näidatud transistoride kollektoriahelasse paigaldama madala takistusega (1–10 oomi) takistid, et piirata nende sisselülitamisel tekkivaid voolutugevusi.

MK tööloogika selle valiku jaoks nõuab programmis ainult väikest muudatust bittide, nimelt portide RA0, RA1, RA5 juhtimiseks kasutatava väljundsignaali ümberpööramise osas.
Vaatleme ainult seda, mis muutub, nimelt meile juba tuntud alamprogrammi koodnimetuse “Dünaamilise näidu genereerimise funktsioon” all. Nimekiri nr 2(vt arhiivi kausta “tr_OE_30V” või artikli esimest osa):

16. void Indicator ()( 17. while (show_digit< 3) { 18. portc = 0b111111; // 1 ->C 19. if (näita_numbrit == 2)( viivitus_ms(1); ) 20. porta = 0b100111; 21. näida_number = näita_number + 1; 22. lüliti (näita_numbrit) ( 23. juhtum 1: ( 24. if (number1 == 0) ( ) else ( 25. Cod_to_PORT(DIGIT1); 26. PORTA &= (~(1)<<0)); //0 ->A0 27. ) paus;) 28. juhtum 2: ( 29. Cod_to_PORT(DIGIT2); 30. PORTA &= (~(1)<<1)); //0 ->A1 31. break;) 32. juhtum 3: ( 33. Cod_to_PORT(DIGIT3); 34. PORTA &= (~(1<<5)); //0 ->A5 35. paus;) ) 36. Delay_ms(6); 37. if (RA2_bit==0) (PORTA |= (1<<2);// 1 ->A2 38. Viivitus_ms(1);) 39. if ((näita_numbrit >= 3)!= 0) katkestus; 40. ) näita_numbrit = 0;)


Võrrelge mõlemat võimalust. RA-pordi signaali ümberpööramist (nimekirja nr 2 rida 20) on lihtne lugeda, kuna see on kirjutatud kahendvormingus. Piisab, kui ühendada MK ja kahendarvu väljundid. Liinidel 19 ja 37 tekkisid veidi kummalised olud, mida alguses polnud. Esimesel juhul: "viivitage loogilise nulli signaali pordis RA1 teise numbri näitamise ajal." Teises: "kui pordis RA2 on loogiline null, siis inversioon." Kui koostate programmi lõpliku versiooni, saate need eemaldada, kuid PROTEUS-e simuleerimiseks on neid vaja. Ilma nendeta ei kuvata koma ja segmenti "G" normaalselt.
Miks? - küsite, sest esimene variant töötas suurepäraselt.

Kokkuvõtteks meenutage sepa sõnu filmist “Armastuse valem”: “...kui üks inimene selle ehitas, saab teine ​​alati lahti võtta!”
Edu!

Lugeja hääletus

Artikli kiitis heaks 27 lugejat.

Hääletamisel osalemiseks registreeru ja logi oma kasutajanime ja parooliga saidile sisse.