Практически ни одно микропроцессорное устройство не обходится без кнопок и простейших датчиков на основе обычных контактов. При помощи этого вида периферийных элементов в микропроцессорное устройство поступает различная информация, которая используется для изменения алгоритма работы программы.
Примером может служить датчик поворота (Рис.2.2) - механические контакты, связанные с поворачиваемым устройством.
Рис.2.2
Простая схема подключения датчика на основе геркона
На вход микроконтроллера через резистор R1 подается напряжение от источника питания +5 В. Микросхема воспринимает это напряжение как сигнал логической единицы. При срабатывании датчика контакты замыкаются и соединяют вывод микроконтроллера с общим проводом. В результате напряжение на входе Р1.0 падает до нуля. В следствии микросхема воспринимает входной уровень сигнала как логический ноль. Резистор R1 при этом служит токоограничивающим элементом, предотвращая короткое замыкание между шиной питания и общим проводом.
Рассмотрим программу для обслуживания вышеупомянутого датчика (Листинг 2.3.), которая, постоянно опрашивает датчик и в зависимости от состояния запускает одну из двух специальных процедур.
1 2 3 4 5 6 7 | ; Программа обработки сигнала с датчика m1: mov p1.0,#1 ; Записываем 1 в соответствующий разряд порта mov c,p1.0 ; Читаем состояние датчика в битовый аккумулятор jc m2 ; Если контакты датчика разомкнуты, перейти к m2 call proc1 ; Вызов процедуры обработки нажатия контакта jmp m1 ; Возврат к началу (следующий цикл считывания) m2: call proc1 ; Вызов процедуры обработки размыкания контакта jmp m1 ; Возврат к началу (следующий цикл считывания) |
Листинг 2.3.
Здесь явно видно, что программа записывает в линию Р1.0 сигнал логической единицы (строка 1). Это необходимо для того, чтобы данная линия могла работать на ввод информации.
Следующая команда считывает бит информации, поступающей от датчика, и помещает ее в регистр признака переноса (строка 2). В микропроцессорной технике принято ячейку признака переноса обозначать как CY
. Ячейка CY
используется как аккумулятор для битовых операций. Если в момент считывания сигнала контакты датчика были разомкнуты, то в ячейке CYокажется логическая единица. Если контакты замкнуты, то там будет логический ноль.
Оператор условного перехода
jc
осуществляет оценку содержимого CY(строка 3). Если в CY
логический ноль, то управление передается на метку
m2,и выполняется команда call ргос2(строка 6). В противном случае передача управления не происходит и выполняется команда
call
proc1
(строка 4). Оператор call- это вызов подпрограммы. Поэтому, в зависимости от состояния датчика вызывается одна из двух подпрограмм: proc1 Перейти на страницу: 1 2 3 4 5
Другое по теме:
Технология изготовления плат толстопленочных гибридных интегральных схем Под керамикой понимают большую группу диэлектриков с разнообразными свойствами, объединенных общностью технологического цикла. Слово «керамика» произошло от греческого «керамос», что значит «горшечная глина». Раньше все материалы, содержащие ...