Использование портов для индикации цифр

Семисегментный индикатор

Любой семисегментный индикатор обязательно состоит из семи сегментов. Отсюда и происходит его название. Каждый сегмент – это обычный отдельный светодиод. Кроме того в корпусе помимо сегментов находится еще и точка или запятая или другой символ. С помощью семи сегментов можно изобразить десять цифр: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 и некоторые буквы, как латиницы, так и кириллицы.

Светодиоды всех элементов соединяются одноименными выводпми между собой или анодами, или катодами. Поэтому разделяют семисегментные индикаторы с общим анодом и общим катодом.

Вне зависимости от количества разрядов и размеров цифр каждый сегмент имеет название в виде одной из первых букв английского алфавита: a, b, c, d, e, f, g. Точка обозначается dp.

Для того чтобы засветить один из светодиодов семисегментного индикатора с общим анодом следует на общий вывод (анод) подать «+», а на соответствующий отдельный вывод – «-» источника питания. Если применяется общий катод, — то наоборот – минус подается на общий, а плюс на отдельный вывод.

 

 

Чтобы отобразить на индикаторе цифру или букву следует засветить несколько сегментов. Например, для отображения единицы 1 задействуются сегменты b и c. При отображении восьмерки 8 задействуются все символы от a до g. Пятерка получается из таких символов: a, c, d, f, g.

Все светодиоды подключаются к выводам микроконтроллера через отдельные резисторы сопротивлением 220…330 Ом.

Использование портов для индикации цифр

Мы видим, что для индикации различных символов требуется переключение сразу 7 пинов, что делает программу управления семисегментным индикатором довольно сложной. Для упрощения воспользуемся механизмом портов. Обратите внимание, что на рисунке выводы платы ARDUINO от 0 по 7 отмечены так же, как PD0 – PD7

 

Это соответствует выводам 8-разрядного регистра D микроконтроллера Atmega. Для порта D существуют специальные команды, которые позволяют управлять состоянием выводов порта. Например,

DDRD = 0b11111110;

назначает выводы Arduino 1-7 выходными, вывод 0- входным, а

PORTD = 0b00000001;

устанавливает   выводы Arduino 1-7 (PD1-PD7) в низкий уровень (LOW), а вывод 0 (PD0) в высокий уровень (HIGH)


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: