Със сигурност вече сте виждали индикатори - "осмици". Това е седемсегментният LED индикатор, който показва числата от 0 до 9, както и десетичната точка ( Д.П.- десетична запетая) или запетая.

Структурно такъв продукт е сглобка от светодиоди. Всеки LED светодиод осветява своя символен сегмент.

В зависимост от модела комплектът може да се състои от 1 - 4 седемсегментни групи. Например индикаторът ALS333B1 се състои от една група от седем сегмента, която може да показва само една цифра от 0 до 9.

Но светодиодният индикатор KEM-5162AS вече има две седемсегментни групи. Тя е двуизмерна. Снимката по-долу показва различни LED седемсегментни индикатори.

Има и индикатори с 4 седемсегментни групи - четирицифрени (на снимката - FYQ-5641BSR-11). Те могат да се използват в домашни електронни часовници.

Как се обозначават седемсегментните индикатори на диаграмите?

Тъй като седемсегментният индикатор е комбиниран електронно устройство, тогава изображението му на диаграмите се различава малко от външния му вид.

Трябва само да се обърне внимание на факта, че всеки изход съответства на конкретен символен сегмент, към който е свързан. Има и един или повече изводи на общ катод или анод, в зависимост от модела на устройството.

Характеристики на седемсегментни индикатори.

Въпреки привидната простота на този детайл, той има свои собствени особености.

Първо, светодиодните седемсегментни индикатори идват с общ анод и общ катод. Тази функция трябва да се има предвид, когато се купува за домашен дизайн или устройство.

Ето, например, pinout на вече познат ни 4-цифрен индикатор FYQ-5641BSR-11.

Както можете да видите, анодите на светодиодите на всяка цифра се комбинират и се извеждат на отделен изход. Катодите на светодиодите, които принадлежат към знаковия сегмент (напр. Ж) са свързани заедно. Много зависи от схемата на свързване на индикатора (с общ анод или катод). Ако погледнете електрически схемиинструменти, използващи седемсегментни индикатори, ще стане ясно защо това е толкова важно.

В допълнение към малките индикатори има големи и дори много големи. Те могат да се видят на обществени места, обикновено във формата стенен часовник, термометри, информатори.

За да се увеличи размерът на числата на таблото и в същото време да се поддържа достатъчна яркост за всеки сегмент, се използват няколко светодиода, свързани последователно. Ето пример за такъв индикатор - побира се в дланта ви. то FYS-23011-BUB-21.

Един от неговите сегменти се състои от 4 светодиода, свързани последователно.

За да осветите един от сегментите (A, B, C, D, E, F или G), трябва да приложите напрежение от 11,2 волта към него (2,8 V за всеки светодиод). Възможно е и по-малко, например 10V, но яркостта също ще намалее. Изключение прави десетичната точка (DP), нейният сегмент се състои от два светодиода. Необходими са само 5 - 5,6 волта.

Също така в природата има двуцветни индикатори. Те са вградени, например, червени и зелени светодиоди. Оказва се, че в кутията са вградени два индикатора, но със светодиоди с различен цвят на светене. Ако приложите напрежение към двете вериги на светодиодите, можете да получите жълт блясък на сегментите. Ето електрическа схема за един от тези двуцветни индикатори (SBA-15-11EGWA).

Ако смените заключения 1 ( ЧЕРВЕН) и 5 ​​( ЗЕЛЕНО) към "+" захранване през ключовите транзистори, след което можете да промените цвета на светенето на показаните числа от червено на зелено. И ако свържете щифтове 1 и 5 едновременно, тогава цветът на сиянието ще бъде оранжев. Ето как можете да се забърквате с индикатори.

Управление на седемсегментни индикатори.

За управление на седемсегментни индикатори в цифрови устройства се използват регистри за смяна и декодери. Например, широко използван декодер за управление на индикатори от серията ALS333 и ALS324 е микросхема K514ID2или K176ID2. Ето един пример.

И за контрол на съвременните внесени индикатори обикновено се използват регистри за смяна. 74HC595. На теория можете да управлявате сегментите на таблото директно от изходите на микроконтролера. Но такава схема се използва рядко, тъй като това изисква използването на доста щифтове на самия микроконтролер. Следователно за тази цел се използват регистри за смяна. В допълнение, токът, консумиран от светодиодите на сегмента на знаците, може да бъде по-голям от тока, който може да бъде осигурен от обикновения изход на микроконтролера.

