Turinys:
- 1 žingsnis: reikalingi dalykai
- 2 žingsnis: kodo logika ir ekranas
- 3 veiksmas: vairavimo ekranas naudojant mikrovaldiklį
- 4 žingsnis: Kodėl reikia multipleksuoti?
- 5 žingsnis: kaip tai pasiekti?
- 6 žingsnis: multipleksavimo algoritmas
Video: Chronometras naudojant „Pic18f4520“„Proteus“su 7 segmentais: 6 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:48
Aš ką tik pradėjau dirbti su vaizdo valdikliu, vienas mano draugas paprašė manęs iš jo sukurti chronometrą. Taigi aš neturiu bendrinti aparatinės įrangos vaizdo, aš parašiau kodą ir imitavau jį „Proteus“programinėje įrangoje.
čia aš pasidalinau to paties schema.
apibrėžtos trys kintamos milisekundės, sekundės, minutės
čia mes panaudojome 10 ms laikmačio pertraukimą, kas 1000 milisekundžių sekundžių kintamasis padidės, o kas 60 sekundžių - kintamasis.
1 žingsnis: reikalingi dalykai
1 pic18f4520 valdiklis
2 septynių segmentų ekranai
3 bc547 tranzistoriai
4 jungikliai paleidimui/sustabdymui/atstatymui
5 rezistoriai 330E, 10K, 1K
6 Atsisiųskite „mikroC“paveikslėliui
7 parsisiųsti proteus
2 žingsnis: kodo logika ir ekranas
Kas yra septynių segmentų ekranas? Septynių segmentų ekranas (SSD) yra vienas iš labiausiai paplitusių, pigių ir paprastai naudojamų ekranų. Tai atrodo kaip aukščiau.
čia mes turime naudoti įprastą 7 segmentų ekrano katodo tipą - įprasto katodo tipo SSD visų šviesos diodų -ve terminalas paprastai yra prijungtas prie „COM“kaiščio. Segmentas gali užsidegti, kai atitinkamam LED segmentui suteikiamas „1“ir įžeminimas prijungtas prie bendros. Vidiniai elementai pateikti 2 paveiksle.
3 veiksmas: vairavimo ekranas naudojant mikrovaldiklį
Savo grandinėje naudojau NPN BC547 tranzistorių.
Norint paprasčiausiai naudoti BJT kaip jungiklį, emiterio ir kolektoriaus jungtys sutrumpėja, kai pagrindiniame terminale yra įvesties signalas, kitaip jis lieka išjungtas. Įėjimas turėtų būti atliekamas per tinkamą rezistorių.
4 žingsnis: Kodėl reikia multipleksuoti?
Dažnai mums reikia naudoti du, tris ar daugiau SSD, taip pat naudojant tik vieną MCU, tačiau viena problema, su kuria susiduriame, yra įvesties/išvesties kaiščių trūkumas MCU, nes vienam SSD prireiktų 8 kontaktų, taigi ir trims SSD prireiktų 24 kaiščių. 18 paveiksle turime tik 48 įvesties/išvesties kaiščius. Taigi koks yra sprendimas?
Viena galimybė yra tai, kad mes naudojame didesnį MCU su daugiau įvesties/išvesties kaiščių. Bet tada mes vis dar apsiribojame tik 3 SSD diskais, kuriuos galima naudoti. Kitas daug geresnis ir rekomenduojamas šios problemos sprendimas yra septynių segmentų ekranų multipleksavimas.
Vikipedija sako: „Telekomunikacijų ir kompiuterių tinkluose multipleksavimas (taip pat žinomas kaip„ muxing “) yra metodas, kuriuo keli analoginiai pranešimų signalai arba skaitmeniniai duomenų srautai sujungiami į vieną signalą bendroje laikmenoje. Tikslas yra pasidalyti brangiais ištekliais. „Mes turime omenyje septynių segmentų ekrano multipleksavimą, nes mes naudosime tik 7 išvesties prievadus, kad būtų rodomas visų SSD diskas.
5 žingsnis: kaip tai pasiekti?
Čia naudosime „regėjimo atkaklumą“. Dabar šį terminą turite turėti jau anksčiau. Taip, tai yra ta pati technika, kuri naudojama kinematografijoje (atvaizduoja vaizdus taip greitai, kad mūsų smegenys negali atskirti dviejų vaizdų iš eilės). Panašiai, kai mes maišome daugiau nei vieną SSD, vienu metu rodome tik vieną SSD diską ir perjungiame juos taip greitai, kad mūsų smegenys negali jų atskirti.
Tarkime, kad kiekvienas ekranas vienu metu yra aktyvus tik 5 milisekundes, t. Y. Jis apšviečiamas 1/0,0045 karto per sekundę, tai yra maždaug 222 kartus per sekundę. Mūsų akys negali jausti pokyčių taip greitai, todėl matome, kad visi ekranai veikia vienu metu. Iš tikrųjų aparatinėje įrangoje MCU duoda „1“kaiščiui (nepamirškite, kad „BJT“šortų pagrindui „Kolektoriaus ir emiterio sandūra“suteikiamas „1“), kuris yra prijungtas prie tranzistoriaus pagrindo. atitinkamas ekranas, 5 milisekundžių laiko prievadą „ĮJUNGTAS“ir vėl jį išjungia. Ši procedūra yra įtraukta į begalinę kilpą, kad ekraną matytume nuolat.
6 žingsnis: multipleksavimo algoritmas
Apibrėžkite du kodo prievadus, vieną segmento duomenų prievadui ir segmento valdymo prievadą.
gudrybė yra tai, kad rodote visų 7 segmentų duomenis. ir suaktyvinkite vieną valdymo kaištį, kuriame turite rodyti tuos duomenis. pakeisti duomenis ir perjungti valdymo kaištį.
čia šioje instrukcijoje mes naudojome 6 skaitmenų multipleksavimą, tiesiog eikite per pridėtą c failą ir jį pašalinsite.
Rekomenduojamas:
„Arduino Leonardo“chronometras: 3 žingsniai
„Arduino Leonardo“chronometras: Kreditas: https://www.instructables.com/id/Arduino-Stopwatch … . Dauguma naudojamo kodo atitinka originalą
Paprastas „CloudX M633“skaitmeninis chronometras: 4 žingsniai
Paprastas „CloudX M633“skaitmeninis chronometras: Šiame projekte mes ketiname sukurti skaitmeninio laikrodžio versiją, kuri gali įrašyti valandas, minutes ir sekundes, kaip chronometras jūsų mobiliajame telefone! Mes naudosime LCD, kad parodytume laiką
„Arduino“chronometras naudojant „I2C LCD“: 5 žingsniai
„Arduino“chronometras naudojant „I2C LCD“: Šiame projekte aš išmokysiu jus naudoti LCD ekraną ir „Arduino“kaip interaktyvų chronometrą. Kai jūsų projektas bus baigtas naudojant pateiktą kodą, jis turėtų atrodyti kaip aukščiau pateikta nuotrauka. Eikite į kitą veiksmą ir sužinokite, nuo ko pradėti
Pagrindinis chronometras naudojant VHDL ir „Basys3 Board“: 9 žingsniai
Pagrindinis chronometras naudojant VHDL ir „Basys3 Board“: Sveiki atvykę į instrukcijas, kaip sukurti chronometrą naudojant pagrindinę VHDL ir „Basys 3“plokštę. Džiaugiamės galėdami pasidalinti savo projektu su jumis! Tai buvo paskutinis CPE 133 (skaitmeninio dizaino) kurso projektas Cal Poly, SLO 2016 m. Rudenį. Projektas, kurį mes kuriame
Klaviatūra su 7 segmentais naudojant CLOUDX MICROCONTROLLER: 4 žingsniai
KLAIDIKLIS SU 7 SEGMENTAIS, NAUDOJANT „CLOUDX MICROCONTROLLER“: Šiame projekte mes priimsime skaitinę įvestį iš matricos klaviatūros ir parodysime ją septynių segmentų ekrano modulyje. Kadangi 8 šviesos diodai yra pažymėti nuo A iki G ir DP (dešimtainio taško tikslumu), jei norite rodyti skaičių 6, tuomet taikytumėte