Septyni segmentų ekranai yra svarbūs elektronikos prietaisai ir plačiai naudojami skaičiams nuo 0 iki 9. Tai taip pat gali rodyti kai kurias simbolių abėcėles, tokias kaip A, B, C, H, F, E ir kt. Šioje pamokoje mes mokysimės kaip susieti 7 segmentų ekraną su 8051 mikrovaldikliu. Mes naudojame mikrovaldiklį AT89S52 iš 8051 serijos.
Prieš sąsają turėtume sužinoti apie 7 segmentų ekraną. Tai paprasčiausias vienetas, rodantis skaičius ir simbolius. Jį sudaro tik 8 šviesos diodai, kiekvienas šviesos diodas naudojamas apšviesti vieną segmento segmentą, o aštuntasis šviesos diodas naudojamas apšviesti DOT 7 segmentų ekrane. Kiekvieną segmentą galime vadinti LINE, nes matome, kad vienete yra 7 eilutės, kurios naudojamos skaičiui / simboliui parodyti. Kiekvieną eilutę / atkarpą galime nurodyti „a, b, c, d, e, f, g“, o taškiniam ženklui naudosime „h“. Yra 10 smeigtukų, kuriuose 8 smeigtukai naudojami a, b, c, d, e, f, g ir h / dp žymėti. Du viduriniai kaiščiai yra bendras visų LED šviesos diodų anodas / katodas. Šie įprasti anodai / katodai yra viduje sutrumpinti, todėl turime prijungti tik vieną COM kaištį.
Yra dviejų tipų 7 segmentų ekranai: bendras anodas ir bendras katodas:
Bendras anodas: visi 8 šviesos diodų neigiami gnybtai (katodas) yra sujungti (žr. Toliau pateiktą schemą), vadinamus COM. Ir visi teigiami terminalai paliekami vieni.
Bendrasis katodas: visi 8 šviesos diodų teigiami gnybtai (anodai) yra sujungti, vadinami COM. Ir visi neigiami terminiai elementai paliekami vieni.
Grandinės schema ir darbinis iškvėpimas
Čia mes naudojame bendrą 7 segmentų anodo tipą, nes turime prijungti šviesos diodus atvirkščiai. Kaip žinome, kad mikrovaldiklis nepakankamai maitina šviesos diodą, todėl turime prijungti šviesos diodo katodą prie mikrovaldiklio kaiščio ir šviesos diodo anodą prie maitinimo šaltinio. Šią neigiamos logikos sampratą galite suprasti šiame straipsnyje „LED sąsaja su mikrovaldikliu 8051“. Taip pat turėtumėte perskaityti šį straipsnį, kad suprastumėte pagrindinį mikrovaldiklio, pvz., „Crystal and Reset“, jungimą.
Kaip parodyta aukščiau, grandinės schema, skirta susieti 7 segmentų ekraną su 8051 mikrovaldikliu, mes prijungėme a, b, c, d, e, f, g, h prie kaiščių nuo 2,0 iki 2,7, tai reiškia, kad mes prijungiame 7 segmentus prie 2 mikrovaldiklio prievado. Tarkime, kad norime rodyti 0, tada turime švyti visus šviesos diodus, išskyrus LED, priklausantį „g“ linijai (žr. Diagramą aukščiau), todėl kaiščiai nuo 2.0 iki 2.6 turėtų būti ties 0 (turėtų būti 0, kad įjungtumėte šviesos diodą kaip pagal neigiamą logiką), o kaiščiai 2.7 ir 2.8 turėtų būti 1 (turėtų būti 1, kad išjungtumėte šviesos diodą pagal neigiamą logiką). Taigi šviesos diodai, prijungti prie kaiščių nuo 2.0 iki 2.6 (a, b, c, d, e, f), bus įjungti, o šviesos diodai, prijungti prie 2.7 ir 2.8 (g ir h), bus išjungti, o tai sukurs „0“ 7 segmente. Taigi mums reikia bitų modelio 11000000 (8 kaištis yra didžiausias bitas, pradedant nuo P2.7 iki P2.0), o dvejetainio 11000000 HEX kodas yra „C0“. Panašiai galime apskaičiuoti visus skaitmenis. Turėtume atkreipti dėmesį į tai, kad „taškas / h“ visada išjungtas,taigi mes turime jam kaskart suteikti LOGIC „1“. Toliau pateikta lentelė visiems skaičiams, naudojant „Common Anode 7“ segmentą.
Skaitmeninis ekranas |
hgfedcba |
Hex kodas |
0 |
11000000 |
C0 |
1 |
11111001 |
F9 |
2 |
10100100 |
A4 |
3 |
10110000 |
B0 |
4 |
10011001 |
99 |
5 |
10010010 |
92 |
6 |
10000010 |
82 |
7 |
11111000 |
F8 |
8 |
10000000 |
80 |
9 |
10010000 |
90 |
Kodo paaiškinimas
Mes sukūrėme „ms_delay“ funkciją, kad pateiktų vėlavimą milisekundėmis. Šis atidėjimas paprastai pateikiamas bet kurioje mikrovaldiklio programoje, kad mikrovaldiklis galėtų užbaigti savo vidinę operaciją.
Tada mes sukūrėme šešioliktainių kodų masyvą nuo 0 iki 9 (žr. Aukščiau pateiktą lentelę) ir galiausiai išsiuntėme šešiakampius kodus į 2 prievadą, kuris yra prijungtas prie bendro anodo 7 segmento. Taigi tokiu būdu skaičiai rodomi 7 segmentų ekrane.
Dabar mikrovaldiklyje yra tik 4 prievadai ir ką daryti, jei norime duomenis rodyti daugiau nei keturiuose 7 segmentuose? Norėdami išspręsti šią problemą, vaizde yra multipleksavimo technika. Turime dauginti kelis 7 segmentų vienetus. Taip pat skaitykite sąsajos 7 segmentų ekraną su AVR mikrovaldikliu.