За управление на големи седемсегментни индикатори, като FYS-23011-BUB-21, се използват специализирани драйвери, например микросхема MBI5026.

Какво има вътре в седемсегментен индикатор?

Е, малко вкусна храна. Всеки електронен инженер не би бил такъв, ако не се интересуваше от "вътрешностите" на радиокомпонентите. Това е вътре в индикатора ALS324B1.

Черните квадратчета на основата са LED кристали. Можете също така да видите златните джъмпери, които свързват кристала с един от изводите. За съжаление този индикатор вече няма да работи, тъй като същите тези джъмпери бяха отрязани. Но от друга страна можем да видим какво се крие зад декоративния панел на таблото.

Седемсегментен индикатор: програмиране на работата

В първата част на статията беше дадено описание на индикатора и как да го свържете към микроконтролера. Във втората и третата част последователно ще преминем през всички етапи на организиране на работата на микроконтролер с индикатор и създаване на програма, резултатът от която ще бъде наистина работещ дизайн.

Преобразуване на двоичен код на десетично число в код на седемсегментен индикатор

Нека да разгледаме още веднъж схемата за свързване на седемсегментен индикатор към микроконтролер:

На тази диаграма порт щифтове PB0…..PB7свързани към клемите на индикатора в определена последователност. Изходът PB0 съответства на сегмента "A" и след това, съответно, заедно сериен номерщифт на порта и щифт на индикатора по азбучен ред, като десетичната запетая "dp" е свързана към щифта на порта PB7. Сега и по-нататък ще разгледаме схеми за свързване на индикатори с общ катод и ако е необходимо, ще вмъкна допълнения за индикатор с общ анод.

За да се освети определен номер на индикатора, е необходимо да се монтират на съответните щифтове на порта на микроконтролера логическа единица

На фигурата по-горе черните числа от 0 до 7 са щифтове на порта, зелените латински букви са щифтовете на светодиодния индикатор, червените нули са логически нива на изходите на порта (в този случай логическо ниво „0“). За да осветим например числото “4” на индикатора и да светне десетичната запетая, трябва да приложим логическа 1 към пиновете на индикатора B, C, F, G и dp, което съответства на захранването на логическа единица към портови пинове 1,2,5,6 и 7:

Следователно, първото нещо, което трябва да направим, е да определим съответствието на всяка десетична цифра от двоично число, което трябва да бъде изведено на изхода на порта на микроконтролера, за да запали съответните сегменти на индикатора.
За "четворката" вече сме дефинирали такава комбинация = 1110 0110, която съответства на шестнадесетичното число 66h, дефинираме я и за останалите цифри:

Операцията, която направихме, се нарича превод на двоичен код десетично числокъм седемсегментния индикаторен код .

Тази таблица е дадена за седемсегментни индикатори с общ катод (сегментът на индикатора свети с логическо ниво "1"). За индикатори с общ анод (сегментът на индикатора свети от логическото ниво "0"), двоичните кодове трябва да бъдат обърнати (промяна от 0 на 1 и обратно) и преизчисляване на съответните стойности в шестнадесетична система.

Програмиране на едноцифрен седемсегментен индикатор

Използването на едноцифрен индикатор в дизайна може да се наложи в различни случаи. Например, сглобяваме кодова брава и има нужда да се покаже номерът, съответстващ на натиснатия бутон, или в охранителната аларма да се покаже номерът на задействания сензор. Така че обхватът на едноцифрените индикатори е приличен.
Ще организираме изхода на числа на едноцифрен индикатор под формата на подпрограма: „Извеждане на информация към едноцифрен седемсегментен светодиоден индикатор“ , така че тази подпрограма след това да може да се използва във всяка програма с минимални промени.

Алгоритъм на подпрограмата:

1. Инициализация на индикатор (подпрограма)
- настройка на порта, към който е свързан индикаторът за показване на информация
- писане на седемсегментни индикаторни кодове, съответстващи на десетични цифри в определени клеткипамет
Тази подпрограма трябва да се извика отделно от основната програма
2. Влизане в основната подпрограма
3. Основно тяло
- прочетете текущия номер
- определя кой код на седемсегментния индикатор съответства на текущата десетична цифра
- запишете специфичен индикаторен код към порта на микроконтролера
4. Излезте от подпрограмата

За да проектираме програма като подпрограма, трябва да извършим редица действия:
1. Присвояваме име на подпрограмата за инициализация на индикатора - Ini_Indicator_1(например)
2. Задайте име на главната подпрограма - Индикатор_1
3. Присвояваме имена на SRAM променливите, в които ще се съхраняват кодовете на седемсегментния индикатор, например:
D0(за числото 0 и т.н.), D1, D2, D3, D4, D5, D6, D7, D8, D9
- задайте името на променливата, в която ще се съхранява адресът на клетката с памет (D0) с кода на първата цифра (0) - D0_9
4. Задайте името на променливата, която ще съхранява текущата цифра, която трябва да се покаже на индикатора. Основната програма ще запише изчислените данни (числа) в тази променлива, която показваме на индикатора - Данни(например).

Ето как, например, в Algorithm Builder (други примери също са за тази програма), имената на променливите се декларират в програмната памет (RAM, SRAM):

Колоната "Име" изброява всички имена на променливи. В колоната "Адрес" записът "@D0_9" означава, че променливата D0_9 съхранява адреса на първата променлива (D0)

Подпрограмата за инициализация на индикатора (подпрограмата се извиква от основната програма, преди да извика подпрограмата за извеждане на информация към индикатора):

А сега нека да видим основната част от програмата и да я дешифрираме:

Основната програма записа променливата, която присвоихме Даннитекущата цифра (например цифрата 6 ) и извика подпрограмата, за да я покаже на индикатора Индикатор_1.

Подпрограма операция:
— Съдържанието на променливата Даннисе записва в работния регистър R20, вече в регистъра номер 6(работният регистър може да бъде всеки)
- Да кажем първата променлива с цифровия код 0 имаме в клетката с памет на адреса 100 . Всъщност ние не знаем адресите на клетките на паметта, където се съхраняват стойностите. D0…D9, но точно следват един друг. Така че променливата беше присвоена D0_9, който, както сме задали, съхранява адреса на клетката с памет D0(във този моментадрес = 100 ).
- Със следната команда:
@D0_9 —> Yзареждаме в двойна кутия Yпроменлив адрес D0и получаваме това в регистъра Yвъведен номер - 100 .
- Със следната команда:
Y+R20събираме числото 100 с номер 6 , резултат = 106 докато се съхранява в двоен регистър Y.
- Със следната команда:
[Y] -> R20записваме съдържанието на клетката памет, намираща се на адреса, който се записва в двоен регистър Y (106), и на този адрес имаме клетка с променлива памет D6. Сега в работещ регистър R20написано число 7Dhседемсегментен индикаторен код за показване на числото 6 .
- Със следната команда:
R20 —> PortBизвеждаме съдържание R20към пристанището PBмига числото 6
- Връщаме се от подпрограмата

Един от много важните елементи на цифровите технологии и особено в компютрите и системите за управление са енкодерите и декодерите.

Когато чуем думата енкодер или декодер, в съзнанието ни идват фрази от шпионски филми. Нещо като: декриптиране на изпращането и криптиране на отговора.

В това няма нищо лошо, тъй като нашите и чуждестранни криптиращи машини използват енкодери и декодери.

Енкодери.

По този начин енкодерът (енкодер) е електронно устройство, в този случай, микросхема, която преобразува кода на една бройна система в кода на друга система. Най-широко използваните в електрониката са енкодерите, които преобразуват позиционен десетичен код в паралелен двоичен код. Ето как енкодерът може да бъде обозначен на електрическата схема.

Например, нека си представим, че държим обикновен калкулатор в ръцете си, който сега се използва от всеки ученик.

Тъй като всички операции в калкулатора се извършват с двоични числа(помнете основите на цифровата електроника), след това след клавиатурата има енкодер, който преобразува въведените числа в двоична форма.

Всички бутони на калкулатора са свързани към общ проводник и с натискане например на бутон 5 на входа на енкодера веднага ще получим двоичния вид на това число на изхода му.

Разбира се, енкодерът на калкулатора има по-голям брой входове, тъй като в допълнение към числата трябва да се въведат някои други символи на аритметични операции в него, следователно не само числата в двоична форма, но и командите се премахват от изходите на енкодера.

