Блок аналого-цифрового преобразователя
Блок цифрового мультиплексора
Мультиплексор- устройство, которое подключает один из входов к выходу в соответствии с состоянием адресных входов ABC (табл.9).
Таблица9 | |
C B A | Соединение |
0 0 0 | D0→Y |
0 0 1 | D1→Y |
0 1 0 | D2→Y |
0 1 1 | D3→Y |
1 0 0 | D4→Y |
1 0 1 | D5→Y |
1 1 0 | D6→Y |
1 1 1 | D7→Y |
Схема подключения блока цифрового мультиплексора приведена на рис.29. Для управления состоянием входов ABC первого мультиплексора используются разряды Р0.0-Р0.2, второго–разряды Р0.4-Р0.6. Через вход Р0.3 считывается состояние одного из датчиков первого мультиплексора, через Р0.7 второго. Через мультиплексор к микроконтроллеру подключаются дискретные (цифровые) датчики, состояние которых формируется ключевой схемой. Если ключ замкнут на корпус, то формируется состояние 0, если на источник питания, то состояние 1.
Задача.Подключить датчик 1 и проверить его состояние.
Фрагмент программы, реализующей указанную задачу:
M0: ; подключение датчика к выходу мультиплексора
CLR P0.0 ;выдаем состояние 000
CLR P0.1 ;на первый мультиплексор
CLR P0.2
JB P0.3, M1 ;проверяем состояние датчика
;Действия при ключе, замкнутом на корпус
.................
LJMP M0
M1:
;Действия при ключе, замкнутом на источник
................
LJMP M0
Рис.29. Блок цифрового мультиплексора
Схема подключения блока аналого-цифрового преобразователя приведена на рис.30.
Для преобразования аналоговых сигналов в цифровые могут быть использованы как управляемые, так и неуправляемые АЦП. Кроме того, АЦП можно разделить на одноканальные и многоканальные. Преобразователи могут иметь разную разрядность.
В данном случае использован десятиразрядный одноканальный преобразователь 1113ПВ1А. Поскольку он используется для подключения восьми датчиков, в состав устройства включен аналоговый мультиплексор 564КП2, позволяющий подключать АЦП любой из датчиков. Напряжение с аналоговых датчиков подается на входы D0-D7 мультиплексора, выбор измеряемого канала производится подачей на адресные входы комбинации 000÷111 (см п.5.6). Управление состоянием адресных входов осуществляется программно через контакты порта микроконтроллера (в данном случае использованы Р3.4, Р3.5, Р3.6).
При подаче цифровой комбинации на адресные входы напряжение с выбранного датчика через мультиплексор поступает на вход IN аналого-цифрового преобразователя.
Управление преобразователем осуществляется через контакты RUN (запуск АЦП) и GOT (состояние преобразования), которые соединяются с микроконтроллером ( например Р3.2, Р3.3).
Чтобы произвести преобразование, необходимо на входе RUN программно создать падающий фронт (переход из состояния 1 в 0). Контроль завершения преобразования осуществляется по состоянию выхода GOT, сигнал с которого подается на контакт Р3.3 микроконтроллера. Если преобразование не завершено GOT=1, после завершения GOT=0.
Считывание цифрового значения сигнала датчика производится с контактов D0-D9 АЦП, которые должны быть подключены к входам микроконтроллера. Если требуется высокая точность преобразования, подключаются все десять выходов. В схеме, приведенной на рис.30, для учебных целей используются только старшие восемь разрядов. В этом случае для подключения достаточно одного порта (в данном случае порт Р0).
Чтобы подготовить АЦП к следующему преобразованию вход RUN переводится в состояние логической 1.
Задача.Подключить аналоговый датчик 4 к АЦП, произвести преобразование и считать с АЦП полученный код.
Фрагмент программы, реализующей указанную задачу:
;подключение датчика 4
SETB P3.4 ;выдача на мультиплексор 011
SETB P3.5
CLR P3.6
;запуск АЦП
CLR P3.2 ; переводим вход RUN из 1 в 0
;ожидание готовности
JB P3.3, $ ; проверяем состояние выхода GOT
; если не 0, то повтор этой команды
;чтение кода с АЦП
MOV A,P0
;снять запуск с АЦП
SETB P3.2
Рис.30Блок аналого-цифрового преобразователя