Семисегментная индикация. Лабораторная работа 1 Вывод информации на семисегментную светодиодную индикацию Теоретическое введение
Скачать 93.5 Kb.
|
Лабораторная работа №1 Вывод информации на семисегментную светодиодную индикацию Теоретическое введение. Для вывода и отображения информации в составе лабораторного стенда используются следующие функциональные блоки (см. рисунок 1): - блок светодиодов (LED0…LED7); - дисплей на семисегментных светодиодных индикаторах (ССИ) (DISP0…DISP3); - жидкокристаллический (ЖК) индикатор (LCD modul). Все вышеуказанные блоки подключены параллельно к выходному порту Р1 микроконтроллера (МК). Блок светодиодов (LED0…LED7) предназначен для вывода одного байта информации. Анализ схемы блока светодиодов показывает, что при выводе байта информации в порт Р1 загораются те светодиоды, которые подключены к разрядам порта Р1, содержащим нули. При выводе единиц в порт Р1 соответствующие светодиоды гаснут. Схема дисплея на ССИ (DISP0…DISP3) организована аналогично, за исключением того, что подача питающего напряжения на каждый из индикаторов осуществляется с помощью транзисторного ключа, замыкание которого производится подачей на его базу уровня логического нуля, формируемого с помощью дешифратора (декодера). Дешифратор выполняет преобразование двоичного позиционного кода, поступающего на его входы А1, А0 в унитарный двоичный код на его выходах Q0…Q3 (младший разряд кода соответствует младшему индексу в обозначении входа/выхода). Для работы дешифратора необходимо наличие уровня логической единицы на его входе CS (выборка кристалла), который подключен к выходу Р0.7 МК (см. рисунок 1). Функционирование дешифратора осуществляется в соответствии со следующей таблицей:
Таким образом, как следует из таблицы, уровень логического нуля появляется на том выходе дешифратора, номер которого в двоичном коде подается на его входы. На схеме рис.1 показано, что входы дешифратора А0 и А1 подключены соответственно к разрядам Р3.3 и Р3.4 порта Р3 МК. Следовательно, для подачи напряжения питания, например, на второй семисегментный индикатор, необходимо обеспечить следующую комбинацию сигналов на выходах порта Р3 МК: Р3.3=0, Р3.4=1. Для вывода символа на ССИ необходимо выдать в порт Р1 МК семисегментный код, соответствующий этому символу (естественно, при наличии напряжения питания на выбранном ССИ). Таблица соответствия сегментов ССИ разрядам порта Р1 приведена ниже (см. также рисунок 1):
Как было указано выше, для зажигания сегментов ССИ, из которых формируются выводимые символы, необходимо обеспечить в соответствующем разряде порта Р1 уровень логического нуля. При выводе в порт Р1 единиц, соответствующие сегменты ССИ гаснут. Пространственное расположение сегментов приведено на рисунке 1. Например, при формировании на ССИ символа цифры «0», необходимо обеспечить горение сегментов a, b, c, d, e, и f ССИ подав на выходы Р0…Р5 уровни логического нуля и на выходы Р6,Р7 уровни логической единицы. Исходя из этого, можно составить таблицу соответствия кодов выводимых на ССИ шестнадцатеричных цифр и их семисегментных кодов:
Ниже приведена программа вывода на ССИ последовательности цифр «1234»: start: SETB P3.3 ; | Р3.3:=1 Выбор ССИ №3 SETB P3.4 ; | Р3.4:=1 MOV P1, #11111001B ; Выдача символа «1» на ССИ №3 MOV P1, #0FFH ; Гашение символа CLR P3.3 ; Р3.3:=0 Выбор ССИ № 2 MOV P1, #10100100B ; Выдача символа «2» на ССИ №2 MOV P1, #0FFH ; Гашение символа CLR P3.4 ; | Р3.4:=0 Выбор ССИ №1 SETB P3.3 ; | Р3.3:=1 MOV P1, #10110000B ; Выдача символа «3» на ССИ №1 MOV P1, #0FFh ; Гашение символа CLR P3.3 ; Р3.3:=0 Выбор ССИ № 0 MOV P1, #10011001B ; Выдача символа «4» на ССИ №0 MOV P1, #0FFH ; Гашение символа JMP start ; Переход на начало программы Обратите внимание, что перед подачей напряжения питания на очередной индикатор (выбором очередного ССИ) необходимо погасить текущий символ, выдав в порт Р1 константу FFH, содержащую единицы во всех разрядах. Это связано с тем, что сегменты всех ССИ подключены к порту Р1 МК параллельно, т.е. код текущего выводимого символа присутствует на всех ССИ одновременно, но символ отображается только на том индикаторе, на который подается питание. Если подать питание на следующий ССИ без гашения текущего символа, текущий символ отобразится на следующем выбранном ССИ. Лабораторное задание. 1. Заполнить таблицу соответствия кодов выводимых на ССИ шестнадцатеричных цифр и их семисегментных кодов. 2. Разработать программу, осуществляющую вывод на ССИ заданного набора символов (слова). В зависимости от номера варианта выбираются последовательность символов и последовательность активации знакоместа дисплея на ССИ. Варианты задания выбираются из таблицы в соответствии с номером бригады.
Примечание: Рассмотренная выше программа выполнена в соответствии с вариантом задания №0. |