Микроконтроллер управляет 7 сегментным индикатором » Программирование устройств на PIC микроконтроллерах


Логин:
Пароль:
О сайте:

Pic.Rkniga.ru - Сайт как для начинающих, так и для опытных радиолюбителей, разрабатывающих свои устройства на популярных PIC микроконтроллерах.
Здесь можно обмениваться сообщениями на форуме, а также добавлять на сайт статьи и схемы своих устройств.

Меню сайта
Главная Форум по PIC микроконтроллерам Форум Статьи по PIC микроконтроллерам Статьи Справочная информаци по PIC микроконтроллерам Справочник Литература по PIC микроконтроллерам Литература Схемотехника Схемотехника устройств на PIC микроконтроллерах Микроконтроллеры Программаторы Все по программированию PIC микроконтроллеров Программы, Софт Программы Ссылки
Опрос

Сколько лет вы занимаетесь программированием PIC микроконтроллеров?


от 0-1 года
1-3 года
3-5 лет
5-10 лет
более 10


Последние материалы
  • Тестовая плата для отладки программ на микроконтроллере PIC18F4550
  • Кнопка On/OFF на PIC12F629.
  • Часы с синхронизацией от китайского будильника
  • ШИМ регулятор на PIC16F628A.
  • Счетчики прямого и обратного счета на PIC16F628A.
  • Таймер отключения питания для мультиметра и не только.
  • Измеритель напряжения и тока
  • Маршрутный компьютер для электровелосипеда
  • Простой двухканальный термометр на PIC16F690 и датчиках DS18B20
  • Электронная "Незабудка" для забывчивых
  • Популярные материалы
    Случайная книга
    Программирование устройств на PIC микроконтроллерах » Статьи » Микроконтроллер управляет 7 сегментным индикатором
    Микроконтроллер управляет 7 сегментным индикатором
    Автор публикации: alex Просмотров: 12621 Добавлен: 22-01-2013, 10:00 Комментарии: 0

         Для управления тремя семисегментными светодиодными индикаторами, в типичном случае, потребуется 10 линий ввода/вывода, и это без децимальной точки. На первый взгляд, может показаться, что сформулированную в заголовке задачу решить без дешифратора двоичного кода в семисегментный или без параллельно-последовательного сдвигового регистра невозможно.
         На рисунке показано, как сделать схему, управляющую 21 светодиодом из которых сформирован трехразрядный псевдо-семисегментный дисплей.

         Программа подойдет для любого 8-выводного микроконтроллера семейства PIC12xx фирмы Microchip.

         ЗАМЕЧАНИЯ: Устанавливать R1 необязательно, т.к. вывод GP3 всегда сконфигурирован входом. Резистор нужен только как страховка, на случай программной ошибки.
         Используя 21 сверхъяркий плоский светодиод, расположите их таким образом, чтобы образовать трехразрядный псевдо-семисегментный индикатор.
         Этот код можно адаптировать к любому микроконтроллеру, например, Atmel или STMicroelectronics, выполняя следующие шаги:
         Создать для 10 чисел таблицу перекодировки в семисегментный код (см. таблицу «Code7Segment»).
         Создать таблицу перекодировки для 3x7 значений последовательных конфигураций линий ввода/вывода. В каждой конфигурации в определенный момент времени управляется один светодиод в каждой цифре, т.к. только на одном выходе высокий уровень напряжения и на одном – низкий (см. таблицу «Cfg2LinesOut»).
         Создать таблицу перекодировки для 3x7 значений последовательных состояний «1» и «0» линий ввода/вывода, включающих в каждый момент времени только один светодиод в каждой цифре (см. таблицу «Light1LED»).
         Подпрограмма DispDigit осуществляет семикратный циклический правый сдвиг семисегментного кода цифры через флаг переноса. При установлении флага переноса, каждый раз вызывается подпрограмма LEDon.
         Подпрограмма LEDon активизирует светодиод, связанный с конфигурационным кодом таблицы «Cfg2LinesOut» и зажигает его, в соответствии с кодом состояния, записанным в таблице «Light1LED». Подпрограмма заканчивается переходом на процедуру критической задержки 1…3 мс. Увеличение этой задержки усилит мерцание светодиодов, а уменьшение снизит яркость их свечения.
         Повторяйте шаги 4 и 5 для единиц, десятков и сотен.
         На рисунке показано, как подключить одну семисегментную цифру к микроконтроллеру серии PIC10F2xx, имеющему лишь три линии ввода/вывода. Соответствующий ассемблерный листинг можно скачать отсюда.

         ЗАМЕЧАНИЯ: Устанавливать R1 необязательно, т.к. вывод GP3 всегда сконфигурирован входом. Резистор нужен только как страховка, на случай программной ошибки.
         Используя семь сверхъярких плоских светодиодов, расположите их таким образом, чтобы образовать псевдо-семисегментный индикатор.
    Источник

    В архиве исходники для pic10F2xx и для pic12xx.

    upr7segmindik.rar [3,71 Kb] (cкачиваний: 740)

    Комментарии