Ако разгледаме вътрешната структура на енкодера, тогава е лесно да се уверим, че той е направен на най-простите основни логически елементи.

Във всички устройства за управление, които работят на двоична логика, но за удобство на оператора имат десетична клавиатура, се използват енкодери.

Декодери.

Декодерите принадлежат към същата група, само че работят точно обратното. Те преобразуват паралелната двоична система в позиционна десетична. Условното графично обозначение на диаграмата може да бъде както следва.

Или като това.

Говорейки по-подробно за декодери, струва си да се каже, че те могат да конвертират двоичен код различни системисмятане (десетично, шестнадесетично и т.н.). Всичко зависи от конкретна цели целта на микросхемата.

Най-простият пример. Виждали сте цифров седемсегментен индикатор повече от веднъж, например светодиод. Показва десетични цифри и числа, с които сме свикнали от детството (1, 2, 3, 4...). Но, както знаете, цифровата електроника работи с двоични числа, които са комбинация от 0 и 1. Какво преобразува двоичния код в десетичен и предава резултата на цифров седемсегментен индикатор? Вероятно вече се досещате, че декодерът го е направил.

Работата на декодера може да бъде оценена на живо, ако сглобите проста схема, която се състои от декодерен чип K176ID2и LED седемсегментен индикатор, който също се нарича "осем". Погледнете диаграмата, по-лесно е да разберете как работи декодера. За бързо сглобяване на веригата може да се използва макет без запояване.

За справка. Микросхемата K176ID2 е разработена за управление на 7-сегментен LED индикатор. Този чип може да конвертира двоичен код от 0000 преди 1001 , което съответства на десетични цифри от 0 до 9 (една декада). Останалите, по-стари комбинации просто не се показват. Изводите C, S, K са спомагателни.

Чипът K176ID2 има четири входа (1, 2, 4, 8). Понякога те също се споменават D0-D3. На тези входове се дава паралелен двоичен код (например 0001). В този случай двоичният код има 4 бита. Микросхемата преобразува кода, така че изходите ( a-g) се появяват сигнали, които образуват десетични цифри и числа, с които сме свикнали на седемсегментния индикатор. Тъй като декодерът K176ID2 може да показва десетични цифри в диапазона от 0 до 9, ние ще ги видим само на индикатора.

Към входовете на декодера K176ID2 са свързани 4 превключвателя (S1 - S4), с помощта на които към декодера може да се подаде паралелен двоичен код. Например при затваряне на превключвателя S1към 5-ия изход на микросхемата се прилага логическа единица. Ако отворите контактите на превключвателя S1- това ще съответства на логическа нула. С помощта на превключватели можем ръчно да зададем логиката 1 или 0 на входовете на микросхемата.Мисля, че всичко е ясно с това.

Диаграмата показва как кодът 0101 се прилага към входовете на декодера DD1.На светодиодния индикатор ще се покаже числото 5. Ако само превключвателят S4 е затворен, на индикатора ще се покаже числото 8. За да напишете число от 0 до 9 в двоичен код, достатъчни са четири цифри: a 3 * 8 + a 2 * 4 + a 1 * 2 + a 0 * 1, където а 0 - а 3, са числа от бройната система (0 или 1).

Нека представим числото 0101 в десетична форма 0101 = 0*8 + 1*4 + 0*2 + 1*1 = 4 + 1 = 5 . Сега нека да разгледаме диаграмата и да видим, че теглото на цифрата съответства на числото, по което се умножава 0 или 1 във формулата.

Декодер, базиран на TTL технология - K155ID1 беше използван по едно време за контрол на газоразряд цифров индикатортип IN8, IN12, които бяха в голямо търсене през 70-те години, тъй като светодиодните индикатори за ниско напрежение бяха все още много редки.

Всичко се промени през 80-те години. Възможно е свободно закупуване на седем сегмента LED матрица(индикатори) и бум в сглобяването на електронни часовници пометени сред радиолюбителите. Домашно Цифров часовникне се събират за къщата само мързеливи.

В тази статия ще говорим за цифров дисплей.
Седемсегментните LED индикатори са предназначени да изобразяват арабски цифри от 0 до 9 (фиг. 1).

