Главная страница Комбинированное использование портов Программа, представленная листингом 3.5, предназначена тщ схемы, изображенной на рис, 3.25. Она обнуляет индикатор, загру жает в его память четыре специальных символа и выводит на экра слово РатИахъ прямом и зеркальном представлении благодаря зер, кально отраженным буквам, которые будут заранее помещены в его память. Листинг 3.5 Управление интеллектуальным ЖКИ. Программа соответствует руководству по применению фирмы Parallax. Предназначена для ЖКИ фирмы Hitachi или эквивалентного. Выводит на индикатор четыре знака и осуществляет индикацию слова Parallax в прямом и обратном порядке в зеркальном отражении благодаря специальным знакам. Программа включает подпрограмму blip E, которая управляет обменом и отсылает данные или команды на индикатор. LCD pwr = га.З ; Включение питания индикатора (5 В). RS = га.2 ; О = команда, 1 = данные. RW = ra.l ; О = запись, 1 = считывание. Е = га.О ; О = запрет приема/передачи. ; 1 = разрешение приема/передачи. Data = It ; Данные ЖКИ. Count = 16 ; Счетчик знаков. Char cnt = 32 ; Счетчик байтов. ; Определение констант, используемых в командах ЖКИ. ; Изменится, если будет использован индикатор другого типа.
Инициализация порта A. Инициализация порта В. Все линии порта А - выходы. Все линии порта В - выходы. Включение питания ЖКИ. Ожидание, Инициализация LCD. Запись знаков начиная с адреса 0. 1 на RS для передачи данных. Следующий байт. Запись байта. stuff ; О на RS для передачи команд. Передача последовательности знаков. Бесконечный цикл, сброс для выхода. Запись данных содержится в переменной temp2 индикатора. Определение используемого PIC. device picl6c54,xt osc,wdt off,protect off reset start
+ 5V В этом листинге собраны все классические подпрогргиммы управле ния ЖКИ. Единственное, что надо предусмотреть в случае использования другой марки индикатора, - изменение кодов посылаемых команд. Эта программа была взята из технического описания устройства фирмы Parallax, она написана с использованием псевдоинструкций микроконтроллера 8051 ассемблера PASM. При желании вы можете преобразовать данный исходный текст в программу на классическом ассемблере Р1С-микроконтроллеров, воспользовавшись табл. 2.3 и пояснениями к ней. ПАРАЛЛЕЛЬНЫЕ ВХОДЫ Параллельные входы обычно используются для контроля состояния различных коммутационных элементов: выключателей, кнопок и т.п., или чтобы проверять наличие напряжения на некоторых устройствах, например оптронных контактных датчиках. Часто входы микроконтроллеров применяются для опроса клавиатуры пульта управления. Кнопки и переключатели Считывать состояние кнопок, выключателей или кодирующих дисков (которые представляют собой особые виды выключателей) 4,7кП...47кО Кнолко, переключагпе;1ь или контокт - кодируюшего диска Рис. 3.25 Подключение кнопок и выключателей к микроконтроллеру рольно просто. Достаточно подсое- rtirrb их между входом и нулевой ши- й как показано на рис. 3.25. Вход оитянут к высокому логическому вНЮ ограничительным резистором, чина сопротивления которого мо-ДОХОДИТЬ до 100 кОм, чемобеспечи-рается малое потребление тока. и том сл)чае, если ваше устройство работает вблизи мощного источника помех (например, двигателя), желательно использовать резистор с небольшим сопротивлением (обычно 4,7 или 10 кОм). Наводки на вы-сокоомный вход будут значительно большими, чем на низкоомный. Однако включать в схему резисторы с еще меньшими значениями сопротивления целесообразно только в особых случаях. Когда контакты выключателя разомкнуты, на входе будет высокий логический уровень, при замыкании контактов - низкий. Все механические выключатели имеют одно негативное свойство, известное как дребезг контактов , которое обусловлено колебания-миупругих контактов при их замыкании и размыкании. Длительность колебаний составляет всего несколько миллисекунд. При этом вместо чистого прямоугольного импульса (рис, 3.26а) получается искаженный импульс или пачка импульсов (рис. 3.266). Рис. 3.26 Теоретический сигнал РесльныО сигнал Явление едребезга контактов Обычно такой недостаток устраняют с помощью RS-триггеров, од-Човибраторов или интегрирующих R-C цепочек, устанавливаемых Перед триггерами Шмитта. В устройствах на базе микроконтроллеров борьбу с дребезгом контактов возлагают на программу, которая ествляет многократное считывание состояния входа, подключен-го к переключателю, определяя момент устойчивого изменения его ояния. Опрос входа может производиться периодически либо нерегулярно, по мере того как микроконтроллер освобождается qj, выполнения текущих задач. В любом случае необходима временнгц задержка между двумя последовательными считываниями состо ния входа. Гальваническая развязка входов Когда микроконтроллер должен получать информацию от устройств, находящихся под высоким напряжением или связанных с электрической сетью, самое лучшее решение состоит в том, чтобы обеспечить гальваническую развязку входа, например, посредством оптрона. Данный принцип иллюстрируется схемой, представленной на рис. 3.27. Вьсокое напряжение -си- 1N914 или $ 1N4148 Опглроннай пара 4,7kfi...10kfi Рис. 3.27 Использование оптрона для гальванической развязки входов Когда на внешнюю часть схемы подается напряжение, через светодиод оптрона проходит ток и фототранзистор оптрона открывается, переводя вход микроконтроллера на низкий логический уровень. При отключени8и внешней схемы фототранзистор закрывается, и на входе микроконтроллера будет высокий логический уровень. Для нормальной работы схемы необходимо, чтобы протекающий через светодиод ток не превышал предельно доп)стимый, но бььт ДО статочным для перевода фототранзистора в режим насыщения, который гарантир}тоет получение на входе микроконтроллера низкого логического уровня. Обеспечить выполнение последнего требование можно, выбрав соответствующий оптрон или использовав усилитель-Процесс считывания сигнала такой же, как в описанной ранее схеме с переключателем. Борьба с дребезгом контактов в данное случае не акт}альна. 1с1виатуры ро многих устройствах для ввода информации используется клавиатура, даже если у нее всего несколько клавиш. Так, телефонный номеронабиратель нуждается по крайней мере в двенадцати клавишах, для домашнего программируемого таймера требуется больше кла-вйП1, чтобы обеспечить удобный ввод времени и даты. Можно привести и Др>тие примеры. Если клавиатура состоит из нескольких клавиш, они могут быть подключены к микроконтроллеру как отдельные кнопки, то есть каждая через свой порт. Если клавиатура большая, необходимо искать другое решение, поскольку портов у микроконтроллера не слишком много. Здесь возможны два варианта. Первый состоит в том, чтобы применить внешний клавиатурный кодер, который подключается к N клавишам, а на выходе формирует М-разрядный код, причем N = 2 Таким образом, шестнадцать клавишей могут быть закодированы четырьмя битами. На рис. 3.28 показан пример использования подобной микросхемы, а именно ИС типа 74С922 фирмы National Semiconductor. К ее входу подключается клавиатура из шестнадцати клавишей. Данная ИС осуществляет постоянное сканирование клавишей, устраняет влияние дребезга контактов и кодирует состояние клавиатуры. Выходной код снимается с выходов D, С, В и А. Нажатие одной из клавиш и наличие кодированных данных на выходе индицируется высоким уровнем сигнала на выходе DA. Х4 КВМ ХЗ Х2 А XI ММ7ДС922 в Y1 С Y2 О Y3 DA OSC OE 10nF...1pF -С Рис. 3.28 1/6 74C04 Использование внешнего клавиатурного кодера
|
© 2000 - 2024 ULTRASONEX-AMFODENT.RU.
Копирование материалов разрешено исключительно при условии цититирования. |