Контроль 15-ти контактов с помощью PIC-микроконтроллера

В этом проекте используется всего лишь один вывод микроконтроллера для контроля нажатия до 15 кнопок. Используемый микроконтроллер должен иметь на борту встроенный компаратор с выбираемыми значениями для внутреннего источника опорного напряжения V REF. Большинство 8-битных PIC микроконтроллеров среднего семейства имеют один или два внутренних компаратора, что вполне подходит для выполнения нашего проекта.

Алгоритм работы:

1. Состояние простоя, Vref = (1 / 24).Vdd. Vcin- = 0 Vref --- Cout = 0 --- Вызов прерывания
3. Внутри прерывания, увеличивается Vref = (i / 24).Vdd, где i = от 2 до 15, пока Vref > Vсin- --- Cout = 1 далее --- была нажата кнопка Btn(i-1).
(если Vref остается < Vсin-, тогда i = 16 --- была нажата кнопка Btn15)
4. Четыре светодиода будут отображать двоичный код нажатой кнопки.

Схема:


Используется 8-битный микроконтроллер PIC12F683, контролирующий 4-битный светодиодный дисплей, который отображает какая из кнопок была нажата. Программа обработки прерывания от компаратора мгновенно реагирует на любую нажатую кнопку. Подпрограмма проверяет по кругу значения VREF, пока на выходе компаратора COUT не появляется высокий потенциал, который будет означать, что одна из кнопок была нажата.

Полностью завершенный программный код на ассемблере с комментариями имеет всего лишь 100 слов. Он не слишком оптимизирован, поэтому вы сможете с легкостью его адаптировать для любого другого микроконтроллера.

Скачать исходники на Ассемблер: У вас нет доступа к скачиванию файлов с нашего сервера
Источник: www.edn.com

0 комментариев

Ваше имя: *
Ваш e-mail: *
Войти через
  • bowtiesmilelaughingblushsmileyrelaxedsmirk
    heart_eyeskissing_heartkissing_closed_eyesflushedrelievedsatisfiedgrin
    winkstuck_out_tongue_winking_eyestuck_out_tongue_closed_eyesgrinningkissingstuck_out_tonguesleeping
    worriedfrowninganguishedopen_mouthgrimacingconfusedhushed
    expressionlessunamusedsweat_smilesweatdisappointed_relievedwearypensive
    disappointedconfoundedfearfulcold_sweatperseverecrysob
    joyastonishedscreamtired_faceangryragetriumph
    sleepyyummasksunglassesdizzy_faceimpsmiling_imp
    neutral_faceno_mouthinnocent
Введите два слова, показанных на изображении:
© 2010-2017 Все права соблюдены.