Такива индикатори са едноцифрени, които показват само едно число, но може да има повече групи от седем сегмента, комбинирани в един случай (многоцифрени). В този случай числата са разделени с десетична запетая (фиг. 2)


Фиг.2.

Индикаторът се нарича седемсегментен поради факта, че показваният символ е изграден от отделни седем сегмента. Вътре в корпуса на такъв индикатор има светодиоди, всеки от които осветява своя сегмент.
Проблемно е да се показват букви и други символи на такива индикатори, поради което за тези цели се използват 16-сегментни индикатори.

Има два вида LED индикатори.
В първия от тях всички катоди, т.е. отрицателните клеми на всички светодиоди се комбинират заедно и съответният изход на корпуса е разпределен за тях.
Останалите изходи на индикатора са свързани към анода на всеки от светодиодите (фиг. 3, а). Такава верига се нарича "верига с общ катод".
Има и индикатори, в които светодиодите на всеки от сегментите са свързани по схемата с общ анод (фиг. 3, б).


Фиг.3.

Всеки сегмент е обозначен със съответната буква. Фигура 4 показва тяхното местоположение.

Фиг.4.

Като пример, помислете за двуцифрен седемсегментен индикатор GND-5622As-21 с червено сияние. Между другото, има и други цветове, в зависимост от модела.
С помощта на триволтова батерия можете да включите сегментите и ако комбинирате група щифтове в куп и приложите захранване към тях, можете дори да показвате числа. Но този метод е неудобен, така че регистрите за смяна и декодери се използват за управление на седемсегментни индикатори. Също така често изходите на индикаторите се свързват директно към изходите на микроконтролера, но само когато се използват индикатори с ниска консумация на ток. Фигура 5 показва фрагмент от веригата, използваща PIC16F876A.


Фиг.5.

За управление седемсегментен индикаторчесто се използва декодерът K176ID2.
Тази микросхема е в състояние да преобразува двоичния код, състоящ се от нули и единици, в десетични цифри от 0 до 9.

За да разберете как работи всичко, трябва да съберете проста верига(фиг. 6). Декодерът K176ID2 е направен в корпус DIP16. Той има 7 изходни пина (пинове 9 - 15), всеки предназначен за конкретен сегмент. Тук не се предоставя управление на точки. Микросхемата също има 4 входа (щифтове 2 - 5) за подаване на двоичен код. 16-ти и 8-ми пинове се захранват съответно с плюс и минус мощност. Останалите три извода са спомагателни, за тях ще говоря малко по-късно.


Фиг.6.

DD1 - K176ID2
R1 - R4 (10 - 100 kOhm)
HG1-GND-5622As-21

Във веригата има 4 превключвателя (възможни са всякакви бутони), когато ги натиснете, към входовете на декодера се подава логическа единица от захранващия плюс. Между другото, самата микросхема се захранва от напрежение от 3 до 15 волта. AT този примерцялата верига се захранва от 9-волтова "корона".

Във веригата има и 4 резистора. Това са така наречените pull-up резистори. Те са необходими за гарантиране на ниско ниво на логическия вход, при липса на сигнал. Без тях показанията на индикатора може да не се показват правилно. Препоръчително е да използвате същотосъпротивление от 10 kOhm до 100 kOhm.

В диаграмата щифтове 2 и 7 на индикатора HG1 не са свързани. Ако свържете DP изхода към захранващия минус, десетичната точка ще светне. И ако приложите минус към изхода Dig.2, тогава втората група сегменти също ще светне (ще показва същия символ).

Входовете на декодера са проектирани така, че за да покажете числата 1, 2, 4 и 8 на индикатора, трябва да натиснете само един бутон (превключвателите са инсталирани на оформлението, съответстващи на входовете D0, D1, D2 и D3) . Ако няма сигнал, се показва нула. При подаване на сигнал на вход D0 се извежда числото 1. И т.н. За да покажете други числа, трябва да натиснете комбинация от превключватели. Таблица 1 ще ни каже кои да натиснете.


Маса 1.

За извеждане на числото "3" е необходимо да се приложи логическа единица на входа D0 и D1. Ако подадете сигнал към D0 и D2, тогава ще се покаже числото "5".(фиг. 6).


Фиг.6.

Ето разширена таблица, в която виждаме не само очакваната фигура, но и онези сегменти (a - g), които ще съставят тази фигура.


Таблица 2.

Спомагателни са 1-ви, 6-ти и 7-ми щифтове на микросхемата (съответно S, M, K).

На диаграмата (фиг. 6) 6-ти изход "М" е заземен (до минус мощност) и има положително напрежение на изхода на микросхемата за работа с индикатор с общ катод. Ако се използва индикатор с общ анод, тогава към 6-ия изход трябва да се приложи единица.

Ако на 7-ми изход "K" е подадена логическа единица, тогава знакът на индикатора изгасва, нулата позволява индикацията. В схемата това заключениезаземен (на минус мощност).

Към първия изход на декодера се прилага логическа единица (power plus), която позволява извеждане на преобразувания код на индикатора. Но ако приложите логическа нула към този изход (S), тогава входовете ще спрат да получават сигнал и текущият показан знак ще замръзне на индикатора.

Едно интересно нещо, което трябва да отбележим е, че знаем, че превключвателят D0 превключва числото "1", а превключвателят D1 превключва числото "2". Ако натиснете и двата превключвателя, ще се покаже числото 3 (1 + 2 = 3). А в други случаи индикаторът показва сумата от числата, които съставляват тази комбинация. Стигаме до извода, че входовете на декодера са подредени обмислено и имат много логични комбинации.

Можете също да гледате видеоклипа към тази статия.

3.5 Седем сегментен декодер

Седемсегментен дисплей често се използва за показване на десетични и шестнадесетични цифри. Неговото изображение и името на сегментите са показани на фиг. 3.1. Сегментите са светлоизлъчващи елементи като светодиоди.

Фигура 3.1 Седем сегмента

индикатор, (а). Изображение и име на неговите сегменти, (b)

За да се покаже числото 0 на индикатора, достатъчно е да светнете сегментите а, b, ° С, д, д, f. За да получите номер 1 - сегменти bи ° С. По същия начин можете да получите изображения на всички други десетични или шестнадесетични цифри. Комбинациите от такива изображения се наричат ​​седемсегментен код.

За управление на работата на индикатора се използват декодери, които преобразуват двоичния код в седемсегментен (фиг. 3.2). В таблицата на истината на седемсегментния декодер (Таблица 3.1) включването на сегменти предполага наличието на ниво логическа единица.

Таблица на истинността на седем сегментния декодер Таблица 3.1

А 3

А 2

А 1

А 0

а

b

° С

д

д

f

ж


Например на изхода ° Сдекодер, логическа нула ще се появи само когато на входа се подаде комбинация от двоични сигнали 0010 2 = 2 10. Пример за седемсегментен декодер е чипът K176ID3.

В модерните цифрови схемиСедемсегментните декодери обикновено се включват в големи интегрални схеми.

Ориз. 3.2 Конвенционално графично обозначение

седем сегментен декодер DC (4-7)

Матричен индикатор

Матричен индикатор е матрица с размери 5 ´ 7 = 35 клетки (Таблица 3.2). С помощта на матричен индикатор и декодер на всеки знак (буква, препинателен знак, цифра и др.) може да бъде присвоен двоичен код. Външен видматричен индикатор е показан на фиг. 3.3.


Кодова таблица Таблица 3.2

Ориз. 3.3 Външен вид на матрични индикатори, (a, b)

и таблица с кодове на индикаторни клетки, (c).

Пример.Покажете буквата "P" на индикатора на матрицата.

За да направите това, съответните сегменти (Таблица 3.3) трябва да бъдат снабдени със сигнали на логическа единица от декодера.

На всеки символ, който може да бъде показан от индикатора, са присвоени набори от 35 функции. Техните номера за буквата "P" са дадени в табл. 3.3.

Ако знакът съответства на тази буква, тогава в клетката се поставя „1“ и т.н. докато се запълни цялата маса.

Таблица с характеристики Таблица 3.3

Индикатори на контролния панел

На фиг. Фигури 3.4…3.8 показват индикатори на работните места на диспечерите.

Ориз. 3.4 Матрични индикатори

Ориз. 3.5 Диспечерско табло и работно място на енергийния диспечер

Ориз. 3.6 Фрагмент от мнемоничната диаграма на електроенергийната система

Ориз. 3.7 Фрагмент от мнемоничната диаграма на електроенергийната система

Ориз. 3.8 Мимически елемент